29 _extra_quadrature_order (0),
30 _init_second_order_derivatives (false),
66 const std::vector<libMesh::Point>* pts) {
78 for (
unsigned int i=1; i != nv; ++i)
90 _fe = libMesh::FEBase::build(q_elem->dim(), fe_type).release();
102 if (pts ==
nullptr) {
103 _qrule = fe_type.default_quadrature_rule
110 _fe->reinit(q_elem, pts);
118 const std::vector<libMesh::Point>
119 local_xyz =
_fe->get_xyz();
122 n = (
unsigned int) local_xyz.size();
125 for (
unsigned int i=0; i<n; i++)
139 bool if_calculate_dphi) {
151 for (
unsigned int i=1; i != nv; ++i)
163 _fe = libMesh::FEBase::build(q_elem->dim(), fe_type).release();
164 _qrule = fe_type.default_quadrature_rule
172 if (if_calculate_dphi) {
178 _fe->reinit(q_elem, s);
185 const std::vector<libMesh::Point>
186 &local_xyz =
_fe->get_xyz();
189 n = (
unsigned int) local_xyz.size();
193 for (
unsigned int i=0; i<n; i++) {
215 return _fe->get_fe_type();
219 const std::vector<Real>&
223 return _fe->get_JxW();
227 const std::vector<libMesh::Point>&
234 return _fe->get_xyz();
242 return _fe->n_shape_functions();
246 const std::vector<std::vector<Real> >&
250 return _fe->get_phi();
254 const std::vector<std::vector<libMesh::RealVectorValue> >&
258 return _fe->get_dphi();
262 const std::vector<std::vector<libMesh::RealTensorValue>>&
266 return _fe->get_d2phi();
270 const std::vector<Real>&
274 return _fe->get_dxidx();
278 const std::vector<Real>&
282 return _fe->get_dxidy();
286 const std::vector<Real>&
290 return _fe->get_dxidz();
294 const std::vector<Real>&
298 return _fe->get_detadx();
302 const std::vector<Real>&
306 return _fe->get_detady();
310 const std::vector<Real>&
314 return _fe->get_detadz();
318 const std::vector<Real>&
322 return _fe->get_dzetadx();
326 const std::vector<Real>&
330 return _fe->get_dzetady();
334 const std::vector<Real>&
338 return _fe->get_dzetadz();
342 const std::vector<libMesh::RealVectorValue>&
346 return _fe->get_dxyzdxi();
350 const std::vector<libMesh::RealVectorValue>&
354 return _fe->get_dxyzdeta();
358 const std::vector<libMesh::RealVectorValue>&
362 return _fe->get_dxyzdzeta();
366 const std::vector<std::vector<Real> >&
370 return _fe->get_dphidxi();
374 const std::vector<std::vector<Real> >&
378 return _fe->get_dphideta();
382 const std::vector<std::vector<Real> >&
386 return _fe->get_dphidzeta();
390 const std::vector<libMesh::Point>&
398 const std::vector<libMesh::Point>&
406 const std::vector<libMesh::Point>&
411 return _qrule->get_points();
417 const libMesh::QBase&
virtual const std::vector< Real > & get_detadz() const
bool use_local_elem() const
Vector and matrix quantities defined on one- and two-dimensional elements that are oriented in two or...
virtual const std::vector< Real > & get_dzetadx() const
MAST::NonlinearSystem & system()
std::vector< libMesh::Point > _global_normals
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdzeta() const
virtual const std::vector< Real > & get_JxW() const
virtual const std::vector< Real > & get_dxidy() const
virtual const std::vector< Real > & get_dxidz() const
virtual const libMesh::QBase & get_qrule() const
FEBase(const MAST::SystemInitialization &sys)
virtual const std::vector< Real > & get_detadx() const
virtual const std::vector< libMesh::Point > & get_xyz() const
physical location of the quadrature point in the global coordinate system for the reference element ...
bool _init_second_order_derivatives
virtual const std::vector< std::vector< Real > > & get_dphidzeta() const
virtual const std::vector< libMesh::Point > & get_qpoints() const
unsigned int n_vars() const
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdeta() const
virtual const std::vector< Real > & get_dzetady() const
std::vector< libMesh::Point > _local_normals
std::vector< libMesh::Point > _qpoints
virtual void init_for_side(const MAST::GeomElem &elem, unsigned int s, bool if_calculate_dphi)
Initializes the quadrature and finite element for element side integration.
virtual const std::vector< Real > & get_dzetadz() const
const libMesh::FEType & fetype(unsigned int i) const
const MAST::SystemInitialization & _sys
void set_evaluate_second_order_derivatives(bool f)
sets the flag for evaluation of second order derivative
virtual const std::vector< std::vector< Real > > & get_dphideta() const
void set_extra_quadrature_order(int n)
this is used, in addition to libMesh::System::extra_quadrature_order to set the quadrature rule...
virtual const std::vector< std::vector< Real > > & get_dphidxi() const
virtual unsigned int n_shape_functions() const
virtual const std::vector< libMesh::Point > & get_normals_for_reference_coordinate() const
normals defined in the global coordinate system for the reference element
std::vector< libMesh::Point > _global_xyz
void transform_point_to_global_coordinate(const libMesh::Point &local_pt, libMesh::Point &global_pt) const
virtual const std::vector< Real > & get_detady() const
virtual const std::vector< Real > & get_dxidx() const
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
virtual void init(const MAST::GeomElem &elem, bool init_grads, const std::vector< libMesh::Point > *pts=nullptr)
Initializes the quadrature and finite element for element volume integration.
virtual const std::vector< std::vector< libMesh::RealVectorValue > > & get_dphi() const
virtual const std::vector< libMesh::RealVectorValue > & get_dxyzdxi() const
virtual const libMesh::Elem & get_quadrature_elem() const
virtual const std::vector< std::vector< libMesh::RealTensorValue > > & get_d2phi() const
virtual const std::vector< std::vector< Real > > & get_phi() const
virtual const libMesh::Elem & get_quadrature_local_elem() const
libMesh::FEType get_fe_type() const
void transform_vector_to_global_coordinate(const libMesh::Point &local_vec, libMesh::Point &global_vec) const
virtual const std::vector< libMesh::Point > & get_normals_for_local_coordinate() const
normals defined in the coordinate system for the local reference element.
const MAST::GeomElem * _elem
unsigned int _extra_quadrature_order