22   : 
Coupleable(moose_object, nodal, is_fv), _neighbor_nodal(neighbor_nodal)
    29   const auto * var = getVarHelper<MooseVariableField<Real>>(var_name, comp);
    31     return (
_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor();
    33     return (
_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor();
    36 std::vector<const VariableValue *>
    39   auto func = [
this, &var_name](
unsigned int comp)
    41   return coupledVectorHelper<const VariableValue *>(var_name, func);
    44 std::vector<const VariableValue *>
    47   auto func = [
this, &var_name](
unsigned int comp)
    49   return coupledVectorHelper<const VariableValue *>(var_name, func);
    52 std::vector<const VariableValue *>
    55   auto func = [
this, &var_name](
unsigned int comp)
    57   return coupledVectorHelper<const VariableValue *>(var_name, func);
    63   const auto * var = getVarHelper<MooseVariableField<Real>>(var_name, comp);
    69     mooseError(
"adCoupledNeighborValue cannot be used for nodal compute objects at this time");
    71     mooseError(
"adCoupledNeighborValue returns a data structure with derivatives. Explicit schemes "    72                "use old solution data which do not have derivatives so adCoupledNeighborValue is "    73                "not appropriate. Please use coupledNeighborValue instead");
    75   return var->adSlnNeighbor();
    81   const auto * var = getVarHelper<MooseVariableField<Real>>(var_name, comp);
    85         "adCoupledNeighborValueDot returns a data structure with derivatives. Explicit schemes "    86         "use old solution data which do not have derivatives so adCoupledNeighborValueDot is "    87         "not appropriate. Please use coupledNeighborValueDot instead");
    90     mooseError(
"adCoupledNeighborValueDot cannot be used for nodal compute objects at this time");
    92     return var->adUDotNeighbor();
    95 std::vector<const ADVariableValue *>
    98   auto func = [
this, &var_name](
unsigned int comp)
   100   return coupledVectorHelper<const ADVariableValue *>(var_name, func);
   105                                                  unsigned int comp)
 const   107   auto var = getVarHelper<MooseVariableField<RealVectorValue>>(var_name, comp);
   114         "adCoupledVectorNeighborValue cannot be used for nodal compute objects at this time");
   117         "adCoupledVectorNeighborValue returns a data structure with derivatives. Explicit schemes "   118         "use old solution data which do not have derivatives so adCoupledVectorNeighborValue is "   119         "not appropriate. Please use coupledNeighborValue instead");
   121   return var->adSlnNeighbor();
   127   const auto * var = 
getVar(var_name, comp);
   129     return var->dofValuesDotNeighbor();
   131     return var->uDotNeighbor();
   137   const auto * var = 
getVar(var_name, comp);
   139     return var->dofValuesDuDotDuNeighbor();
   141     return var->duDotDuNeighbor();
   149   const auto * var = 
getVar(var_name, comp);
   151     return (
_c_is_implicit) ? var->dofValuesOldNeighbor() : var->dofValuesOlderNeighbor();
   153     return (
_c_is_implicit) ? var->slnOldNeighbor() : var->slnOlderNeighbor();
   161   const auto * var = 
getVar(var_name, comp);
   165       return var->dofValuesOlderNeighbor();
   167       mooseError(
"Older values not available for explicit schemes");
   172       return var->slnOlderNeighbor();
   174       mooseError(
"Older values not available for explicit schemes");
   182     mooseError(
"Nodal variables do not have gradients");
   184   const auto * var = getVarHelper<MooseVariableField<Real>>(var_name, comp);
   185   return (
_c_is_implicit) ? var->gradSlnNeighbor() : var->gradSlnOldNeighbor();
   188 std::vector<const VariableGradient *>
   191   auto func = [
this, &var_name](
unsigned int comp)
   193   return coupledVectorHelper<const VariableGradient *>(var_name, func);
   198                                                unsigned int comp)
 const   201     mooseError(
"Nodal variables do not have gradients");
   204   const auto * var = 
getVar(var_name, comp);
   205   return (
_c_is_implicit) ? var->gradSlnOldNeighbor() : var->gradSlnOlderNeighbor();
   210                                                  unsigned int comp)
 const   213     mooseError(
"Nodal variables do not have gradients");
   216   const auto * var = 
getVar(var_name, comp);
   218     return var->gradSlnOlderNeighbor();
   220     mooseError(
"Older values not available for explicit schemes");
   227     mooseError(
"Nodal variables do not have gradients");
   230         "adCoupledNeighborGradient returns a data structure with derivatives. Explicit schemes "   231         "use old solution data which do not have derivatives so adCoupledNeighborGradient is "   232         "not appropriate. Please use coupledNeighborGradient instead");
   234   const auto * var = getVarHelper<MooseVariableField<Real>>(var_name, comp);
   235   return var->adGradSlnNeighbor();
   240                                                   unsigned int comp)
 const   243     mooseError(
"Gradients are non-sensical with nodal compute objects");
   246   return (
_c_is_implicit) ? var->gradSlnNeighbor() : var->gradSlnOldNeighbor();
   251                                                      unsigned int comp)
 const   254     mooseError(
"Gradients are non-sensical with nodal compute objects");
   258   return (
_c_is_implicit) ? var->gradSlnOldNeighbor() : var->gradSlnOlderNeighbor();
   263                                                        unsigned int comp)
 const   266     mooseError(
"Gradients are non-sensical with nodal compute objects");
   271     return var->gradSlnOlderNeighbor();
   273     mooseError(
"Older values not available for explicit schemes");
   281     return (
_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor();
   283     return (
_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor();
   288                                                  unsigned int comp)
 const   291     mooseError(
"Gradients are non-sensical with nodal compute objects");
   294   return (
_c_is_implicit) ? var->gradSlnNeighbor() : var->gradSlnOldNeighbor();
   299                                                     unsigned int comp)
 const   302     mooseError(
"Gradients are non-sensical with nodal compute objects");
   306   return (
_c_is_implicit) ? var->gradSlnOldNeighbor() : var->gradSlnOlderNeighbor();
   311                                                       unsigned int comp)
 const   314     mooseError(
"Gradients are non-sensical with nodal compute objects");
   319     return var->gradSlnOlderNeighbor();
   321     mooseError(
"Older values not available for explicit schemes");
   328     mooseError(
"Nodal variables do not have second derivatives");
   330   const auto * var = 
getVar(var_name, comp);
   331   return (
_c_is_implicit) ? var->secondSlnNeighbor() : var->secondSlnOldNeighbor();
   338     mooseError(
"nodal objects should not call coupledDofValues");
   340   const auto * var = 
getVar(var_name, comp);
   341   return (
_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor();
   346                                                 unsigned int comp)
 const   349     mooseError(
"nodal objects should not call coupledDofValuesOld");
   352   const auto * var = 
getVar(var_name, comp);
   353   return (
_c_is_implicit) ? var->dofValuesOldNeighbor() : var->dofValuesOlderNeighbor();
   358                                                   unsigned int comp)
 const   361     mooseError(
"nodal objects should not call coupledDofValuesOlder");
   364   const auto * var = 
getVar(var_name, comp);
   366     return var->dofValuesOlderNeighbor();
   368     mooseError(
"Older values not available for explicit schemes");
 OutputTools< Real >::VariableGradient VariableGradient
void validateExecutionerType(const std::string &name, const std::string &fn_name) const
Checks to make sure that the current Executioner has set "_is_transient" when old/older values are co...
virtual const VectorVariableGradient & coupledVectorNeighborGradientOld(const std::string &var_name, unsigned int comp=0) const
VectorMooseVariable * getVectorVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled vector variable. 
virtual const VectorVariableGradient & coupledVectorNeighborGradient(const std::string &var_name, unsigned int comp=0) const
virtual const ADVariableGradient & adCoupledNeighborGradient(const std::string &var_name, unsigned int comp=0) const
Get the coupled neighbor variable gradient for var_name with derivative information for automatic dif...
const ADVectorVariableValue * getADDefaultVectorValue(const std::string &var_name) const
Helper method to return (and insert if necessary) the default vector value for Automatic Differentiat...
virtual std::vector< const VariableGradient * > coupledNeighborGradients(const std::string &var_name) const
virtual const VectorVariableGradient & coupledVectorNeighborGradientOlder(const std::string &var_name, unsigned int comp=0) const
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
virtual const VariableGradient & coupledNeighborGradient(const std::string &var_name, unsigned int comp=0) const
std::vector< const VariableValue * > coupledNeighborValuesOld(const std::string &var_name) const
virtual const VariableValue & coupledNeighborValueOlder(const std::string &var_name, unsigned int comp=0) const
virtual const VariableValue & coupledNeighborDofValuesOld(const std::string &var_name, unsigned int comp=0) const
virtual const VariableGradient & coupledNeighborGradientOld(const std::string &var_name, unsigned int comp=0) const
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable. 
virtual const ArrayVariableValue & coupledArrayNeighborValue(const std::string &var_name, unsigned int comp=0) const
bool _c_is_implicit
True if implicit value is required. 
virtual const ArrayVariableGradient & coupledArrayNeighborGradientOlder(const std::string &var_name, unsigned int comp=0) const
OutputTools< RealEigenVector >::VariableValue ArrayVariableValue
virtual const ADVectorVariableValue & adCoupledVectorNeighborValue(const std::string &var_name, unsigned int comp=0) const
Get the coupled neighbor vector variable value for var_name with derivative information for automatic...
virtual const VariableValue & coupledNeighborValue(const std::string &var_name, unsigned int comp=0) const
Every object that can be built by the factory should be derived from this class. 
std::vector< const VariableValue * > coupledNeighborValuesOlder(const std::string &var_name) const
virtual const VariableValue & coupledNeighborValueDotDu(const std::string &var_name, unsigned int comp=0) const
const ADVariableValue * getADDefaultValue(const std::string &var_name) const
Helper method to return (and insert if necessary) the default value for Automatic Differentiation for...
std::vector< const ADVariableValue * > adCoupledNeighborValues(const std::string &var_name) const
virtual const VariableGradient & coupledNeighborGradientOlder(const std::string &var_name, unsigned int comp=0) const
virtual const ADVariableValue & adCoupledNeighborValue(const std::string &var_name, unsigned int comp=0) const
Get the coupled neighbor variable value for var_name with derivative information for automatic differ...
virtual const ArrayVariableGradient & coupledArrayNeighborGradient(const std::string &var_name, unsigned int comp=0) const
OutputTools< Real >::VariableValue VariableValue
Interface for objects that needs coupling capabilities. 
NeighborCoupleable(const MooseObject *moose_object, bool nodal, bool neighbor_nodal, bool is_fv=false)
Constructing the object. 
virtual const ArrayVariableGradient & coupledArrayNeighborGradientOld(const std::string &var_name, unsigned int comp=0) const
virtual const ADVariableValue & adCoupledNeighborValueDot(const std::string &var_name, unsigned int comp=0) const
Get the time derivative of the coupled neighbor variable value for var_name with derivative informati...
virtual const VariableValue & coupledNeighborValueDot(const std::string &var_name, unsigned int comp=0) const
virtual const VariableValue & coupledNeighborDofValuesOlder(const std::string &var_name, unsigned int comp=0) const
ArrayMooseVariable * getArrayVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled array variable. 
virtual const VariableValue & coupledNeighborDofValues(const std::string &var_name, unsigned int comp=0) const
OutputTools< Real >::VariableSecond VariableSecond
virtual const VariableValue & coupledNeighborValueOld(const std::string &var_name, unsigned int comp=0) const
OutputTools< RealVectorValue >::VariableGradient VectorVariableGradient
OutputTools< RealEigenVector >::VariableGradient ArrayVariableGradient
std::vector< const VariableValue * > coupledNeighborValues(const std::string &var_name) const
virtual const VariableSecond & coupledNeighborSecond(const std::string &var_name, unsigned int i=0) const