17 #include "libmesh/quadrature.h" 26 params.
addParam<
bool>(
"use_displaced_mesh",
28 "Whether or not this object should use the " 29 "displaced mesh for computation. Note that in " 30 "the case this is true but no displacements " 31 "are provided in the Mesh block the " 32 "undisplaced mesh will still be used.");
37 params.
set<std::string>(
"_moose_base") =
"InterfaceKernel";
38 params.
addParam<std::vector<AuxVariableName>>(
41 "The name of auxiliary variables to save this Kernel's residual contributions to. " 42 " Everything about that variable must match everything about this variable (the " 43 "type, what blocks it's on, etc.)");
44 params.
addParam<std::vector<AuxVariableName>>(
47 "The name of auxiliary variables to save this Kernel's diagonal Jacobian " 48 "contributions to. Everything about that variable must match everything " 49 "about this variable (the type, what blocks it's on, etc.)");
55 "This parameter must exist if save_in variables are specified and must have the same length " 56 "as save_in. This vector specifies whether the corresponding aux_var should save-in " 57 "residual contributions from the primary ('p') or secondary side ('s').");
59 "diag_save_in_var_side",
61 "This parameter must exist if diag_save_in variables are specified and must have the same " 62 "length as diag_save_in. This vector specifies whether the corresponding aux_var should " 63 "save-in jacobian contributions from the primary ('p') or secondary side ('s').");
85 _current_elem(_assembly.elem()),
86 _current_elem_volume(_assembly.elemVolume()),
87 _neighbor_elem(_assembly.neighbor()),
88 _neighbor_elem_volume(_assembly.neighborVolume()),
89 _current_side(_assembly.side()),
90 _current_side_elem(_assembly.sideElem()),
91 _current_side_volume(_assembly.sideElemVolume()),
92 _coord_sys(_assembly.coordSystem()),
93 _q_point(_assembly.qPointsFace()),
94 _qrule(_assembly.qRuleFace()),
95 _JxW(_assembly.JxWFace()),
96 _coord(_assembly.coordTransformation()),
98 _save_in_strings(parameters.
get<
std::vector<AuxVariableName>>(
"save_in")),
100 _diag_save_in_strings(parameters.
get<
std::vector<AuxVariableName>>(
"diag_save_in"))
const Real & neighborVolume()
Returns the reference to the current neighbor volume.
static Threads::spin_mutex _resid_vars_mutex
Mutex that prevents multiple threads from saving into the residual aux_var at the same time...
static InputParameters validParams()
static InputParameters validParams()
T * get(const std::unique_ptr< T > &u)
The MooseUtils::get() specializations are used to support making forwards-compatible code changes fro...
/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary...
THREAD_ID _tid
The thread ID for this kernel.
const Real & getNeighborElemVolume()
The volume of the current neighbor.
InterfaceKernelBase(const InputParameters ¶meters)
void prepareShapes(unsigned int var_num) override final
Prepare shape functions.
SubProblem & _subproblem
Reference to this kernel's SubProblem.
static InputParameters validParams()
This is a base class for objects that can provide residual contributions for both local and neighbor ...
Assembly & _assembly
Reference to this Kernel's assembly object.
static Threads::spin_mutex _jacoby_vars_mutex
Mutex that prevents multiple threads from saving into the jacobian aux_var at the same time...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::set< SubdomainID > EMPTY_BLOCK_IDS
static InputParameters validParams()
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject, where material properties on a side of both its primary side (face) and its secondary side (neighbor) all required.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
virtual void prepareFaceShapes(unsigned int var, const THREAD_ID tid)=0