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