32 return arma::norm( *
node(1) - *
node(0) , 2 );
37 return 0.5*arma::norm( arma::cross(diff0, diff1), 2);
86 elem_normal /= norm( elem_normal, 2);
90 side_normal /= norm( side_normal, 2);
92 if ( arma::dot( side_normal, ele.
centre() - *
node(0) ) > 0.0)
104 side_normal /= arma::norm( side_normal, 2);
120 for(
unsigned int i=0; i <
n_nodes() ; i++)
121 barycenter += *
node( i );
123 barycenter /= (double)
n_nodes();
140 for (
unsigned int i=0; i<
n_nodes(); i++)
141 for (
unsigned int j=i+1; j<
n_nodes(); j++)
142 h = max(h, arma::norm(*
node(i) - *
node(j), 2) );
NodeAccessor< 3 > node(unsigned int ni) const
arma::vec::fixed< spacedim > centre() const
Computes the barycenter.
double measure() const
Calculate metrics of the side.
unsigned int n_nodes() const
Returns number of nodes of the side.
arma::vec3 normal() const
Vector of (generalized) normal.
arma::vec3 normal_triangle() const
arma::vec3 normal_line() const
ElementAccessor< 3 > element() const
Returns iterator to the element of the side.
double diameter() const
Calculate the side diameter.
arma::vec3 centre() const
Centre of side.
unsigned int dim() const
Returns dimension of the side, that is dimension of the element minus one.
NodeAccessor< 3 > node(unsigned int i) const
Returns node for given local index i on the side.
arma::vec3 normal_point() const
This is necessary by current DofHandler, should change this.