21 #ifndef __mast_geom_elem_h__ 22 #define __mast_geom_elem_h__ 28 #include "libmesh/elem.h" 29 #include "libmesh/fe_type.h" 36 class BoundaryConditionBase;
37 class SystemInitialization;
69 virtual const libMesh::Elem&
90 unsigned int dim()
const;
115 virtual void init(
const libMesh::Elem& elem,
123 virtual std::unique_ptr<MAST::FEBase>
125 bool init_second_order_derivative,
126 int extra_quadrature_order = 0)
const;
134 virtual std::unique_ptr<MAST::FEBase>
137 int extra_quadrature_order = 0)
const;
149 (std::multimap<libMesh::boundary_id_type, MAST::BoundaryConditionBase*>& bc,
150 std::map<
unsigned int, std::vector<MAST::BoundaryConditionBase*>>& loads)
const;
157 (
unsigned int s, std::vector<libMesh::boundary_id_type>& bc_ids)
const;
176 libMesh::Point& global_pt)
const;
180 libMesh::Point& global_vec)
const;
184 libMesh::Point& local_vec)
const;
264 #endif // __mast_geom_elem_h__
bool use_local_elem() const
Vector and matrix quantities defined on one- and two-dimensional elements that are oriented in two or...
const MAST::SystemInitialization * _sys_init
system initialization object for this element
void _init_local_elem_1d()
initializes the local element
const libMesh::Elem * _ref_elem
reference element in the mesh for which the data structure is initialized
RealVectorX _local_y
the y-axis that is used to define the coordinate system for a 1-D element.
void _init_local_elem()
initializes the local element
RealMatrixX _T_mat
Transformation matrix defines T_ij = V_i^t .
void set_local_y_vector(const RealVectorX &y_vec)
for 1D elements the transformed coordinate system attached to the element defines the local x-axis al...
virtual const libMesh::Elem & get_reference_elem() const
libMesh::Elem * _local_elem
a local element is created if
unsigned int n_sides_quadrature_elem() const
number of sides on quadrature element.
virtual const libMesh::Elem & get_reference_local_elem() const
libMesh::FEType get_fe_type(unsigned int i) const
Matrix< Real, Dynamic, Dynamic > RealMatrixX
const RealMatrixX & T_matrix() const
O.
RealVectorX _domain_surface_normal
surface normal of the 1D/2D element.
Matrix< Real, Dynamic, 1 > RealVectorX
std::vector< libMesh::Node * > _local_nodes
nodes for local element
virtual void get_boundary_ids_on_quadrature_elem_side(unsigned int s, std::vector< libMesh::boundary_id_type > &bc_ids) const
void transform_point_to_global_coordinate(const libMesh::Point &local_pt, libMesh::Point &global_pt) const
virtual std::unique_ptr< MAST::FEBase > init_side_fe(unsigned int s, bool init_grads, int extra_quadrature_order=0) const
initializes the finite element shape function and quadrature object for the side with the order of qu...
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
const RealVectorX & domain_surface_normal() const
virtual void external_side_loads_for_quadrature_elem(std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc, std::map< unsigned int, std::vector< MAST::BoundaryConditionBase * >> &loads) const
From the given list of boundary loads, this identifies the sides of the quadrature element and the lo...
virtual const libMesh::Elem & get_quadrature_elem() const
void _init_local_elem_2d()
initializes the local element
void transform_vector_to_local_coordinate(const libMesh::Point &global_vec, libMesh::Point &local_vec) const
virtual void init(const libMesh::Elem &elem, const MAST::SystemInitialization &sys_init)
initialize the object for the specified reference elem.
virtual const libMesh::Elem & get_quadrature_local_elem() const
virtual std::unique_ptr< MAST::FEBase > init_fe(bool init_grads, bool init_second_order_derivative, int extra_quadrature_order=0) const
initializes the finite element shape function and quadrature object with the order of quadrature rule...
void transform_vector_to_global_coordinate(const libMesh::Point &local_vec, libMesh::Point &global_vec) const