https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
PorousFlowPeacemanBorehole Class Reference

Approximates a borehole by a sequence of Dirac Points. More...

#include <PorousFlowPeacemanBorehole.h>

Inheritance diagram for PorousFlowPeacemanBorehole:
[legend]

Public Types

enum  ResidualTagType
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 PorousFlowPeacemanBorehole (const InputParameters &parameters)
 
virtual void initialSetup () override
 
virtual void residualSetup () override
 
virtual void jacobianSetup () override
 
virtual void computeResidual () override
 
virtual void computeJacobian () override
 
virtual void computeResidualAndJacobian () override
 
virtual void computeOffDiagJacobian (unsigned int jvar) override
 
virtual const MooseVariableField< T > & variable () const override
 
bool hasPointsOnElem (const Elem *elem)
 
bool isActiveAtPoint (const Elem *elem, const Point &p)
 
void clearPoints ()
 
void clearPointsCaches ()
 
virtual void computeOffDiagJacobianScalar (unsigned int)
 
virtual void computeNonlocalJacobian ()
 
virtual void computeNonlocalOffDiagJacobian (unsigned int)
 
const SubProblem & subProblem () const
 
virtual void prepareShapes (unsigned int var_num)
 
virtual std::set< std::string > additionalROVariables ()
 
virtual bool enabled () const
 
std::shared_ptr< MooseObject > getSharedPtr ()
 
std::shared_ptr< const MooseObject > getSharedPtr () const
 
bool isKokkosObject () const
 
MooseApp & getMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParameters & parameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void timestepSetup ()
 
virtual void subdomainSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnum & getExecuteOnEnum () const
 
const Function & getFunction (const std::string &name) const
 
const Function & getFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const T & getKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const T & getKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBase & getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValue & getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValue & getScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
void setRandomResetFrequency (ExecFlagType exec_flag)
 
unsigned long getRandomLong () const
 
Real getRandomReal () const
 
unsigned int getSeed (std::size_t id)
 
unsigned int getMasterSeed () const
 
bool isNodal () const
 
ExecFlagType getResetOnTime () const
 
void setRandomDataPointer (RandomData *random_data)
 
void useVectorTag (const TagName &tag_name, VectorTagsKey)
 
void useVectorTag (TagID tag_id, VectorTagsKey)
 
void useMatrixTag (const TagName &tag_name, MatrixTagsKey)
 
void useMatrixTag (TagID tag_id, MatrixTagsKey)
 
bool isVectorTagged ()
 
bool isMatrixTagged ()
 
bool hasVectorTags () const
 
const std::set< TagID > & getVectorTags (VectorTagsKey) const
 
const std::set< TagID > & getMatrixTags (MatrixTagsKey) const
 
virtual const VariableValue & coupledValueByName (const std::string &var_name)
 
virtual const ArrayVariableValue & coupledArrayValueByName (const std::string &var_name)
 
const std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > & getCoupledVars () const
 
const std::vector< MooseVariableFieldBase * > & getCoupledMooseVars () const
 
const std::vector< MooseVariable * > & getCoupledStandardMooseVars () const
 
const std::vector< VectorMooseVariable * > & getCoupledVectorMooseVars () const
 
const std::vector< ArrayMooseVariable * > & getCoupledArrayMooseVars () const
 
void addFEVariableCoupleableVectorTag (TagID tag)
 
void addFEVariableCoupleableMatrixTag (TagID tag)
 
std::set< TagID > & getFEVariableCoupleableVectorTags ()
 
const std::set< TagID > & getFEVariableCoupleableVectorTags () const
 
std::set< TagID > & getFEVariableCoupleableMatrixTags ()
 
const std::set< TagID > & getFEVariableCoupleableMatrixTags () const
 
auto & getWritableCoupledVariables () const
 
bool hasWritableCoupledVariables () const
 
const ADVariableValue * getADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValue * getADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradient & getADDefaultGradient () const
 
const ADVectorVariableGradient & getADDefaultVectorGradient () const
 
const ADVariableSecond & getADDefaultSecond () const
 
const ADVectorVariableCurl & getADDefaultCurl () const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledVectorTagGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorTagVectorGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorTagVectorDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValues (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradients (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValues (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValues (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableGradient kokkosCoupledGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledDots (const std::string &var_name) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledNodalDots (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradients (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValues (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableGradient kokkosCoupledVectorGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorDots (const std::string &var_name) const
 
Moose::Kokkos::VectorVariableValue kokkosCoupledVectorNodalDots (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradientByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradientsByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValuesByName (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradient (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledVectorTagGradients (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagNodalValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledVectorTagDofValues (const std::string &var_name, const std::string &tag_param_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradients (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValues (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientsOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValuesOld (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableGradient kokkosADCoupledGradientsOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDofValuesOlder (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledDots (const std::string &var_name) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::ADVariableValue kokkosADCoupledNodalDots (const std::string &var_name) const
 
Moose::Kokkos::Scalar< const Real > kokkosCoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosZeroValue () const
 
Moose::Kokkos::VariableGradient kokkosZeroGradient () const
 
Moose::Kokkos::VariableValue kokkosZeroNodalValue () const
 
const std::vector< MooseVariableScalar * > & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const std::set< MooseVariableFieldBase * > & getMooseVariableDependencies () const
 
std::set< MooseVariableFieldBase * > checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={})
 
virtual std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Node &node, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Elem &element, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyByName (const std::string &prop_name_in)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOldByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlderByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialProperty (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOld (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlder (const std::string &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::pair< Moose::Kokkos::MaterialProperty< T, dimension >, std::set< SubdomainID > > getKokkosBlockMaterialProperty (const MaterialPropertyName &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
std::set< SubdomainID > getMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryID > getMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase * > > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
virtual bool getMaterialPropertyCalled () const
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
const std::vector< SubdomainName > & blocks () const
 
unsigned int numBlocks () const
 
virtual const std::set< SubdomainID > & blockIDs () const
 
unsigned int blocksMaxDimension () const
 
bool hasBlocks (const SubdomainName &name) const
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 
bool hasBlocks (const std::set< SubdomainName > &names) const
 
bool hasBlocks (SubdomainID id) const
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 
bool hasBlockMaterialProperty (const std::string &prop_name)
 
const std::set< SubdomainID > & meshBlockIDs () const
 
virtual bool blockRestricted () const
 
virtual void checkVariable (const MooseVariableBase &variable) const
 
MooseVariableBase * mooseVariableBase () const
 
MooseVariableField< T > & mooseVariableField ()
 
MooseVariableFE< T > * mooseVariable () const
 
MooseVariableFV< T > * mooseVariableFV () const
 
MooseLinearVariableFV< T > * mooseLinearVariableFV () const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValue & getPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValue & getPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValue & getPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterial (const std::string &name)
 
MaterialBase & getMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBase & getMaterialByName (const std::string &name, bool no_warn=false)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
PenetrationLocator & getPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
PenetrationLocator & getQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
NearestNodeLocator & getNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
NearestNodeLocator & getQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
bool requiresGeometricSearch () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 Creates a new PorousFlowPeacemanBorehole This reads the file containing the lines of the form radius x y z that defines the borehole geometry.
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 

Protected Types

enum class  PorTchoice { pressure , temperature }
 whether the flux is a function of pressure or temperature More...
 
typedef std::map< unsigned, std::pair< const Elem *, Point > > point_cache_t
 
typedef std::map< const Elem *, std::vector< std::pair< Point, unsigned > > > reverse_cache_t
 

Protected Member Functions

void computeWellborePressures ()
 (Re)computes _bh_pressure from the temperature at each well point, when _use_density_from_temperature is true.
 
Real wellborePressure (unsigned current_dirac_ptid) const
 The wellbore pressure (or temperature, for function_of=temperature) at the given Dirac point, ie P_bot + unit_weight.
 
Real wellConstant (const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad) const
 Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for various numerical methods, Int J Num Analysis and Modeling, 3 (2008) 375-388.
 
Real computeQpBaseOutflow (unsigned current_dirac_ptid) const override
 Returns the flux from the line sink (before modification by mobility, etc). Derived classes should override this.
 
void computeQpBaseOutflowJacobian (unsigned jvar, unsigned current_dirac_ptid, Real &outflow, Real &outflowp) const override
 Calculates the BaseOutflow as well as its derivative wrt jvar. Derived classes should override this.
 
virtual Real computeQpResidual () override
 
virtual Real computeQpJacobian () override
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar) override
 
virtual void addPoints () override
 Add Dirac Points to the borehole.
 
Real jac (unsigned int jvar)
 Jacobian contribution for the derivative wrt the variable jvar.
 
Real ptqp () const
 If _p_or_t==0, then returns the quadpoint porepressure, else returns the quadpoint temperature.
 
Real dptqp (unsigned pvar) const
 If _p_or_t==0, then returns d(quadpoint porepressure)/d(PorousFlow variable), else returns d(quadpoint temperature)/d(PorousFlow variable)
 
virtual void meshChanged () override
 regenerate points in each cell if using line_base
 
bool parseNextLineReals (std::ifstream &ifs, std::vector< Real > &myvec)
 Reads a space-separated line of floats from ifs and puts in myvec.
 
void addPoint (const Elem *elem, Point p, unsigned id=libMesh::invalid_uint, Real value=1.0)
 
const Elem * addPoint (Point p, unsigned id=libMesh::invalid_uint, Real value=1.0)
 
unsigned currentPointCachedID ()
 
virtual void precalculateResidual ()
 
virtual void precalculateJacobian ()
 
virtual void precalculateOffDiagJacobian (unsigned int)
 
const MooseVariableFieldBase & getVariable (unsigned int jvar_num) const
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTagNeighbor (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTagLower (Assembly &assembly, unsigned int ivar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar, DenseMatrix< Number > &k) const
 
void prepareMatrixTagNonlocal (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, DenseMatrix< Number > &k) const
 
void prepareMatrixTagLower (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::ConstraintJacobianType type)
 
void accumulateTaggedLocalResidual ()
 
void assignTaggedLocalResidual ()
 
void accumulateTaggedLocalMatrix ()
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, const DenseMatrix< Number > &k)
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, const DenseMatrix< Number > &k)
 
void accumulateTaggedNonlocalMatrix ()
 
void assignTaggedLocalMatrix ()
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addResiduals (Assembly &assembly, const DenseVector< T > &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const ADResidualsPacket &packet)
 
void addResidualsAndJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const DenseMatrix< Real > &local_k, const std::vector< dof_id_type > &row_indices, const std::vector< dof_id_type > &column_indices, Real scaling_factor)
 
void addResidualsWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianElement (Assembly &assembly, Real value, dof_id_type row_index, dof_id_type column_index, Real scaling_factor)
 
void setResidual (SystemBase &sys, const T &residual, MooseVariableFE< T > &var)
 
void setResidual (SystemBase &sys, Real residual, dof_id_type dof_index)
 
void setResidual (SystemBase &sys, SetResidualFunctor set_residual_functor)
 
virtual void coupledCallback (const std::string &, bool) const
 
virtual bool isCoupled (const std::string &var_name, unsigned int i=0) const
 
virtual bool isCoupledConstant (const std::string &var_name) const
 
unsigned int coupledComponents (const std::string &var_name) const
 
VariableName coupledName (const std::string &var_name, unsigned int comp=0) const
 
std::vector< VariableName > coupledNames (const std::string &var_name) const
 
virtual unsigned int coupled (const std::string &var_name, unsigned int comp=0) const
 
std::vector< unsigned int > coupledIndices (const std::string &var_name) const
 
virtual const VariableValue & coupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValues (const std::string &var_name) const
 
std::vector< const VectorVariableValue * > coupledVectorValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< is_ad > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVectorVariableValue< false > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< true > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableValue< is_ad > * > coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< false > * > coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< true > * > coupledGenericValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDotDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
virtual const VariableValue & coupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue * > adCoupledValues (const std::string &var_name) const
 
const ADVariableValue & adCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValue & adCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue * > adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValue & coupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue * > coupledVectorTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableValue & coupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValue & coupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableValue * > coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableValue * > coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableGradient & coupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradient & coupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableGradient * > coupledVectorTagGradients (const std::string &var_names, TagID tag) const
 
std::vector< const VariableGradient * > coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableGradient & coupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradient & coupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableGradient * > coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableGradient * > coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValue & coupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValue & coupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledVectorTagDofValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValue & coupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValue & coupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue * > coupledMatrixTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue * > coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VectorVariableValue & coupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue * > coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariable & writableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValue & writableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValue & coupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValuesOld (const std::string &var_name) const
 
std::vector< const VectorVariableValue * > coupledVectorValuesOld (const std::string &var_name) const
 
virtual const VariableValue & coupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValue & coupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient * > coupledGradients (const std::string &var_name) const
 
const ADVariableGradient & adCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradient & adCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableGradient * > adCoupledGradients (const std::string &var_name) const
 
const GenericVariableGradient< is_ad > & coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableGradient< false > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
const GenericVariableGradient< true > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableGradient< is_ad > * > coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< false > * > coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< true > * > coupledGenericGradients (const std::string &var_name) const
 
const ADVectorVariableGradient & adCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecond & adCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecond & adCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient * > coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradient & coupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradient & coupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradient & coupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradient & coupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurl & coupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableCurl & adCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergence & coupledDivOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecond & coupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledDots (const std::string &var_name) const
 
virtual const VariableValue & coupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue * > adCoupledDots (const std::string &var_name) const
 
const ADVariableValue & adCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValue & adCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValue & coupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValue & coupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const Moose::ADType< T >::type & adCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValue & coupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValue & coupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValue & coupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue * > coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValue & coupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValue & adCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adZeroValue () const
 
const ADVariableGradient & adZeroGradient () const
 
const ADVariableSecond & adZeroSecond () const
 
const GenericVariableValue< is_ad > & genericZeroValue ()
 
const GenericVariableValue< false > & genericZeroValue ()
 
const GenericVariableValue< true > & genericZeroValue ()
 
const GenericVariableGradient< is_ad > & genericZeroGradient ()
 
const GenericVariableGradient< false > & genericZeroGradient ()
 
const GenericVariableGradient< true > & genericZeroGradient ()
 
const GenericVariableSecond< is_ad > & genericZeroSecond ()
 
const GenericVariableSecond< false > & genericZeroSecond ()
 
const GenericVariableSecond< true > & genericZeroSecond ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
const MooseVariableFieldBase * getFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBase * getFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBase * getFieldVar (const std::string &var_name, unsigned int comp)
 
std::vector< const MooseVariableFieldBase * > getFieldVars (const std::string &var_name) const
 
const T * getVarHelper (const std::string &var_name, unsigned int comp) const
 
T * getVarHelper (const std::string &var_name, unsigned int comp)
 
std::vector< const T * > getVarsHelper (const std::string &var_name) const
 
MooseVariable * getVar (const std::string &var_name, unsigned int comp)
 
const MooseVariable * getVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariable * getVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariable * getVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariable * getArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariable * getArrayVar (const std::string &var_name, unsigned int comp) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValue & coupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledMatrixTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValue & adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValue & coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValueByName (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledVectorTagScalarValue (const std::string &var_name, const std::string &tag_param_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::VariableValue kokkosCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
Moose::Kokkos::Scalar< const Real > kokkosCoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalar * getScalarVar (const std::string &var_name, unsigned int comp) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
virtual void getKokkosMaterialPropertyHook (const std::string &, const unsigned int)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 
void initializeKokkosBlockRestrictable ()
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockElements () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockNodes () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockSides () const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockElementID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockNodeID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION auto kokkosBlockElementSideID (Moose::Kokkos::ThreadID tid) const
 
virtual const OutputTools< T >::VariableValue & value ()
 
virtual const OutputTools< T >::VariableValue & valueOld ()
 
virtual const OutputTools< T >::VariableValue & valueOlder ()
 
virtual const OutputTools< T >::VariableValue & dot ()
 
virtual const OutputTools< T >::VariableValue & dotDot ()
 
virtual const OutputTools< T >::VariableValue & dotOld ()
 
virtual const OutputTools< T >::VariableValue & dotDotOld ()
 
virtual const VariableValue & dotDu ()
 
virtual const VariableValue & dotDotDu ()
 
virtual const OutputTools< T >::VariableGradient & gradient ()
 
virtual const OutputTools< T >::VariableGradient & gradientOld ()
 
virtual const OutputTools< T >::VariableGradient & gradientOlder ()
 
virtual const OutputTools< T >::VariableSecond & second ()
 
virtual const OutputTools< T >::VariableSecond & secondOld ()
 
virtual const OutputTools< T >::VariableSecond & secondOlder ()
 
virtual const OutputTools< T >::VariableTestSecond & secondTest ()
 
virtual const OutputTools< T >::VariableTestSecond & secondTestFace ()
 
virtual const OutputTools< T >::VariablePhiSecond & secondPhi ()
 
virtual const OutputTools< T >::VariablePhiSecond & secondPhiFace ()
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ReporterContextBase & getReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterName & getReporterName (const std::string &param_name) const
 
virtual void addReporterDependencyHelper (const ReporterName &)
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 

Protected Attributes

const Function & _character
 If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure, and does nothing otherwise If negative then the borehole acts as a source (injection well) for porepressure < borehole pressure, and does nothing otherwise The flow rate to/from the borehole is multiplied by |character|, so usually character = +/- 1.
 
const Function & _p_bot
 Bottomhole pressure of borehole.
 
const RealVectorValue _unit_weight
 Unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point).
 
const bool _use_density_from_temperature
 Whether the wellbore pressure profile is built from a temperature-dependent fluid density (true if the 'unit_weight_fp' parameter was supplied) rather than from the constant _unit_weight.
 
const SinglePhaseFluidProperties *const _fp
 Fluid properties used to evaluate the in-well fluid density.
 
const MooseVariableFieldBase *const _temperature_var
 The coupled unit_weight_temperature variable.
 
const libMesh::System *const _temperature_system
 The libMesh system holding _temperature_var, used to sample that variable at borehole points that may lie outside this processor's mesh partition.
 
const unsigned int _temperature_var_number
 Variable number of unit_weight_temperature within _temperature_system.
 
const RealVectorValue _gravity
 Gravitational acceleration (in the units used elsewhere in the input file), pointing downwards.
 
const Real _density_reference_pressure
 Fixed pressure (Pa) at which the in-well fluid density is evaluated.
 
const Real _t_c2k
 Conversion of unit_weight_temperature's values to Kelvin (0 for Kelvin, 273.15 for Celsius)
 
std::vector< Real > _bh_pressure
 Wellbore pressure at each well point, indexed by Dirac point ID.
 
const Real _re_constant
 Borehole constant.
 
const Real _well_constant
 Well constant.
 
const bool _has_permeability
 Whether there is a quadpoint permeability material (for error checking)
 
const bool _has_thermal_conductivity
 Whether there is a quadpoint thermal conductivity material (for error checking)
 
const MaterialProperty< RealTensorValue > & _perm_or_cond
 Permeability or conductivity of porous material.
 
const MaterialProperty< std::vector< RealTensorValue > > & _dperm_or_cond_dvar
 d(Permeability)/d(PorousFlow variable)
 
std::vector< RealTensorValue > _rot_matrix
 Rotation matrix used in well_constant calculation.
 
const PorousFlowDictator & _dictator
 PorousFlowDictator UserObject.
 
PorousFlowSumQuantity & _total_outflow_mass
 This is used to hold the total fluid flowing into the line sink for each time step.
 
PorousFlowPointFluxQuantity *const _point_fluxes
 Optional recorder of the instantaneous flux at each Dirac point of this line sink.
 
const bool _has_porepressure
 Whether a quadpoint porepressure material exists (for error checking)
 
const bool _has_temperature
 Whether a quadpoint temperature material exists (for error checking)
 
const bool _has_mass_fraction
 Whether a mass_fraction material exists (for error checking)
 
const bool _has_relative_permeability
 Whether a relative permeability material exists (for error checking)
 
const bool _has_mobility
 Whether enough materials exist to form the mobility (for error checking)
 
const bool _has_enthalpy
 Whether an enthalpy material exists (for error checking)
 
const bool _has_internal_energy
 Whether an internal-energy material exists (for error checking)
 
enum PorousFlowLineSink::PorTchoice _p_or_t
 
const bool _use_mass_fraction
 Whether the flux will be multiplied by the mass fraction.
 
const bool _use_relative_permeability
 Whether the flux will be multiplied by the relative permeability.
 
const bool _use_mobility
 Whether the flux will be multiplied by the mobility.
 
const bool _use_enthalpy
 Whether the flux will be multiplied by the enthalpy.
 
const bool _use_internal_energy
 Whether the flux will be multiplied by the internal-energy.
 
const unsigned int _ph
 The phase number.
 
const unsigned int _sp
 The component number (only used if _use_mass_fraction==true)
 
const MaterialProperty< std::vector< Real > > *const _pp
 Quadpoint pore pressure in each phase.
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dpp_dvar
 d(quadpoint pore pressure in each phase)/d(PorousFlow variable)
 
const MaterialProperty< Real > *const _temperature
 Quadpoint temperature.
 
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
 d(quadpoint temperature)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > *const _fluid_density_node
 Fluid density for each phase (at the node)
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_node_dvar
 d(Fluid density for each phase (at the node))/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > *const _fluid_viscosity
 Viscosity of each component in each phase.
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_viscosity_dvar
 d(Viscosity of each component in each phase)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > *const _relative_permeability
 Relative permeability of each phase.
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _drelative_permeability_dvar
 d(Relative permeability of each phase)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _mass_fractions
 Mass fraction of each component in each phase.
 
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > *const _dmass_fractions_dvar
 d(Mass fraction of each component in each phase)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > *const _enthalpy
 Enthalpy of each phase.
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _denthalpy_dvar
 d(enthalpy of each phase)/d(PorousFlow variable)
 
const MaterialProperty< std::vector< Real > > *const _internal_energy
 Internal_Energy of each phase.
 
const MaterialProperty< std::vector< std::vector< Real > > > *const _dinternal_energy_dvar
 d(internal_energy of each phase)/d(PorousFlow variable)
 
const VariableValue & _multiplying_var
 mass flux is multiplied by this variable evaluated at quadpoints
 
const Real _line_length
 Line length. This is only used if there is only one borehole point.
 
const RealVectorValue _line_direction
 Line direction. This is only used if there is only one borehole point.
 
const std::string _point_file
 File defining the geometry of the borehole.
 
std::vector< Real > _rs
 Radii of the borehole.
 
std::vector< Real > _xs
 x points of the borehole
 
std::vector< Real > _ys
 y points of the borehole
 
std::vector< Real > _zs
 z points of borehole
 
Point _bottom_point
 The bottom point of the borehole (where bottom_pressure is defined)
 
std::vector< Real > _half_seg_len
 0.5*(length of polyline segments between points)
 
MooseVariableField< T > & _var
 
const OutputTools< T >::VariablePhiValue & _phi
 
const OutputTools< T >::VariablePhiGradient & _grad_phi
 
const OutputTools< T >::VariableTestValue & _test
 
const OutputTools< T >::VariableTestGradient & _grad_test
 
const OutputTools< T >::VariableValue & _u
 
const OutputTools< T >::VariableGradient & _grad_u
 
const Elem *const & _current_elem
 
const Moose::CoordinateSystemType & _coord_sys
 
DiracKernelInfo & _dirac_kernel_info
 
DiracKernelInfo _local_dirac_kernel_info
 
Point _current_point
 
unsigned int _qp
 
const MooseArray< Point > & _q_point
 
const MooseArray< Point > & _physical_point
 
const QBase *const & _qrule
 
const MooseArray< Real > & _JxW
 
unsigned int _i
 
unsigned int _j
 
const bool _drop_duplicate_points
 
const DiracKernelInfo::PointNotFoundBehavior _point_not_found_behavior
 
const bool _allow_moving_sources
 
point_cache_t _point_cache
 
reverse_cache_t _reverse_point_cache
 
SubProblem & _subproblem
 
FEProblemBase & _fe_problem
 
SystemBase & _sys
 
THREAD_ID _tid
 
Assembly & _assembly
 
MooseMesh & _mesh
 
const bool & _enabled
 
MooseApp & _app
 
Factory & _factory
 
ActionFactory & _action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters & _pars
 
const ExecFlagEnum & _execute_enum
 
const ExecFlagType & _current_execute_flag
 
const InputParameters & _ti_params
 
FEProblemBase & _ti_feproblem
 
bool _is_implicit
 
Real & _t
 
const Real & _t_old
 
int & _t_step
 
Real & _dt
 
Real & _dt_old
 
bool _is_transient
 
MooseApp & _restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase & _mci_feproblem
 
DenseVector< Number > _local_re
 
DenseMatrix< Number > _local_ke
 
DenseMatrix< Number > _nonlocal_ke
 
const InputParameters & _c_parameters
 
const std::string & _c_name
 
const std::string & _c_type
 
FEProblemBase & _c_fe_problem
 
const SystemBase *const _c_sys
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > _coupled_vars
 
std::vector< MooseVariableFieldBase * > _coupled_moose_vars
 
std::vector< MooseVariable * > _coupled_standard_moose_vars
 
std::vector< VectorMooseVariable * > _coupled_vector_moose_vars
 
std::vector< ArrayMooseVariable * > _coupled_array_moose_vars
 
std::vector< MooseVariableField< Real > * > _coupled_fv_moose_vars
 
const std::unordered_map< std::string, std::string > & _new_to_deprecated_coupled_vars
 
bool _c_nodal
 
bool _c_is_implicit
 
const bool _c_allow_element_to_nodal_coupling
 
THREAD_ID _c_tid
 
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > _default_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADReal > > > _ad_default_value
 
std::unordered_map< std::string, std::unique_ptr< VectorVariableValue > > _default_vector_value
 
std::unordered_map< std::string, std::unique_ptr< ArrayVariableValue > > _default_array_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADRealVectorValue > > > _ad_default_vector_value
 
VariableValue _default_value_zero
 
VariableGradient _default_gradient
 
MooseArray< ADRealVectorValue > _ad_default_gradient
 
MooseArray< ADRealTensorValue > _ad_default_vector_gradient
 
VariableSecond _default_second
 
MooseArray< ADRealTensorValue > _ad_default_second
 
MooseArray< ADRealVectorValue > _ad_default_curl
 
const VariableValue & _zero
 
const VariablePhiValue & _phi_zero
 
const MooseArray< ADReal > & _ad_zero
 
const VariableGradient & _grad_zero
 
const MooseArray< ADRealVectorValue > & _ad_grad_zero
 
const VariablePhiGradient & _grad_phi_zero
 
const VariableSecond & _second_zero
 
const MooseArray< ADRealTensorValue > & _ad_second_zero
 
const VariablePhiSecond & _second_phi_zero
 
const VectorVariableValue & _vector_zero
 
const VectorVariableCurl & _vector_curl_zero
 
VectorVariableValue _default_vector_value_zero
 
VectorVariableGradient _default_vector_gradient
 
VectorVariableCurl _default_vector_curl
 
VectorVariableDivergence _default_div
 
ArrayVariableValue _default_array_value_zero
 
ArrayVariableGradient _default_array_gradient
 
bool _coupleable_neighbor
 
FEProblemBase & _sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real & _real_zero
 
const VariableValue & _scalar_zero
 
const Point & _point_zero
 
const InputParameters & _mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase & _mi_feproblem
 
SubProblem & _mi_subproblem
 
const THREAD_ID _mi_tid
 
const bool _is_kokkos_object
 
const Moose::MaterialDataType _material_data_type
 
MaterialData & _material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int > _material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
GeometricSearchData & _geometric_search_data
 
bool _requires_geometric_search
 
const MaterialData * _blk_material_data
 
bool _nodal
 
MooseVariableFE< T > * _variable
 
MooseVariableFV< T > * _fv_variable
 
MooseLinearVariableFV< T > * _linear_fv_variable
 
MooseVariableField< T > * _field_variable
 
Assembly * _mvi_assembly
 
const Parallel::Communicator & _communicator
 
const std::vector< Real > *const _x_coord
 
const std::vector< Real > *const _y_coord
 
const std::vector< Real > *const _z_coord
 
const std::vector< Real > *const _weight
 
const bool _usingReporter
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Private Types

enum  FuncAge
 
enum  VarType
 

Private Member Functions

void calcLineLengths ()
 
void regenPoints ()
 
void updateCaches (const Elem *old_elem, const Elem *new_elem, Point p, unsigned id)
 
const Elem * addPointWithValidId (Point p, unsigned id, Real value)
 
const Moose::FunctionBase * getKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBase & getUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const T & castUserObject (const UserObjectBase &uo_base, const std::string &param_name="") const
 
void mooseObjectError (const std::string &param_name, std::stringstream &oss) const
 
const std::string & userObjectType (const UserObjectBase &uo) const
 
const std::string & userObjectName (const UserObjectBase &uo) const
 
const PostprocessorName & getPostprocessorNameInternal (const std::string &param_name, const unsigned int index, const bool allow_default_value=true) const
 
bool isDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
PostprocessorValue getDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
void checkParam (const std::string &param_name, const unsigned int index=std::numeric_limits< unsigned int >::max()) const
 
bool postprocessorsAdded () const
 
const VectorPostprocessorValue & getVectorPostprocessorByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name, bool broadcast, std::size_t t_index) const
 
const VectorPostprocessorContext< VectorPostprocessorValue > & getVectorPostprocessorContextByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool vectorPostprocessorsAdded () const
 
RestartableDataValue & registerRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 
void prepareVectorTagInternal (Assembly &assembly, unsigned int ivar, const std::set< TagID > &vector_tags, const std::set< TagID > &absolute_value_vector_tags)
 
void checkForNans () const
 
const OutputTools< T >::VariableValue & vectorTagValueHelper (const std::string &var_names, TagID tag, unsigned int index=0) const
 
const OutputTools< T >::VariableValue & vectorTagValueHelper (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const OutputTools< T >::VariableValue & vectorTagDofValueHelper (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const OutputTools< T >::VariableValue & vectorTagDofValueHelper (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
void requestStates (const std::string &var_name, const TagName &tag_name, const unsigned int comp)
 
void checkFuncType (const std::string var_name, VarType t, FuncAge age) const
 
const VariableValue * getDefaultValue (const std::string &var_name, unsigned int comp) const
 
const VectorVariableValue * getDefaultVectorValue (const std::string &var_name) const
 
const ArrayVariableValue * getDefaultArrayValue (const std::string &var_name) const
 
const T & getDefaultNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const RealVectorValue & getDefaultNodalValue (const std::string &var_name, unsigned int) const
 
const RealEigenVector & getDefaultNodalValue (const std::string &var_name, unsigned int) const
 
const Moose::Functor< T > & getDefaultFunctor (const std::string &var_name) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVariables (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVectorVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagVectorVariables (const std::string &var_name, const std::string &tag_name) const
 
Moose::Kokkos::Variable kokkosZeroVariable () const
 
Moose::Kokkos::Variable kokkosCoupledVectorTagScalarVariable (const std::string &var_name, const std::string &tag_name, unsigned int comp) const
 
std::set< MooseVariableFieldBase * > checkVariablesHelper (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
Moose::MaterialDataType getMaterialDataType (const std::set< BoundaryID > &boundary_ids) const
 
unsigned int getMaxQps () const
 
void addConsumedPropertyName (const MooseObjectName &obj_name, const std::string &prop_name)
 
const PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValue & getPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool reportersAdded () const
 
void possiblyCheckHasReporter (const ReporterName &reporter_name, const std::string &param_name="") const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

std::vector< Real > _line_base
 alternative (to the point file data) line weight and start point.
 
const ParallelParamObject & _parent
 
const MooseBase & _si_moose_base
 
const FEProblemBase * _si_problem
 
ExecFlagEnum _empty_execute_enum
 
const MooseObject & _fni_object
 
const InputParameters & _fni_params
 
FEProblemBase & _fni_feproblem
 
const THREAD_ID _fni_tid
 
const MooseObject & _uoi_moose_object
 
const FEProblemBase & _uoi_feproblem
 
const THREAD_ID _uoi_tid
 
const std::string _ti_name
 
const MooseObject & _ppi_moose_object
 
const InputParameters & _ppi_params
 
const FEProblemBase & _ppi_feproblem
 
std::map< PostprocessorName, std::unique_ptr< PostprocessorValue > > _default_values
 
const bool _broadcast_by_default
 
const MooseObject & _vpi_moose_object
 
const FEProblemBase & _vpi_feproblem
 
const THREAD_ID _vpi_tid
 
RandomData * _random_data
 
MooseRandom * _generator
 
FEProblemBase & _ri_problem
 
const std::string _ri_name
 
unsigned int _master_seed
 
bool _is_nodal
 
ExecFlagType _reset_on
 
const Node *const & _curr_node
 
const Elem *const & _curr_element
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 
std::set< TagID > _vector_tags
 
std::set< TagID > _abs_vector_tags
 
std::set< TagID > _matrix_tags
 
std::set< TagID > _non_ref_vector_tags
 
std::set< TagID > _non_ref_abs_vector_tags
 
std::set< TagID > _ref_vector_tags
 
std::set< TagID > _ref_abs_vector_tags
 
const MooseObject & _moose_object
 
const InputParameters & _tag_params
 
std::vector< DenseVector< Number > * > _re_blocks
 
std::vector< DenseVector< Number > * > _absre_blocks
 
std::vector< DenseMatrix< Number > * > _ke_blocks
 
std::vector< Real > _absolute_residuals
 
unsigned int _coupleable_max_qps
 
std::unordered_map< std::string, std::vector< unsigned int > > _optional_var_index
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _c_coupled_scalar_vars
 
std::set< TagID > _fe_coupleable_vector_tags
 
std::set< TagID > _fe_coupleable_matrix_tags
 
const bool _is_fv
 
const MooseObject *const _obj
 
const std::set< std::string > _older_state_tags
 
std::vector< std::set< MooseWritableVariable * > > _writable_coupled_variables
 
const Real _kokkos_default_value_zero
 
const InputParameters & _sc_parameters
 
const std::string & _sc_name
 
const bool _sc_is_implicit
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
 
std::unordered_map< std::string, std::unique_ptr< ADVariableValue > > _dual_default_value
 
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > _sc_coupled_vars
 
std::set< TagID > _sc_coupleable_vector_tags
 
std::set< TagID > _sc_coupleable_matrix_tags
 
std::set< MooseVariableFieldBase * > _moose_variable_dependencies
 
std::vector< libMesh::dof_id_type > _dof_indices
 
const MooseObject & _mi_moose_object
 
const bool _mi_boundary_restricted
 
const std::set< SubdomainID > & _mi_block_ids
 
const std::set< BoundaryID > & _mi_boundary_ids
 
std::vector< std::unique_ptr< OptionalMaterialPropertyProxyBase< MaterialPropertyInterface > > > _optional_property_proxies
 
std::set< SubdomainID > _blk_ids
 
std::vector< SubdomainID > _vec_ids
 
std::vector< SubdomainName > _blocks
 
const bool _blk_dual_restrictable
 
FEProblemBase * _blk_feproblem
 
const MooseMesh * _blk_mesh
 
const std::set< BoundaryID > _empty_boundary_ids
 
const std::set< BoundaryID > & _boundary_ids
 
THREAD_ID _blk_tid
 
const std::string & _blk_name
 
unsigned int _blk_dim
 
Moose::Kokkos::Array< ContiguousElementID > _kokkos_element_ids
 
Moose::Kokkos::Array< ContiguousNodeID > _kokkos_node_ids
 
Moose::Kokkos::Array< Moose::Kokkos::Pair< ContiguousElementID, unsigned int > > _kokkos_element_side_ids
 
const InputParameters & _ri_params
 
FEProblemBase & _ri_fe_problem_base
 
const ReporterData & _ri_reporter_data
 
const MooseObject & _ri_moose_object
 

Detailed Description

Approximates a borehole by a sequence of Dirac Points.

Definition at line 25 of file PorousFlowPeacemanBorehole.h.

Member Enumeration Documentation

◆ PorTchoice

enum class PorousFlowLineSink::PorTchoice
strongprotectedinherited

whether the flux is a function of pressure or temperature

Enumerator
pressure 
temperature 

Definition at line 96 of file PorousFlowLineSink.h.

Constructor & Destructor Documentation

◆ PorousFlowPeacemanBorehole()

PorousFlowPeacemanBorehole::PorousFlowPeacemanBorehole ( const InputParameters &  parameters)

Definition at line 135 of file PorousFlowPeacemanBorehole.C.

137 _character(getFunction("character")),
138 _p_bot(getFunction("bottom_p_or_t")),
139 _unit_weight(isParamValid("unit_weight") ? getParam<RealVectorValue>("unit_weight")
140 : RealVectorValue()),
143 : nullptr),
144 _temperature_var(_use_density_from_temperature && isCoupled("unit_weight_temperature")
145 ? getFieldVar("unit_weight_temperature", 0)
146 : nullptr),
147 _temperature_system(_temperature_var ? &_temperature_var->sys().system() : nullptr),
149 _gravity(isParamValid("unit_weight_gravity") ? getParam<RealVectorValue>("unit_weight_gravity")
150 : RealVectorValue()),
152 getParam<Real>("unit_weight_reference_pressure") *
153 (getParam<MooseEnum>("unit_weight_pressure_unit") == 0 ? 1.0 : 1.0E6)),
154 _t_c2k(getParam<MooseEnum>("unit_weight_temperature_unit") == 0 ? 0.0 : 273.15),
155 _re_constant(getParam<Real>("re_constant")),
156 _well_constant(getParam<Real>("well_constant")),
158 hasMaterialProperty<RealTensorValue>("PorousFlow_permeability_qp") &&
159 hasMaterialProperty<std::vector<RealTensorValue>>("dPorousFlow_permeability_qp_dvar")),
161 hasMaterialProperty<RealTensorValue>("PorousFlow_thermal_conductivity_qp") &&
163 "dPorousFlow_thermal_conductivity_qp_dvar")),
165 ? getMaterialProperty<RealTensorValue>("PorousFlow_permeability_qp")
166 : getMaterialProperty<RealTensorValue>("PorousFlow_thermal_conductivity_qp")),
169 ? getMaterialProperty<std::vector<RealTensorValue>>("dPorousFlow_permeability_qp_dvar")
171 "dPorousFlow_thermal_conductivity_qp_dvar"))
172{
174 mooseError("PorousFlowPeacemanBorehole: You have specified function_of=porepressure, but you "
175 "do not have a quadpoint permeability material");
177 mooseError("PorousFlowPeacemanBorehole: You have specified function_of=temperature, but you do "
178 "not have a quadpoint thermal_conductivity material");
179
180 // The wellbore pressure profile is built from either a single constant unit_weight, or a
181 // fluid density computed from temperature at each point (via 'unit_weight_fp') - never both,
182 // and never neither. Note this deliberately does not error if 'unit_weight_temperature' or
183 // 'unit_weight_gravity' are valid while 'unit_weight_fp' is not: unlike 'unit_weight' and
184 // 'unit_weight_fp' themselves, those two are not required to detect the user's intended mode,
185 // so treating their unexpected presence as an error would only serve to reject input files
186 // that harmlessly set an identically-named GlobalParam for some unrelated object.
187 const int checkWellborePressureFormat =
188 int(isParamValid("unit_weight")) + int(isParamValid("unit_weight_fp"));
189 if (checkWellborePressureFormat > 1)
190 paramError("unit_weight",
191 "PorousFlowPeacemanBorehole: must specify only one of 'unit_weight' (a constant "
192 "fluid unit weight) or 'unit_weight_fp' (a fluid-properties UserObject, so that "
193 "the fluid unit weight is instead computed from the temperature at each borehole "
194 "point)");
195 else if (checkWellborePressureFormat == 0)
196 paramError("unit_weight",
197 "PorousFlowPeacemanBorehole: must specify at least one of 'unit_weight' or "
198 "'unit_weight_fp'");
199
201 {
203 paramError("unit_weight_fp",
204 "PorousFlowPeacemanBorehole: 'unit_weight_fp' computes a fluid density to "
205 "build a hydrostatic *pressure* profile along the borehole, which is "
206 "meaningless when function_of=temperature (bottom_p_or_t is then a "
207 "temperature, not a pressure)");
208 if (!isParamValid("unit_weight_temperature"))
209 paramError("unit_weight_temperature",
210 "PorousFlowPeacemanBorehole: 'unit_weight_temperature' must be supplied when "
211 "'unit_weight_fp' is supplied");
212 if (!isCoupled("unit_weight_temperature"))
213 paramError("unit_weight_temperature",
214 "PorousFlowPeacemanBorehole: 'unit_weight_temperature' must be a nonlinear or "
215 "auxiliary variable, not a constant value. The wellbore pressure profile is "
216 "built by sampling this variable at each borehole point, so a spatially "
217 "constant temperature has no profile to sample: use 'unit_weight' instead if "
218 "the in-well fluid density really is constant");
219 if (!isParamValid("unit_weight_gravity"))
220 paramError("unit_weight_gravity",
221 "PorousFlowPeacemanBorehole: 'unit_weight_gravity' must be supplied when "
222 "'unit_weight_fp' is supplied");
223 }
224}
void ErrorVector unsigned int
const MooseVariableFieldBase * getFieldVar(const std::string &var_name, unsigned int comp) const
virtual bool isCoupled(const std::string &var_name, unsigned int i=0) const
const Function & getFunction(const std::string &name) const
const MaterialProperty< T > & getMaterialProperty(const std::string &name, MaterialData &material_data, const unsigned int state=0)
bool hasMaterialProperty(const std::string &name)
const InputParameters & parameters() const
void paramError(const std::string &param, Args... args) const
void mooseError(Args &&... args) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const
Approximates a line sink a sequence of Dirac Points.
PorTchoice
whether the flux is a function of pressure or temperature
const MaterialProperty< RealTensorValue > & _perm_or_cond
Permeability or conductivity of porous material.
const bool _has_permeability
Whether there is a quadpoint permeability material (for error checking)
const unsigned int _temperature_var_number
Variable number of unit_weight_temperature within _temperature_system.
const bool _use_density_from_temperature
Whether the wellbore pressure profile is built from a temperature-dependent fluid density (true if th...
const libMesh::System *const _temperature_system
The libMesh system holding _temperature_var, used to sample that variable at borehole points that may...
const Function & _character
If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure,...
const bool _has_thermal_conductivity
Whether there is a quadpoint thermal conductivity material (for error checking)
const MaterialProperty< std::vector< RealTensorValue > > & _dperm_or_cond_dvar
d(Permeability)/d(PorousFlow variable)
const RealVectorValue _gravity
Gravitational acceleration (in the units used elsewhere in the input file), pointing downwards.
const Real _density_reference_pressure
Fixed pressure (Pa) at which the in-well fluid density is evaluated.
const Real _re_constant
Borehole constant.
const Real _t_c2k
Conversion of unit_weight_temperature's values to Kelvin (0 for Kelvin, 273.15 for Celsius)
const SinglePhaseFluidProperties *const _fp
Fluid properties used to evaluate the in-well fluid density.
const Real _well_constant
Well constant.
const RealVectorValue _unit_weight
Unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point).
const Function & _p_bot
Bottomhole pressure of borehole.
const MooseVariableFieldBase *const _temperature_var
The coupled unit_weight_temperature variable.
Common class for single phase fluid properties.
const T & getUserObject(const std::string &param_name, bool is_dependency=true) const
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
TensorValue< Real > RealTensorValue
const unsigned int invalid_uint
VectorValue< Real > RealVectorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ addPoints()

void PorousFlowLineSink::addPoints ( )
overrideprotectedvirtualinherited

Add Dirac Points to the borehole.

Reimplemented from PorousFlowLineGeometry.

Definition at line 230 of file PorousFlowLineSink.C.

231{
232 // This function gets called just before the DiracKernel is evaluated
233 // so this is a handy place to zero this out.
235 if (_point_fluxes)
237
239}
const std::vector< Real > *const _z_coord
const std::vector< Real > *const _y_coord
const std::vector< Real > *const _x_coord
virtual void addPoints() override
Add Dirac Points to the line sink.
PorousFlowPointFluxQuantity *const _point_fluxes
Optional recorder of the instantaneous flux at each Dirac point of this line sink.
PorousFlowSumQuantity & _total_outflow_mass
This is used to hold the total fluid flowing into the line sink for each time step.
void zero(const std::vector< Real > &xs, const std::vector< Real > &ys, const std::vector< Real > &zs)
Resets the flux recorded at every point to zero, and records the current point coordinates.
void zero()
Sets _total = 0.

◆ calcLineLengths()

void PorousFlowLineGeometry::calcLineLengths ( )
privateinherited

Definition at line 202 of file PorousFlowLineGeometry.C.

203{
204 const int num_pts = _zs.size();
205 if (num_pts == 0)
206 mooseError("PorousFlowLineGeometry: No points found in input.\nIf using reporters, make sure "
207 "they have data.");
208 _bottom_point(0) = _xs[num_pts - 1];
209 _bottom_point(1) = _ys[num_pts - 1];
210 _bottom_point(2) = _zs[num_pts - 1];
211
212 // construct the line-segment lengths between each point
213 _half_seg_len.clear();
214 _half_seg_len.resize(std::max(num_pts - 1, 1));
215 for (unsigned int i = 0; i + 1 < _xs.size(); ++i)
216 {
217 _half_seg_len[i] = 0.5 * std::sqrt(Utility::pow<2>(_xs[i + 1] - _xs[i]) +
218 Utility::pow<2>(_ys[i + 1] - _ys[i]) +
219 Utility::pow<2>(_zs[i + 1] - _zs[i]));
220 if (_half_seg_len[i] == 0)
221 mooseError("PorousFlowLineGeometry: zero-segment length detected at (x,y,z) = ",
222 _xs[i],
223 " ",
224 _ys[i],
225 " ",
226 _zs[i],
227 "\n");
228 }
229 if (num_pts == 1)
231}
std::vector< Real > _xs
x points of the borehole
std::vector< Real > _zs
z points of borehole
std::vector< Real > _ys
y points of the borehole
Point _bottom_point
The bottom point of the borehole (where bottom_pressure is defined)
const Real _line_length
Line length. This is only used if there is only one borehole point.
std::vector< Real > _half_seg_len
0.5*(length of polyline segments between points)

Referenced by PorousFlowLineGeometry::initialSetup(), and PorousFlowLineGeometry::regenPoints().

◆ computeQpBaseOutflow()

Real PorousFlowPeacemanBorehole::computeQpBaseOutflow ( unsigned  current_dirac_ptid) const
overrideprotectedvirtual

Returns the flux from the line sink (before modification by mobility, etc). Derived classes should override this.

Implements PorousFlowLineSink.

Definition at line 424 of file PorousFlowPeacemanBorehole.C.

425{
426 const Real character = _character.value(_t, _q_point[_qp]);
427 if (character == 0.0)
428 return 0.0;
429
430 const Real bh_pressure = wellborePressure(current_dirac_ptid);
431 const Real pp = ptqp();
432
433 Real outflow = 0.0; // this is the flow rate from porespace out of the system
434
435 if (current_dirac_ptid > 0)
436 // contribution from half-segment "behind" this point (must have >1 point for
437 // current_dirac_ptid>0)
438 {
439 if ((character < 0.0 && pp < bh_pressure) || (character > 0.0 && pp > bh_pressure))
440 {
441 // injection, so outflow<0 || production, so outflow>0
443 _rot_matrix[current_dirac_ptid - 1],
444 _half_seg_len[current_dirac_ptid - 1],
446 _weight->at(current_dirac_ptid));
447 outflow += wc * (pp - bh_pressure);
448 }
449 }
450
451 if (current_dirac_ptid + 1 < _zs.size() || _zs.size() == 1)
452 // contribution from half-segment "ahead of" this point, or we only have one point
453 {
454 if ((character < 0.0 && pp < bh_pressure) || (character > 0.0 && pp > bh_pressure))
455 {
456 // injection, so outflow<0 || // production, so outflow>0
458 _rot_matrix[current_dirac_ptid],
459 _half_seg_len[current_dirac_ptid],
461 _weight->at(current_dirac_ptid));
462 outflow += wc * (pp - bh_pressure);
463 }
464 }
465
466 return outflow * _test[_i][_qp] * std::abs(character);
467}
unsigned int _i
const Elem *const & _current_elem
unsigned int _qp
const MooseArray< Point > & _q_point
const OutputTools< T >::VariableTestValue & _test
virtual Real value(Real t, const Point &p) const
const std::vector< Real > *const _weight
Real ptqp() const
If _p_or_t==0, then returns the quadpoint porepressure, else returns the quadpoint temperature.
Real wellborePressure(unsigned current_dirac_ptid) const
The wellbore pressure (or temperature, for function_of=temperature) at the given Dirac point,...
Real wellConstant(const RealTensorValue &perm, const RealTensorValue &rot, const Real &half_len, const Elem *ele, const Real &rad) const
Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for variou...
std::vector< RealTensorValue > _rot_matrix
Rotation matrix used in well_constant calculation.

◆ computeQpBaseOutflowJacobian()

void PorousFlowPeacemanBorehole::computeQpBaseOutflowJacobian ( unsigned  jvar,
unsigned  current_dirac_ptid,
Real &  outflow,
Real &  outflowp 
) const
overrideprotectedvirtual

Calculates the BaseOutflow as well as its derivative wrt jvar. Derived classes should override this.

Implements PorousFlowLineSink.

Definition at line 470 of file PorousFlowPeacemanBorehole.C.

474{
475 outflow = 0.0;
476 outflowp = 0.0;
477
478 const Real character = _character.value(_t, _q_point[_qp]);
479 if (character == 0.0)
480 return;
481
483 return;
484 const unsigned pvar = _dictator.porousFlowVariableNum(jvar);
485
486 // When _use_density_from_temperature is true, bh_pressure also depends on the temperature at
487 // every well point between here and the bottom point (via computeWellborePressures()), not
488 // just on the porous flow variables at this quadpoint. That dependence is deliberately not
489 // differentiated here: a DiracKernel can only assemble into the (test, phi) dofs of the
490 // element containing its own quadpoint, so the coupling to temperature dofs in other elements
491 // along the well cannot be represented in this Jacobian. residualSetup()/jacobianSetup()
492 // still recompute bh_pressure from the current nonlinear iterate before every evaluation, so
493 // the converged solution is unaffected; only the Newton convergence rate may be mildly slower.
494 // A proper fix (a relationship-managed line/segment kernel base class) is tracked separately
495 // in https://github.com/idaholab/moose/issues/33757, to be picked up after this PR merges.
496 const Real bh_pressure = wellborePressure(current_dirac_ptid);
497 const Real pp = ptqp();
498 const Real pp_prime = dptqp(pvar) * _phi[_j][_qp];
499
500 if (current_dirac_ptid > 0)
501 // contribution from half-segment "behind" this point
502 {
503 if ((character < 0.0 && pp < bh_pressure) || (character > 0.0 && pp > bh_pressure))
504 {
505 // injection, so outflow<0 || // production, so outflow>0
507 _rot_matrix[current_dirac_ptid - 1],
508 _half_seg_len[current_dirac_ptid - 1],
510 _weight->at(current_dirac_ptid));
511 outflowp += wc * pp_prime;
512 outflow += wc * (pp - bh_pressure);
513 }
514 }
515
516 if (current_dirac_ptid < _zs.size() - 1 || _zs.size() == 1)
517 // contribution from half-segment "ahead of" this point
518 {
519 if ((character < 0.0 && pp < bh_pressure) || (character > 0.0 && pp > bh_pressure))
520 {
521 // injection, so outflow<0 || // production, so outflow>0
523 _rot_matrix[current_dirac_ptid],
524 _half_seg_len[current_dirac_ptid],
526 _weight->at(current_dirac_ptid));
527 outflowp += wc * pp_prime;
528 outflow += wc * (pp - bh_pressure);
529 }
530 }
531
532 outflowp *= _test[_i][_qp] * std::abs(character);
533 outflow *= _test[_i][_qp] * std::abs(character);
534}
unsigned int _j
const OutputTools< T >::VariablePhiValue & _phi
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
Real dptqp(unsigned pvar) const
If _p_or_t==0, then returns d(quadpoint porepressure)/d(PorousFlow variable), else returns d(quadpoin...
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.

◆ computeQpJacobian()

Real PorousFlowLineSink::computeQpJacobian ( )
overrideprotectedvirtualinherited

Reimplemented from DiracKernelTempl< typename T >.

Definition at line 277 of file PorousFlowLineSink.C.

278{
279 return jac(_var.number());
280}
MooseVariableField< T > & _var
unsigned int number() const
Real jac(unsigned int jvar)
Jacobian contribution for the derivative wrt the variable jvar.

◆ computeQpOffDiagJacobian()

Real PorousFlowLineSink::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtualinherited

Reimplemented from DiracKernelTempl< typename T >.

Definition at line 283 of file PorousFlowLineSink.C.

284{
285 return jac(jvar);
286}

◆ computeQpResidual()

Real PorousFlowLineSink::computeQpResidual ( )
overrideprotectedvirtualinherited

Implements DiracKernelTempl< typename T >.

Definition at line 242 of file PorousFlowLineSink.C.

243{
244 // Get the ID we initially assigned to this point
245 const unsigned current_dirac_ptid = currentPointCachedID();
246 Real outflow = computeQpBaseOutflow(current_dirac_ptid);
247 if (outflow == 0.0)
248 return 0.0;
249
250 outflow *= _multiplying_var[_qp];
251
253 outflow *= (*_relative_permeability)[_i][_ph];
254
255 if (_use_mobility)
256 outflow *= (*_relative_permeability)[_i][_ph] * (*_fluid_density_node)[_i][_ph] /
257 (*_fluid_viscosity)[_i][_ph];
258
260 outflow *= (*_mass_fractions)[_i][_ph][_sp];
261
262 if (_use_enthalpy)
263 outflow *= (*_enthalpy)[_i][_ph];
264
266 outflow *= (*_internal_energy)[_i][_ph];
267
269 outflow * _dt); // this is not thread safe, but DiracKernel's aren't currently threaded
270 if (_point_fluxes)
271 _point_fluxes->add(current_dirac_ptid, outflow);
272
273 return outflow;
274}
unsigned currentPointCachedID()
const VariableValue & _multiplying_var
mass flux is multiplied by this variable evaluated at quadpoints
virtual Real computeQpBaseOutflow(unsigned current_dirac_ptid) const =0
Returns the flux from the line sink (before modification by mobility, etc). Derived classes should ov...
const bool _use_mobility
Whether the flux will be multiplied by the mobility.
const bool _use_mass_fraction
Whether the flux will be multiplied by the mass fraction.
const unsigned int _sp
The component number (only used if _use_mass_fraction==true)
const unsigned int _ph
The phase number.
const bool _use_enthalpy
Whether the flux will be multiplied by the enthalpy.
const bool _use_relative_permeability
Whether the flux will be multiplied by the relative permeability.
const bool _use_internal_energy
Whether the flux will be multiplied by the internal-energy.
void add(std::size_t i, Real contrib)
Adds contrib to the flux recorded at point i.
void add(Real contrib)
Adds contrib to _total.

◆ computeWellborePressures()

void PorousFlowPeacemanBorehole::computeWellborePressures ( )
protected

(Re)computes _bh_pressure from the temperature at each well point, when _use_density_from_temperature is true.

Does nothing otherwise.

Definition at line 266 of file PorousFlowPeacemanBorehole.C.

267{
269 return;
270
271 const std::size_t num_pts = _z_coord->size();
272 _bh_pressure.assign(num_pts, 0.0);
273 if (num_pts == 0)
274 return;
275
276 // Sample the temperature, and hence the in-well fluid density, at every well point (not just
277 // the points owned by this processor), because the wellbore pressure at any point is a
278 // cumulative integral over all the points between it and the bottom point.
279 // System::point_value performs the parallel point-location and broadcast internally, so this
280 // is safe to call even for points this processor's mesh partition does not own.
281 std::vector<Real> density(num_pts);
282 for (const auto i : make_range(num_pts))
283 {
284 const Point p(_x_coord->at(i), _y_coord->at(i), _z_coord->at(i));
286 density[i] = _fp->rho_from_p_T(_density_reference_pressure, temperature + _t_c2k);
287 }
288
289 // Integrate the fluid unit weight (density*gravity) up the wellbore from the bottom point,
290 // where the pressure is prescribed by bottom_p_or_t, using the trapezoidal rule on each
291 // polyline segment. This is exact for a density varying linearly along the well (the target
292 // use case: a linear thermal gradient with a locally-linear density(temperature)), and it
293 // degenerates exactly to the constant-unit_weight formula when the density is constant, since
294 // the sum then telescopes to density*gravity.(x_i - x_bottom).
295 _bh_pressure[num_pts - 1] = _p_bot.value(_t, _bottom_point);
296 for (std::size_t i = num_pts - 1; i > 0; --i)
297 {
298 const RealVectorValue segment(_x_coord->at(i - 1) - _x_coord->at(i),
299 _y_coord->at(i - 1) - _y_coord->at(i),
300 _z_coord->at(i - 1) - _z_coord->at(i));
301 _bh_pressure[i - 1] =
302 _bh_pressure[i] + 0.5 * (density[i - 1] + density[i]) * (_gravity * segment);
303 }
304}
const Real p
std::vector< Real > _bh_pressure
Wellbore pressure at each well point, indexed by Dirac point ID.
Number point_value(unsigned int var, const Point &p, const bool insist_on_success=true, const NumericVector< Number > *sol=nullptr) const
IntRange< T > make_range(T beg, T end)

Referenced by jacobianSetup(), and residualSetup().

◆ dptqp()

Real PorousFlowLineSink::dptqp ( unsigned  pvar) const
protectedinherited

If _p_or_t==0, then returns d(quadpoint porepressure)/d(PorousFlow variable), else returns d(quadpoint temperature)/d(PorousFlow variable)

Parameters
pvarThe PorousFlow variable number

Definition at line 363 of file PorousFlowLineSink.C.

364{
365 return (_p_or_t == PorTchoice::pressure ? (*_dpp_dvar)[_qp][_ph][pvar]
366 : (*_dtemperature_dvar)[_qp][pvar]);
367}
const MaterialProperty< std::vector< std::vector< Real > > > *const _dpp_dvar
d(quadpoint pore pressure in each phase)/d(PorousFlow variable)
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
d(quadpoint temperature)/d(PorousFlow variable)

Referenced by computeQpBaseOutflowJacobian(), and PorousFlowPolyLineSink::computeQpBaseOutflowJacobian().

◆ initialSetup()

void PorousFlowPeacemanBorehole::initialSetup ( )
overridevirtual

Reimplemented from PorousFlowLineGeometry.

Definition at line 227 of file PorousFlowPeacemanBorehole.C.

228{
230
231 if (!_point_file.empty() && _zs[0] < _zs.back())
232 mooseError("PorousFlowPeacemanBorehole: The last entry in the point_file needs to be at the "
233 "bottom of the well_bore because this is the point where the function bottom_p_or_t "
234 "is evaluated. The depth of the first point is z=",
235 _zs[0],
236 " and the last point is z=",
237 _zs.back());
238
239 // construct the rotation matrix needed to rotate the permeability
240 const unsigned int num_pts = _zs.size();
241 _rot_matrix.resize(std::max(num_pts - 1, (unsigned)1));
242 for (unsigned int i = 0; i + 1 < num_pts; ++i)
243 {
244 const RealVectorValue v2(_xs[i + 1] - _xs[i], _ys[i + 1] - _ys[i], _zs[i + 1] - _zs[i]);
246 }
247 if (num_pts == (unsigned)1)
249}
const RealVectorValue _line_direction
Line direction. This is only used if there is only one borehole point.
const std::string _point_file
File defining the geometry of the borehole.
virtual void initialSetup() override
GenericRealTensorValue< is_ad > rotVecToZ(GenericRealVectorValue< is_ad > vec)

◆ jac()

Real PorousFlowLineSink::jac ( unsigned int  jvar)
protectedinherited

Jacobian contribution for the derivative wrt the variable jvar.

Definition at line 289 of file PorousFlowLineSink.C.

290{
292 return 0.0;
293 const unsigned pvar = _dictator.porousFlowVariableNum(jvar);
294
295 Real outflow;
296 Real outflowp;
297 const unsigned current_dirac_ptid = currentPointCachedID();
298 computeQpBaseOutflowJacobian(jvar, current_dirac_ptid, outflow, outflowp);
299 if (outflow == 0.0 && outflowp == 0.0)
300 return 0.0;
301
302 outflow *= _multiplying_var[_qp];
303 outflowp *= _multiplying_var[_qp];
304
306 {
307 const Real relperm_prime = (_i != _j ? 0.0 : (*_drelative_permeability_dvar)[_i][_ph][pvar]);
308 outflowp = (*_relative_permeability)[_i][_ph] * outflowp + relperm_prime * outflow;
309 outflow *= (*_relative_permeability)[_i][_ph];
310 }
311
312 if (_use_mobility)
313 {
314 const Real mob = (*_relative_permeability)[_i][_ph] * (*_fluid_density_node)[_i][_ph] /
315 (*_fluid_viscosity)[_i][_ph];
316 const Real mob_prime =
317 (_i != _j
318 ? 0.0
319 : (*_drelative_permeability_dvar)[_i][_ph][pvar] * (*_fluid_density_node)[_i][_ph] /
320 (*_fluid_viscosity)[_i][_ph] +
321 (*_relative_permeability)[_i][_ph] *
322 (*_dfluid_density_node_dvar)[_i][_ph][pvar] / (*_fluid_viscosity)[_i][_ph] -
323 (*_relative_permeability)[_i][_ph] * (*_fluid_density_node)[_i][_ph] *
324 (*_dfluid_viscosity_dvar)[_i][_ph][pvar] /
325 Utility::pow<2>((*_fluid_viscosity)[_i][_ph]));
326 outflowp = mob * outflowp + mob_prime * outflow;
327 outflow *= mob;
328 }
329
331 {
332 const Real mass_fractions_prime =
333 (_i != _j ? 0.0 : (*_dmass_fractions_dvar)[_i][_ph][_sp][pvar]);
334 outflowp = (*_mass_fractions)[_i][_ph][_sp] * outflowp + mass_fractions_prime * outflow;
335 outflow *= (*_mass_fractions)[_i][_ph][_sp];
336 }
337
338 if (_use_enthalpy)
339 {
340 const Real enthalpy_prime = (_i != _j ? 0.0 : (*_denthalpy_dvar)[_i][_ph][pvar]);
341 outflowp = (*_enthalpy)[_i][_ph] * outflowp + enthalpy_prime * outflow;
342 outflow *= (*_enthalpy)[_i][_ph];
343 }
344
346 {
347 const Real internal_energy_prime = (_i != _j ? 0.0 : (*_dinternal_energy_dvar)[_i][_ph][pvar]);
348 outflowp = (*_internal_energy)[_i][_ph] * outflowp + internal_energy_prime * outflow;
349 // this multiplication was performed, but the code does not need to know: outflow *=
350 // (*_internal_energy)[_i][_ph];
351 }
352
353 return outflowp;
354}
const MaterialProperty< std::vector< Real > > *const _fluid_viscosity
Viscosity of each component in each phase.
virtual void computeQpBaseOutflowJacobian(unsigned jvar, unsigned current_dirac_ptid, Real &outflow, Real &outflowp) const =0
Calculates the BaseOutflow as well as its derivative wrt jvar. Derived classes should override this.

Referenced by PorousFlowLineSink::computeQpJacobian(), and PorousFlowLineSink::computeQpOffDiagJacobian().

◆ jacobianSetup()

void PorousFlowPeacemanBorehole::jacobianSetup ( )
overridevirtual

Reimplemented from DiracKernelTempl< typename T >.

Definition at line 259 of file PorousFlowPeacemanBorehole.C.

260{
263}
void computeWellborePressures()
(Re)computes _bh_pressure from the temperature at each well point, when _use_density_from_temperature...
virtual void jacobianSetup()

◆ meshChanged()

void PorousFlowLineGeometry::meshChanged ( )
overrideprotectedvirtualinherited

regenerate points in each cell if using line_base

Reimplemented from DiracKernelTempl< typename T >.

Definition at line 285 of file PorousFlowLineGeometry.C.

286{
288 regenPoints();
289}
virtual void meshChanged() override

◆ parseNextLineReals()

bool PorousFlowLineGeometry::parseNextLineReals ( std::ifstream &  ifs,
std::vector< Real > &  myvec 
)
protectedinherited

Reads a space-separated line of floats from ifs and puts in myvec.

Definition at line 292 of file PorousFlowLineGeometry.C.

294{
295 std::string line;
296 myvec.clear();
297 bool gotline(false);
298 if (getline(ifs, line))
299 {
300 gotline = true;
301
302 // Harvest floats separated by whitespace
303 std::istringstream iss(line);
304 Real f;
305 while (iss >> f)
306 {
307 myvec.push_back(f);
308 }
309 }
310 return gotline;
311}
Real f(Real x)
Test function for Brents method.

Referenced by PorousFlowLineGeometry::initialSetup().

◆ ptqp()

Real PorousFlowLineSink::ptqp ( ) const
protectedinherited

If _p_or_t==0, then returns the quadpoint porepressure, else returns the quadpoint temperature.

Definition at line 357 of file PorousFlowLineSink.C.

358{
359 return (_p_or_t == PorTchoice::pressure ? (*_pp)[_qp][_ph] : (*_temperature)[_qp]);
360}
const MaterialProperty< std::vector< Real > > *const _pp
Quadpoint pore pressure in each phase.
const MaterialProperty< Real > *const _temperature
Quadpoint temperature.

Referenced by computeQpBaseOutflow(), PorousFlowPolyLineSink::computeQpBaseOutflow(), computeQpBaseOutflowJacobian(), and PorousFlowPolyLineSink::computeQpBaseOutflowJacobian().

◆ regenPoints()

void PorousFlowLineGeometry::regenPoints ( )
privateinherited

Definition at line 234 of file PorousFlowLineGeometry.C.

235{
236 if (!_point_file.empty() || _usingReporter)
237 return;
238
239 // recalculate the auto-generated points:
240 _rs.clear();
241 _xs.clear();
242 _ys.clear();
243 _zs.clear();
244
245 Point p0(_line_base[1], _line_base[2], _line_base[3]);
246 Point p1 = p0 + _line_length * _line_direction / _line_direction.norm();
247
248 // add point for each cell the line passes through
249 auto ploc = _mesh.getPointLocator();
250 std::vector<Elem *> elems;
251 std::vector<LineSegment> segs;
252 Moose::elementsIntersectedByLine(p0, p1, _mesh, *ploc, elems, segs);
253 for (size_t i = 0; i < segs.size(); i++)
254 {
255 // elementsIntersectedByLine sometimes returns segments with coincident points - check for this:
256 auto & seg = segs[i];
257 if (seg.start() == seg.end())
258 continue;
259
260 auto middle = (seg.start() + seg.end()) * 0.5;
261 _rs.push_back(_line_base[0]);
262 _xs.push_back(middle(0));
263 _ys.push_back(middle(1));
264 _zs.push_back(middle(2));
265 }
266
267 // make the start point be the line base point
268 _rs.front() = _line_base[0];
269 _xs.front() = p0(0);
270 _ys.front() = p0(1);
271 _zs.front() = p0(2);
272
273 // force the end point only if our line traverses more than one element
274 if (segs.size() > 1)
275 {
276 _rs.back() = _line_base[0];
277 _xs.back() = p1(0);
278 _ys.back() = p1(1);
279 _zs.back() = p1(2);
280 }
282}
virtual std::unique_ptr< libMesh::PointLocatorBase > getPointLocator() const
std::vector< Real > _rs
Radii of the borehole.
std::vector< Real > _line_base
alternative (to the point file data) line weight and start point.
MooseMesh & _mesh
void elementsIntersectedByLine(const Point &p0, const Point &p1, const MeshBase &mesh, const libMesh::PointLocatorBase &point_locator, std::vector< Elem * > &intersected_elems, std::vector< LineSegment > &segments)

Referenced by PorousFlowLineGeometry::initialSetup(), and PorousFlowLineGeometry::meshChanged().

◆ residualSetup()

void PorousFlowPeacemanBorehole::residualSetup ( )
overridevirtual

Reimplemented from DiracKernelTempl< typename T >.

Definition at line 252 of file PorousFlowPeacemanBorehole.C.

◆ validParams()

InputParameters PorousFlowPeacemanBorehole::validParams ( )
static

Creates a new PorousFlowPeacemanBorehole This reads the file containing the lines of the form radius x y z that defines the borehole geometry.

It also calculates segment-lengths and rotation matrices needed for computing the borehole well constant

Definition at line 21 of file PorousFlowPeacemanBorehole.C.

22{
24 // A borehole point that the point locator cannot place in the mesh must not be silently
25 // dropped: computeWellborePressures() samples every borehole point's temperature directly
26 // (not just the ones that ended up with a Dirac source), and a missing element there corrupts
27 // the trapezoidal pressure integral for every other point up the well, not just the missing
28 // one. DiracKernelBase's own default of IGNORE would let that happen silently, so raise it to
29 // ERROR here.
30 params.set<MooseEnum>("point_not_found_behavior") = "ERROR";
31 params.addRequiredParam<FunctionName>(
32 "character",
33 "If zero then borehole does nothing. If positive the borehole acts as a sink "
34 "(production well) for porepressure > borehole pressure, and does nothing "
35 "otherwise. If negative the borehole acts as a source (injection well) for "
36 "porepressure < borehole pressure, and does nothing otherwise. The flow rate "
37 "to/from the borehole is multiplied by |character|, so usually character = +/- "
38 "1, but you can specify other quantities to provide an overall scaling to the "
39 "flow if you like.");
40 params.addRequiredParam<FunctionName>("bottom_p_or_t",
41 "For function_of=pressure, this function is the "
42 "pressure at the bottom of the borehole, "
43 "otherwise it is the temperature at the bottom of "
44 "the borehole.");
46 "unit_weight",
47 "(fluid_density*gravitational_acceleration) as a vector pointing downwards. "
48 "Note that the borehole pressure at a given z position is bottom_p_or_t + "
49 "unit_weight*(q - q_bottom), where q=(x,y,z) and q_bottom=(x,y,z) of the "
50 "bottom point of the borehole. The analogous formula holds for "
51 "function_of=temperature. If you don't want bottomhole pressure (or "
52 "temperature) to vary in the borehole just set unit_weight=0. Typical value "
53 "is = (0,0,-1E4), for water. Exactly one of 'unit_weight' or 'unit_weight_fp' must be "
54 "given. Use 'unit_weight_fp' instead of 'unit_weight' if you want the fluid unit weight "
55 "to vary along the borehole according to a temperature-dependent fluid "
56 "density, rather than being a single constant value.");
57 params.addParam<UserObjectName>(
58 "unit_weight_fp",
59 "SinglePhaseFluidProperties UserObject used to evaluate the in-well fluid density from "
60 "'unit_weight_temperature' at each borehole point, in order to build a wellbore pressure "
61 "profile that accounts for a thermal gradient along the borehole. Providing this "
62 "parameter activates this temperature-dependent unit-weight mode instead of the constant "
63 "'unit_weight'. Not compatible with function_of=temperature, since in that mode "
64 "bottom_p_or_t is a temperature, not a pressure, so there is no pressure profile to build. "
65 "If given, 'unit_weight_temperature' and 'unit_weight_gravity' are also required. "
66 "(Deliberately not named 'fp'/'gravity'/'temperature_variable', even though that mirrors "
67 "convention elsewhere in PorousFlow, because those are common GlobalParams names: an "
68 "input file that sets 'gravity' or 'fp' in [GlobalParams] for unrelated Darcy kernels or "
69 "fluid materials would otherwise silently activate, or fail to validate, this mode on "
70 "every PorousFlowPeacemanBorehole in the input.)");
71 params.addCoupledVar(
72 "unit_weight_temperature",
73 "The (nonlinear or auxiliary) variable holding temperature, sampled at each borehole point "
74 "to compute the in-well fluid density used to build the wellbore pressure profile. Must "
75 "be a variable, not a constant value. This is unrelated to function_of=temperature "
76 "(which instead selects whether the *outflow* driving this DiracKernel is a function of "
77 "porepressure or temperature). Only used, and required, if 'unit_weight_fp' is given.");
79 "unit_weight_gravity",
80 "Gravitational acceleration, pointing downwards, in the units used elsewhere in this "
81 "input file (eg (0,0,-9.81) for SI units and lengths in metres). Only used, and "
82 "required, if 'unit_weight_fp' is given. Densities computed from 'unit_weight_fp' are "
83 "always in kg/m^3, so if lengths in this input file are not metres, scale "
84 "'unit_weight_gravity' accordingly (eg (0,0,-9.81E-6) if pressures are in MPa and lengths "
85 "in metres, matching the 'gravity' convention used by PorousFlow Darcy kernels).");
86 MooseEnum temperature_unit_choice("Kelvin=0 Celsius=1", "Kelvin");
87 params.addParam<MooseEnum>(
88 "unit_weight_temperature_unit",
89 temperature_unit_choice,
90 "The unit of 'unit_weight_temperature'. Only used if 'unit_weight_fp' is given.");
91 MooseEnum pressure_unit_choice("Pa MPa", "Pa");
92 params.addParam<MooseEnum>(
93 "unit_weight_pressure_unit",
94 pressure_unit_choice,
95 "The unit of 'unit_weight_reference_pressure'. Only used if 'unit_weight_fp' is given.");
97 "unit_weight_reference_pressure",
98 101325.0, // standard atmosphere: liquid-water density is only weakly pressure-dependent
99 // (~0.9% per 20MPa), so a fixed reference pressure is used instead of the local
100 // (coupled, and hence more expensive to sample) porepressure
101 "unit_weight_reference_pressure > 0",
102 "The fixed pressure (in the units given by 'unit_weight_pressure_unit') at which the "
103 "in-well fluid density is evaluated by 'unit_weight_fp'. Only used if 'unit_weight_fp' "
104 "is given. Choose a value close to the expected wellbore pressure for the most accurate "
105 "density.");
106 params.addParam<Real>("re_constant",
107 0.28,
108 "The dimensionless constant used in evaluating the borehole effective "
109 "radius. This depends on the meshing scheme. Peacemann "
110 "finite-difference calculations give 0.28, while for rectangular finite "
111 "elements the result is closer to 0.1594. (See Eqn(4.13) of Z Chen, Y "
112 "Zhang, Well flow models for various numerical methods, Int J Num "
113 "Analysis and Modeling, 3 (2008) 375-388.)");
114 params.addParam<Real>("well_constant",
115 -1.0,
116 "Usually this is calculated internally from the element geometry, the "
117 "local borehole direction and segment length, and the permeability. "
118 "However, if this parameter is given as a positive number then this "
119 "number is used instead of the internal calculation. This speeds up "
120 "computation marginally. re_constant becomes irrelevant");
121 params.addClassDescription(
122 "Approximates a borehole in the mesh using the Peaceman approach, ie "
123 "using a number of point sinks with given radii whose positions are "
124 "read from a file. NOTE: if you are using PorousFlowPorosity that depends on volumetric "
125 "strain, you should set strain_at_nearest_qp=true in your GlobalParams, to ensure the nodal "
126 "Porosity Material uses the volumetric strain at the Dirac quadpoints, and can therefore be "
127 "computed. The wellbore pressure profile is built either from a constant fluid unit "
128 "weight ('unit_weight') or, if a thermal gradient along the borehole makes a single "
129 "constant unit weight a poor approximation, from a fluid density computed at each "
130 "borehole point from a temperature-dependent fluid-properties UserObject "
131 "('unit_weight_fp')");
132 return params;
133}
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)
static InputParameters validParams()

◆ wellborePressure()

Real PorousFlowPeacemanBorehole::wellborePressure ( unsigned  current_dirac_ptid) const
protected

The wellbore pressure (or temperature, for function_of=temperature) at the given Dirac point, ie P_bot + unit_weight.

(x_i - x_bottom) in the constant-unit_weight case, or the temperature-dependent-density-integrated profile otherwise.

Definition at line 307 of file PorousFlowPeacemanBorehole.C.

308{
311
312 mooseAssert(current_dirac_ptid < _bh_pressure.size(),
313 "PorousFlowPeacemanBorehole: the wellbore pressure profile has not been computed "
314 "for this Dirac point");
315 return _bh_pressure[current_dirac_ptid];
316}

Referenced by computeQpBaseOutflow(), and computeQpBaseOutflowJacobian().

◆ wellConstant()

Real PorousFlowPeacemanBorehole::wellConstant ( const RealTensorValue &  perm,
const RealTensorValue &  rot,
const Real &  half_len,
const Elem *  ele,
const Real &  rad 
) const
protected

Calculates Peaceman's form of the borehole well constant Z Chen, Y Zhang, Well flow models for various numerical methods, Int J Num Analysis and Modeling, 3 (2008) 375-388.

Definition at line 319 of file PorousFlowPeacemanBorehole.C.

325{
326 if (_well_constant > 0)
327 return _well_constant;
328
329 // rot_perm has its "2" component lying along the half segment.
330 // We want to determine the eigenvectors of rot(0:1, 0:1), since, when
331 // rotated back to the original frame we will determine the element
332 // lengths along these directions
333 const RealTensorValue rot_perm = (rot * perm) * rot.transpose();
334 const Real trace2D = rot_perm(0, 0) + rot_perm(1, 1);
335 const Real det2D = rot_perm(0, 0) * rot_perm(1, 1) - rot_perm(0, 1) * rot_perm(1, 0);
336 const Real sq = std::sqrt(std::max(0.25 * trace2D * trace2D - det2D,
337 0.0)); // the std::max accounts for wierdo precision loss
338 const Real eig_val1 = 0.5 * trace2D + sq;
339 const Real eig_val2 = 0.5 * trace2D - sq;
340 RealVectorValue eig_vec1, eig_vec2;
341 if (sq > std::abs(trace2D) * 1E-7) // matrix is not a multiple of the identity (1E-7 accounts for
342 // precision in a crude way)
343 {
344 if (rot_perm(1, 0) != 0)
345 {
346 eig_vec1(0) = eig_val1 - rot_perm(1, 1);
347 eig_vec1(1) = rot_perm(1, 0);
348 eig_vec2(0) = eig_val2 - rot_perm(1, 1);
349 eig_vec2(1) = rot_perm(1, 0);
350 }
351 else if (rot_perm(0, 1) != 0)
352 {
353 eig_vec1(0) = rot_perm(0, 1);
354 eig_vec1(1) = eig_val1 - rot_perm(0, 0);
355 eig_vec2(0) = rot_perm(0, 1);
356 eig_vec2(1) = eig_val2 - rot_perm(0, 0);
357 }
358 else // off diagonal terms are both zero
359 {
360 eig_vec1(0) = 1.0;
361 eig_vec2(1) = 1.0;
362 }
363 }
364 else // matrix is basically a multiple of the identity
365 {
366 eig_vec1(0) = 1.0;
367 eig_vec2(1) = 1.0;
368 }
369
370 // finally, rotate these to original frame and normalise
371 eig_vec1 = rot.transpose() * eig_vec1;
372 eig_vec1 /= std::sqrt(eig_vec1 * eig_vec1);
373 eig_vec2 = rot.transpose() * eig_vec2;
374 eig_vec2 /= std::sqrt(eig_vec2 * eig_vec2);
375
376 // find the "length" of the element in these directions
377 // TODO - maybe better to use variance than max&min
378 Real max1 = eig_vec1 * ele->point(0);
379 Real max2 = eig_vec2 * ele->point(0);
380 Real min1 = max1;
381 Real min2 = max2;
382 Real proj;
383 for (unsigned int i = 1; i < ele->n_nodes(); i++)
384 {
385 proj = eig_vec1 * ele->point(i);
386 max1 = (max1 < proj) ? proj : max1;
387 min1 = (min1 < proj) ? min1 : proj;
388
389 proj = eig_vec2 * ele->point(i);
390 max2 = (max2 < proj) ? proj : max2;
391 min2 = (min2 < proj) ? min2 : proj;
392 }
393 const Real ll1 = max1 - min1;
394 const Real ll2 = max2 - min2;
395
396 Real r0;
397 if (eig_val1 <= 0.0)
398 r0 = _re_constant * ll1;
399 else if (eig_val2 <= 0.0)
400 r0 = _re_constant * ll2;
401 else
402 r0 = _re_constant *
403 std::sqrt(std::sqrt(eig_val1 / eig_val2) * std::pow(ll2, 2) +
404 std::sqrt(eig_val2 / eig_val1) * std::pow(ll1, 2)) /
405 (std::pow(eig_val1 / eig_val2, 0.25) + std::pow(eig_val2 / eig_val1, 0.25));
406
407 const Real effective_perm = (det2D >= 0.0 ? std::sqrt(det2D) : 0.0);
408
409 const Real halfPi = acos(0.0);
410
411 if (r0 <= rad)
412 mooseError("The effective element size (about 0.2-times-true-ele-size) for an element "
413 "containing a Peaceman-type borehole must be (much) larger than the borehole radius "
414 "for the Peaceman formulation to be correct. Your element has effective size ",
415 r0,
416 " and the borehole radius is ",
417 rad,
418 "\n");
419
420 return 4 * halfPi * effective_perm * half_len / std::log(r0 / rad);
421}

Referenced by computeQpBaseOutflow(), and computeQpBaseOutflowJacobian().

Member Data Documentation

◆ _bh_pressure

std::vector<Real> PorousFlowPeacemanBorehole::_bh_pressure
protected

Wellbore pressure at each well point, indexed by Dirac point ID.

Only used if _use_density_from_temperature. Recomputed once per residual evaluation and once per Jacobian evaluation (see residualSetup()/jacobianSetup()) so that the residual always uses the fluid density implied by the current nonlinear iterate's temperature.

Definition at line 98 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures(), and wellborePressure().

◆ _bottom_point

Point PorousFlowLineGeometry::_bottom_point
protectedinherited

The bottom point of the borehole (where bottom_pressure is defined)

Definition at line 61 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::calcLineLengths(), computeWellborePressures(), and wellborePressure().

◆ _character

const Function& PorousFlowPeacemanBorehole::_character
protected

If positive then the borehole acts as a sink (producion well) for porepressure > borehole pressure, and does nothing otherwise If negative then the borehole acts as a source (injection well) for porepressure < borehole pressure, and does nothing otherwise The flow rate to/from the borehole is multiplied by |character|, so usually character = +/- 1.

Definition at line 52 of file PorousFlowPeacemanBorehole.h.

Referenced by computeQpBaseOutflow(), and computeQpBaseOutflowJacobian().

◆ _density_reference_pressure

const Real PorousFlowPeacemanBorehole::_density_reference_pressure
protected

Fixed pressure (Pa) at which the in-well fluid density is evaluated.

Only used if _use_density_from_temperature

Definition at line 87 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _denthalpy_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_denthalpy_dvar
protectedinherited

d(enthalpy of each phase)/d(PorousFlow variable)

Definition at line 159 of file PorousFlowLineSink.h.

◆ _dfluid_density_node_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_dfluid_density_node_dvar
protectedinherited

d(Fluid density for each phase (at the node))/d(PorousFlow variable)

Definition at line 135 of file PorousFlowLineSink.h.

◆ _dfluid_viscosity_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_dfluid_viscosity_dvar
protectedinherited

d(Viscosity of each component in each phase)/d(PorousFlow variable)

Definition at line 141 of file PorousFlowLineSink.h.

◆ _dictator

const PorousFlowDictator& PorousFlowLineSink::_dictator
protectedinherited

◆ _dinternal_energy_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_dinternal_energy_dvar
protectedinherited

d(internal_energy of each phase)/d(PorousFlow variable)

Definition at line 165 of file PorousFlowLineSink.h.

◆ _dmass_fractions_dvar

const MaterialProperty<std::vector<std::vector<std::vector<Real> > > >* const PorousFlowLineSink::_dmass_fractions_dvar
protectedinherited

d(Mass fraction of each component in each phase)/d(PorousFlow variable)

Definition at line 153 of file PorousFlowLineSink.h.

◆ _dperm_or_cond_dvar

const MaterialProperty<std::vector<RealTensorValue> >& PorousFlowPeacemanBorehole::_dperm_or_cond_dvar
protected

d(Permeability)/d(PorousFlow variable)

Definition at line 129 of file PorousFlowPeacemanBorehole.h.

◆ _dpp_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_dpp_dvar
protectedinherited

d(quadpoint pore pressure in each phase)/d(PorousFlow variable)

Definition at line 123 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::dptqp().

◆ _drelative_permeability_dvar

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_drelative_permeability_dvar
protectedinherited

d(Relative permeability of each phase)/d(PorousFlow variable)

Definition at line 147 of file PorousFlowLineSink.h.

◆ _dtemperature_dvar

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_dtemperature_dvar
protectedinherited

d(quadpoint temperature)/d(PorousFlow variable)

Definition at line 129 of file PorousFlowLineSink.h.

◆ _enthalpy

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_enthalpy
protectedinherited

Enthalpy of each phase.

Definition at line 156 of file PorousFlowLineSink.h.

◆ _fluid_density_node

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_fluid_density_node
protectedinherited

Fluid density for each phase (at the node)

Definition at line 132 of file PorousFlowLineSink.h.

◆ _fluid_viscosity

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_fluid_viscosity
protectedinherited

Viscosity of each component in each phase.

Definition at line 138 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::jac().

◆ _fp

const SinglePhaseFluidProperties* const PorousFlowPeacemanBorehole::_fp
protected

Fluid properties used to evaluate the in-well fluid density.

nullptr unless _use_density_from_temperature

Definition at line 67 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _gravity

const RealVectorValue PorousFlowPeacemanBorehole::_gravity
protected

Gravitational acceleration (in the units used elsewhere in the input file), pointing downwards.

Only used if _use_density_from_temperature

Definition at line 83 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _half_seg_len

std::vector<Real> PorousFlowLineGeometry::_half_seg_len
protectedinherited

◆ _has_enthalpy

const bool PorousFlowLineSink::_has_enthalpy
protectedinherited

Whether an enthalpy material exists (for error checking)

Definition at line 90 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_internal_energy

const bool PorousFlowLineSink::_has_internal_energy
protectedinherited

Whether an internal-energy material exists (for error checking)

Definition at line 93 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_mass_fraction

const bool PorousFlowLineSink::_has_mass_fraction
protectedinherited

Whether a mass_fraction material exists (for error checking)

Definition at line 81 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_mobility

const bool PorousFlowLineSink::_has_mobility
protectedinherited

Whether enough materials exist to form the mobility (for error checking)

Definition at line 87 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_permeability

const bool PorousFlowPeacemanBorehole::_has_permeability
protected

Whether there is a quadpoint permeability material (for error checking)

Definition at line 120 of file PorousFlowPeacemanBorehole.h.

Referenced by PorousFlowPeacemanBorehole().

◆ _has_porepressure

const bool PorousFlowLineSink::_has_porepressure
protectedinherited

Whether a quadpoint porepressure material exists (for error checking)

Definition at line 75 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_relative_permeability

const bool PorousFlowLineSink::_has_relative_permeability
protectedinherited

Whether a relative permeability material exists (for error checking)

Definition at line 84 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_temperature

const bool PorousFlowLineSink::_has_temperature
protectedinherited

Whether a quadpoint temperature material exists (for error checking)

Definition at line 78 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::PorousFlowLineSink().

◆ _has_thermal_conductivity

const bool PorousFlowPeacemanBorehole::_has_thermal_conductivity
protected

Whether there is a quadpoint thermal conductivity material (for error checking)

Definition at line 123 of file PorousFlowPeacemanBorehole.h.

Referenced by PorousFlowPeacemanBorehole().

◆ _internal_energy

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_internal_energy
protectedinherited

Internal_Energy of each phase.

Definition at line 162 of file PorousFlowLineSink.h.

◆ _line_base

std::vector<Real> PorousFlowLineGeometry::_line_base
privateinherited

alternative (to the point file data) line weight and start point.

Definition at line 88 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::initialSetup(), and PorousFlowLineGeometry::regenPoints().

◆ _line_direction

const RealVectorValue PorousFlowLineGeometry::_line_direction
protectedinherited

Line direction. This is only used if there is only one borehole point.

Definition at line 39 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::initialSetup(), initialSetup(), and PorousFlowLineGeometry::regenPoints().

◆ _line_length

const Real PorousFlowLineGeometry::_line_length
protectedinherited

Line length. This is only used if there is only one borehole point.

Definition at line 36 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::calcLineLengths(), PorousFlowLineGeometry::initialSetup(), and PorousFlowLineGeometry::regenPoints().

◆ _mass_fractions

const MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowLineSink::_mass_fractions
protectedinherited

Mass fraction of each component in each phase.

Definition at line 150 of file PorousFlowLineSink.h.

◆ _multiplying_var

const VariableValue& PorousFlowLineSink::_multiplying_var
protectedinherited

mass flux is multiplied by this variable evaluated at quadpoints

Definition at line 168 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), and PorousFlowLineSink::jac().

◆ _p_bot

const Function& PorousFlowPeacemanBorehole::_p_bot
protected

Bottomhole pressure of borehole.

Definition at line 55 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures(), and wellborePressure().

◆ _p_or_t

enum PorousFlowLineSink::PorTchoice PorousFlowLineSink::_p_or_t
protectedinherited

◆ _perm_or_cond

const MaterialProperty<RealTensorValue>& PorousFlowPeacemanBorehole::_perm_or_cond
protected

Permeability or conductivity of porous material.

Definition at line 126 of file PorousFlowPeacemanBorehole.h.

Referenced by computeQpBaseOutflow(), and computeQpBaseOutflowJacobian().

◆ _ph

const unsigned int PorousFlowLineSink::_ph
protectedinherited

◆ _point_file

const std::string PorousFlowLineGeometry::_point_file
protectedinherited

File defining the geometry of the borehole.

Each row has format weight x y z and the list of such points defines a polyline that is the line sink

Definition at line 46 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::initialSetup(), initialSetup(), PorousFlowLineGeometry::PorousFlowLineGeometry(), and PorousFlowLineGeometry::regenPoints().

◆ _point_fluxes

PorousFlowPointFluxQuantity* const PorousFlowLineSink::_point_fluxes
protectedinherited

Optional recorder of the instantaneous flux at each Dirac point of this line sink.

nullptr unless the PointFluxUO parameter was supplied. Unlike _total_outflow_mass, this is not multiplied by the timestep size.

Definition at line 72 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::addPoints(), and PorousFlowLineSink::computeQpResidual().

◆ _pp

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_pp
protectedinherited

Quadpoint pore pressure in each phase.

Definition at line 120 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::ptqp().

◆ _re_constant

const Real PorousFlowPeacemanBorehole::_re_constant
protected

Borehole constant.

Definition at line 114 of file PorousFlowPeacemanBorehole.h.

◆ _relative_permeability

const MaterialProperty<std::vector<Real> >* const PorousFlowLineSink::_relative_permeability
protectedinherited

Relative permeability of each phase.

Definition at line 144 of file PorousFlowLineSink.h.

◆ _rot_matrix

std::vector<RealTensorValue> PorousFlowPeacemanBorehole::_rot_matrix
protected

Rotation matrix used in well_constant calculation.

Definition at line 132 of file PorousFlowPeacemanBorehole.h.

Referenced by computeQpBaseOutflow(), computeQpBaseOutflowJacobian(), and initialSetup().

◆ _rs

std::vector<Real> PorousFlowLineGeometry::_rs
protectedinherited

Radii of the borehole.

Definition at line 49 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::initialSetup(), and PorousFlowLineGeometry::regenPoints().

◆ _sp

const unsigned int PorousFlowLineSink::_sp
protectedinherited

The component number (only used if _use_mass_fraction==true)

Definition at line 117 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _t_c2k

const Real PorousFlowPeacemanBorehole::_t_c2k
protected

Conversion of unit_weight_temperature's values to Kelvin (0 for Kelvin, 273.15 for Celsius)

Definition at line 90 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _temperature

const MaterialProperty<Real>* const PorousFlowLineSink::_temperature
protectedinherited

Quadpoint temperature.

Definition at line 126 of file PorousFlowLineSink.h.

◆ _temperature_system

const libMesh::System* const PorousFlowPeacemanBorehole::_temperature_system
protected

The libMesh system holding _temperature_var, used to sample that variable at borehole points that may lie outside this processor's mesh partition.

nullptr unless _use_density_from_temperature

Definition at line 76 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _temperature_var

const MooseVariableFieldBase* const PorousFlowPeacemanBorehole::_temperature_var
protected

The coupled unit_weight_temperature variable.

nullptr unless _use_density_from_temperature

Definition at line 71 of file PorousFlowPeacemanBorehole.h.

◆ _temperature_var_number

const unsigned int PorousFlowPeacemanBorehole::_temperature_var_number
protected

Variable number of unit_weight_temperature within _temperature_system.

Definition at line 79 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures().

◆ _total_outflow_mass

PorousFlowSumQuantity& PorousFlowLineSink::_total_outflow_mass
protectedinherited

This is used to hold the total fluid flowing into the line sink for each time step.

Hence, it is positive for production wells where fluid is flowing from porespace into the line sink (and hence removed from the model)

Definition at line 65 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::addPoints(), PorousFlowLineSink::computeQpResidual(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _unit_weight

const RealVectorValue PorousFlowPeacemanBorehole::_unit_weight
protected

Unit weight of fluid in borehole (for calculating bottomhole pressure at each Dirac Point).

Not used if _use_density_from_temperature is true.

Definition at line 59 of file PorousFlowPeacemanBorehole.h.

Referenced by wellborePressure().

◆ _use_density_from_temperature

const bool PorousFlowPeacemanBorehole::_use_density_from_temperature
protected

Whether the wellbore pressure profile is built from a temperature-dependent fluid density (true if the 'unit_weight_fp' parameter was supplied) rather than from the constant _unit_weight.

Definition at line 63 of file PorousFlowPeacemanBorehole.h.

Referenced by computeWellborePressures(), PorousFlowPeacemanBorehole(), and wellborePressure().

◆ _use_enthalpy

const bool PorousFlowLineSink::_use_enthalpy
protectedinherited

Whether the flux will be multiplied by the enthalpy.

Definition at line 108 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _use_internal_energy

const bool PorousFlowLineSink::_use_internal_energy
protectedinherited

Whether the flux will be multiplied by the internal-energy.

Definition at line 111 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _use_mass_fraction

const bool PorousFlowLineSink::_use_mass_fraction
protectedinherited

Whether the flux will be multiplied by the mass fraction.

Definition at line 99 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _use_mobility

const bool PorousFlowLineSink::_use_mobility
protectedinherited

Whether the flux will be multiplied by the mobility.

Definition at line 105 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _use_relative_permeability

const bool PorousFlowLineSink::_use_relative_permeability
protectedinherited

Whether the flux will be multiplied by the relative permeability.

Definition at line 102 of file PorousFlowLineSink.h.

Referenced by PorousFlowLineSink::computeQpResidual(), PorousFlowLineSink::jac(), and PorousFlowLineSink::PorousFlowLineSink().

◆ _usingReporter

const bool PorousFlowLineGeometry::_usingReporter
protectedinherited

◆ _weight

const std::vector<Real>* const PorousFlowLineGeometry::_weight
protectedinherited

◆ _well_constant

const Real PorousFlowPeacemanBorehole::_well_constant
protected

Well constant.

Definition at line 117 of file PorousFlowPeacemanBorehole.h.

◆ _x_coord

const std::vector<Real>* const PorousFlowLineGeometry::_x_coord
protectedinherited

reporter input alternative (to the point file and line_base data)

Definition at line 77 of file PorousFlowLineGeometry.h.

Referenced by PorousFlowLineGeometry::addPoints(), PorousFlowLineSink::addPoints(), computeWellborePressures(), and PorousFlowLineGeometry::initialSetup().

◆ _xs

std::vector<Real> PorousFlowLineGeometry::_xs
protectedinherited

◆ _y_coord

const std::vector<Real>* const PorousFlowLineGeometry::_y_coord
protectedinherited

◆ _ys

std::vector<Real> PorousFlowLineGeometry::_ys
protectedinherited

◆ _z_coord

const std::vector<Real>* const PorousFlowLineGeometry::_z_coord
protectedinherited

◆ _zs

std::vector<Real> PorousFlowLineGeometry::_zs
protectedinherited

The documentation for this class was generated from the following files: