2 #include "libmesh/libmesh_common.h" 3 #include "libmesh/elem.h" 4 #include "libmesh/fe_base.h" 5 #include "libmesh/fem_context.h" 6 #include "libmesh/point.h" 7 #include "libmesh/quadrature.h" 19 FEMContext & c = cast_ref<FEMContext &>(context);
23 FEBase * side_fe =
nullptr;
27 const std::vector<Real> & JxW = side_fe->get_JxW();
29 const std::vector<Point > & q_point = side_fe->get_xyz();
31 const std::vector<Point> & face_normals = side_fe->get_normals();
39 for (
unsigned int qp=0; qp != n_qpoints; qp++)
41 const Real x = q_point[qp](0);
42 const Real y = q_point[qp](1);
44 const Real TOL = 1.e-5;
47 if (
std::abs(y - 1.0) <= TOL && x > 0.0)
53 dQoI_1 += JxW[qp] * (grad_T * face_normals[qp]);
61 computed_QoI[1] = computed_QoI[1] + dQoI_1;
This class provides all data required for a physics package (e.g.
void get_side_fe(unsigned int var, FEGenericBase< OutputShape > *&fe) const
Accessor for edge/face (2D/3D) finite element object for variable var for the largest dimension in th...
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.
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
This class provides all data required for a physics package (e.g.
virtual void side_postprocess(DiffContext &context)
Does any work that needs to be done on side of elem in a postprocessing loop.
unsigned int n_points() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Gradient side_gradient(unsigned int var, unsigned int qp) const
This class forms the foundation from which generic finite elements may be derived.
const QBase & get_side_qrule() const
Accessor for element side quadrature rule for the dimension of the current _elem. ...
spin_mutex spin_mtx
A convenient spin mutex object which can be used for obtaining locks.