20 #ifndef LIBMESH_FE_MAP_H 21 #define LIBMESH_FE_MAP_H 55 static std::unique_ptr<FEMap>
build(
FEType fe_type);
57 template<
unsigned int Dim>
69 const std::vector<Real> & qw,
72 const std::vector<const Node *> & elem_nodes,
73 bool compute_second_derivatives);
82 const std::vector<Real> & qw,
91 const std::vector<Real> & qw);
103 const std::vector<Real> & qw,
105 bool calculate_d2phi);
111 const std::vector<Real> & qw,
118 const std::vector<Real> & qw,
125 template<
unsigned int Dim>
133 template<
unsigned int Dim>
198 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 216 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 306 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 332 const std::vector<std::vector<Real>> &
get_psi()
const 468 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 530 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 656 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 734 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 774 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES 898 template <
unsigned int Dim, FEFamily T>
916 #endif // LIBMESH_FE_MAP_H Manages the family, order, etc. parameters for a given FE.
virtual void compute_affine_map(const unsigned int dim, const std::vector< Real > &qw, const Elem *elem)
std::vector< std::vector< Real > > & get_dphidzeta_map()
void init_edge_shape_functions(const std::vector< Point > &qp, const Elem *edge)
Real dzdeta_map(const unsigned int p) const
std::vector< std::vector< Real > > dpsideta_map
std::vector< std::vector< Real > > psi_map
std::vector< std::vector< Real > > d2psideta2_map
std::vector< std::vector< Real > > & get_d2phidxideta_map()
std::vector< std::vector< Real > > & get_d2phideta2_map()
std::vector< std::vector< Real > > dphidzeta_map
void compute_inverse_map_second_derivs(unsigned p)
virtual void compute_map(const unsigned int dim, const std::vector< Real > &qw, const Elem *elem, bool calculate_d2phi)
std::vector< std::vector< Real > > dphidxi_map
std::vector< std::vector< Real > > d2etadxyz2_map
void compute_edge_map(int dim, const std::vector< Real > &qw, const Elem *side)
std::vector< std::vector< Real > > & get_d2phidxi2_map()
static std::unique_ptr< FEMap > build(FEType fe_type)
std::vector< RealGradient > d2xyzdzeta2_map
std::vector< Real > dzetady_map
const std::vector< std::vector< Real > > & get_dphidzeta_map() const
std::vector< std::vector< Real > > d2xidxyz2_map
void init_reference_to_physical_map(const std::vector< Point > &qp, const Elem *elem)
Real dxdeta_map(const unsigned int p) const
const std::vector< Real > & get_detadz() const
Real dzdxi_map(const unsigned int p) const
const std::vector< Real > & get_curvatures() const
The base class for all geometric element types.
std::vector< std::vector< Real > > d2phideta2_map
const std::vector< Point > & get_normals() const
std::vector< std::vector< Real > > d2phidxidzeta_map
std::vector< Real > dxidz_map
const std::vector< std::vector< Real > > & get_phi_map() const
std::vector< Real > & get_JxW()
std::vector< std::vector< Real > > phi_map
const std::vector< RealGradient > & get_dxyzdzeta() const
const std::vector< std::vector< Real > > & get_d2etadxyz2() const
std::vector< std::vector< Real > > d2phidetadzeta_map
const std::vector< Real > & get_dxidz() const
std::vector< std::vector< Real > > d2psidxideta_map
std::vector< RealGradient > d2xyzdxideta_map
const std::vector< std::vector< Real > > & get_dphideta_map() const
const std::vector< std::vector< Point > > & get_tangents() const
std::vector< RealGradient > dxyzdzeta_map
std::vector< std::vector< Real > > & get_dpsidxi()
std::vector< std::vector< Real > > & get_d2phidxidzeta_map()
std::vector< Real > dzetadx_map
std::vector< RealGradient > dxyzdxi_map
Template class which generates the different FE families and orders.
std::vector< std::vector< Real > > & get_d2phidetadzeta_map()
const std::vector< RealGradient > & get_d2xyzdeta2() const
std::vector< std::vector< Real > > & get_d2psideta2()
std::vector< RealGradient > d2xyzdeta2_map
const std::vector< std::vector< Real > > & get_d2zetadxyz2() const
const std::vector< RealGradient > & get_dxyzdxi() const
std::vector< std::vector< Real > > & get_d2psidxideta()
std::vector< RealGradient > d2xyzdxi2_map
std::vector< std::vector< Real > > & get_dphidxi_map()
std::vector< Real > dzetadz_map
const std::vector< std::vector< Real > > & get_psi() const
Real dzdzeta_map(const unsigned int p) const
std::vector< std::vector< Real > > d2zetadxyz2_map
const std::vector< Real > & get_dzetadx() const
bool calculations_started
std::vector< RealGradient > d2xyzdetadzeta_map
std::vector< Real > dxidx_map
Real dxdzeta_map(const unsigned int p) const
std::vector< Real > dxidy_map
const std::vector< Real > & get_jacobian() const
Real dydzeta_map(const unsigned int p) const
const std::vector< Real > & get_dxidx() const
std::vector< Real > curvatures
const std::vector< RealGradient > & get_d2xyzdxi2() const
const std::vector< Real > & get_dzetady() const
const std::vector< Real > & get_JxW() const
std::vector< std::vector< Real > > d2psidxi2_map
const std::vector< Real > & get_dxidy() const
std::vector< const Node * > _elem_nodes
std::vector< std::vector< Real > > & get_d2psidxi2()
std::vector< std::vector< Real > > d2phidxideta_map
const std::vector< Point > & get_xyz() const
const std::vector< RealGradient > & get_d2xyzdetadzeta() const
std::vector< Point > normals
const std::vector< Real > & get_dzetadz() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real dydeta_map(const unsigned int p) const
std::vector< std::vector< Real > > & get_d2phidzeta2_map()
const std::vector< Real > & get_detady() const
virtual void compute_null_map(const unsigned int dim, const std::vector< Real > &qw)
std::vector< std::vector< Real > > dpsidxi_map
std::vector< Real > detady_map
const std::vector< RealGradient > & get_d2xyzdzeta2() const
const std::vector< std::vector< Real > > & get_dphidxi_map() const
std::vector< std::vector< Point > > tangents
void print_xyz(std::ostream &os) const
std::vector< std::vector< Real > > & get_dpsideta()
std::vector< RealGradient > dxyzdeta_map
void resize_quadrature_map_vectors(const unsigned int dim, unsigned int n_qp)
std::vector< std::vector< Real > > & get_psi()
Real dxdxi_map(const unsigned int p) const
const std::vector< RealGradient > & get_dxyzdeta() const
void determine_calculations()
const std::vector< RealGradient > & get_d2xyzdxidzeta() const
Real dydxi_map(const unsigned int p) const
virtual void compute_face_map(int dim, const std::vector< Real > &qw, const Elem *side)
std::vector< Real > detadz_map
std::vector< std::vector< Real > > d2phidzeta2_map
std::vector< std::vector< Real > > & get_phi_map()
void print_JxW(std::ostream &os) const
const std::vector< std::vector< Real > > & get_d2xidxyz2() const
std::vector< std::vector< Real > > d2phidxi2_map
Computes finite element mapping function values, gradients, etc.
const std::vector< RealGradient > & get_d2xyzdxideta() const
std::vector< Real > detadx_map
void compute_single_point_map(const unsigned int dim, const std::vector< Real > &qw, const Elem *elem, unsigned int p, const std::vector< const Node *> &elem_nodes, bool compute_second_derivatives)
std::vector< std::vector< Real > > dphideta_map
std::vector< std::vector< Real > > & get_dphideta_map()
void init_face_shape_functions(const std::vector< Point > &qp, const Elem *side)
const std::vector< Real > & get_detadx() const
std::vector< RealGradient > d2xyzdxidzeta_map