35 template<
unsigned int dim,
unsigned int spacedim>
class FEValuesData;
47 template<>
inline double determinant(
const arma::mat::fixed<1,2> &M)
49 return sqrt(M(0,0)*M(0,0)+M(0,1)*M(0,1));
52 template<>
inline double determinant(
const arma::mat::fixed<2,1> &M)
54 return sqrt(M(0,0)*M(0,0)+M(1,0)*M(1,0));
67 template<>
inline double determinant(
const arma::mat::fixed<1,3> &M)
69 return sqrt(M(0,0)*M(0,0)+M(0,1)*M(0,1)+M(0,2)*M(0,2));
72 template<>
inline double determinant(
const arma::mat::fixed<3,1> &M)
74 return sqrt(M(0,0)*M(0,0)+M(1,0)*M(1,0)+M(2,0)*M(2,0));
77 template<>
inline double determinant(
const arma::mat::fixed<2,3> &M)
79 return sqrt((M(0,0)*M(0,0)+M(0,1)*M(0,1)+M(0,2)*M(0,2))*(M(1,0)*M(1,0)+M(1,1)*M(1,1)+M(1,2)*M(1,2))
80 -(M(0,0)*M(1,0)+M(0,1)*M(1,1)+M(0,2)*M(1,2))*(M(0,0)*M(1,0)+M(0,1)*M(1,1)+M(0,2)*M(1,2)));
83 template<>
inline double determinant(
const arma::mat::fixed<3,2> &M)
85 return sqrt((M(0,0)*M(0,0)+M(1,0)*M(1,0)+M(2,0)*M(2,0))*(M(0,1)*M(0,1)+M(1,1)*M(1,1)+M(2,1)*M(2,1))
86 -(M(0,0)*M(0,1)+M(1,0)*M(1,1)+M(2,0)*M(2,1))*(M(0,0)*M(0,1)+M(1,0)*M(1,1)+M(2,0)*M(2,1)));
89 template<arma::uword n>
inline double determinant(
const arma::mat::fixed<n,n> &M)
118 template<
unsigned int dim,
unsigned int spacedim>
UpdateFlags
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell...
virtual ~Mapping()
Destructor.
Declaration of class which handles the ordering of degrees of freedom (dof) and mappings between loca...
Enum type UpdateFlags indicates which quantities are to be recomputed on each finite element cell...
Base class for quadrature rules on simplices in arbitrary dimensions.
double determinant(const T &M)
Calculates determinant of a rectangular matrix.
Abstract class for the mapping between reference and actual cell.
std::vector< arma::vec > bar_coords
Auxiliary array of barycentric coordinates of quadrature points.
Class FEValuesData holds the arrays of data computed by Mapping and FiniteElement.
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc...
Mapping data that can be precomputed on the actual cell.