Base class for deriving any automatic differentiation boundary condition of a integrated type. More...
#include <ADNodalBC.h>
Public Member Functions | |
ADNodalBCTempl (const InputParameters ¶meters) | |
const MooseVariableFE< T > & | variable () const override |
bool | shouldSetComp (unsigned short i) const |
template<> | |
InputParameters | validParams () |
template<> | |
InputParameters | validParams () |
MooseVariableBase * | mooseVariableBase () const |
Get the variable that this object is using. More... | |
MooseVariableField< T > & | mooseVariableField () |
Return the MooseVariableField object that this interface acts on. More... | |
MooseVariableFE< T > * | mooseVariable () const |
Return the MooseVariableFE object that this interface acts on. More... | |
MooseVariableFV< T > * | mooseVariableFV () const |
Return the MooseVariableFV object that this interface acts on. More... | |
MooseLinearVariableFV< T > * | mooseLinearVariableFV () const |
Return the MooseLinearVariableFV object that this interface acts on. More... | |
Static Public Member Functions | |
static InputParameters | validParams () |
static std::string | deduceFunctorName (const std::string &name, const InputParameters ¶ms) |
Helper to look up a functor name through the input parameter keys. More... | |
Protected Member Functions | |
virtual Moose::ADType< T >::type | computeQpResidual ()=0 |
Compute this NodalBC's contribution to the residual at the current quadrature point. More... | |
virtual const OutputTools< T >::VariableValue & | value () |
The value of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | valueOld () |
The old value of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | valueOlder () |
The older value of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | dot () |
The time derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | dotDot () |
The second time derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | dotOld () |
The old time derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableValue & | dotDotOld () |
The old second time derivative of the variable this object is operating on. More... | |
virtual const VariableValue & | dotDu () |
The derivative of the time derivative of the variable this object is operating on with respect to this variable's coefficients. More... | |
virtual const VariableValue & | dotDotDu () |
The derivative of the second time derivative of the variable this object is operating on with respect to this variable's coefficients. More... | |
virtual const OutputTools< T >::VariableGradient & | gradient () |
The gradient of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableGradient & | gradientOld () |
The old gradient of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableGradient & | gradientOlder () |
The older gradient of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableSecond & | second () |
The second derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableSecond & | secondOld () |
The old second derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableSecond & | secondOlder () |
The older second derivative of the variable this object is operating on. More... | |
virtual const OutputTools< T >::VariableTestSecond & | secondTest () |
The second derivative of the test function. More... | |
virtual const OutputTools< T >::VariableTestSecond & | secondTestFace () |
The second derivative of the test function on the current face. More... | |
virtual const OutputTools< T >::VariablePhiSecond & | secondPhi () |
The second derivative of the trial function. More... | |
virtual const OutputTools< T >::VariablePhiSecond & | secondPhiFace () |
The second derivative of the trial function on the current face. More... | |
std::string | deduceFunctorName (const std::string &name) const |
Small helper to look up a functor name through the input parameter keys. More... | |
template<typename T > | |
const Moose::Functor< T > & | getFunctor (const std::string &name) |
Retrieves a functor from the subproblem. More... | |
template<typename T > | |
const Moose::Functor< T > & | getFunctor (const std::string &name, THREAD_ID tid) |
Retrieves a functor from the subproblem. More... | |
template<typename T > | |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem) |
Retrieves a functor from the passed-in subproblem. More... | |
template<typename T > | |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid) |
Retrieves a functor from the passed-in subproblem. More... | |
bool | isFunctor (const std::string &name) const |
Checks the subproblem for the given functor. More... | |
bool | isFunctor (const std::string &name, const SubProblem &subproblem) const |
Checks the passed-in subproblem for the given functor. More... | |
Moose::ElemArg | makeElemArg (const Elem *elem, bool correct_skewnewss=false) const |
Helper method to create an elemental argument for a functor that includes whether to perform skewness corrections. More... | |
template<typename T > | |
void | checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration) |
Throws error if the functor does not support the requested side integration. More... | |
Protected Attributes | |
MooseVariableFE< T > & | _var |
The variable that this NodalBC operates on. More... | |
const Node *const & | _current_node |
current node being processed More... | |
const unsigned int | _qp = 0 |
Pseudo-"quadrature point" index (Always zero for the current node) More... | |
const Moose::ADType< T >::type & | _u |
Value of the unknown variable this BC is acting on. More... | |
const std::array< bool, 3 > | _set_components |
bool | _nodal |
Whether or not this object is acting only at nodes. More... | |
MooseVariableFE< T > * | _variable = nullptr |
MooseVariableFV< T > * | _fv_variable = nullptr |
MooseLinearVariableFV< T > * | _linear_fv_variable = nullptr |
MooseVariableField< T > * | _field_variable = nullptr |
Assembly * | _mvi_assembly |
Private Member Functions | |
void | computeResidual () override final |
void | computeJacobian () override final |
void | computeResidualAndJacobian () override |
void | computeOffDiagJacobian (unsigned int jvar) override final |
void | computeOffDiagJacobianScalar (unsigned int jvar) override final |
template<typename ADResidual > | |
void | addResidual (const ADResidual &residual, const std::vector< dof_id_type > &dof_indices) |
process the residual into the global data structures More... | |
template<typename ADResidual > | |
void | addJacobian (const ADResidual &residual, const std::vector< dof_id_type > &dof_indices) |
process the Jacobian into the global data structures More... | |
Private Attributes | |
Assembly & | _undisplaced_assembly |
A reference to the undisplaced assembly in order to ensure data gets correctly incorporated into the global residual/Jacobian. More... | |
Base class for deriving any automatic differentiation boundary condition of a integrated type.
Definition at line 21 of file ADNodalBC.h.
ADNodalBCTempl< T, Base >::ADNodalBCTempl | ( | const InputParameters & | parameters | ) |
Definition at line 56 of file ADNodalBC.C.
|
private |
process the Jacobian into the global data structures
Definition at line 114 of file ADNodalBC.C.
|
private |
process the residual into the global data structures
Definition at line 100 of file ADNodalBC.C.
|
protectedinherited |
Throws error if the functor does not support the requested side integration.
[in] | name | Name of functor or functor parameter |
[in] | qp_integration | True if performing qp integration, false if face info |
Definition at line 236 of file FunctorInterface.h.
|
finaloverrideprivate |
Definition at line 145 of file ADNodalBC.C.
|
finaloverrideprivate |
Definition at line 172 of file ADNodalBC.C.
|
finaloverrideprivate |
Definition at line 181 of file ADNodalBC.C.
|
protectedpure virtual |
Compute this NodalBC's contribution to the residual at the current quadrature point.
Implemented in ADDirichletBCBaseTempl< T >, ADDirichletBCBaseTempl< RealVectorValue >, ADDirichletBCBaseTempl< Real >, and ADVectorMatchedValueBC.
|
finaloverrideprivate |
Definition at line 132 of file ADNodalBC.C.
|
overrideprivate |
Definition at line 158 of file ADNodalBC.C.
|
staticinherited |
Helper to look up a functor name through the input parameter keys.
name | The input parameter name that we are trying to deduce the functor name for |
params | The input parameters object that we will be checking for parameters named name |
Definition at line 28 of file FunctorInterface.C.
Referenced by FunctorInterface::checkFunctorSupportsSideIntegration(), FunctorInterface::deduceFunctorName(), FunctorInterface::getFunctor(), and FunctorInterface::isFunctor().
|
protectedinherited |
Small helper to look up a functor name through the input parameter keys.
Definition at line 60 of file FunctorInterface.C.
|
protectedvirtualinherited |
The time derivative of the variable this object is operating on.
Definition at line 148 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second time derivative of the variable this object is operating on.
Definition at line 158 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The derivative of the second time derivative of the variable this object is operating on with respect to this variable's coefficients.
This is useful for creating Jacobian entries for residual statements that use _u_dotdot
Definition at line 238 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The old second time derivative of the variable this object is operating on.
Definition at line 178 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The derivative of the time derivative of the variable this object is operating on with respect to this variable's coefficients.
This is useful for creating Jacobian entries for residual statements that use _u_dot
Definition at line 228 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The old time derivative of the variable this object is operating on.
Definition at line 168 of file MooseVariableInterface.C.
|
protectedinherited |
Retrieves a functor from the subproblem.
This method also leverages the ability to create default functors if the user passed an integer or real in the input file
name | The name of the functor to retrieve. This should match the functor parameter name, not the actual name of the functor created in the input file |
Definition at line 200 of file FunctorInterface.h.
Referenced by MaterialFunctorConverterTempl< T >::MaterialFunctorConverterTempl().
|
protectedinherited |
Retrieves a functor from the subproblem.
This method also leverages the ability to create default functors if the user passed an integer or real in the input file
name | The name of the functor to retrieve. This should match the functor parameter name, not the actual name of the functor created in the input file |
tid | The thread ID used to retrieve the functor from this interface's subproblem |
Definition at line 192 of file FunctorInterface.h.
|
protectedinherited |
Retrieves a functor from the passed-in subproblem.
This method also leverages the ability to create default functors if the user passed an integer or real in the input file
name | The name of the functor to retrieve. This should match the functor parameter name, not the actual name of the functor created in the input file |
subproblem | The subproblem to query for the functor |
Definition at line 185 of file FunctorInterface.h.
|
protectedinherited |
Retrieves a functor from the passed-in subproblem.
This method also leverages the ability to create default functors if the user passed an integer or real in the input file
name | The name of the functor to retrieve. This should match the functor parameter name, not the actual name of the functor created in the input file |
subproblem | The subproblem to query for the functor |
tid | The thread ID used to retrieve the functor from the subproblem |
Definition at line 176 of file FunctorInterface.h.
|
protectedvirtualinherited |
The gradient of the variable this object is operating on.
This is computed by default and should already be available as _grad_u
Definition at line 248 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The old gradient of the variable this object is operating on.
Definition at line 258 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The older gradient of the variable this object is operating on.
Definition at line 268 of file MooseVariableInterface.C.
|
protectedinherited |
Checks the subproblem for the given functor.
This will not query default functors potentially stored in this object, e.g. this method will return false if the user passed an int or real to the functor param in the input file
name | The name of the functor to check. This should match the functor parameter name, not the actual name of the functor created in the input file |
Definition at line 113 of file FunctorInterface.C.
|
protectedinherited |
Checks the passed-in subproblem for the given functor.
This will not query default functors potentially stored in this object, e.g. this method will return false if the user passed an int or real to the functor param in the input file
name | The name of the functor to check. This should match the functor parameter name, not the actual name of the functor created in the input file |
subproblem | The subproblem to query for the functor |
Definition at line 104 of file FunctorInterface.C.
|
protectedinherited |
Helper method to create an elemental argument for a functor that includes whether to perform skewness corrections.
Definition at line 120 of file FunctorInterface.C.
Referenced by LinearFVAdvectionDiffusionFunctorDirichletBC::computeBoundaryNormalGradient(), LinearFVAdvectionDiffusionFunctorNeumannBC::computeBoundaryValue(), LinearFVReaction::computeMatrixContribution(), LinearFVTimeDerivative::computeMatrixContribution(), FVFunctorTimeKernel::computeQpResidual(), FVCoupledForce::computeQpResidual(), FVMassMatrix::computeQpResidual(), FVIntegralValueConstraint::computeQpResidual(), FVBoundedValueConstraint::computeQpResidual(), FVPointValueConstraint::computeQpResidual(), LinearFVSource::computeRightHandSideContribution(), SecondTimeDerivativeAux::computeValue(), TimeDerivativeAux::computeValue(), FunctorAux::computeValue(), FunctorCoordinatesFunctionAux::computeValue(), FunctorTimes::initialize(), and LinearFVTimeDerivative::setCurrentElemInfo().
|
inherited |
Return the MooseLinearVariableFV
object that this interface acts on.
Definition at line 68 of file MooseVariableInterface.C.
|
inherited |
Return the MooseVariableFE
object that this interface acts on.
Definition at line 78 of file MooseVariableInterface.C.
Referenced by ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADInterfaceKernelTempl< T >::ADInterfaceKernelTempl(), ADKernelTempl< T >::ADKernelTempl(), and InterfaceKernelTempl< T >::InterfaceKernelTempl().
|
inlineinherited |
Get the variable that this object is using.
Definition at line 50 of file MooseVariableInterface.h.
|
inherited |
Return the MooseVariableField
object that this interface acts on.
Definition at line 354 of file MooseVariableInterface.C.
Referenced by DiracKernelTempl< T >::DiracKernelTempl().
|
inherited |
Return the MooseVariableFV
object that this interface acts on.
Definition at line 57 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second derivative of the variable this object is operating on.
Definition at line 278 of file MooseVariableInterface.C.
Referenced by MooseLinearVariableFV< Real >::getBoundaryCondition(), and MooseVariableFV< Real >::getDirichletBoundaryFaceValue().
|
protectedvirtualinherited |
The old second derivative of the variable this object is operating on.
Definition at line 288 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The older second derivative of the variable this object is operating on.
Definition at line 298 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second derivative of the trial function.
Definition at line 328 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second derivative of the trial function on the current face.
This should be called in e.g. IntegratedBC when you need second derivatives of the trial function function on the boundary.
Definition at line 341 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second derivative of the test function.
Definition at line 308 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The second derivative of the test function on the current face.
This should be called in e.g. IntegratedBC when you need second derivatives of the test function function on the boundary.
Definition at line 318 of file MooseVariableInterface.C.
|
inline |
Definition at line 30 of file ADNodalBC.h.
|
static |
Definition at line 26 of file ADNodalBC.C.
Referenced by ADVectorMatchedValueBC::validParams(), GenericNodalBC< true >::validParams(), and ADDirichletBCBaseTempl< Real >::validParams().
InputParameters ADNodalBCTempl< RealVectorValue, NodalBCBase >::validParams | ( | ) |
Definition at line 33 of file ADNodalBC.C.
InputParameters ADNodalBCTempl< RealVectorValue, NodalBCBase >::validParams | ( | ) |
|
protectedvirtualinherited |
The value of the variable this object is operating on.
This is computed by default and should already be available as _u
Definition at line 88 of file MooseVariableInterface.C.
Referenced by ReporterPointSource::fillPoint().
|
protectedvirtualinherited |
The old value of the variable this object is operating on.
Definition at line 108 of file MooseVariableInterface.C.
|
protectedvirtualinherited |
The older value of the variable this object is operating on.
Definition at line 128 of file MooseVariableInterface.C.
|
inlineoverride |
Definition at line 28 of file ADNodalBC.h.
|
protected |
current node being processed
Definition at line 42 of file ADNodalBC.h.
|
protectedinherited |
Definition at line 230 of file MooseVariableInterface.h.
Referenced by MooseVariableInterface< Real >::MooseVariableInterface().
|
protectedinherited |
Definition at line 228 of file MooseVariableInterface.h.
Referenced by MooseVariableInterface< Real >::MooseVariableInterface().
|
protectedinherited |
Definition at line 229 of file MooseVariableInterface.h.
Referenced by MooseVariableInterface< Real >::MooseVariableInterface().
|
protectedinherited |
Definition at line 233 of file MooseVariableInterface.h.
Referenced by MooseVariableInterface< Real >::MooseVariableInterface().
|
protectedinherited |
Whether or not this object is acting only at nodes.
Definition at line 223 of file MooseVariableInterface.h.
|
protected |
Pseudo-"quadrature point" index (Always zero for the current node)
Definition at line 45 of file ADNodalBC.h.
|
protected |
Definition at line 50 of file ADNodalBC.h.
Referenced by ADNodalBCTempl< RealVectorValue, ADDirichletBCBase >::shouldSetComp().
|
protected |
Value of the unknown variable this BC is acting on.
Definition at line 48 of file ADNodalBC.h.
Referenced by ADVectorMatchedValueBC::computeQpResidual().
|
private |
A reference to the undisplaced assembly in order to ensure data gets correctly incorporated into the global residual/Jacobian.
Definition at line 81 of file ADNodalBC.h.
|
protected |
The variable that this NodalBC operates on.
Definition at line 39 of file ADNodalBC.h.
Referenced by ADNodalBCTempl< RealVectorValue, ADDirichletBCBase >::variable().
|
protectedinherited |
Definition at line 227 of file MooseVariableInterface.h.
Referenced by MooseVariableInterface< Real >::MooseVariableInterface().