27 params.addRequiredParam<NonlinearVariableName>(
"face_variable",
"The face variable");
37 const std::set<SubdomainID> & block_ids,
38 const std::set<BoundaryID> & boundary_ids)
41 _u_var(sys.getFieldVariable<
Real>(tid, moose_obj->getParam<NonlinearVariableName>(
"variable"))),
42 _u_face_var(sys.getFieldVariable<
Real>(
43 tid, moose_obj->getParam<NonlinearVariableName>(
"face_variable"))),
44 _u_dof_indices(_u_var.dofIndices()),
45 _lm_u_dof_indices(_u_face_var.dofIndices()),
46 _u_sol(_u_var.adSln()),
47 _grad_u_sol(_u_var.adGradSln()),
48 _lm_u_sol(_u_face_var.adSln()),
49 _scalar_phi(_u_var.phi()),
50 _grad_scalar_phi(_u_var.gradPhi()),
51 _scalar_phi_face(_u_var.phiFace()),
52 _grad_scalar_phi_face(_u_var.gradPhiFace()),
53 _lm_phi_face(_u_face_var.phiFace()),
54 _elem_volume(assembly.elemVolume()),
55 _side_area(assembly.sideElemVolume()),
56 _ip_current_elem(assembly.elem()),
57 _ip_current_side(assembly.side()),
58 _ip_JxW(assembly.JxW()),
59 _ip_qrule(assembly.qRule()),
60 _ip_q_point(assembly.qPoints()),
61 _ip_JxW_face(assembly.JxWFace()),
62 _ip_qrule_face(assembly.qRuleFace()),
63 _ip_q_point_face(assembly.qPointsFace()),
64 _ip_normals(assembly.normals())
70 std::array<ADResidualsPacket, 2>
88 const auto scalar_value = dirichlet_value(
103 const auto flux = flux_value(
DenseVector< ADReal > _scalar_re
Keeps track of stuff related to assembling.
DenseVector< ADReal > _lm_re
const unsigned int & _ip_current_side
The current element side.
Moose::StateArg determineState() const
Create a functor state argument that corresponds to the implicit state of this object.
void lmPrescribedFlux(const Moose::Functor< Real > &flux_value)
This is a wrapper that forwards calls to the implementation, which can be switched out at any time wi...
const std::string & name() const override
Get the variable name.
const MooseArray< std::vector< Real > > & _lm_phi_face
void lmDirichlet(const Moose::Functor< Real > &dirichlet_value)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Base class for a system (of equations)
const QBase *const & _ip_qrule_face
The face qrule.
const TransientInterface & _ti
const Elem *const & _ip_current_elem
The current element.
const std::vector< dof_id_type > & _u_dof_indices
const MooseVariableFE< Real > & _u_var
Interface for objects that needs transient capabilities.
const MooseVariableFE< Real > & _u_face_var
Every object that can be built by the factory should be derived from this class.
const MooseArray< Point > & _ip_q_point_face
The physical quadrature point locations on the face.
unsigned int n_points() const
Utility structure for packaging up all of the residual object's information needed to add into the sy...
const MooseArray< ADReal > & _lm_u_sol
This interface is designed currently for DomainUserObject where material properties on element...
const std::vector< dof_id_type > & _lm_u_dof_indices
void addMooseVariableDependency(MooseVariableFieldBase *var)
Call this function to add the passed in MooseVariableFieldBase as a variable that this object depends...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MooseArray< Real > & _ip_JxW_face
The face JxW.
std::set< std::string > additionalROVariables()
IntRange< T > make_range(T beg, T end)
static InputParameters validParams()
auto index_range(const T &sizable)
Argument for requesting functor evaluation at quadrature point locations on an element side...
std::array< ADResidualsPacket, 2 > taggingData() const
void scalingFactor(const std::vector< Real > &factor)
Set the scaling factor for this variable.
IPHDGAssemblyHelper(const MooseObject *const moose_obj, MooseVariableDependencyInterface *const mvdi, const TransientInterface *const ti, SystemBase &sys, const Assembly &assembly, const THREAD_ID tid, const std::set< SubdomainID > &blocks_ids, const std::set< BoundaryID > &boundary_ids)