18#ifndef LIBMESH_FE_TRANSFORMATION_BASE_H
19#define LIBMESH_FE_TRANSFORMATION_BASE_H
21#include "libmesh/fe_base.h"
27template<
typename T>
class FEGenericBase;
28template<
typename T>
class H1FETransformation;
29template<
typename T>
class HCurlFETransformation;
30template<
typename T>
class HDivFETransformation;
42template<
typename OutputShape>
53 static std::unique_ptr<FETransformationBase<OutputShape>>
build(
const FEType & type);
75 const Elem *
const elem,
76 const std::vector<Point> & qp,
78 std::vector<std::vector<OutputShape>> & phi,
79 bool add_p_level =
true)
const = 0;
86 const Elem *
const elem,
87 const std::vector<Point> & qp,
90 std::vector<std::vector<OutputShape>> & dphidx,
91 std::vector<std::vector<OutputShape>> & dphidy,
92 std::vector<std::vector<OutputShape>> & dphidz)
const = 0;
94#ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
100 const std::vector<Point> & qp,
103 std::vector<std::vector<OutputShape>> & d2phidx2,
104 std::vector<std::vector<OutputShape>> & d2phidxdy,
105 std::vector<std::vector<OutputShape>> & d2phidxdz,
106 std::vector<std::vector<OutputShape>> & d2phidy2,
107 std::vector<std::vector<OutputShape>> & d2phidydz,
108 std::vector<std::vector<OutputShape>> & d2phidz2)
const = 0;
117 const Elem *
const elem,
118 const std::vector<Point> & qp,
120 std::vector<std::vector<OutputShape>> & curl_phi)
const = 0;
127 const Elem *
const elem,
128 const std::vector<Point> & qp,
This is the base class from which all geometric element types are derived.
This class forms the foundation from which generic finite elements may be derived.
TensorTools::DecrementRank< OutputShape >::type OutputDivergence
class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialize...
This class defines a vector in LIBMESH_DIM dimensional Real or Complex space.
The libMesh namespace provides an interface to certain functionality in the library.