www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
PiecewiseLinearInterpolationMaterial Class Reference

This material uses a LinearInterpolation object to define the dependence of the material's value on a variable. More...

#include <PiecewiseLinearInterpolationMaterial.h>

Inheritance diagram for PiecewiseLinearInterpolationMaterial:
[legend]

Public Types

enum  TEST_TYPE { ALL, ANY }
 A flag changing the behavior of hasBoundary. More...
 

Public Member Functions

 PiecewiseLinearInterpolationMaterial (const InputParameters &parameters)
 
const MaterialProperty< U > & getDefaultMaterialProperty (const std::string &name)
 Fetch a material property if it exists, otherwise return getZeroMaterialProperty. More...
 
const MaterialProperty< U > & getDefaultMaterialPropertyByName (const std::string &name)
 Fetch a material property by name if it exists, otherwise return getZeroMaterialProperty. More...
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 Check if the material property base exists. More...
 
virtual void initStatefulProperties (unsigned int n_points)
 Initialize stateful properties (if material has some) More...
 
virtual void computeProperties ()
 Performs the quadrature point loop, calling computeQpProperties. More...
 
virtual void resetProperties ()
 Resets the properties at each quadrature point (see resetQpProperties), only called if 'compute = false'. More...
 
virtual void computePropertiesAtQp (unsigned int qp)
 A method for (re)computing the properties of a Material. More...
 
template<typename T >
const MaterialProperty< T > & getZeroMaterialProperty (const std::string &prop_name)
 Return a material property that is initialized to zero by default and does not need to (but can) be declared by another material. More...
 
virtual const std::set< std::string > & getRequestedItems () override
 Return a set of properties accessed with getMaterialProperty. More...
 
virtual const std::set< std::string > & getSuppliedItems () override
 Return a set of properties accessed with declareProperty. More...
 
void checkStatefulSanity () const
 
std::set< OutputName > getOutputs ()
 Get the list of output objects that this class is restricted. More...
 
bool isBoundaryMaterial () const
 Returns true of the MaterialData type is not associated with volume data. More...
 
virtual void subdomainSetup () override
 Subdomain setup evaluating material properties when required. More...
 
const std::string & name () const
 Get the name of the object. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
MooseAppgetMooseApp ()
 Get the MooseApp this object is associated with. More...
 
virtual bool enabled ()
 Return the enabled status of the object. More...
 
template<typename... Args>
void mooseError (Args &&...args) const
 
template<typename... Args>
void mooseWarning (Args &&...args) const
 
template<typename... Args>
void mooseDeprecated (Args &&...args) const
 
template<typename... Args>
void mooseInfo (Args &&...args) const
 
const std::vector< SubdomainName > & blocks () const
 Return the block names for this object. More...
 
unsigned int numBlocks () const
 Return the number of blocks for this object. More...
 
virtual const std::set< SubdomainID > & blockIDs () const
 Return the block subdomain ids for this object. More...
 
bool hasBlocks (const SubdomainName &name) const
 Test if the supplied block name is valid for this object. More...
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 Test if the supplied vector of block names are valid for this object. More...
 
bool hasBlocks (const SubdomainID &id) const
 Test if the supplied block ids are valid for this object. More...
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 Test if the supplied vector block ids are valid for this object. More...
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 Test if the supplied set of block ids are valid for this object. More...
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 Test if the class block ids are a subset of the supplied objects. More...
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 Test if the class block ids are a subset of the supplied objects. More...
 
template<typename T >
bool hasBlockMaterialProperty (const std::string &prop_name)
 Check if a material property is valid for all blocks of this object. More...
 
const std::set< SubdomainID > & meshBlockIDs () const
 Return all of the SubdomainIDs for the mesh. More...
 
virtual bool blockRestricted () const
 Returns true if this object has been restricted to a boundary. More...
 
void checkVariable (const MooseVariable &variable) const
 Helper for checking that the ids for this object are in agreement with the variables on the supplied variable. More...
 
virtual const std::set< BoundaryID > & boundaryIDs () const
 Return the boundary IDs for this object. More...
 
const std::vector< BoundaryName > & boundaryNames () const
 Return the boundary names for this object. More...
 
unsigned int numBoundaryIDs () const
 Return the number of boundaries for this object. More...
 
bool hasBoundary (const BoundaryName &name) const
 Test if the supplied boundary name is valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryName > &names) const
 Test if the supplied vector of boundary names are valid for this object. More...
 
bool hasBoundary (const BoundaryID &id) const
 Test if the supplied boundary ids are valid for this object. More...
 
bool hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied vector boundary ids are valid for this object. More...
 
bool hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const
 Test if the supplied set of boundary ids are valid for this object. More...
 
bool isBoundarySubset (const std::set< BoundaryID > &ids) const
 Test if the class boundary ids are a subset of the supplied objects. More...
 
bool isBoundarySubset (const std::vector< BoundaryID > &ids) const
 
template<typename T >
bool hasBoundaryMaterialProperty (const std::string &prop_name) const
 Check if a material property is valid for all boundaries of this object. More...
 
virtual bool boundaryRestricted () const
 Returns true if this object has been restricted to a boundary. More...
 
const std::set< BoundaryID > & meshBoundaryIDs () const
 Returns the set of all boundary ids for the entire mesh. More...
 
virtual void initialSetup ()
 Gets called at the beginning of the simulation before this object is asked to do its job. More...
 
virtual void timestepSetup ()
 Gets called at the beginning of the timestep before this object is asked to do its job. More...
 
virtual void jacobianSetup ()
 Gets called just before the Jacobian is computed and before this object is asked to do its job. More...
 
virtual void residualSetup ()
 Gets called just before the residual is computed and before this object is asked to do its job. More...
 
virtual const std::vector< ExecFlagType > & execFlags () const
 Get the execution flag for the object. More...
 
ExecFlagType execBitFlags () const
 Build and return the execution flags as a bitfield. More...
 
const std::map< std::string, std::vector< MooseVariable * > > & getCoupledVars ()
 Get the list of coupled variables. More...
 
const std::vector< MooseVariable * > & getCoupledMooseVars () const
 Get the list of coupled variables. More...
 
const std::set< MooseVariable * > & getMooseVariableDependencies () const
 Retrieve the set of MooseVariables that this object depends on. More...
 
const std::vector< MooseVariableScalar * > & getCoupledMooseScalarVars ()
 Get the list of coupled scalar variables. More...
 
FunctiongetFunction (const std::string &name)
 Get a function with a given name. More...
 
FunctiongetFunctionByName (const FunctionName &name)
 Get a function with a given name. More...
 
DistributiongetDistribution (const std::string &name)
 Get a distribution with a given name. More...
 
DistributiongetDistributionByName (const DistributionName &name)
 Get a distribution with a given name. More...
 
template<class T >
const T & getUserObject (const std::string &name)
 Get an user object with a given parameter name. More...
 
template<class T >
const T & getUserObjectByName (const std::string &name)
 Get an user object with a given name. More...
 
const UserObjectgetUserObjectBase (const std::string &name)
 Get an user object with a given parameter name. More...
 
const UserObjectgetUserObjectBaseByName (const std::string &name)
 Get an user object with a given name. More...
 
bool isImplicit ()
 
template<typename T >
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 Retrieve pointer to a material property with the mesh blocks where it is defined The name required by this method is the name defined in the input file. More...
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 Retrieve the block ids that the material property is defined. More...
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 Retrieve the block names that the material property is defined. More...
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 Retrieve the boundary ids that the material property is defined. More...
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 Retrieve the boundary namess that the material property is defined. More...
 
void statefulPropertiesAllowed (bool)
 Derived classes can declare whether or not they work with stateful material properties. More...
 
bool getMaterialPropertyCalled () const
 Returns true if getMaterialProperty() has been called, false otherwise. More...
 
const std::set< unsigned int > & getMatPropDependencies () const
 Retrieve the set of material properties that this object depends on. More...
 
template<>
const MaterialProperty< Real > * defaultMaterialProperty (const std::string &name)
 
bool hasPostprocessor (const std::string &name) const
 Determine if the Postprocessor exists. More...
 
bool hasPostprocessorByName (const PostprocessorName &name)
 Determine if the Postprocessor exists. More...
 
virtual const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &name, const std::string &vector_name)
 Retrieve the value of a VectorPostprocessor. More...
 
virtual const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name)
 Retrieve the value of the VectorPostprocessor. More...
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &name, const std::string &vector_name)
 Retrieve the old value of a VectorPostprocessor. More...
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name)
 Retrieve the old value of a VectorPostprocessor. More...
 
bool hasVectorPostprocessor (const std::string &name) const
 Determine if the VectorPostprocessor exists. More...
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 Determine if the VectorPostprocessor exists. More...
 
virtual void meshChanged ()
 Called on this object when the mesh changes. More...
 
void buildOutputHideVariableList (std::set< std::string > variable_names)
 Builds hide lists for output objects NOT listed in the 'outputs' parameter. More...
 
void setRandomResetFrequency (ExecFlagType exec_flag)
 This interface should be called from a derived class to enable random number generation in this object. More...
 
unsigned long getRandomLong () const
 Returns the next random number (long) from the generator tied to this object (elem/node). More...
 
Real getRandomReal () const
 Returns the next random number (Real) from the generator tied to this object (elem/node). More...
 
unsigned int getSeed (unsigned int id)
 Get the seed for the passed in elem/node id. More...
 
unsigned int getMasterSeed () const
 
bool isNodal () const
 
ExecFlagType getResetOnTime () const
 
void setRandomDataPointer (RandomData *random_data)
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< VariableName > &c) const
 Helper functions to generate the material property names for the arbitrary derivatives. More...
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const VariableName &c1) const
 Helper functions to generate the material property names for the first derivatives. More...
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const VariableName &c1, const VariableName &c2) const
 Helper functions to generate the material property names for the second derivatives. More...
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const VariableName &c1, const VariableName &c2, const VariableName &c3) const
 Helper functions to generate the material property names for the third derivatives. More...
 
MaterialProperty< U > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 Methods for declaring derivative material properties. More...
 
MaterialProperty< U > & declarePropertyDerivative (const std::string &base, const VariableName &c1, const VariableName &c2="", const VariableName &c3="")
 
const MaterialProperty< U > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 Methods for retreiving derivative material properties. More...
 
const MaterialProperty< U > & getMaterialPropertyDerivative (const std::string &base, const VariableName &c1, const VariableName &c2="", const VariableName &c3="")
 
const MaterialProperty< U > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 Methods for retreiving derivative material properties. More...
 
const MaterialProperty< U > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const VariableName &c1, const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 check if derivatives of the passed in material property exist w.r.t a variable that is not coupled in to the current object More...
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
template<typename T >
const MaterialProperty< T > & getMaterialProperty (const std::string &name)
 Retrieve the property through a given input parameter key with a fallback to getting it by name. More...
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyByName (const std::string &prop_name)
 Retrieve the property named "name". More...
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOldByName (const std::string &prop_name)
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOlderByName (const std::string &prop_name)
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name)
 Retrieve reference to material property or its old or older value The name required by this method is the name defined in the input file. More...
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
template<typename T >
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
template<typename T >
MaterialProperty< T > & declareProperty (const std::string &prop_name)
 Declare the property named "name". More...
 
template<typename T >
MaterialProperty< T > & declarePropertyOld (const std::string &prop_name)
 
template<typename T >
MaterialProperty< T > & declarePropertyOlder (const std::string &prop_name)
 
MaterialgetMaterial (const std::string &name)
 Return a Material reference - usable for computing directly. More...
 
MaterialgetMaterialByName (const std::string &name, bool no_warn=false)
 
template<typename T >
bool hasMaterialProperty (const std::string &name)
 Check if the material property exists. More...
 
template<typename T >
bool hasMaterialPropertyByName (const std::string &name)
 
const PostprocessorValuegetPostprocessorValue (const std::string &name)
 Retrieve the value of a Postprocessor or one of it's old or older values. More...
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &name)
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &name)
 
const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name)
 Retrieve the value of the Postprocessor. More...
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name)
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name)
 
const PostprocessorValuegetDefaultPostprocessorValue (const std::string &name)
 Return the default postprocessor value. More...
 

Static Public Member Functions

static bool restricted (const std::set< BoundaryID > &ids)
 Helper for determining if the object is boundary restricted. More...
 
static MultiMooseEnum getExecuteOptions ()
 Returns the available options for the 'execute_on' input parameters. More...
 
template<typename T >
static void sort (typename std::vector< T > &vector)
 Given a vector, sort using the getRequested/SuppliedItems sets. More...
 
template<typename T >
static void cyclicDependencyError (CyclicDependencyException< T > &e, const std::string &header)
 A helper method for cyclic errors. More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Protected Types

enum  ConstantTypeEnum { NONE, ELEMENT, SUBDOMAIN }
 
enum  QP_Data_Type { CURR, PREV }
 
enum  Prop_State { CURRENT = 0x1, OLD = 0x2, OLDER = 0x4 }
 

Protected Member Functions

virtual void computeQpProperties () override
 Users must override this method. More...
 
virtual void computeSubdomainProperties ()
 Evaluate material properties on subdomain. More...
 
virtual void resetQpProperties ()
 Resets the properties prior to calculation of traditional materials (only if 'compute = false'). More...
 
virtual void initQpStatefulProperties ()
 Initialize stateful properties at quadrature points. More...
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty. More...
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 An initialization routine needed for dual constructors. More...
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 Check if the blocks this object operates on all have the same coordinate system, and if so return it. More...
 
bool hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const
 A helper method to avoid circular #include problems. More...
 
virtual bool isCoupled (const std::string &var_name, unsigned int i=0)
 Returns true if a variables has been coupled as name. More...
 
unsigned int coupledComponents (const std::string &var_name)
 Number of coupled components. More...
 
virtual void coupledCallback (const std::string &var_name, bool is_old)
 
virtual unsigned int coupled (const std::string &var_name, unsigned int comp=0)
 Returns the index for a coupled variable by name. More...
 
virtual const VariableValuecoupledValue (const std::string &var_name, unsigned int comp=0)
 Returns value of a coupled variable. More...
 
virtual VariableValuewritableCoupledValue (const std::string &var_name, unsigned int comp=0)
 Returns a writable reference to a coupled variable. More...
 
virtual const VariableValuecoupledValueOld (const std::string &var_name, unsigned int comp=0)
 Returns an old value from previous time step of a coupled variable. More...
 
virtual const VariableValuecoupledValueOlder (const std::string &var_name, unsigned int comp=0)
 Returns an old value from two time steps previous of a coupled variable. More...
 
virtual const VariableValuecoupledValuePreviousNL (const std::string &var_name, unsigned int comp=0)
 Returns value of previous Newton iterate of a coupled variable. More...
 
virtual const VariableGradientcoupledGradient (const std::string &var_name, unsigned int comp=0)
 Returns gradient of a coupled variable. More...
 
virtual const VariableGradientcoupledGradientOld (const std::string &var_name, unsigned int comp=0)
 Returns an old gradient from previous time step of a coupled variable. More...
 
virtual const VariableGradientcoupledGradientOlder (const std::string &var_name, unsigned int comp=0)
 Returns an old gradient from two time steps previous of a coupled variable. More...
 
virtual const VariableGradientcoupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0)
 Returns gradient of a coupled variable for previous Newton iterate. More...
 
virtual const VariableSecondcoupledSecond (const std::string &var_name, unsigned int comp=0)
 Returns second derivative of a coupled variable. More...
 
virtual const VariableSecondcoupledSecondOld (const std::string &var_name, unsigned int comp=0)
 Returns an old second derivative from previous time step of a coupled variable. More...
 
virtual const VariableSecondcoupledSecondOlder (const std::string &var_name, unsigned int comp=0)
 Returns an old second derivative from two time steps previous of a coupled variable. More...
 
virtual const VariableSecondcoupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0)
 Returns second derivative of a coupled variable for the previous Newton iterate. More...
 
virtual const VariableValuecoupledDot (const std::string &var_name, unsigned int comp=0)
 Time derivative of a coupled variable. More...
 
virtual const VariableValuecoupledDotDu (const std::string &var_name, unsigned int comp=0)
 Time derivative of a coupled variable with respect to the coefficients. More...
 
virtual const VariableValuecoupledNodalValue (const std::string &var_name, unsigned int comp=0)
 Returns nodal values of a coupled variable. More...
 
virtual const VariableValuecoupledNodalValueOld (const std::string &var_name, unsigned int comp=0)
 Returns an old nodal value from previous time step of a coupled variable. More...
 
virtual const VariableValuecoupledNodalValueOlder (const std::string &var_name, unsigned int comp=0)
 Returns an old nodal value from two time steps previous of a coupled variable. More...
 
virtual const VariableValuecoupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0)
 Returns nodal values of a coupled variable for previous Newton iterate. More...
 
virtual const VariableValuecoupledNodalDot (const std::string &var_name, unsigned int comp=0)
 Nodal values of time derivative of a coupled variable. More...
 
virtual const DenseVector< Number > & coupledSolutionDoFs (const std::string &var_name, unsigned int comp=0)
 Returns DoFs in the current solution vector of a coupled variable for the local element. More...
 
virtual const DenseVector< Number > & coupledSolutionDoFsOld (const std::string &var_name, unsigned int comp=0)
 Returns DoFs in the old solution vector of a coupled variable for the local element. More...
 
virtual const DenseVector< Number > & coupledSolutionDoFsOlder (const std::string &var_name, unsigned int comp=0)
 Returns DoFs in the older solution vector of a coupled variable for the local element. More...
 
MooseVariablegetVar (const std::string &var_name, unsigned int comp)
 Extract pointer to a coupled variable. More...
 
void validateExecutionerType (const std::string &name) const
 Checks to make sure that the current Executioner has set "_it_transient" when old/older values are coupled in. More...
 
VariableValuegetDefaultValue (const std::string &var_name)
 Helper method to return (and insert if necessary) the default value for an uncoupled variable. More...
 
void addMooseVariableDependency (MooseVariable *var)
 Call this function to add the passed in MooseVariable as a variable that this object depends on. More...
 
void addMooseVariableDependency (std::vector< MooseVariable * > vars)
 
virtual bool isCoupledScalar (const std::string &var_name, unsigned int i=0)
 Returns true if a variables has been coupled_as name. More...
 
virtual unsigned int coupledScalarComponents (const std::string &var_name)
 Return the number of components to the coupled scalar variable. More...
 
virtual unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0)
 Returns the index for a scalar coupled variable by name. More...
 
virtual Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0)
 Returns the order for a scalar coupled variable by name. More...
 
virtual VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0)
 Returns value of a scalar coupled variable. More...
 
virtual VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0)
 Returns the old (previous time step) value of a scalar coupled variable. More...
 
virtual VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0)
 Returns the older (two time steps previous) value of a scalar coupled variable. More...
 
virtual VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0)
 Returns the time derivative of a scalar coupled variable. More...
 
virtual VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0)
 Time derivative of a scalar coupled variable with respect to the coefficients. More...
 
MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp)
 Extract pointer to a scalar coupled variable. More...
 
void checkMaterialProperty (const std::string &name)
 A helper method for checking material properties This method was required to avoid a compiler problem with the template getMaterialProperty method. More...
 
void markMatPropRequested (const std::string &)
 A proxy method for _mi_feproblem.markMatPropRequested(name) More...
 
std::string deducePropertyName (const std::string &name)
 Small helper to look up a material property name through the input parameter keys. More...
 
template<typename T >
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 Helper function to parse default material property values. More...
 
template<typename T >
T & declareRestartableData (std::string data_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableData (std::string data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, void *context)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, const T &init_value, void *context)
 Declare a piece of data as "restartable" and initialize it. More...
 

Protected Attributes

std::string _prop_name
 Name of the property to be computed. More...
 
const VariableValue_coupled_var
 Value of the coupled variable to be used as the abscissa in the piecewise linear interpolation. More...
 
const Real _scale_factor
 Factor to scale the ordinate values by (default = 1) More...
 
MaterialProperty< Real > * _property
 Material property to be calculated. More...
 
MaterialProperty< Real > * _dproperty
 First derivative of the material property wrt the coupled variable. More...
 
std::unique_ptr< LinearInterpolation_linear_interp
 LinearInterpolation object. More...
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
THREAD_ID _tid
 
Assembly_assembly
 
bool _bnd
 
bool _neighbor
 
unsigned int _qp
 
QBase *& _qrule
 
const MooseArray< Real > & _JxW
 
const MooseArray< Real > & _coord
 
const MooseArray< Point > & _q_point
 
const MooseArray< Point > & _normals
 normals at quadrature points (valid only in boundary materials) More...
 
const Elem *& _current_elem
 
const SubdomainID_current_subdomain_id
 
unsigned int & _current_side
 current side of the current element More...
 
MooseMesh_mesh
 
const Moose::CoordinateSystemType_coord_sys
 Coordinate system. More...
 
std::set< std::string > _requested_props
 Set of properties accessed via get method. More...
 
std::set< std::string > _supplied_props
 Set of properties declared. More...
 
std::set< unsigned int > _supplied_prop_ids
 The ids of the supplied properties, i.e. More...
 
const bool _compute
 If False MOOSE does not compute this property. More...
 
const ConstantTypeEnum _constant_option
 Options of the constantness level of the material. More...
 
std::map< std::string, int > _props_to_flags
 
MooseApp_app
 The MooseApp this object is associated with. More...
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
const std::string & _name
 The name of this object, reference to value stored in InputParameters. More...
 
const bool & _enabled
 Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects. More...
 
std::shared_ptr< MaterialData_blk_material_data
 Pointer to the MaterialData class for this object. More...
 
std::vector< ExecFlagType_exec_flags
 execution flag (when is the object executed/evaluated) More...
 
const ExecFlagType_current_execute_flag
 Reference to FEProblemBase. More...
 
const InputParameters_c_parameters
 
FEProblemBase_c_fe_problem
 
std::map< std::string, std::vector< MooseVariable * > > _coupled_vars
 Coupled vars whose values we provide. More...
 
std::vector< MooseVariable * > _coupled_moose_vars
 Vector of coupled variables. More...
 
bool _c_nodal
 True if we provide coupling to nodal values. More...
 
bool _c_is_implicit
 True if implicit value is required. More...
 
const InputParameters_coupleable_params
 Local InputParameters. More...
 
const InputParameters_coupleable_params
 Local InputParameters. More...
 
std::map< std::string, VariableValue * > _default_value
 Will hold the default value for optional coupled variables. More...
 
std::map< std::string, VariableValue * > _default_value
 Will hold the default value for optional coupled scalar variables. More...
 
VariableValue _default_value_zero
 This will always be zero because the default values for optionally coupled variables is always constant and this is used for time derivative info. More...
 
VariableGradient _default_gradient
 This will always be zero because the default values for optionally coupled variables is always constant. More...
 
VariableSecond _default_second
 This will always be zero because the default values for optionally coupled variables is always constant. More...
 
bool _coupleable_neighbor
 Whether or not this object is a "neighbor" object: ie all of it's coupled values should be neighbor values. More...
 
const InputParameters_sc_parameters
 
FEProblemBase_sc_fe_problem
 
std::map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
 Coupled vars whose values we provide. More...
 
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
 Vector of coupled variables. More...
 
bool _sc_is_implicit
 True if implicit value is required. More...
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 If the object is using implicit or explicit form. More...
 
Real & _t
 Time. More...
 
int & _t_step
 The number of the time step. More...
 
Real & _dt
 Time step size. More...
 
Real & _dt_old
 Size of the old time step. More...
 
bool _is_transient
 
const InputParameters_mi_params
 Parameters of the object with this interface. More...
 
const std::string _mi_name
 The name of the object that this interface belongs to. More...
 
Moose::MaterialDataType _material_data_type
 The type of data. More...
 
std::shared_ptr< MaterialData_material_data
 Pointer to the material data class that stores properties. More...
 
FEProblemBase_mi_feproblem
 Reference to the FEProblemBase class. More...
 
const THREAD_ID _mi_tid
 Current threaded it. More...
 
bool _stateful_allowed
 True by default. More...
 
bool _get_material_property_called
 Initialized to false. More...
 
std::vector< std::unique_ptr< MaterialProperty< Real > > > _default_real_properties
 Storage vector for MaterialProperty<Real> default objects. More...
 
std::set< unsigned int > _material_property_dependencies
 The set of material properties (as given by their IDs) that this object depends on. More...
 
FEProblemBase_zi_feproblem
 
THREAD_ID _zi_tid
 
const Real & _real_zero
 
const VariableValue_zero
 
const VariableGradient_grad_zero
 
const VariableSecond_second_zero
 
const VariablePhiSecond_second_phi_zero
 
FEProblemBase_mci_feproblem
 Reference to FEProblemBase instance. More...
 

Detailed Description

This material uses a LinearInterpolation object to define the dependence of the material's value on a variable.

Definition at line 32 of file PiecewiseLinearInterpolationMaterial.h.

Member Enumeration Documentation

enum Material::ConstantTypeEnum
protectedinherited
Enumerator
NONE 
ELEMENT 
SUBDOMAIN 

Definition at line 259 of file Material.h.

260  {
261  NONE,
262  ELEMENT,
263  SUBDOMAIN
264  };
enum Material::Prop_State
protectedinherited
Enumerator
CURRENT 
OLD 
OLDER 

Definition at line 275 of file Material.h.

276  {
277  CURRENT = 0x1,
278  OLD = 0x2,
279  OLDER = 0x4
280  };
enum Material::QP_Data_Type
protectedinherited
Enumerator
CURR 
PREV 

Definition at line 269 of file Material.h.

270  {
271  CURR,
272  PREV
273  };

A flag changing the behavior of hasBoundary.

Enumerator
ALL 
ANY 

Definition at line 40 of file BoundaryRestrictable.h.

Constructor & Destructor Documentation

PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial ( const InputParameters parameters)

Definition at line 40 of file PiecewiseLinearInterpolationMaterial.C.

43  _prop_name(getParam<std::string>("property")),
44  _coupled_var(coupledValue("variable")),
45  _scale_factor(getParam<Real>("scale_factor"))
46 {
47  std::vector<Real> x;
48  std::vector<Real> y;
49 
50  if ((parameters.isParamValid("x")) || (parameters.isParamValid("y")))
51  {
52  if (!((parameters.isParamValid("x")) && (parameters.isParamValid("y"))))
53  mooseError("In PiecewiseLinearInterpolationMaterial ",
54  _name,
55  ": Both 'x' and 'y' must be specified if either one is specified.");
56 
57  if (parameters.isParamValid("xy_data"))
58  mooseError("In PiecewiseLinearInterpolationMaterial ",
59  _name,
60  ": Cannot specify 'x', 'y', and 'xy_data' together.");
61 
62  x = getParam<std::vector<Real>>("x");
63  y = getParam<std::vector<Real>>("y");
64  }
65  else if (parameters.isParamValid("xy_data"))
66  {
67  std::vector<Real> xy = getParam<std::vector<Real>>("xy_data");
68  unsigned int xy_size = xy.size();
69  if (xy_size % 2 != 0)
70  mooseError("In PiecewiseLinearInterpolationMaterial ",
71  _name,
72  ": Length of data provided in 'xy_data' must be a multiple of 2.");
73 
74  unsigned int x_size = xy_size / 2;
75  x.reserve(x_size);
76  y.reserve(x_size);
77  for (unsigned int i = 0; i < xy_size / 2; ++i)
78  {
79  x.push_back(xy[i * 2]);
80  y.push_back(xy[i * 2 + 1]);
81  }
82  }
83 
84  try
85  {
86  _linear_interp = libmesh_make_unique<LinearInterpolation>(x, y);
87  }
88  catch (std::domain_error & e)
89  {
90  mooseError("In PiecewiseLinearInterpolationMaterial ", _name, ": ", e.what());
91  }
92 
93  _property = &declareProperty<Real>(_prop_name);
94  const VariableName & vname = getVar("variable", 0)->name();
95  _dproperty = &declarePropertyDerivative<Real>(_prop_name, vname);
96 }
MaterialProperty< Real > * _dproperty
First derivative of the material property wrt the coupled variable.
const VariableValue & _coupled_var
Value of the coupled variable to be used as the abscissa in the piecewise linear interpolation.
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
static PetscErrorCode Vec x
const std::string & name() const
Get the variable name.
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.
MaterialProperty< Real > * _property
Material property to be calculated.
std::unique_ptr< LinearInterpolation > _linear_interp
LinearInterpolation object.
virtual const VariableValue & coupledValue(const std::string &var_name, unsigned int comp=0)
Returns value of a coupled variable.
Definition: Coupleable.C:167
const std::string & _name
The name of this object, reference to value stored in InputParameters.
Definition: MooseObject.h:114
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:53
void mooseError(Args &&...args) const
Definition: MooseObject.h:80
std::string _prop_name
Name of the property to be computed.
const Real _scale_factor
Factor to scale the ordinate values by (default = 1)

Member Function Documentation

void MooseVariableDependencyInterface::addMooseVariableDependency ( MooseVariable var)
inlineprotectedinherited

Call this function to add the passed in MooseVariable as a variable that this object depends on.

Definition at line 42 of file MooseVariableDependencyInterface.h.

Referenced by AuxNodalScalarKernel::AuxNodalScalarKernel(), CoupleableMooseVariableDependencyIntermediateInterface::CoupleableMooseVariableDependencyIntermediateInterface(), DGKernel::DGKernel(), ElementIndicator::ElementIndicator(), ElementIntegralVariablePostprocessor::ElementIntegralVariablePostprocessor(), ElementIntegralVariableUserObject::ElementIntegralVariableUserObject(), ElementUserObject::ElementUserObject(), ElementVariablePostprocessor::ElementVariablePostprocessor(), IntegratedBC::IntegratedBC(), InterfaceKernel::InterfaceKernel(), InternalSideIndicator::InternalSideIndicator(), InternalSideUserObject::InternalSideUserObject(), KernelBase::KernelBase(), Marker::Marker(), Material::Material(), NeighborCoupleableMooseVariableDependencyIntermediateInterface::NeighborCoupleableMooseVariableDependencyIntermediateInterface(), NodalBC::NodalBC(), NodalKernel::NodalKernel(), NodalScalarKernel::NodalScalarKernel(), NodalUserObject::NodalUserObject(), QuadraturePointMarker::QuadraturePointMarker(), SideIntegralVariablePostprocessor::SideIntegralVariablePostprocessor(), SideIntegralVariableUserObject::SideIntegralVariableUserObject(), and SideUserObject::SideUserObject().

42 { _moose_variable_dependencies.insert(var); }
std::set< MooseVariable * > _moose_variable_dependencies
void MooseVariableDependencyInterface::addMooseVariableDependency ( std::vector< MooseVariable * >  vars)
inlineprotectedinherited

Definition at line 43 of file MooseVariableDependencyInterface.h.

44  {
45  _moose_variable_dependencies.insert(vars.begin(), vars.end());
46  }
std::set< MooseVariable * > _moose_variable_dependencies
const std::set< SubdomainID > & BlockRestrictable::blockIDs ( ) const
virtualinherited

Return the block subdomain ids for this object.

Returns
a set of SudomainIDs that are valid for this object

Definition at line 168 of file BlockRestrictable.C.

Referenced by BlockRestrictable::getBlockCoordSystem(), Material::getZeroMaterialProperty(), BlockRestrictable::hasBlockMaterialPropertyHelper(), Material::registerPropName(), and BlockRestrictable::~BlockRestrictable().

169 {
170  return _blk_ids;
171 }
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
bool BlockRestrictable::blockRestricted ( ) const
virtualinherited

Returns true if this object has been restricted to a boundary.

See also
MooseObject

Definition at line 156 of file BlockRestrictable.C.

Referenced by BlockRestrictable::checkVariable(), BlockRestrictable::getBlockCoordSystem(), BlockRestrictable::hasBlockMaterialPropertyHelper(), and BlockRestrictable::~BlockRestrictable().

157 {
158  return _blk_ids.find(Moose::ANY_BLOCK_ID) == _blk_ids.end();
159 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.h:117
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
const std::vector< SubdomainName > & BlockRestrictable::blocks ( ) const
inherited

Return the block names for this object.

Note, if the 'blocks' input parameter was not utilized this will return an empty vector.

Returns
vector of SubdomainNames that are valid for this object

Definition at line 162 of file BlockRestrictable.C.

Referenced by BlockRestrictable::~BlockRestrictable().

163 {
164  return _blocks;
165 }
std::vector< SubdomainName > _blocks
Vector the block names supplied by the user via the input file.
const std::set< BoundaryID > & BoundaryRestrictable::boundaryIDs ( ) const
virtualinherited

Return the boundary IDs for this object.

Returns
A set of all boundary ids for which the object is restricted

Definition at line 153 of file BoundaryRestrictable.C.

Referenced by NonlinearSystemBase::addBoundaryCondition(), NonlinearSystemBase::addInterfaceKernel(), AutoPositionsMultiApp::fillPositions(), Material::getZeroMaterialProperty(), BoundaryRestrictable::hasBoundaryMaterialPropertyHelper(), and Material::registerPropName().

154 {
155  return _bnd_ids;
156 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const std::vector< BoundaryName > & BoundaryRestrictable::boundaryNames ( ) const
inherited

Return the boundary names for this object.

Returns
A set of all boundary names for which the object is restricted

Definition at line 159 of file BoundaryRestrictable.C.

Referenced by NearestNodeDistanceAux::NearestNodeDistanceAux(), and NearestNodeValueAux::NearestNodeValueAux().

160 {
161  return _boundary_names;
162 }
std::vector< BoundaryName > _boundary_names
Vector the the boundary names.
bool BoundaryRestrictable::boundaryRestricted ( ) const
virtualinherited

Returns true if this object has been restricted to a boundary.

See also
MooseObject

Definition at line 171 of file BoundaryRestrictable.C.

Referenced by DerivativeMaterialInterface< T >::haveMaterialProperty().

172 {
174 }
static bool restricted(const std::set< BoundaryID > &ids)
Helper for determining if the object is boundary restricted.
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
void OutputInterface::buildOutputHideVariableList ( std::set< std::string >  variable_names)
inherited

Builds hide lists for output objects NOT listed in the 'outputs' parameter.

Parameters
variable_namesA set of variables for which the 'outputs' parameter controls

By default this is called by the constructor and passes the block name as the list of variables. This needs to be called explicitly if the build_list flag is set to False in the constructor. The latter cases is needed by the Material object to work correctly with the automatic material output capability.

Definition at line 67 of file OutputInterface.C.

Referenced by CheckOutputAction::checkVariableOutput(), and OutputInterface::OutputInterface().

68 {
69  // Set of available names
70  const std::set<OutputName> & avail = _oi_output_warehouse.getOutputNames();
71 
72  // Check for 'none'; hide variables on all outputs
73  if (_oi_outputs.find("none") != _oi_outputs.end())
74  for (const auto & name : avail)
75  _oi_output_warehouse.addInterfaceHideVariables(name, variable_names);
76 
77  // Check for empty and 'all' in 'outputs' parameter; do not perform any variable restrictions in
78  // these cases
79  else if (_oi_outputs.empty() || _oi_outputs.find("all") != _oi_outputs.end())
80  return;
81 
82  // Limit the variable output to Output objects listed
83  else
84  {
85  // Create a list of outputs where the variable should be hidden
86  std::set<OutputName> hide;
87  std::set_difference(avail.begin(),
88  avail.end(),
89  _oi_outputs.begin(),
90  _oi_outputs.end(),
91  std::inserter(hide, hide.begin()));
92 
93  // If 'outputs' is specified add the object name to the list of items to hide
94  for (const auto & name : hide)
95  _oi_output_warehouse.addInterfaceHideVariables(name, variable_names);
96  }
97 }
OutputWarehouse & _oi_output_warehouse
Reference to the OutputWarehouse for populating the Output object hide lists.
std::set< OutputName > _oi_outputs
The set of Output object names listed in the &#39;outputs&#39; parameter.
const std::set< OutputName > & getOutputNames()
Get a complete set of all output object names.
void addInterfaceHideVariables(const std::string &output_name, const std::set< std::string > &variable_names)
Insert variable names for hiding via the OutoutInterface.
void MaterialPropertyInterface::checkMaterialProperty ( const std::string &  name)
protectedinherited

A helper method for checking material properties This method was required to avoid a compiler problem with the template getMaterialProperty method.

Definition at line 138 of file MaterialPropertyInterface.C.

Referenced by MaterialPropertyInterface::getMaterialPropertyByName().

139 {
140  // If the material property is boundary restrictable, add to the list of materials to check
142  for (const auto & bnd_id : _mi_boundary_ids)
144 
145  // The default is to assume block restrictions
146  else
147  for (const auto & blk_ids : _mi_block_ids)
149 }
virtual void storeDelayedCheckMatProp(const std::string &requestor, SubdomainID block_id, const std::string &name)
Adds to a map based on block ids of material properties to validate.
Definition: SubProblem.C:244
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
const std::set< SubdomainID > & _mi_block_ids
Storage for the block ids created by BlockRestrictable.
const bool _mi_boundary_restricted
BoundaryRestricted flag.
const std::set< BoundaryID > & _mi_boundary_ids
Storage for the boundary ids created by BoundaryRestrictable.
const std::string _mi_name
The name of the object that this interface belongs to.
void Material::checkStatefulSanity ( ) const
inherited

Definition at line 154 of file Material.C.

Referenced by Material::getSuppliedItems().

155 {
156  for (const auto & it : _props_to_flags)
157  if (static_cast<int>(it.second) % 2 == 0) // Only Stateful properties declared!
158  mooseError("Material '", name(), "' requests undefined stateful property '", it.first, "'");
159 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
std::map< std::string, int > _props_to_flags
Definition: Material.h:281
void mooseError(Args &&...args) const
Definition: MooseObject.h:80
void BlockRestrictable::checkVariable ( const MooseVariable variable) const
inherited

Helper for checking that the ids for this object are in agreement with the variables on the supplied variable.

Parameters
variableThe variable to check against.

Definition at line 308 of file BlockRestrictable.C.

Referenced by BlockRestrictable::~BlockRestrictable().

309 {
310  if (!isBlockSubset(variable.activeSubdomains()))
311  {
312  std::string var_ids = Moose::stringify(variable.activeSubdomains(), ", ");
313  std::string obj_ids = Moose::stringify(blockRestricted() ? _blk_ids : meshBlockIDs(), ", ");
314  mooseError("The 'block' parameter of the object '",
315  _blk_name,
316  "' must be a subset of the 'block' parameter of the variable '",
317  variable.name(),
318  "':\n Object '",
319  _blk_name,
320  "': ",
321  obj_ids,
322  "\n Variable '",
323  variable.name(),
324  "': ",
325  var_ids);
326  }
327 }
bool isBlockSubset(const std::set< SubdomainID > &ids) const
Test if the class block ids are a subset of the supplied objects.
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
const std::string & name() const
Get the variable name.
const std::set< SubdomainID > & activeSubdomains() const
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:66
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
const std::string & _blk_name
Name of the object.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a boundary.
void Material::computeProperties ( )
virtualinherited

Performs the quadrature point loop, calling computeQpProperties.

Definition at line 219 of file Material.C.

220 {
221  if (_constant_option == ConstantTypeEnum::SUBDOMAIN)
222  return;
223 
224  // If this Material has the _constant_on_elem flag set, we take the
225  // value computed for _qp==0 and use it at all the quadrature points
226  // in the Elem.
227  if (_constant_option == ConstantTypeEnum::ELEMENT)
228  {
229  // Compute MaterialProperty values at the first qp.
230  _qp = 0;
232 
233  // Reference to *all* the MaterialProperties in the MaterialData object, not
234  // just the ones for this Material.
235  MaterialProperties & props = _material_data->props();
236 
237  // Now copy the values computed at qp 0 to all the other qps.
238  for (const auto & prop_id : _supplied_prop_ids)
239  {
240  auto nqp = _qrule->n_points();
241  for (decltype(nqp) qp = 1; qp < nqp; ++qp)
242  props[prop_id]->qpCopy(qp, props[prop_id], 0);
243  }
244  }
245  else
246  {
247  for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
249  }
250 }
virtual void computeQpProperties()
Users must override this method.
Definition: Material.C:253
Container for storing material properties.
const ConstantTypeEnum _constant_option
Options of the constantness level of the material.
Definition: Material.h:267
std::set< unsigned int > _supplied_prop_ids
The ids of the supplied properties, i.e.
Definition: Material.h:254
unsigned int _qp
Definition: Material.h:220
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
QBase *& _qrule
Definition: Material.h:222
void Material::computePropertiesAtQp ( unsigned int  qp)
virtualinherited

A method for (re)computing the properties of a Material.

This is intended to be called from other objects, by first calling MaterialPropertyInterface::getMaterial and then calling this method on the Material object returned.

Definition at line 276 of file Material.C.

277 {
278  _qp = qp;
280 }
virtual void computeQpProperties()
Users must override this method.
Definition: Material.C:253
unsigned int _qp
Definition: Material.h:220
void PiecewiseLinearInterpolationMaterial::computeQpProperties ( )
overrideprotectedvirtual

Users must override this method.

Reimplemented from Material.

Definition at line 99 of file PiecewiseLinearInterpolationMaterial.C.

100 {
101  (*_property)[_qp] = _scale_factor * _linear_interp->sample(_coupled_var[_qp]);
102  (*_dproperty)[_qp] = _scale_factor * _linear_interp->sampleDerivative(_coupled_var[_qp]);
103 }
const VariableValue & _coupled_var
Value of the coupled variable to be used as the abscissa in the piecewise linear interpolation.
unsigned int _qp
Definition: Material.h:220
std::unique_ptr< LinearInterpolation > _linear_interp
LinearInterpolation object.
const Real _scale_factor
Factor to scale the ordinate values by (default = 1)
void Material::computeSubdomainProperties ( )
protectedvirtualinherited

Evaluate material properties on subdomain.

Definition at line 213 of file Material.C.

Referenced by Material::isBoundaryMaterial(), and Material::subdomainSetup().

214 {
215  mooseError("computeSubdomainQpProperties in Material '", name(), "' needs to be implemented");
216 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
void mooseError(Args &&...args) const
Definition: MooseObject.h:80
unsigned int Coupleable::coupled ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the index for a coupled variable by name.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Index of coupled variable, if this is an optionally coupled variable that wasn't provided this will return a unique "invalid" index.

Reimplemented in ShapeUserObject< ElementUserObject >, and ShapeUserObject< SideUserObject >.

Definition at line 136 of file Coupleable.C.

Referenced by NodalEqualValueConstraint::NodalEqualValueConstraint().

137 {
138  if (!isCoupled(var_name))
139  return _optional_var_index[var_name];
140 
141  MooseVariable * var = getVar(var_name, comp);
142  switch (var->kind())
143  {
145  return var->number();
147  return std::numeric_limits<unsigned int>::max() - var->number();
148  }
149  mooseError("Unknown variable kind. Corrupted binary?");
150 }
Class for stuff related to variables.
Definition: MooseVariable.h:43
Moose::VarKindType kind() const
Kind of the variable (Nonlinear, Auxiliary, ...)
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
unsigned int number() const
Get variable number coming from libMesh.
std::map< std::string, unsigned int > _optional_var_index
Unique indices for optionally coupled vars that weren&#39;t provided.
Definition: Coupleable.h:378
void Coupleable::coupledCallback ( const std::string &  var_name,
bool  is_old 
)
protectedvirtualinherited
unsigned int Coupleable::coupledComponents ( const std::string &  var_name)
protectedinherited

Number of coupled components.

Parameters
var_nameName of the variable
Returns
number of components this variable has (usually 1)

Definition at line 111 of file Coupleable.C.

Referenced by NodalEqualValueConstraint::NodalEqualValueConstraint(), SphericalAverage::SphericalAverage(), and VolumeHistogram::VolumeHistogram().

112 {
113  return _coupled_vars[var_name].size();
114 }
std::map< std::string, std::vector< MooseVariable * > > _coupled_vars
Coupled vars whose values we provide.
Definition: Coupleable.h:321
const VariableValue & Coupleable::coupledDot ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Time derivative of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the time derivative of the coupled variable
See also
Kernel::dot

Reimplemented in AuxKernel.

Definition at line 296 of file Coupleable.C.

Referenced by AuxKernel::coupledDot().

297 {
298  if (!isCoupled(var_name)) // Return default 0
299  return _default_value_zero;
300 
301  MooseVariable * var = getVar(var_name, comp);
302 
304  {
305  if (_c_nodal)
306  return var->nodalSlnDot();
307  else
308  return var->uDot();
309  }
310  else
311  {
312  if (_c_nodal)
313  return var->nodalSlnDotNeighbor();
314  else
315  return var->uDotNeighbor();
316  }
317 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & uDotNeighbor()
VariableValue _default_value_zero
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:339
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableValue & nodalSlnDot()
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & uDot()
const VariableValue & nodalSlnDotNeighbor()
const VariableValue & Coupleable::coupledDotDu ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Time derivative of a coupled variable with respect to the coefficients.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the time derivative of the coupled variable with respect to the coefficients
See also
Kernel:dotDu

Reimplemented in AuxKernel.

Definition at line 320 of file Coupleable.C.

Referenced by AuxKernel::coupledDotDu().

321 {
322  if (!isCoupled(var_name)) // Return default 0
323  return _default_value_zero;
324 
325  MooseVariable * var = getVar(var_name, comp);
326 
328  {
329  if (_c_nodal)
330  return var->nodalSlnDuDotDu();
331  else
332  return var->duDotDu();
333  }
334  else
335  {
336  if (_c_nodal)
337  return var->nodalSlnDuDotDu();
338  else
339  return var->duDotDu();
340  }
341 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
VariableValue _default_value_zero
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:339
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
const VariableValue & duDotDu()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalSlnDuDotDu()
const VariableGradient & Coupleable::coupledGradient ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns gradient of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableGradient containing the gradient of the coupled variable
See also
Kernel::gradient

Definition at line 344 of file Coupleable.C.

345 {
346  if (!isCoupled(var_name)) // Return default 0
347  return _default_gradient;
348 
349  coupledCallback(var_name, false);
350  if (_c_nodal)
351  mooseError("Nodal variables do not have gradients");
352 
353  MooseVariable * var = getVar(var_name, comp);
354 
356  return (_c_is_implicit) ? var->gradSln() : var->gradSlnOld();
357  else
358  return (_c_is_implicit) ? var->gradSlnNeighbor() : var->gradSlnOldNeighbor();
359 }
const VariableGradient & gradSlnNeighbor()
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
const VariableGradient & gradSlnOld()
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
const VariableGradient & gradSlnOldNeighbor()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableGradient _default_gradient
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:342
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableGradient & gradSln()
const VariableGradient & Coupleable::coupledGradientOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old gradient from previous time step of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableGradient containing the old gradient of the coupled variable
See also
Kernel::gradientOld

Definition at line 362 of file Coupleable.C.

363 {
364  if (!isCoupled(var_name)) // Return default 0
365  return _default_gradient;
366 
367  coupledCallback(var_name, true);
368  if (_c_nodal)
369  mooseError("Nodal variables do not have gradients");
370 
371  validateExecutionerType(var_name);
372  MooseVariable * var = getVar(var_name, comp);
373 
375  return (_c_is_implicit) ? var->gradSlnOld() : var->gradSlnOlder();
376  else
377  return (_c_is_implicit) ? var->gradSlnOldNeighbor() : var->gradSlnOlderNeighbor();
378 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
const VariableGradient & gradSlnOld()
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
const VariableGradient & gradSlnOldNeighbor()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableGradient _default_gradient
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:342
const VariableGradient & gradSlnOlderNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableGradient & gradSlnOlder()
const VariableGradient & Coupleable::coupledGradientOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old gradient from two time steps previous of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableGradient containing the older gradient of the coupled variable
See also
Kernel::gradientOlder

Definition at line 381 of file Coupleable.C.

382 {
383  if (!isCoupled(var_name)) // Return default 0
384  return _default_gradient;
385 
386  coupledCallback(var_name, true);
387  if (_c_nodal)
388  mooseError("Nodal variables do not have gradients");
389 
390  validateExecutionerType(var_name);
391  MooseVariable * var = getVar(var_name, comp);
392 
393  if (_c_is_implicit)
394  {
396  return var->gradSlnOlder();
397  else
398  return var->gradSlnOlderNeighbor();
399  }
400  else
401  mooseError("Older values not available for explicit schemes");
402 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableGradient _default_gradient
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:342
const VariableGradient & gradSlnOlderNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableGradient & gradSlnOlder()
const VariableGradient & Coupleable::coupledGradientPreviousNL ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns gradient of a coupled variable for previous Newton iterate.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableGradient containing the gradient of the coupled variable

Definition at line 405 of file Coupleable.C.

406 {
407  if (!isCoupled(var_name)) // Return default 0
408  return _default_gradient;
409 
411  coupledCallback(var_name, true);
412  if (_c_nodal)
413  mooseError("Nodal variables do not have gradients");
414 
415  MooseVariable * var = getVar(var_name, comp);
416 
418  return var->gradSlnPreviousNL();
419  else
420  return var->gradSlnPreviousNLNeighbor();
421 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableGradient & gradSlnPreviousNLNeighbor()
FEProblemBase & _c_fe_problem
Definition: Coupleable.h:318
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableGradient _default_gradient
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:342
const VariableGradient & gradSlnPreviousNL()
void needsPreviousNewtonIteration(bool state)
Set a flag that indicated that user required values for the previous Newton iterate.
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & Coupleable::coupledNodalDot ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Nodal values of time derivative of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the nodal values of time derivative of the coupled variable

Definition at line 568 of file Coupleable.C.

569 {
570  if (!isCoupled(var_name)) // Return default 0
571  return _default_value_zero;
572 
573  coupledCallback(var_name, false);
574  MooseVariable * var = getVar(var_name, comp);
575 
577  return var->nodalValueDot();
578  else
579  return var->nodalValueDotNeighbor();
580 }
Class for stuff related to variables.
Definition: MooseVariable.h:43
VariableValue _default_value_zero
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:339
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableValue & nodalValueDotNeighbor()
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalValueDot()
const VariableValue & Coupleable::coupledNodalValue ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns nodal values of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue for the coupled variable

Definition at line 501 of file Coupleable.C.

502 {
503  if (!isCoupled(var_name))
504  return *getDefaultValue(var_name);
505 
506  coupledCallback(var_name, false);
507  MooseVariable * var = getVar(var_name, comp);
508 
510  return (_c_is_implicit) ? var->nodalValue() : var->nodalValueOld();
511  else
512  return (_c_is_implicit) ? var->nodalValueNeighbor() : var->nodalValueOldNeighbor();
513 }
const VariableValue & nodalValue()
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & nodalValueNeighbor()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & nodalValueOldNeighbor()
const VariableValue & nodalValueOld()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & Coupleable::coupledNodalValueOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old nodal value from previous time step of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the old value of the coupled variable

Definition at line 516 of file Coupleable.C.

517 {
518  if (!isCoupled(var_name))
519  return *getDefaultValue(var_name);
520 
521  validateExecutionerType(var_name);
522  coupledCallback(var_name, true);
523  MooseVariable * var = getVar(var_name, comp);
524 
526  return (_c_is_implicit) ? var->nodalValueOld() : var->nodalValueOlder();
527  else
529 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
Class for stuff related to variables.
Definition: MooseVariable.h:43
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & nodalValueOldNeighbor()
const VariableValue & nodalValueOld()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalValueOlderNeighbor()
const VariableValue & nodalValueOlder()
const VariableValue & Coupleable::coupledNodalValueOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old nodal value from two time steps previous of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the older value of the coupled variable

Definition at line 532 of file Coupleable.C.

533 {
534  if (!isCoupled(var_name))
535  return *getDefaultValue(var_name);
536 
537  validateExecutionerType(var_name);
538  coupledCallback(var_name, true);
539  MooseVariable * var = getVar(var_name, comp);
540  if (_c_is_implicit)
541  {
543  return var->nodalValueOlder();
544  else
545  return var->nodalValueOlderNeighbor();
546  }
547  else
548  mooseError("Older values not available for explicit schemes");
549 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalValueOlderNeighbor()
const VariableValue & nodalValueOlder()
const VariableValue & Coupleable::coupledNodalValuePreviousNL ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns nodal values of a coupled variable for previous Newton iterate.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue for the coupled variable

Definition at line 552 of file Coupleable.C.

553 {
554  if (!isCoupled(var_name))
555  return *getDefaultValue(var_name);
556 
558  coupledCallback(var_name, true);
559  MooseVariable * var = getVar(var_name, comp);
560 
562  return var->nodalValuePreviousNL();
563  else
564  return var->nodalValuePreviousNLNeighbor();
565 }
Class for stuff related to variables.
Definition: MooseVariable.h:43
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
const VariableValue & nodalValuePreviousNL()
FEProblemBase & _c_fe_problem
Definition: Coupleable.h:318
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
void needsPreviousNewtonIteration(bool state)
Set a flag that indicated that user required values for the previous Newton iterate.
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalValuePreviousNLNeighbor()
unsigned int ScalarCoupleable::coupledScalar ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the index for a scalar coupled variable by name.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Index of coupled variable

Definition at line 99 of file ScalarCoupleable.C.

Referenced by ParsedODEKernel::ParsedODEKernel().

100 {
101  return getScalarVar(var_name, comp)->number();
102 }
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
unsigned int number() const
Get variable number coming from libMesh.
unsigned int ScalarCoupleable::coupledScalarComponents ( const std::string &  var_name)
protectedvirtualinherited

Return the number of components to the coupled scalar variable.

Parameters
var_nameThe of the coupled variable

Definition at line 189 of file ScalarCoupleable.C.

190 {
191  return _coupled_scalar_vars[var_name].size();
192 }
std::map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
Coupled vars whose values we provide.
VariableValue & ScalarCoupleable::coupledScalarDot ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the time derivative of a scalar coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a time derivative VariableValue for the coupled variable

Definition at line 161 of file ScalarCoupleable.C.

162 {
163  MooseVariableScalar * var = getScalarVar(var_name, comp);
164  return var->uDot();
165 }
VariableValue & uDot()
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
Class for scalar variables (they are different).
VariableValue & ScalarCoupleable::coupledScalarDotDu ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Time derivative of a scalar coupled variable with respect to the coefficients.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the time derivative of the coupled variable with respect to the coefficients

Definition at line 168 of file ScalarCoupleable.C.

169 {
170  MooseVariableScalar * var = getScalarVar(var_name, comp);
171  return var->duDotDu();
172 }
VariableValue & duDotDu()
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
Class for scalar variables (they are different).
Order ScalarCoupleable::coupledScalarOrder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the order for a scalar coupled variable by name.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Order of coupled variable

Definition at line 105 of file ScalarCoupleable.C.

106 {
107  if (!isCoupledScalar(var_name, comp))
109 
110  return getScalarVar(var_name, comp)->order();
111 }
virtual bool isCoupledScalar(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled_as name.
FEProblemBase & _sc_fe_problem
Order getMaxScalarOrder() const
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
Order order() const
Get the order of this variable Note: Order enum can be implicitly converted to unsigned int...
VariableValue & ScalarCoupleable::coupledScalarValue ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns value of a scalar coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue for the coupled variable

Definition at line 128 of file ScalarCoupleable.C.

Referenced by ParsedODEKernel::ParsedODEKernel().

129 {
130  if (!isCoupledScalar(var_name, comp))
131  return *getDefaultValue(var_name);
132 
133  MooseVariableScalar * var = getScalarVar(var_name, comp);
134  return (_sc_is_implicit) ? var->sln() : var->slnOld();
135 }
VariableValue & sln()
virtual bool isCoupledScalar(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled_as name.
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
bool _sc_is_implicit
True if implicit value is required.
Class for scalar variables (they are different).
VariableValue & slnOld()
VariableValue & ScalarCoupleable::coupledScalarValueOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the old (previous time step) value of a scalar coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a old VariableValue for the coupled variable

Definition at line 138 of file ScalarCoupleable.C.

139 {
140  if (!isCoupledScalar(var_name, comp))
141  return *getDefaultValue(var_name);
142 
143  MooseVariableScalar * var = getScalarVar(var_name, comp);
144  return (_sc_is_implicit) ? var->slnOld() : var->slnOlder();
145 }
virtual bool isCoupledScalar(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled_as name.
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
bool _sc_is_implicit
True if implicit value is required.
Class for scalar variables (they are different).
VariableValue & slnOlder()
VariableValue & slnOld()
VariableValue & ScalarCoupleable::coupledScalarValueOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns the older (two time steps previous) value of a scalar coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a older VariableValue for the coupled variable

Definition at line 148 of file ScalarCoupleable.C.

149 {
150  if (!isCoupledScalar(var_name, comp))
151  return *getDefaultValue(var_name);
152 
153  MooseVariableScalar * var = getScalarVar(var_name, comp);
154  if (_sc_is_implicit)
155  return var->slnOlder();
156  else
157  mooseError("Older values not available for explicit schemes");
158 }
virtual bool isCoupledScalar(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled_as name.
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
MooseVariableScalar * getScalarVar(const std::string &var_name, unsigned int comp)
Extract pointer to a scalar coupled variable.
bool _sc_is_implicit
True if implicit value is required.
Class for scalar variables (they are different).
VariableValue & slnOlder()
const VariableSecond & Coupleable::coupledSecond ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns second derivative of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableSecond containing the second derivative of the coupled variable
See also
Kernel::second

Definition at line 424 of file Coupleable.C.

425 {
426  if (!isCoupled(var_name)) // Return default 0
427  return _default_second;
428 
429  coupledCallback(var_name, false);
430  if (_c_nodal)
431  mooseError("Nodal variables do not have second derivatives");
432 
433  MooseVariable * var = getVar(var_name, comp);
434 
436  return (_c_is_implicit) ? var->secondSln() : var->secondSlnOlder();
437  else
438  return (_c_is_implicit) ? var->secondSlnNeighbor() : var->secondSlnOlderNeighbor();
439 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
const VariableSecond & secondSln()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableSecond & secondSlnOlder()
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableSecond _default_second
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:345
const VariableSecond & secondSlnOlderNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableSecond & secondSlnNeighbor()
const VariableSecond & Coupleable::coupledSecondOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old second derivative from previous time step of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableSecond containing the old second derivative of the coupled variable
See also
Kernel::secondOld

Definition at line 442 of file Coupleable.C.

443 {
444  if (!isCoupled(var_name)) // Return default 0
445  return _default_second;
446 
447  coupledCallback(var_name, true);
448  if (_c_nodal)
449  mooseError("Nodal variables do not have second derivatives");
450 
451  validateExecutionerType(var_name);
452  MooseVariable * var = getVar(var_name, comp);
454  return (_c_is_implicit) ? var->secondSlnOld() : var->secondSlnOlder();
455  else
457 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
const VariableSecond & secondSlnOldNeighbor()
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableSecond & secondSlnOld()
const VariableSecond & secondSlnOlder()
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableSecond _default_second
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:345
const VariableSecond & secondSlnOlderNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableSecond & Coupleable::coupledSecondOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old second derivative from two time steps previous of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableSecond containing the older second derivative of the coupled variable
See also
Kernel::secondOlder

Definition at line 460 of file Coupleable.C.

461 {
462  if (!isCoupled(var_name)) // Return default 0
463  return _default_second;
464 
465  coupledCallback(var_name, true);
466  if (_c_nodal)
467  mooseError("Nodal variables do not have second derivatives");
468 
469  validateExecutionerType(var_name);
470  MooseVariable * var = getVar(var_name, comp);
471  if (_c_is_implicit)
472  {
474  return var->secondSlnOlder();
475  else
476  return var->secondSlnOlderNeighbor();
477  }
478  else
479  mooseError("Older values not available for explicit schemes");
480 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const VariableSecond & secondSlnOlder()
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableSecond _default_second
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:345
const VariableSecond & secondSlnOlderNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableSecond & Coupleable::coupledSecondPreviousNL ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns second derivative of a coupled variable for the previous Newton iterate.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableSecond containing the second derivative of the coupled variable

Definition at line 483 of file Coupleable.C.

484 {
485  if (!isCoupled(var_name)) // Return default 0
486  return _default_second;
487 
489  coupledCallback(var_name, true);
490  if (_c_nodal)
491  mooseError("Nodal variables do not have second derivatives");
492 
493  MooseVariable * var = getVar(var_name, comp);
495  return var->secondSlnPreviousNL();
496  else
497  return var->secondSlnPreviousNLNeighbor();
498 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
const VariableSecond & secondSlnPreviousNL()
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
FEProblemBase & _c_fe_problem
Definition: Coupleable.h:318
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
VariableSecond _default_second
This will always be zero because the default values for optionally coupled variables is always consta...
Definition: Coupleable.h:345
void needsPreviousNewtonIteration(bool state)
Set a flag that indicated that user required values for the previous Newton iterate.
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableSecond & secondSlnPreviousNLNeighbor()
const DenseVector< Number > & Coupleable::coupledSolutionDoFs ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns DoFs in the current solution vector of a coupled variable for the local element.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a DenseVector for the DoFs of the coupled variable

Definition at line 583 of file Coupleable.C.

584 {
585  // default coupling is not available for elemental solutions
586  if (!isCoupled(var_name))
587  mooseError("invalid variable name for coupledSolutionDoFs");
588 
589  if (_c_nodal)
590  mooseError("nodal objects should not call coupledSolutionDoFs");
591 
592  coupledCallback(var_name, false);
593  MooseVariable * var = getVar(var_name, comp);
594 
596  return (_c_is_implicit) ? var->solutionDoFs() : var->solutionDoFsOld();
597  else
599 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
const DenseVector< Number > & solutionDoFsOld()
Class for stuff related to variables.
Definition: MooseVariable.h:43
const DenseVector< Number > & solutionDoFsNeighbor()
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
const DenseVector< Number > & solutionDoFs()
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const DenseVector< Number > & solutionDoFsOldNeighbor()
const DenseVector< Number > & Coupleable::coupledSolutionDoFsOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns DoFs in the old solution vector of a coupled variable for the local element.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a DenseVector for the old DoFs of the coupled variable

Definition at line 602 of file Coupleable.C.

603 {
604  // default coupling is not available for elemental solutions
605  if (!isCoupled(var_name))
606  mooseError("invalid variable name for coupledSolutionDoFsOld");
607 
608  if (_c_nodal)
609  mooseError("nodal objects should not call coupledSolutionDoFsOld");
610 
611  validateExecutionerType(var_name);
612  coupledCallback(var_name, true);
613  MooseVariable * var = getVar(var_name, comp);
614 
616  return (_c_is_implicit) ? var->solutionDoFsOld() : var->solutionDoFsOlder();
617  else
619 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
const DenseVector< Number > & solutionDoFsOld()
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
const DenseVector< Number > & solutionDoFsOlder()
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const DenseVector< Number > & solutionDoFsOlderNeighbor()
const DenseVector< Number > & solutionDoFsOldNeighbor()
const DenseVector< Number > & Coupleable::coupledSolutionDoFsOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns DoFs in the older solution vector of a coupled variable for the local element.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a DenseVector for the older DoFs of the coupled variable

Definition at line 622 of file Coupleable.C.

623 {
624  // default coupling is not available for elemental solutions
625  if (!isCoupled(var_name))
626  mooseError("invalid variable name for coupledSolutionDoFsOlder");
627 
628  if (_c_nodal)
629  mooseError("nodal objects should not call coupledSolutionDoFsOlder");
630 
631  validateExecutionerType(var_name);
632  coupledCallback(var_name, true);
633  MooseVariable * var = getVar(var_name, comp);
634  if (_c_is_implicit)
635  {
637  return var->solutionDoFsOlder();
638  else
639  return var->solutionDoFsOlderNeighbor();
640  }
641  else
642  mooseError("Older values not available for explicit schemes");
643 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
const DenseVector< Number > & solutionDoFsOlder()
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const DenseVector< Number > & solutionDoFsOlderNeighbor()
const VariableValue & Coupleable::coupledValue ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns value of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue for the coupled variable
See also
Kernel::value

Definition at line 167 of file Coupleable.C.

Referenced by NodalEqualValueConstraint::NodalEqualValueConstraint(), ParsedAux::ParsedAux(), SphericalAverage::SphericalAverage(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), and Coupleable::writableCoupledValue().

168 {
169  if (!isCoupled(var_name))
170  return *getDefaultValue(var_name);
171 
172  coupledCallback(var_name, false);
173  MooseVariable * var = getVar(var_name, comp);
174 
176  {
177  if (_c_nodal)
178  return (_c_is_implicit) ? var->nodalSln() : var->nodalSlnOld();
179  else
180  return (_c_is_implicit) ? var->sln() : var->slnOld();
181  }
182  else
183  {
184  if (_c_nodal)
185  return (_c_is_implicit) ? var->nodalSlnNeighbor() : var->nodalSlnOldNeighbor();
186  else
187  return (_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor();
188  }
189 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & nodalSlnNeighbor()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
const VariableValue & nodalSlnOldNeighbor()
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & slnOld()
const VariableValue & nodalSlnOld()
const VariableValue & slnOldNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & nodalSln()
const VariableValue & sln()
const VariableValue & slnNeighbor()
const VariableValue & Coupleable::coupledValueOld ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old value from previous time step of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the old value of the coupled variable
See also
Kernel::valueOld

Definition at line 198 of file Coupleable.C.

Referenced by VariableTimeIntegrationAux::VariableTimeIntegrationAux().

199 {
200  if (!isCoupled(var_name))
201  return *getDefaultValue(var_name);
202 
203  validateExecutionerType(var_name);
204  coupledCallback(var_name, true);
205  MooseVariable * var = getVar(var_name, comp);
206 
208  {
209  if (_c_nodal)
210  return (_c_is_implicit) ? var->nodalSlnOld() : var->nodalSlnOlder();
211  else
212  return (_c_is_implicit) ? var->slnOld() : var->slnOlder();
213  }
214  else
215  {
216  if (_c_nodal)
217  return (_c_is_implicit) ? var->nodalSlnOldNeighbor() : var->nodalSlnOlderNeighbor();
218  else
219  return (_c_is_implicit) ? var->slnOldNeighbor() : var->slnOlderNeighbor();
220  }
221 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & slnOlder()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
const VariableValue & nodalSlnOldNeighbor()
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & slnOld()
const VariableValue & nodalSlnOlderNeighbor()
const VariableValue & nodalSlnOld()
const VariableValue & slnOlderNeighbor()
const VariableValue & nodalSlnOlder()
const VariableValue & slnOldNeighbor()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & Coupleable::coupledValueOlder ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns an old value from two time steps previous of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the older value of the coupled variable
See also
Kernel::valueOlder

Definition at line 224 of file Coupleable.C.

Referenced by VariableTimeIntegrationAux::VariableTimeIntegrationAux().

225 {
226  if (!isCoupled(var_name))
227  return *getDefaultValue(var_name);
228 
229  validateExecutionerType(var_name);
230  coupledCallback(var_name, true);
231  MooseVariable * var = getVar(var_name, comp);
232 
234  {
235  if (_c_nodal)
236  {
237  if (_c_is_implicit)
238  return var->nodalSlnOlder();
239  else
240  mooseError("Older values not available for explicit schemes");
241  }
242  else
243  {
244  if (_c_is_implicit)
245  return var->slnOlder();
246  else
247  mooseError("Older values not available for explicit schemes");
248  }
249  }
250  else
251  {
252  if (_c_nodal)
253  {
254  if (_c_is_implicit)
255  return var->nodalSlnOlderNeighbor();
256  else
257  mooseError("Older values not available for explicit schemes");
258  }
259  else
260  {
261  if (_c_is_implicit)
262  return var->slnOlderNeighbor();
263  else
264  mooseError("Older values not available for explicit schemes");
265  }
266  }
267 }
void validateExecutionerType(const std::string &name) const
Checks to make sure that the current Executioner has set "_it_transient" when old/older values are co...
Definition: Coupleable.C:646
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & slnOlder()
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
bool _c_is_implicit
True if implicit value is required.
Definition: Coupleable.h:330
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & nodalSlnOlderNeighbor()
const VariableValue & slnOlderNeighbor()
const VariableValue & nodalSlnOlder()
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & Coupleable::coupledValuePreviousNL ( const std::string &  var_name,
unsigned int  comp = 0 
)
protectedvirtualinherited

Returns value of previous Newton iterate of a coupled variable.

Parameters
var_nameName of coupled variable
compComponent number for vector of coupled variables
Returns
Reference to a VariableValue containing the older value of the coupled variable

Definition at line 270 of file Coupleable.C.

271 {
272  if (!isCoupled(var_name))
273  return *getDefaultValue(var_name);
274 
276  coupledCallback(var_name, true);
277  MooseVariable * var = getVar(var_name, comp);
278 
280  {
281  if (_c_nodal)
282  return var->nodalSlnPreviousNL();
283  else
284  return var->slnPreviousNL();
285  }
286  else
287  {
288  if (_c_nodal)
289  return var->nodalSlnPreviousNLNeighbor();
290  else
291  return var->slnPreviousNLNeighbor();
292  }
293 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
Class for stuff related to variables.
Definition: MooseVariable.h:43
const VariableValue & nodalSlnPreviousNL()
const VariableValue & slnPreviousNLNeighbor()
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
Extract pointer to a coupled variable.
Definition: Coupleable.C:117
VariableValue * getDefaultValue(const std::string &var_name)
Helper method to return (and insert if necessary) the default value for an uncoupled variable...
Definition: Coupleable.C:153
FEProblemBase & _c_fe_problem
Definition: Coupleable.h:318
virtual bool isCoupled(const std::string &var_name, unsigned int i=0)
Returns true if a variables has been coupled as name.
Definition: Coupleable.C:91
virtual void coupledCallback(const std::string &var_name, bool is_old)
Definition: Coupleable.C:86
const VariableValue & nodalSlnPreviousNLNeighbor()
void needsPreviousNewtonIteration(bool state)
Set a flag that indicated that user required values for the previous Newton iterate.
bool _coupleable_neighbor
Whether or not this object is a "neighbor" object: ie all of it&#39;s coupled values should be neighbor v...
Definition: Coupleable.h:363
const VariableValue & slnPreviousNL()
template<typename T >
void DependencyResolverInterface::cyclicDependencyError ( CyclicDependencyException< T > &  e,
const std::string &  header 
)
staticinherited

A helper method for cyclic errors.

Definition at line 100 of file DependencyResolverInterface.h.

Referenced by DependencyResolverInterface::DependencyResolverInterface().

102 {
103  std::ostringstream oss;
104 
105  oss << header << ":\n";
106  const typename std::multimap<T, T> & depends = e.getCyclicDependencies();
107  for (typename std::multimap<T, T>::const_iterator it = depends.begin(); it != depends.end(); ++it)
108  oss << (static_cast<T>(it->first))->name() << " -> " << (static_cast<T>(it->second))->name()
109  << "\n";
110  mooseError(oss.str());
111 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
const std::multimap< T, T > & getCyclicDependencies() const
template<typename T >
MaterialProperty< T > & Material::declareProperty ( const std::string &  prop_name)
inherited

Declare the property named "name".

Definition at line 370 of file Material.h.

371 {
372  registerPropName(prop_name, false, Material::CURRENT);
373  return _material_data->declareProperty<T>(prop_name);
374 }
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
MaterialProperty<U>& DerivativeMaterialInterface< Material >::declarePropertyDerivative ( const std::string &  base,
const std::vector< VariableName > &  c 
)
inherited

Methods for declaring derivative material properties.

Template Parameters
UThe material property type
Parameters
baseThe name of the property to take the derivative of
cThe variable(s) to take the derivatives with respect to
MaterialProperty<U>& DerivativeMaterialInterface< Material >::declarePropertyDerivative ( const std::string &  base,
const VariableName &  c1,
const VariableName &  c2 = "",
const VariableName &  c3 = "" 
)
inherited
template<typename T >
MaterialProperty< T > & Material::declarePropertyOld ( const std::string &  prop_name)
inherited

Definition at line 378 of file Material.h.

379 {
380  mooseDoOnce(
381  mooseDeprecated("declarePropertyOld is deprecated and not needed anymore.\nUse "
382  "getMaterialPropertyOld (only) if a reference is required in this class."));
383  registerPropName(prop_name, false, Material::OLD);
384  return _material_data->declarePropertyOld<T>(prop_name);
385 }
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
void mooseDeprecated(Args &&...args) const
Definition: MooseObject.h:95
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
template<typename T >
MaterialProperty< T > & Material::declarePropertyOlder ( const std::string &  prop_name)
inherited

Definition at line 389 of file Material.h.

390 {
391  mooseDoOnce(
392  mooseDeprecated("declarePropertyOlder is deprecated and not needed anymore. Use "
393  "getMaterialPropertyOlder (only) if a reference is required in this class."));
394  registerPropName(prop_name, false, Material::OLDER);
395  return _material_data->declarePropertyOlder<T>(prop_name);
396 }
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
void mooseDeprecated(Args &&...args) const
Definition: MooseObject.h:95
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)

Definition at line 224 of file Restartable.h.

225 {
226  return declareRestartableDataWithContext<T>(data_name, NULL);
227 }
template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name,
const T &  init_value 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
init_valueThe initial value of the data

Definition at line 231 of file Restartable.h.

232 {
233  return declareRestartableDataWithContext<T>(data_name, init_value, NULL);
234 }
template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
void *  context 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
contextContext pointer that will be passed to the load and store functions

Definition at line 238 of file Restartable.h.

239 {
241  mooseError("No valid SubProblem found for ", _restartable_system_name, "/", _restartable_name);
242 
243  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
244  RestartableData<T> * data_ptr = new RestartableData<T>(full_name, context);
245 
247 
248  return data_ptr->get();
249 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:202
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::string _restartable_name
The name of the object.
Definition: Restartable.h:196
void registerRestartableDataOnSubProblem(std::string name, RestartableDataValue *data, THREAD_ID tid)
Helper function so we don&#39;t have to include SubProblem in the header.
Definition: Restartable.C:49
Concrete definition of a parameter value for a specified type.
SubProblem * _restartable_subproblem
Pointer to the SubProblem class.
Definition: Restartable.h:208
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:205
template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
const T &  init_value,
void *  context 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
init_valueThe initial value of the data
contextContext pointer that will be passed to the load and store functions

Definition at line 253 of file Restartable.h.

256 {
258  mooseError("No valid SubProblem found for ", _restartable_system_name, "/", _restartable_name);
259 
260  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
261  RestartableData<T> * data_ptr = new RestartableData<T>(full_name, context);
262 
263  data_ptr->set() = init_value;
264 
266 
267  return data_ptr->get();
268 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:202
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::string _restartable_name
The name of the object.
Definition: Restartable.h:196
void registerRestartableDataOnSubProblem(std::string name, RestartableDataValue *data, THREAD_ID tid)
Helper function so we don&#39;t have to include SubProblem in the header.
Definition: Restartable.C:49
Concrete definition of a parameter value for a specified type.
SubProblem * _restartable_subproblem
Pointer to the SubProblem class.
Definition: Restartable.h:208
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:205
std::string MaterialPropertyInterface::deducePropertyName ( const std::string &  name)
protectedinherited
template<typename T >
const MaterialProperty< T > * MaterialPropertyInterface::defaultMaterialProperty ( const std::string &  name)
protectedinherited

Helper function to parse default material property values.

This is implemented as a specialization for supported types and returns NULL in all other cases.

Definition at line 345 of file MaterialPropertyInterface.h.

346 {
347  return NULL;
348 }
const MaterialProperty< Real > * MaterialPropertyInterface::defaultMaterialProperty ( const std::string &  name)
inherited

Definition at line 87 of file MaterialPropertyInterface.C.

88 {
89  std::istringstream ss(name);
90  Real real_value;
91 
92  // check if the string parsed cleanly into a Real number
93  if (ss >> real_value && ss.eof())
94  {
95  _default_real_properties.emplace_back(libmesh_make_unique<MaterialProperty<Real>>());
96  auto & default_property = _default_real_properties.back();
97 
98  // resize to accomodate maximum number obf qpoints
99  auto nqp = _mi_feproblem.getMaxQps();
100  default_property->resize(nqp);
101 
102  // set values for all qpoints to the given default
103  for (decltype(nqp) qp = 0; qp < nqp; ++qp)
104  (*default_property)[qp] = real_value;
105 
106  // return the raw pointer inside the shared pointer
107  return default_property.get();
108  }
109 
110  return nullptr;
111 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
std::vector< std::unique_ptr< MaterialProperty< Real > > > _default_real_properties
Storage vector for MaterialProperty<Real> default objects.
unsigned int getMaxQps() const
virtual bool MooseObject::enabled ( )
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 77 of file MooseObject.h.

Referenced by EigenKernel::enabled().

77 { return _enabled; }
const bool & _enabled
Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.
Definition: MooseObject.h:117
ExecFlagType SetupInterface::execBitFlags ( ) const
inherited

Build and return the execution flags as a bitfield.

Definition at line 100 of file SetupInterface.C.

Referenced by EigenExecutionerBase::init().

101 {
102  unsigned int exec_bit_field = EXEC_NONE;
103  for (unsigned int i = 0; i < _exec_flags.size(); ++i)
104  exec_bit_field |= _exec_flags[i];
105 
106  return static_cast<ExecFlagType>(exec_bit_field);
107 }
std::vector< ExecFlagType > _exec_flags
execution flag (when is the object executed/evaluated)
ExecFlagType
Execution flags - when is the object executed/evaluated.
Definition: MooseTypes.h:90
const std::vector< ExecFlagType > & SetupInterface::execFlags ( ) const
virtualinherited

Get the execution flag for the object.

Reimplemented in MultiAppTransfer.

Definition at line 94 of file SetupInterface.C.

Referenced by ExecuteMooseObjectWarehouse< T >::addObjectMask(), and MultiAppTransfer::execFlags().

95 {
96  return _exec_flags;
97 }
std::vector< ExecFlagType > _exec_flags
execution flag (when is the object executed/evaluated)
Moose::CoordinateSystemType BlockRestrictable::getBlockCoordSystem ( )
protectedinherited

Check if the blocks this object operates on all have the same coordinate system, and if so return it.

Definition at line 286 of file BlockRestrictable.C.

287 {
288  if (!_blk_mesh)
289  mooseError("No mesh available in BlockRestrictable::checkCoordSystem()");
290  if (!_blk_feproblem)
291  mooseError("No problem available in BlockRestrictable::checkCoordSystem()");
292 
293  const auto & subdomains = blockRestricted() ? blockIDs() : meshBlockIDs();
294 
295  if (subdomains.empty())
296  mooseError("No subdomains found in the problem.");
297 
298  // make sure all subdomains are using the same coordinate system
299  auto coord_system = _blk_feproblem->getCoordSystem(*subdomains.begin());
300  for (auto subdomain : subdomains)
301  if (_blk_feproblem->getCoordSystem(subdomain) != coord_system)
302  mooseError("This object requires all subdomains to have the same coordinate system.");
303 
304  return coord_system;
305 }
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object.
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
virtual Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) override
MooseMesh * _blk_mesh
Pointer to Mesh.
virtual bool blockRestricted() const
Returns true if this object has been restricted to a boundary.
template<typename T >
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > MaterialPropertyInterface::getBlockMaterialProperty ( const MaterialPropertyName &  name)
inherited

Retrieve pointer to a material property with the mesh blocks where it is defined The name required by this method is the name defined in the input file.

This function can be thought as the combination of getMaterialPropertyByName and getMaterialPropertyBlocks. It can be called after the action of all actions.

Parameters
nameThe name of the material property to retrieve
Returns
Pointer to the material property with the name 'name' and the set of blocks where the property is valid

Definition at line 411 of file MaterialPropertyInterface.h.

412 {
413  if (_mi_block_ids.empty())
414  mooseError("getBlockMaterialProperty must be called by a block restrictable object");
415 
416  if (!hasMaterialPropertyByName<T>(name))
417  return std::pair<const MaterialProperty<T> *, std::set<SubdomainID>>(NULL,
418  std::set<SubdomainID>());
419 
420  _material_property_dependencies.insert(_material_data->getPropertyId(name));
421 
422  return std::pair<const MaterialProperty<T> *, std::set<SubdomainID>>(
423  &_material_data->getProperty<T>(name), _mi_feproblem.getMaterialPropertyBlocks(name));
424 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
const std::set< SubdomainID > & _mi_block_ids
Storage for the block ids created by BlockRestrictable.
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::set< unsigned int > _material_property_dependencies
The set of material properties (as given by their IDs) that this object depends on.
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
virtual std::set< SubdomainID > getMaterialPropertyBlocks(const std::string &prop_name)
Get a vector containing the block ids the material property is defined on.
Definition: SubProblem.C:105
Concrete definition of a parameter value for a specified type.
const std::vector< MooseVariableScalar * > & ScalarCoupleable::getCoupledMooseScalarVars ( )
inherited

Get the list of coupled scalar variables.

Returns
The list of coupled variables

Definition at line 72 of file ScalarCoupleable.C.

Referenced by AuxScalarKernel::AuxScalarKernel(), and ScalarInitialCondition::ScalarInitialCondition().

73 {
75 }
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
Vector of coupled variables.
const std::vector<MooseVariable *>& Coupleable::getCoupledMooseVars ( ) const
inlineinherited
const std::map<std::string, std::vector<MooseVariable *> >& Coupleable::getCoupledVars ( )
inlineinherited

Get the list of coupled variables.

Returns
The list of coupled variables

Definition at line 54 of file Coupleable.h.

Referenced by AuxKernel::AuxKernel(), and InitialCondition::InitialCondition().

55  {
56  return _coupled_vars;
57  }
std::map< std::string, std::vector< MooseVariable * > > _coupled_vars
Coupled vars whose values we provide.
Definition: Coupleable.h:321
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getDefaultMaterialProperty ( const std::string &  name)
inherited

Fetch a material property if it exists, otherwise return getZeroMaterialProperty.

Parameters
nameThe input parameter key of type MaterialPropertyName
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getDefaultMaterialPropertyByName ( const std::string &  name)
inherited

Fetch a material property by name if it exists, otherwise return getZeroMaterialProperty.

const PostprocessorValue & PostprocessorInterface::getDefaultPostprocessorValue ( const std::string &  name)
inherited

Return the default postprocessor value.

Parameters
nameThe name of the postprocessor parameter
Returns
A const reference to the default value

Definition at line 92 of file PostprocessorInterface.C.

Referenced by EigenKernel::EigenKernel().

93 {
95 }
const PostprocessorValue & getDefaultPostprocessorValue(const std::string &name, bool suppress_error=false) const
Get the default value for a postprocessor added with addPostprocessor.
const InputParameters & _ppi_params
PostprocessorInterface Parameters.
VariableValue * ScalarCoupleable::getDefaultValue ( const std::string &  var_name)
protectedinherited

Helper method to return (and insert if necessary) the default value for an uncoupled variable.

Parameters
var_namethe name of the variable for which to retrieve a default value
Returns
VariableValue * a pointer to the associated VarirableValue.

Definition at line 114 of file ScalarCoupleable.C.

Referenced by ScalarCoupleable::coupledScalarValue(), ScalarCoupleable::coupledScalarValueOld(), and ScalarCoupleable::coupledScalarValueOlder().

115 {
116  std::map<std::string, VariableValue *>::iterator default_value_it = _default_value.find(var_name);
117  if (default_value_it == _default_value.end())
118  {
121  default_value_it = _default_value.insert(std::make_pair(var_name, value)).first;
122  }
123 
124  return default_value_it->second;
125 }
MooseArray< Real > VariableValue
FEProblemBase & _sc_fe_problem
Order getMaxScalarOrder() const
const InputParameters & _coupleable_params
Local InputParameters.
std::map< std::string, VariableValue * > _default_value
Will hold the default value for optional coupled scalar variables.
Real defaultCoupledValue(const std::string &coupling_name) const
Get the default value for an optionally coupled variable.
Distribution & DistributionInterface::getDistribution ( const std::string &  name)
inherited

Get a distribution with a given name.

Parameters
nameThe name of the parameter key of the distribution to retrieve
Returns
The distribution with name associated with the parameter 'name'

Definition at line 34 of file DistributionInterface.C.

35 {
36  DistributionName dist_name = _dni_params.get<DistributionName>(name);
37  return _dni_feproblem.getDistribution(dist_name);
38 }
virtual Distribution & getDistribution(const std::string &name)
FEProblemBase & _dni_feproblem
Reference to FEProblemBase instance.
const InputParameters & _dni_params
Parameters of the object with this interface.
Distribution & DistributionInterface::getDistributionByName ( const DistributionName &  name)
inherited

Get a distribution with a given name.

Parameters
nameThe name of the distribution to retrieve
Returns
The distribution with name 'name'

Definition at line 41 of file DistributionInterface.C.

Referenced by Sampler::Sampler().

42 {
43  return _dni_feproblem.getDistribution(name);
44 }
virtual Distribution & getDistribution(const std::string &name)
FEProblemBase & _dni_feproblem
Reference to FEProblemBase instance.
MultiMooseEnum SetupInterface::getExecuteOptions ( )
staticinherited

Returns the available options for the 'execute_on' input parameters.

Returns
A MooseEnum with the available 'execute_on' options, the default is 'residual'

Definition at line 110 of file SetupInterface.C.

Referenced by AddNodalNormalsAction::act(), AdvancedOutput::addValidParams(), AdvancedOutput::initExecutionTypes(), OutputOnWarehouse::OutputOnWarehouse(), validParams< CommonOutputAction >(), validParams< Output >(), and validParams< SetupInterface >().

111 {
112  return MultiMooseEnum("none=0x00 initial=0x01 linear=0x02 nonlinear=0x04 timestep_end=0x08 "
113  "timestep_begin=0x10 final=0x20 custom=0x100",
114  "linear");
115 }
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Function & FunctionInterface::getFunction ( const std::string &  name)
inherited

Get a function with a given name.

Parameters
nameThe name of the parameter key of the function to retrieve
Returns
The function with name associated with the parameter 'name'

Definition at line 35 of file FunctionInterface.C.

36 {
37  return _fni_feproblem.getFunction(_fni_params.get<FunctionName>(name), _fni_tid);
38 }
virtual Function & getFunction(const std::string &name, THREAD_ID tid=0)
FEProblemBase & _fni_feproblem
Reference to FEProblemBase instance.
const InputParameters & _fni_params
Parameters of the object with this interface.
THREAD_ID _fni_tid
Thread ID.
Function & FunctionInterface::getFunctionByName ( const FunctionName &  name)
inherited

Get a function with a given name.

Parameters
nameThe name of the function to retrieve
Returns
The function with name 'name'

Definition at line 41 of file FunctionInterface.C.

Referenced by CompositeFunction::CompositeFunction(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), GenericFunctionMaterial::GenericFunctionMaterial(), LinearCombinationFunction::LinearCombinationFunction(), and LineFunctionSampler::LineFunctionSampler().

42 {
43  return _fni_feproblem.getFunction(name, _fni_tid);
44 }
virtual Function & getFunction(const std::string &name, THREAD_ID tid=0)
FEProblemBase & _fni_feproblem
Reference to FEProblemBase instance.
THREAD_ID _fni_tid
Thread ID.
unsigned int RandomInterface::getMasterSeed ( ) const
inlineinherited

Definition at line 74 of file RandomInterface.h.

74 { return _master_seed; }
unsigned int _master_seed
Material & MaterialPropertyInterface::getMaterial ( const std::string &  name)
inherited

Return a Material reference - usable for computing directly.

Parameters
nameThe name of the input parameter or explicit material name.
no_warnIf true, suppress warning about retrieving the material potentially during its calculation. If you don't know what this is/means, then you don't need it.

Definition at line 164 of file MaterialPropertyInterface.C.

165 {
166  return getMaterialByName(_mi_params.get<MaterialName>(name));
167 }
Material & getMaterialByName(const std::string &name, bool no_warn=false)
const InputParameters & _mi_params
Parameters of the object with this interface.
Material & MaterialPropertyInterface::getMaterialByName ( const std::string &  name,
bool  no_warn = false 
)
inherited

Definition at line 170 of file MaterialPropertyInterface.C.

Referenced by MaterialPropertyInterface::getMaterial(), and MaterialVectorPostprocessor::MaterialVectorPostprocessor().

171 {
172  std::shared_ptr<Material> discrete =
174 
175  // Check block compatibility
176  if (!discrete->hasBlocks(_mi_block_ids))
177  {
178  std::ostringstream oss;
179  oss << "The Material object '" << discrete->name()
180  << "' is defined on blocks that are incompatible with the retrieving object '" << _mi_name
181  << "':\n";
182  oss << " " << discrete->name();
183  for (const auto & sbd_id : discrete->blockIDs())
184  oss << " " << sbd_id;
185  oss << "\n";
186  oss << " " << _mi_name;
187  for (const auto & block_id : _mi_block_ids)
188  oss << " " << block_id;
189  oss << "\n";
190  mooseError(oss.str());
191  }
192 
193  // Check boundary compatibility
194  if (!discrete->hasBoundary(_mi_boundary_ids))
195  {
196  std::ostringstream oss;
197  oss << "The Material object '" << discrete->name()
198  << "' is defined on boundaries that are incompatible with the retrieving object '"
199  << _mi_name << "':\n";
200  oss << " " << discrete->name();
201  for (const auto & bnd_id : discrete->boundaryIDs())
202  oss << " " << bnd_id;
203  oss << "\n";
204  oss << " " << _mi_name;
205  for (const auto & bnd_id : _mi_boundary_ids)
206  oss << " " << bnd_id;
207  oss << "\n";
208  mooseError(oss.str());
209  }
210 
211  return *discrete;
212 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
const THREAD_ID _mi_tid
Current threaded it.
const std::set< SubdomainID > & _mi_block_ids
Storage for the block ids created by BlockRestrictable.
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
Moose::MaterialDataType _material_data_type
The type of data.
std::shared_ptr< Material > getMaterial(std::string name, Moose::MaterialDataType type, THREAD_ID tid=0, bool no_warn=false)
Return a pointer to a Material object.
const std::set< BoundaryID > & _mi_boundary_ids
Storage for the boundary ids created by BoundaryRestrictable.
const std::string _mi_name
The name of the object that this interface belongs to.
template<typename T >
const MaterialProperty< T > & Material::getMaterialProperty ( const std::string &  name)
inherited

Retrieve the property through a given input parameter key with a fallback to getting it by name.

Definition at line 297 of file Material.h.

298 {
299  // Check if the supplied parameter is a valid imput parameter key
300  std::string prop_name = deducePropertyName(name);
301 
302  // Check if it's just a constant.
303  const MaterialProperty<T> * default_property = defaultMaterialProperty<T>(prop_name);
304  if (default_property)
305  return *default_property;
306 
307  return getMaterialPropertyByName<T>(prop_name);
308 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
std::string deducePropertyName(const std::string &name)
Small helper to look up a material property name through the input parameter keys.
Concrete definition of a parameter value for a specified type.
std::vector< SubdomainName > MaterialPropertyInterface::getMaterialPropertyBlockNames ( const std::string &  name)
inherited

Retrieve the block names that the material property is defined.

Parameters
nameThe name of the material property
Returns
A vector the the block names for the property

Definition at line 120 of file MaterialPropertyInterface.C.

121 {
123 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
virtual std::vector< SubdomainName > getMaterialPropertyBlockNames(const std::string &prop_name)
Get a vector of block id equivalences that the material property is defined on.
Definition: SubProblem.C:121
std::set< SubdomainID > MaterialPropertyInterface::getMaterialPropertyBlocks ( const std::string &  name)
inherited

Retrieve the block ids that the material property is defined.

Parameters
nameThe name of the material property
Returns
A vector the the block ids for the property

Definition at line 114 of file MaterialPropertyInterface.C.

115 {
117 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
virtual std::set< SubdomainID > getMaterialPropertyBlocks(const std::string &prop_name)
Get a vector containing the block ids the material property is defined on.
Definition: SubProblem.C:105
std::set< BoundaryID > MaterialPropertyInterface::getMaterialPropertyBoundaryIDs ( const std::string &  name)
inherited

Retrieve the boundary ids that the material property is defined.

Parameters
nameThe name of the material property
Returns
A vector the the boundary ids for the property

Definition at line 126 of file MaterialPropertyInterface.C.

127 {
129 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
virtual std::set< BoundaryID > getMaterialPropertyBoundaryIDs(const std::string &prop_name)
Get a vector containing the block ids the material property is defined on.
Definition: SubProblem.C:162
std::vector< BoundaryName > MaterialPropertyInterface::getMaterialPropertyBoundaryNames ( const std::string &  name)
inherited

Retrieve the boundary namess that the material property is defined.

Parameters
nameThe name of the material property
Returns
A vector the the boundary names for the property

Definition at line 132 of file MaterialPropertyInterface.C.

133 {
135 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
virtual std::vector< BoundaryName > getMaterialPropertyBoundaryNames(const std::string &prop_name)
Get a vector of block id equivalences that the material property is defined on.
Definition: SubProblem.C:178
template<typename T >
const MaterialProperty< T > & MaterialPropertyInterface::getMaterialPropertyByName ( const MaterialPropertyName &  name)
inherited

Retrieve reference to material property or its old or older value The name required by this method is the name defined in the input file.

Parameters
nameThe name of the material property to retrieve
Returns
Reference to the material property with the name 'name'

Definition at line 357 of file MaterialPropertyInterface.h.

358 {
360  checkMaterialProperty(name);
361 
362  // mark property as requested
363  markMatPropRequested(name);
364 
365  // Update the boolean flag.
367 
368  _material_property_dependencies.insert(_material_data->getPropertyId(name));
369 
370  return _material_data->getProperty<T>(name);
371 }
std::set< unsigned int > _material_property_dependencies
The set of material properties (as given by their IDs) that this object depends on.
void markMatPropRequested(const std::string &)
A proxy method for _mi_feproblem.markMatPropRequested(name)
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
void checkMaterialProperty(const std::string &name)
A helper method for checking material properties This method was required to avoid a compiler problem...
bool _get_material_property_called
Initialized to false.
void checkExecutionStage()
Check and throw an error if the execution has progressed past the construction stage.
template<typename T >
const MaterialProperty< T > & Material::getMaterialPropertyByName ( const std::string &  prop_name)
inherited

Retrieve the property named "name".

Definition at line 342 of file Material.h.

343 {
345  // The property may not exist yet, so declare it (declare/getMaterialProperty are referencing the
346  // same memory)
347  _requested_props.insert(prop_name);
348  registerPropName(prop_name, true, Material::CURRENT);
349  return MaterialPropertyInterface::getMaterialPropertyByName<T>(prop_name);
350 }
std::set< std::string > _requested_props
Set of properties accessed via get method.
Definition: Material.h:242
void checkExecutionStage()
Check and throw an error if the execution has progerssed past the construction stage.
Definition: Material.C:283
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
bool MaterialPropertyInterface::getMaterialPropertyCalled ( ) const
inlineinherited

Returns true if getMaterialProperty() has been called, false otherwise.

Definition at line 173 of file MaterialPropertyInterface.h.

bool _get_material_property_called
Initialized to false.
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getMaterialPropertyDerivative ( const std::string &  base,
const std::vector< VariableName > &  c 
)
inherited

Methods for retreiving derivative material properties.

Template Parameters
UThe material property type
Parameters
baseThe name of the property to take the derivative of
cThe variable(s) to take the derivatives with respect to
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getMaterialPropertyDerivative ( const std::string &  base,
const VariableName &  c1,
const VariableName &  c2 = "",
const VariableName &  c3 = "" 
)
inherited
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getMaterialPropertyDerivativeByName ( const MaterialPropertyName &  base,
const std::vector< VariableName > &  c 
)
inherited

Methods for retreiving derivative material properties.

Template Parameters
UThe material property type
Parameters
baseThe name of the property to take the derivative of
cThe variable(s) to take the derivatives with respect to
const MaterialProperty<U>& DerivativeMaterialInterface< Material >::getMaterialPropertyDerivativeByName ( const MaterialPropertyName &  base,
const VariableName &  c1,
const VariableName &  c2 = "",
const VariableName &  c3 = "" 
)
inherited
template<typename T >
const MaterialProperty< T > & Material::getMaterialPropertyOld ( const std::string &  name)
inherited

Definition at line 312 of file Material.h.

313 {
314  // Check if the supplied parameter is a valid imput parameter key
315  std::string prop_name = deducePropertyName(name);
316 
317  // Check if it's just a constant.
318  const MaterialProperty<T> * default_property = defaultMaterialProperty<T>(prop_name);
319  if (default_property)
320  return *default_property;
321 
322  return getMaterialPropertyOldByName<T>(prop_name);
323 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
std::string deducePropertyName(const std::string &name)
Small helper to look up a material property name through the input parameter keys.
Concrete definition of a parameter value for a specified type.
template<typename T >
const MaterialProperty< T > & MaterialPropertyInterface::getMaterialPropertyOldByName ( const MaterialPropertyName &  name)
inherited

Definition at line 375 of file MaterialPropertyInterface.h.

376 {
377  if (!_stateful_allowed)
378  mooseError("Stateful material properties not allowed for this object."
379  " Old property for \"",
380  name,
381  "\" was requested.");
382 
383  // mark property as requested
384  markMatPropRequested(name);
385 
386  _material_property_dependencies.insert(_material_data->getPropertyId(name));
387 
388  return _material_data->getPropertyOld<T>(name);
389 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::set< unsigned int > _material_property_dependencies
The set of material properties (as given by their IDs) that this object depends on.
void markMatPropRequested(const std::string &)
A proxy method for _mi_feproblem.markMatPropRequested(name)
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
bool _stateful_allowed
True by default.
template<typename T >
const MaterialProperty< T > & Material::getMaterialPropertyOldByName ( const std::string &  prop_name)
inherited

Definition at line 354 of file Material.h.

355 {
356  registerPropName(prop_name, true, Material::OLD);
357  return MaterialPropertyInterface::getMaterialPropertyOldByName<T>(prop_name);
358 }
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
template<typename T >
const MaterialProperty< T > & Material::getMaterialPropertyOlder ( const std::string &  name)
inherited

Definition at line 327 of file Material.h.

328 {
329  // Check if the supplied parameter is a valid imput parameter key
330  std::string prop_name = deducePropertyName(name);
331 
332  // Check if it's just a constant.
333  const MaterialProperty<T> * default_property = defaultMaterialProperty<T>(prop_name);
334  if (default_property)
335  return *default_property;
336 
337  return getMaterialPropertyOlderByName<T>(prop_name);
338 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
std::string deducePropertyName(const std::string &name)
Small helper to look up a material property name through the input parameter keys.
Concrete definition of a parameter value for a specified type.
template<typename T >
const MaterialProperty< T > & MaterialPropertyInterface::getMaterialPropertyOlderByName ( const MaterialPropertyName &  name)
inherited

Definition at line 393 of file MaterialPropertyInterface.h.

394 {
395  if (!_stateful_allowed)
396  mooseError("Stateful material properties not allowed for this object."
397  " Older property for \"",
398  name,
399  "\" was requested.");
400 
401  // mark property as requested
402  markMatPropRequested(name);
403 
404  _material_property_dependencies.insert(_material_data->getPropertyId(name));
405 
406  return _material_data->getPropertyOlder<T>(name);
407 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::set< unsigned int > _material_property_dependencies
The set of material properties (as given by their IDs) that this object depends on.
void markMatPropRequested(const std::string &)
A proxy method for _mi_feproblem.markMatPropRequested(name)
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
bool _stateful_allowed
True by default.
template<typename T >
const MaterialProperty< T > & Material::getMaterialPropertyOlderByName ( const std::string &  prop_name)
inherited

Definition at line 362 of file Material.h.

363 {
364  registerPropName(prop_name, true, Material::OLDER);
365  return MaterialPropertyInterface::getMaterialPropertyOlderByName<T>(prop_name);
366 }
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
const std::set<unsigned int>& MaterialPropertyInterface::getMatPropDependencies ( ) const
inlineinherited

Retrieve the set of material properties that this object depends on.

Returns
The IDs corresponding to the material properties that MUST be reinited before evaluating this object

Definition at line 181 of file MaterialPropertyInterface.h.

Referenced by LineMaterialSamplerBase< T >::execute().

182  {
184  }
std::set< unsigned int > _material_property_dependencies
The set of material properties (as given by their IDs) that this object depends on.
MooseApp& MooseObject::getMooseApp ( )
inlineinherited

Get the MooseApp this object is associated with.

Definition at line 72 of file MooseObject.h.

Referenced by RestartableDataIO::createBackup(), RestartableDataIO::deserializeRestartableData(), Resurrector::restartRestartableData(), and RestartableDataIO::restoreBackup().

72 { return _app; }
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:108
const std::set<MooseVariable *>& MooseVariableDependencyInterface::getMooseVariableDependencies ( ) const
inlineinherited

Retrieve the set of MooseVariables that this object depends on.

Returns
The MooseVariables that MUST be reinited before evaluating this object

Definition at line 32 of file MooseVariableDependencyInterface.h.

33  {
35  }
std::set< MooseVariable * > _moose_variable_dependencies
std::set< OutputName > Material::getOutputs ( )
inherited

Get the list of output objects that this class is restricted.

Returns
A vector of OutputNames

Definition at line 184 of file Material.C.

Referenced by Material::getSuppliedItems().

185 {
186  const std::vector<OutputName> & out = getParam<std::vector<OutputName>>("outputs");
187  return std::set<OutputName>(out.begin(), out.end());
188 }
template<typename T >
const T & MooseObject::getParam ( const std::string &  name) const
inherited

Retrieve a parameter for the object.

Parameters
nameThe name of the parameter
Returns
The value of the parameter

Definition at line 122 of file MooseObject.h.

Referenced by FEProblemBase::addMaterial(), ConstraintWarehouse::addObject(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromXandY(), EigenKernel::EigenKernel(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), GenericConstantRankTwoTensor::GenericConstantRankTwoTensor(), TimeSequenceStepper::init(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), AdvancedOutput::initialSetup(), SideSetsBetweenSubdomains::modify(), MeshExtruder::modify(), AddExtraNodeset::modify(), SideSetsAroundSubdomain::modify(), RenameBlock::modify(), MooseObject::parameters(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), and VectorOfPostprocessors::VectorOfPostprocessors().

123 {
124  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
125 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:111
const PostprocessorValue & PostprocessorInterface::getPostprocessorValue ( const std::string &  name)
inherited

Retrieve the value of a Postprocessor or one of it's old or older values.

Parameters
nameThe name of the Postprocessor parameter (see below)
Returns
A reference to the desired value

The name required by this method is the name that is hard-coded into your source code. For example, if you have a Kernel that requires a Postprocessor you may have an input file with "pp = my_pp", this function requires the "pp" name as input (see .../moose_test/functions/PostprocessorFunction.C)

see getPostprocessorValueByName getPostprocessorValueOldByName getPostprocessorValueOlderByName

Definition at line 29 of file PostprocessorInterface.C.

Referenced by GeneralUserObject::getPostprocessorValue(), and AuxKernel::getPostprocessorValue().

30 {
31  // Return the default if the Postprocessor does not exist and a default does, otherwise
32  // continue as usual
35  else
36  return _pi_feproblem.getPostprocessorValue(_ppi_params.get<PostprocessorName>(name));
37 }
bool hasPostprocessor(const std::string &name) const
Determine if the Postprocessor exists.
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
bool hasDefaultPostprocessorValue(const std::string &name) const
Returns true if a default PostprocessorValue is defined.
const PostprocessorValue & getDefaultPostprocessorValue(const std::string &name, bool suppress_error=false) const
Get the default value for a postprocessor added with addPostprocessor.
PostprocessorValue & getPostprocessorValue(const PostprocessorName &name)
Get a reference to the value associated with the postprocessor.
const InputParameters & _ppi_params
PostprocessorInterface Parameters.
const PostprocessorValue & PostprocessorInterface::getPostprocessorValueByName ( const PostprocessorName &  name)
inherited

Retrieve the value of the Postprocessor.

Parameters
namePostprocessor name (see below)
Returns
A reference to the desired value

The name required by this method is the name defined in the input file. For example, if you have a Kernel that requires a Postprocessor you may have an input file with "pp = my_pp", this method requires the "my_pp" name as input (see .../moose_test/functions/PostprocessorFunction.C)

see getPostprocessorValue getPostprocessorValueOld getPostprocessorValueOlder

Definition at line 62 of file PostprocessorInterface.C.

Referenced by EigenKernel::EigenKernel(), GeneralUserObject::getPostprocessorValueByName(), AuxKernel::getPostprocessorValueByName(), and EigenExecutionerBase::inversePowerIteration().

63 {
65 }
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
PostprocessorValue & getPostprocessorValue(const PostprocessorName &name)
Get a reference to the value associated with the postprocessor.
const PostprocessorValue & PostprocessorInterface::getPostprocessorValueOld ( const std::string &  name)
inherited

Definition at line 40 of file PostprocessorInterface.C.

41 {
42  // Return the default if the Postprocessor does not exist and a default does, otherwise
43  // continue as usual
46  else
47  return _pi_feproblem.getPostprocessorValueOld(_ppi_params.get<PostprocessorName>(name));
48 }
PostprocessorValue & getPostprocessorValueOld(const std::string &name)
Get the reference to the old value of a post-processor.
bool hasPostprocessor(const std::string &name) const
Determine if the Postprocessor exists.
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
bool hasDefaultPostprocessorValue(const std::string &name) const
Returns true if a default PostprocessorValue is defined.
const PostprocessorValue & getDefaultPostprocessorValue(const std::string &name, bool suppress_error=false) const
Get the default value for a postprocessor added with addPostprocessor.
const InputParameters & _ppi_params
PostprocessorInterface Parameters.
const PostprocessorValue & PostprocessorInterface::getPostprocessorValueOldByName ( const PostprocessorName &  name)
inherited

Definition at line 68 of file PostprocessorInterface.C.

Referenced by EigenKernel::EigenKernel().

69 {
71 }
PostprocessorValue & getPostprocessorValueOld(const std::string &name)
Get the reference to the old value of a post-processor.
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
const PostprocessorValue & PostprocessorInterface::getPostprocessorValueOlder ( const std::string &  name)
inherited

Definition at line 51 of file PostprocessorInterface.C.

52 {
53  // Return the default if the Postprocessor does not exist and a default does, otherwise
54  // continue as usual
57  else
58  return _pi_feproblem.getPostprocessorValueOlder(_ppi_params.get<PostprocessorName>(name));
59 }
bool hasPostprocessor(const std::string &name) const
Determine if the Postprocessor exists.
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
PostprocessorValue & getPostprocessorValueOlder(const std::string &name)
Get the reference to the older value of a post-processor.
bool hasDefaultPostprocessorValue(const std::string &name) const
Returns true if a default PostprocessorValue is defined.
const PostprocessorValue & getDefaultPostprocessorValue(const std::string &name, bool suppress_error=false) const
Get the default value for a postprocessor added with addPostprocessor.
const InputParameters & _ppi_params
PostprocessorInterface Parameters.
const PostprocessorValue & PostprocessorInterface::getPostprocessorValueOlderByName ( const PostprocessorName &  name)
inherited

Definition at line 74 of file PostprocessorInterface.C.

75 {
77 }
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
PostprocessorValue & getPostprocessorValueOlder(const std::string &name)
Get the reference to the older value of a post-processor.
unsigned long RandomInterface::getRandomLong ( ) const
inherited

Returns the next random number (long) from the generator tied to this object (elem/node).

Definition at line 74 of file RandomInterface.C.

75 {
76  mooseAssert(_generator, "Random Generator is NULL, did you call setRandomResetFrequency()?");
77 
78  dof_id_type id;
79  if (_is_nodal)
80  id = _curr_node->id();
81  else
82  id = _curr_element->id();
83 
84  return _generator->randl(static_cast<unsigned int>(id));
85 }
static uint32_t randl()
This method returns the next random number (long format) from the generator.
Definition: MooseRandom.h:76
const Node *& _curr_node
const Elem *& _curr_element
MooseRandom * _generator
Real RandomInterface::getRandomReal ( ) const
inherited

Returns the next random number (Real) from the generator tied to this object (elem/node).

Definition at line 88 of file RandomInterface.C.

89 {
90  mooseAssert(_generator, "Random Generator is NULL, did you call setRandomResetFrequency()?");
91 
92  dof_id_type id;
93  if (_is_nodal)
94  id = _curr_node->id();
95  else
96  id = _curr_element->id();
97 
98  return _generator->rand(static_cast<unsigned int>(id));
99 }
static double rand()
This method returns the next random number (double format) from the generator.
Definition: MooseRandom.h:55
const Node *& _curr_node
const Elem *& _curr_element
MooseRandom * _generator
virtual const std::set<std::string>& Material::getRequestedItems ( )
inlineoverridevirtualinherited

Return a set of properties accessed with getMaterialProperty.

Returns
A reference to the set of properties with calls to getMaterialProperty

Implements DependencyResolverInterface.

Definition at line 152 of file Material.h.

152 { return _requested_props; }
std::set< std::string > _requested_props
Set of properties accessed via get method.
Definition: Material.h:242
ExecFlagType RandomInterface::getResetOnTime ( ) const
inlineinherited

Definition at line 76 of file RandomInterface.h.

76 { return _reset_on; }
ExecFlagType _reset_on
MooseVariableScalar * ScalarCoupleable::getScalarVar ( const std::string &  var_name,
unsigned int  comp 
)
protectedinherited

Extract pointer to a scalar coupled variable.

Parameters
var_nameName of parameter desired
compComponent number of multiple coupled variables
Returns
Pointer to the desired variable

Definition at line 175 of file ScalarCoupleable.C.

Referenced by ScalarCoupleable::coupledScalar(), ScalarCoupleable::coupledScalarDot(), ScalarCoupleable::coupledScalarDotDu(), ScalarCoupleable::coupledScalarOrder(), ScalarCoupleable::coupledScalarValue(), ScalarCoupleable::coupledScalarValueOld(), ScalarCoupleable::coupledScalarValueOlder(), and ParsedODEKernel::ParsedODEKernel().

176 {
177  if (_coupled_scalar_vars.find(var_name) != _coupled_scalar_vars.end())
178  {
179  if (comp < _coupled_scalar_vars[var_name].size())
180  return _coupled_scalar_vars[var_name][comp];
181  else
182  mooseError("Trying to get a non-existent component of variable '" + var_name + "'");
183  }
184  else
185  mooseError("Trying to get a non-existent variable '" + var_name + "'");
186 }
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
Coupled vars whose values we provide.
unsigned int RandomInterface::getSeed ( unsigned int  id)
inherited

Get the seed for the passed in elem/node id.

Parameters
id- dof object id
Returns
current seed for this id

Definition at line 66 of file RandomInterface.C.

67 {
68  mooseAssert(_random_data, "RandomData object is NULL!");
69 
70  return _random_data->getSeed(id);
71 }
RandomData * _random_data
unsigned int getSeed(dof_id_type id)
Get the seed for the passed in elem/node id.
Definition: RandomData.C:34
virtual const std::set<std::string>& Material::getSuppliedItems ( )
inlineoverridevirtualinherited

Return a set of properties accessed with declareProperty.

Returns
A reference to the set of properties with calls to declareProperty

Implements DependencyResolverInterface.

Definition at line 158 of file Material.h.

158 { return _supplied_props; }
std::set< std::string > _supplied_props
Set of properties declared.
Definition: Material.h:245
template<class T >
const T & UserObjectInterface::getUserObject ( const std::string &  name)
inherited

Get an user object with a given parameter name.

Parameters
nameThe name of the parameter key of the user object to retrieve
Returns
The user object with name associated with the parameter 'name'

Definition at line 85 of file UserObjectInterface.h.

86 {
87  unsigned int tid = isDiscreteUserObject(getUserObjectBase(name)) ? _uoi_tid : 0;
88  return _uoi_feproblem.getUserObject<T>(_uoi_params.get<UserObjectName>(name), tid);
89 }
bool isDiscreteUserObject(const UserObject &uo) const
Check if the user object is a DiscreteElementUserObject.
const InputParameters & _uoi_params
Parameters of the object with this interface.
FEProblemBase & _uoi_feproblem
Reference to the FEProblemBase instance.
THREAD_ID _uoi_tid
Thread ID.
const T & getUserObject(const std::string &name, unsigned int tid=0)
Get the user object by its name.
const UserObject & getUserObjectBase(const std::string &name)
Get an user object with a given parameter name.
const UserObject & UserObjectInterface::getUserObjectBase ( const std::string &  name)
inherited

Get an user object with a given parameter name.

Parameters
nameThe name of the parameter key of the user object to retrieve
Returns
The user object with name associated with the parameter 'name'

Definition at line 28 of file UserObjectInterface.C.

Referenced by UserObjectInterface::getUserObject(), InitialCondition::getUserObjectBase(), and AuxKernel::getUserObjectBase().

29 {
30  return _uoi_feproblem.getUserObjectBase(_uoi_params.get<UserObjectName>(name));
31 }
const InputParameters & _uoi_params
Parameters of the object with this interface.
FEProblemBase & _uoi_feproblem
Reference to the FEProblemBase instance.
const UserObject & getUserObjectBase(const std::string &name)
Get the user object by its name.
const UserObject & UserObjectInterface::getUserObjectBaseByName ( const std::string &  name)
inherited

Get an user object with a given name.

Parameters
nameThe name of the user object to retrieve
Returns
The user object with the name

Definition at line 34 of file UserObjectInterface.C.

Referenced by UserObjectInterface::getUserObjectByName().

35 {
36  return _uoi_feproblem.getUserObjectBase(name);
37 }
FEProblemBase & _uoi_feproblem
Reference to the FEProblemBase instance.
const UserObject & getUserObjectBase(const std::string &name)
Get the user object by its name.
template<class T >
const T & UserObjectInterface::getUserObjectByName ( const std::string &  name)
inherited

Get an user object with a given name.

Parameters
nameThe name of the user object to retrieve
Returns
The user object with the name

Definition at line 93 of file UserObjectInterface.h.

94 {
95  unsigned int tid = isDiscreteUserObject(getUserObjectBaseByName(name)) ? _uoi_tid : 0;
96  return _uoi_feproblem.getUserObject<T>(name, tid);
97 }
bool isDiscreteUserObject(const UserObject &uo) const
Check if the user object is a DiscreteElementUserObject.
const UserObject & getUserObjectBaseByName(const std::string &name)
Get an user object with a given name.
FEProblemBase & _uoi_feproblem
Reference to the FEProblemBase instance.
THREAD_ID _uoi_tid
Thread ID.
const T & getUserObject(const std::string &name, unsigned int tid=0)
Get the user object by its name.
MooseVariable * Coupleable::getVar ( const std::string &  var_name,
unsigned int  comp 
)
protectedinherited

Extract pointer to a coupled variable.

Parameters
var_nameName of parameter desired
compComponent number of multiple coupled variables
Returns
Pointer to the desired variable

Definition at line 117 of file Coupleable.C.

Referenced by ShapeUserObject< T >::coupled(), Coupleable::coupled(), AuxKernel::coupledDot(), Coupleable::coupledDot(), AuxKernel::coupledDotDu(), Coupleable::coupledDotDu(), Coupleable::coupledGradient(), Coupleable::coupledGradientOld(), Coupleable::coupledGradientOlder(), Coupleable::coupledGradientPreviousNL(), NeighborCoupleable::coupledNeighborGradient(), NeighborCoupleable::coupledNeighborGradientOld(), NeighborCoupleable::coupledNeighborGradientOlder(), NeighborCoupleable::coupledNeighborSecond(), NeighborCoupleable::coupledNeighborSolutionDoFs(), NeighborCoupleable::coupledNeighborSolutionDoFsOld(), NeighborCoupleable::coupledNeighborSolutionDoFsOlder(), NeighborCoupleable::coupledNeighborValue(), NeighborCoupleable::coupledNeighborValueOld(), NeighborCoupleable::coupledNeighborValueOlder(), Coupleable::coupledNodalDot(), Coupleable::coupledNodalValue(), Coupleable::coupledNodalValueOld(), Coupleable::coupledNodalValueOlder(), Coupleable::coupledNodalValuePreviousNL(), Coupleable::coupledSecond(), Coupleable::coupledSecondOld(), Coupleable::coupledSecondOlder(), Coupleable::coupledSecondPreviousNL(), Coupleable::coupledSolutionDoFs(), Coupleable::coupledSolutionDoFsOld(), Coupleable::coupledSolutionDoFsOlder(), Coupleable::coupledValue(), Coupleable::coupledValueOld(), Coupleable::coupledValueOlder(), Coupleable::coupledValuePreviousNL(), ParsedAux::ParsedAux(), PiecewiseLinearInterpolationMaterial(), and SphericalAverage::SphericalAverage().

118 {
119  if (_coupled_vars.find(var_name) != _coupled_vars.end())
120  {
121  if (comp < _coupled_vars[var_name].size())
122  {
123  // Error check - don't couple elemental to nodal
124  if (!(_coupled_vars[var_name][comp])->isNodal() && _c_nodal)
125  mooseError("You cannot couple an elemental variable to a nodal variable");
126  return _coupled_vars[var_name][comp];
127  }
128  else
129  mooseError("Trying to get a non-existent component of variable '" + var_name + "'");
130  }
131  else
132  mooseError("Trying to get a non-existent variable '" + var_name + "'");
133 }
bool _c_nodal
True if we provide coupling to nodal values.
Definition: Coupleable.h:327
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
std::map< std::string, std::vector< MooseVariable * > > _coupled_vars
Coupled vars whose values we provide.
Definition: Coupleable.h:321
const VectorPostprocessorValue & VectorPostprocessorInterface::getVectorPostprocessorValue ( const std::string &  name,
const std::string &  vector_name 
)
virtualinherited

Retrieve the value of a VectorPostprocessor.

Parameters
nameThe name of the VectorPostprocessor parameter (see below)
vector_nameThe name of the particular vector you want.
Returns
A reference to the desired value

The name required by this method is the name that is hard-coded into your source code. For example, if you have a Kernel that requires a VectorPostprocessor you may have an input file with "pp = my_pp", this function requires the "pp" name as input (see .../moose_test/functions/VectorPostprocessorFunction.C)

see getVectorPostprocessorValueOld getVectorPostprocessorValueByName getVectorPostprocessorValueOldByName

Reimplemented in AuxKernel, and GeneralUserObject.

Definition at line 29 of file VectorPostprocessorInterface.C.

Referenced by GeneralUserObject::getVectorPostprocessorValue(), and AuxKernel::getVectorPostprocessorValue().

31 {
32  return _vpi_feproblem.getVectorPostprocessorValue(_vpi_params.get<VectorPostprocessorName>(name),
33  vector_name);
34 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
const InputParameters & _vpi_params
VectorPostprocessorInterface Parameters.
VectorPostprocessorValue & getVectorPostprocessorValue(const VectorPostprocessorName &name, const std::string &vector_name)
Get a reference to the value associated with the VectorPostprocessor.
const VectorPostprocessorValue & VectorPostprocessorInterface::getVectorPostprocessorValueByName ( const VectorPostprocessorName &  name,
const std::string &  vector_name 
)
virtualinherited

Retrieve the value of the VectorPostprocessor.

Parameters
nameVectorPostprocessor name (see below)
vector_nameThe name of the particular vector you want.
Returns
A reference to the desired value

The name required by this method is the name defined in the input file. For example, if you have a Kernel that requires a VectorPostprocessor you may have an input file with "pp = my_pp", this method requires the "my_pp" name as input (see .../moose_test/functions/VectorPostprocessorFunction.C)

see getVectorPostprocessorValue getVectorPostprocessorValueOldByName getVectorPostprocessorValueByName

Reimplemented in AuxKernel, and GeneralUserObject.

Definition at line 37 of file VectorPostprocessorInterface.C.

Referenced by GeneralUserObject::getVectorPostprocessorValueByName(), and AuxKernel::getVectorPostprocessorValueByName().

39 {
40  return _vpi_feproblem.getVectorPostprocessorValue(name, vector_name);
41 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
VectorPostprocessorValue & getVectorPostprocessorValue(const VectorPostprocessorName &name, const std::string &vector_name)
Get a reference to the value associated with the VectorPostprocessor.
const VectorPostprocessorValue & VectorPostprocessorInterface::getVectorPostprocessorValueOld ( const std::string &  name,
const std::string &  vector_name 
)
inherited

Retrieve the old value of a VectorPostprocessor.

Parameters
nameThe name of the VectorPostprocessor parameter
vector_nameThe name of the particular vector you want.
Returns
The value of the VectorPostprocessor

see getVectorPostprocessorValue

Definition at line 44 of file VectorPostprocessorInterface.C.

46 {
48  _vpi_params.get<VectorPostprocessorName>(name), vector_name);
49 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
const InputParameters & _vpi_params
VectorPostprocessorInterface Parameters.
VectorPostprocessorValue & getVectorPostprocessorValueOld(const std::string &name, const std::string &vector_name)
Get the reference to the old value of a post-processor.
const VectorPostprocessorValue & VectorPostprocessorInterface::getVectorPostprocessorValueOldByName ( const VectorPostprocessorName &  name,
const std::string &  vector_name 
)
inherited

Retrieve the old value of a VectorPostprocessor.

Parameters
nameThe name of the VectorPostprocessor
vector_nameThe name of the particular vector you want.
Returns
The value of the VectorPostprocessor

If within the validParams for the object the addVectorPostprocessorParam was called this method will retun a reference to the default value specified in the call to the addVectorPostprocessorParam function if the postVectorPostprocessor does not exist.

see getVectorPostprocessorValueByName

Definition at line 52 of file VectorPostprocessorInterface.C.

54 {
55  return _vpi_feproblem.getVectorPostprocessorValueOld(name, vector_name);
56 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
VectorPostprocessorValue & getVectorPostprocessorValueOld(const std::string &name, const std::string &vector_name)
Get the reference to the old value of a post-processor.
template<typename T >
const MaterialProperty< T > & Material::getZeroMaterialProperty ( const std::string &  prop_name)
inherited

Return a material property that is initialized to zero by default and does not need to (but can) be declared by another material.

Definition at line 400 of file Material.h.

401 {
403  MaterialProperty<T> & preload_with_zero = _material_data->getProperty<T>(prop_name);
404 
405  _requested_props.insert(prop_name);
406  registerPropName(prop_name, true, Material::CURRENT);
408 
409  // Register this material on these blocks and boundaries as a zero property with relaxed
410  // consistency checking
411  for (std::set<SubdomainID>::const_iterator it = blockIDs().begin(); it != blockIDs().end(); ++it)
412  _fe_problem.storeZeroMatProp(*it, prop_name);
413  for (std::set<BoundaryID>::const_iterator it = boundaryIDs().begin(); it != boundaryIDs().end();
414  ++it)
415  _fe_problem.storeZeroMatProp(*it, prop_name);
416 
417  // set values for all qpoints to zero
418  // (in multiapp scenarios getMaxQps can return different values in each app; we need the max)
419  unsigned int nqp = _mi_feproblem.getMaxQps();
420  if (nqp > preload_with_zero.size())
421  preload_with_zero.resize(nqp);
422  for (unsigned int qp = 0; qp < nqp; ++qp)
423  mooseSetToZero<T>(preload_with_zero[qp]);
424 
425  return preload_with_zero;
426 }
FEProblemBase & _mi_feproblem
Reference to the FEProblemBase class.
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object.
virtual const std::set< BoundaryID > & boundaryIDs() const
Return the boundary IDs for this object.
FEProblemBase & _fe_problem
Definition: Material.h:213
virtual void resize(int n)
Resizes the property to the size n.
std::set< std::string > _requested_props
Set of properties accessed via get method.
Definition: Material.h:242
virtual void markMatPropRequested(const std::string &)
Helper method for adding a material property name to the _material_property_requested set...
Definition: SubProblem.C:275
virtual void storeZeroMatProp(SubdomainID block_id, const MaterialPropertyName &name)
Adds to a map based on block ids of material properties for which a zero value can be returned...
Definition: SubProblem.C:232
unsigned int getMaxQps() const
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
void checkExecutionStage()
Check and throw an error if the execution has progerssed past the construction stage.
Definition: Material.C:283
Concrete definition of a parameter value for a specified type.
void registerPropName(std::string prop_name, bool is_get, Prop_State state)
Small helper function to call storeMatPropName.
Definition: Material.C:162
unsigned int size() const
template<typename T >
bool BlockRestrictable::hasBlockMaterialProperty ( const std::string &  prop_name)
inherited

Check if a material property is valid for all blocks of this object.

This method returns true if the supplied property name has been declared in a Material object on the block ids for this object.

Template Parameters
TThe type of material property
Parameters
prop_namethe name of the property to query
Returns
true if the property exists for all block ids of the object, otherwise false
See also
Material::hasBlockMaterialProperty

Definition at line 254 of file BlockRestrictable.h.

Referenced by BlockRestrictable::~BlockRestrictable().

255 {
256  mooseAssert(_blk_material_data != NULL, "MaterialData pointer is not defined");
257  return hasBlockMaterialPropertyHelper(prop_name) &&
258  _blk_material_data->haveProperty<T>(prop_name);
259 }
std::shared_ptr< MaterialData > _blk_material_data
Pointer to the MaterialData class for this object.
virtual bool hasBlockMaterialPropertyHelper(const std::string &prop_name)
A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty.
bool BlockRestrictable::hasBlockMaterialPropertyHelper ( const std::string &  prop_name)
protectedvirtualinherited

A helper method to allow the Material object to specialize the behavior of hasBlockMaterialProperty.

It also avoid circular #include problems.

See also
hasBlockMaterialProperty

Definition at line 250 of file BlockRestrictable.C.

Referenced by BlockRestrictable::hasBlockMaterialProperty().

251 {
252 
253  // Reference to MaterialWarehouse for testing and retrieving block ids
255 
256  // Complete set of ids that this object is active
257  const std::set<SubdomainID> & ids = blockRestricted() ? blockIDs() : meshBlockIDs();
258 
259  // Loop over each id for this object
260  for (const auto & id : ids)
261  {
262  // Storage of material properties that have been DECLARED on this id
263  std::set<std::string> declared_props;
264 
265  // If block materials exist, populated the set of properties that were declared
266  if (warehouse.hasActiveBlockObjects(id))
267  {
268  const std::vector<std::shared_ptr<Material>> & mats = warehouse.getActiveBlockObjects(id);
269  for (const auto & mat : mats)
270  {
271  const std::set<std::string> & mat_props = mat->getSuppliedItems();
272  declared_props.insert(mat_props.begin(), mat_props.end());
273  }
274  }
275 
276  // If the supplied property is not in the list of properties on the current id, return false
277  if (declared_props.find(prop_name) == declared_props.end())
278  return false;
279  }
280 
281  // If you get here the supplied property is defined on all blocks
282  return true;
283 }
virtual const std::set< SubdomainID > & blockIDs() const
Return the block subdomain ids for this object.
const std::set< SubdomainID > & meshBlockIDs() const
Return all of the SubdomainIDs for the mesh.
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
Material objects are special in that they have additional objects created automatically (see FEProble...
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
const MaterialWarehouse & getMaterialWarehouse()
bool hasActiveBlockObjects(THREAD_ID tid=0) const
virtual bool blockRestricted() const
Returns true if this object has been restricted to a boundary.
bool BlockRestrictable::hasBlocks ( const SubdomainName &  name) const
inherited

Test if the supplied block name is valid for this object.

Parameters
nameA SubdomainName to check
Returns
True if the given id is valid for this object

Definition at line 180 of file BlockRestrictable.C.

Referenced by LineMaterialSamplerBase< T >::execute(), BlockRestrictable::hasBlocks(), and BlockRestrictable::~BlockRestrictable().

181 {
182  // Create a vector and utilize the getSubdomainIDs function, which
183  // handles the ANY_BLOCK_ID (getSubdomainID does not)
184  std::vector<SubdomainName> names(1);
185  names[0] = name;
186  return hasBlocks(_blk_mesh->getSubdomainIDs(names));
187 }
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1051
MooseMesh * _blk_mesh
Pointer to Mesh.
bool BlockRestrictable::hasBlocks ( const std::vector< SubdomainName > &  names) const
inherited

Test if the supplied vector of block names are valid for this object.

Parameters
namesA vector of SubdomainNames to check
Returns
True if the given ids are valid for this object

Definition at line 190 of file BlockRestrictable.C.

191 {
192  return hasBlocks(_blk_mesh->getSubdomainIDs(names));
193 }
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1051
MooseMesh * _blk_mesh
Pointer to Mesh.
bool BlockRestrictable::hasBlocks ( const SubdomainID id) const
inherited

Test if the supplied block ids are valid for this object.

Parameters
idA SubdomainID to check
Returns
True if the given id is valid for this object

Definition at line 196 of file BlockRestrictable.C.

197 {
198  if (_blk_ids.empty() || _blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
199  return true;
200  else
201  return _blk_ids.find(id) != _blk_ids.end();
202 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.h:117
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
bool BlockRestrictable::hasBlocks ( const std::vector< SubdomainID > &  ids) const
inherited

Test if the supplied vector block ids are valid for this object.

Parameters
idsA vector of SubdomainIDs ids to check
Returns
True if the all of the given ids are found within the ids for this object

Definition at line 205 of file BlockRestrictable.C.

206 {
207  std::set<SubdomainID> ids_set(ids.begin(), ids.end());
208  return hasBlocks(ids_set);
209 }
bool hasBlocks(const SubdomainName &name) const
Test if the supplied block name is valid for this object.
bool BlockRestrictable::hasBlocks ( const std::set< SubdomainID > &  ids) const
inherited

Test if the supplied set of block ids are valid for this object.

Parameters
idsA std::set of SubdomainIDs to check
Returns
True if the all of the given ids are found within the ids for this object
See also
isSubset

Definition at line 212 of file BlockRestrictable.C.

213 {
214  if (_blk_ids.empty() || _blk_ids.find(Moose::ANY_BLOCK_ID) != _blk_ids.end())
215  return true;
216  else
217  return std::includes(_blk_ids.begin(), _blk_ids.end(), ids.begin(), ids.end());
218 }
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.h:117
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
bool BoundaryRestrictable::hasBoundary ( const BoundaryName &  name) const
inherited

Test if the supplied boundary name is valid for this object.

Parameters
nameA BoundaryName to check
Returns
True if the given id is valid for this object

Definition at line 183 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::hasBoundary(), and BoundaryRestrictable::hasBoundaryMaterialPropertyHelper().

184 {
185  // Create a vector and utilize the getBoundaryIDs function, which
186  // handles the ANY_BOUNDARY_ID (getBoundaryID does not)
187  return hasBoundary(_bnd_mesh->getBoundaryIDs({name}));
188 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryName > &  names) const
inherited

Test if the supplied vector of boundary names are valid for this object.

Parameters
namesA vector of BoundaryNames to check
Returns
True if the given ids are valid for this object

Definition at line 191 of file BoundaryRestrictable.C.

192 {
193  return hasBoundary(_bnd_mesh->getBoundaryIDs(names));
194 }
std::vector< BoundaryID > getBoundaryIDs(const Elem *const elem, const unsigned short int side) const
Returns a vector of boundary IDs for the requested element on the requested side. ...
Definition: MooseMesh.C:1990
MooseMesh * _bnd_mesh
Point to mesh.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
bool BoundaryRestrictable::hasBoundary ( const BoundaryID id) const
inherited

Test if the supplied boundary ids are valid for this object.

Parameters
idA BoundaryID to check
Returns
True if the given id is valid for this object

Definition at line 197 of file BoundaryRestrictable.C.

198 {
199  if (_bnd_ids.empty() || _bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
200  return true;
201  else
202  return _bnd_ids.find(id) != _bnd_ids.end();
203 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
bool BoundaryRestrictable::hasBoundary ( const std::vector< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const
inherited

Test if the supplied vector boundary ids are valid for this object.

Parameters
idsA vector of BoundaryIDs ids to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object

Definition at line 206 of file BoundaryRestrictable.C.

207 {
208  std::set<BoundaryID> ids_set(ids.begin(), ids.end());
209  return hasBoundary(ids_set, type);
210 }
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type
bool BoundaryRestrictable::hasBoundary ( const std::set< BoundaryID > &  ids,
TEST_TYPE  type = ALL 
) const
inherited

Test if the supplied set of boundary ids are valid for this object.

Parameters
idsA std::set of BoundaryIDs to check
typeA flag for the type of matching to perform: ALL requires that all supplied ids must match those of the object; ANY requires that any one of the supplied ids must match those of the object
Returns
True if the all of the given ids are found within the ids for this object
See also
isSubset

Definition at line 213 of file BoundaryRestrictable.C.

214 {
215  // An empty input is assumed to be ANY_BOUNDARY_ID
216  if (ids.empty() || ids.find(Moose::ANY_BOUNDARY_ID) != ids.end())
217  return true;
218 
219  // All supplied IDs must match those of the object
220  else if (type == ALL)
221  {
222  if (_bnd_ids.find(Moose::ANY_BOUNDARY_ID) != _bnd_ids.end())
223  return true;
224  else
225  return std::includes(_bnd_ids.begin(), _bnd_ids.end(), ids.begin(), ids.end());
226  }
227  // Any of the supplied IDs must match those of the object
228  else
229  {
230  // Loop through the supplied ids
231  for (const auto & id : ids)
232  {
233  // Test the current supplied id
234  bool test = hasBoundary(id);
235 
236  // If the id exists in the stored ids, then return true, otherwise
237  if (test)
238  return true;
239  }
240  return false;
241  }
242 }
std::set< BoundaryID > _bnd_ids
Set of the boundary ids.
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
MatType type
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
template<typename T >
bool BoundaryRestrictable::hasBoundaryMaterialProperty ( const std::string &  prop_name) const
inherited

Check if a material property is valid for all boundaries of this object.

This method returns true if the supplied property name has been declared in a Material object on the boundary ids for this object.

Template Parameters
TThe type of material property
Parameters
prop_namethe name of the property to query
Returns
true if the property exists for all boundary ids of the object, otherwise false

Definition at line 228 of file BoundaryRestrictable.h.

229 {
230  // If you get here the supplied property is defined on all boundaries, but is still subject
231  // existence in the MateialData class
232  return hasBoundaryMaterialPropertyHelper(prop_name) &&
233  _bnd_material_data->haveProperty<T>(prop_name);
234 }
bool hasBoundaryMaterialPropertyHelper(const std::string &prop_name) const
A helper method to avoid circular #include problems.
std::shared_ptr< MaterialData > _bnd_material_data
Pointer to MaterialData for boundary (.
bool BoundaryRestrictable::hasBoundaryMaterialPropertyHelper ( const std::string &  prop_name) const
protectedinherited

A helper method to avoid circular #include problems.

See also
hasBoundaryMaterialProperty

Definition at line 274 of file BoundaryRestrictable.C.

Referenced by BoundaryRestrictable::hasBoundaryMaterialProperty().

275 {
276  // Reference to MaterialWarehouse for testing and retrieving boundary ids
278 
279  // Complete set of BoundaryIDs that this object is defined
280  const std::set<BoundaryID> & ids =
282 
283  // Loop over each BoundaryID for this object
284  for (const auto & id : ids)
285  {
286  // Storage of material properties that have been DECLARED on this BoundaryID
287  std::set<std::string> declared_props;
288 
289  // If boundary materials exist, populated the set of properties that were declared
290  if (warehouse.hasActiveBoundaryObjects(id))
291  {
292  const std::vector<std::shared_ptr<Material>> & mats = warehouse.getActiveBoundaryObjects(id);
293  for (const auto & mat : mats)
294  {
295  const std::set<std::string> & mat_props = mat->getSuppliedItems();
296  declared_props.insert(mat_props.begin(), mat_props.end());
297  }
298  }
299 
300  // If the supplied property is not in the list of properties on the current id, return false
301  if (declared_props.find(prop_name) == declared_props.end())
302  return false;
303  }
304 
305  // If you get here the supplied property is defined on all boundaries
306  return true;
307 }
virtual const std::set< BoundaryID > & boundaryIDs() const
Return the boundary IDs for this object.
const std::map< BoundaryID, std::vector< std::shared_ptr< T > > > & getActiveBoundaryObjects(THREAD_ID tid=0) const
Material objects are special in that they have additional objects created automatically (see FEProble...
const std::set< BoundaryID > & meshBoundaryIDs() const
Returns the set of all boundary ids for the entire mesh.
bool hasActiveBoundaryObjects(THREAD_ID tid=0) const
bool hasBoundary(const BoundaryName &name) const
Test if the supplied boundary name is valid for this object.
const MaterialWarehouse & getMaterialWarehouse()
FEProblemBase * _bnd_feproblem
Pointer to FEProblemBase.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
template<typename T >
bool MaterialPropertyInterface::hasMaterialProperty ( const std::string &  name)
inherited

Check if the material property exists.

Parameters
namethe name of the property to query
Returns
true if the property exists, otherwise false

Definition at line 428 of file MaterialPropertyInterface.h.

429 {
430  // Check if the supplied parameter is a valid input parameter key
431  std::string prop_name = deducePropertyName(name);
432  return _material_data->haveProperty<T>(prop_name);
433 }
std::string deducePropertyName(const std::string &name)
Small helper to look up a material property name through the input parameter keys.
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
template<typename T >
bool MaterialPropertyInterface::hasMaterialPropertyByName ( const std::string &  name)
inherited

Definition at line 437 of file MaterialPropertyInterface.h.

438 {
439  return _material_data->haveProperty<T>(name);
440 }
std::shared_ptr< MaterialData > _material_data
Pointer to the material data class that stores properties.
bool PostprocessorInterface::hasPostprocessor ( const std::string &  name) const
inherited

Determine if the Postprocessor exists.

Parameters
nameThe name of the Postprocessor parameter
Returns
True if the Postprocessor exists
See also
hasPostprocessorByName getPostprocessorValue

Definition at line 80 of file PostprocessorInterface.C.

Referenced by EigenKernel::EigenKernel(), PostprocessorInterface::getPostprocessorValue(), PostprocessorInterface::getPostprocessorValueOld(), PostprocessorInterface::getPostprocessorValueOlder(), and TestSetupPostprocessorDataActionFunction::TestSetupPostprocessorDataActionFunction().

81 {
82  return _pi_feproblem.hasPostprocessor(_ppi_params.get<PostprocessorName>(name));
83 }
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
bool hasPostprocessor(const std::string &name)
Check existence of the postprocessor.
const InputParameters & _ppi_params
PostprocessorInterface Parameters.
bool PostprocessorInterface::hasPostprocessorByName ( const PostprocessorName &  name)
inherited

Determine if the Postprocessor exists.

Parameters
nameThe name of the Postprocessor
Returns
True if the Postprocessor exists
See also
hasPostprocessor getPostprocessorValueByName

Definition at line 86 of file PostprocessorInterface.C.

Referenced by VectorOfPostprocessors::VectorOfPostprocessors().

87 {
88  return _pi_feproblem.hasPostprocessor(name);
89 }
FEProblemBase & _pi_feproblem
Reference the the FEProblemBase class.
bool hasPostprocessor(const std::string &name)
Check existence of the postprocessor.
bool VectorPostprocessorInterface::hasVectorPostprocessor ( const std::string &  name) const
inherited

Determine if the VectorPostprocessor exists.

Parameters
nameThe name of the VectorPostprocessor parameter
Returns
True if the VectorPostprocessor exists
See also
hasVectorPostprocessorByName getVectorPostprocessorValue

Definition at line 59 of file VectorPostprocessorInterface.C.

60 {
61  return _vpi_feproblem.hasVectorPostprocessor(_vpi_params.get<VectorPostprocessorName>(name));
62 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
bool hasVectorPostprocessor(const std::string &name)
Check existence of the VectorPostprocessor.
const InputParameters & _vpi_params
VectorPostprocessorInterface Parameters.
bool VectorPostprocessorInterface::hasVectorPostprocessorByName ( const VectorPostprocessorName &  name) const
inherited

Determine if the VectorPostprocessor exists.

Parameters
nameThe name of the VectorPostprocessor
Returns
True if the VectorPostprocessor exists
See also
hasVectorPostprocessor getVectorPostprocessorValueByName

Definition at line 65 of file VectorPostprocessorInterface.C.

67 {
69 }
FEProblemBase & _vpi_feproblem
Reference the the FEProblemBase class.
bool hasVectorPostprocessor(const std::string &name)
Check existence of the VectorPostprocessor.
void BlockRestrictable::initializeBlockRestrictable ( const MooseObject moose_object)
protectedinherited

An initialization routine needed for dual constructors.

Definition at line 78 of file BlockRestrictable.C.

Referenced by BlockRestrictable::BlockRestrictable().

79 {
80  // If the mesh pointer is not defined, but FEProblemBase is, get it from there
81  if (_blk_feproblem != NULL && _blk_mesh == NULL)
83 
84  // Check that the mesh pointer was defined, it is required for this class to operate
85  if (_blk_mesh == NULL)
86  mooseError("The input parameters must contain a pointer to FEProblem via '_fe_problem' or a "
87  "pointer to the MooseMesh via '_mesh'");
88 
89  // Populate the MaterialData pointer
90  if (_blk_feproblem != NULL)
92 
93  // The 'block' input is defined
94  if (moose_object->isParamValid("block"))
95  {
96  // Extract the blocks from the input
97  _blocks = moose_object->getParam<std::vector<SubdomainName>>("block");
98 
99  // Get the IDs from the supplied names
100  std::vector<SubdomainID> vec_ids = _blk_mesh->getSubdomainIDs(_blocks);
101 
102  // Store the IDs, handling ANY_BLOCK_ID if supplied
103  if (std::find(_blocks.begin(), _blocks.end(), "ANY_BLOCK_ID") != _blocks.end())
105  else
106  _blk_ids.insert(vec_ids.begin(), vec_ids.end());
107  }
108 
109  // When 'blocks' is not set and there is a "variable", use the blocks from the variable
110  else if (moose_object->isParamValid("variable"))
111  {
112  std::string variable_name = moose_object->parameters().getMooseType("variable");
113  if (!variable_name.empty())
115  }
116 
117  // Produce error if the object is not allowed to be both block and boundary restricted
118  if (!_blk_dual_restrictable && !_boundary_ids.empty() && !_boundary_ids.empty())
119  if (!_boundary_ids.empty() && _boundary_ids.find(Moose::ANY_BOUNDARY_ID) == _boundary_ids.end())
120  mooseError("Attempted to restrict the object '",
121  _blk_name,
122  "' to a block, but the object is already restricted by boundary");
123 
124  // If no blocks were defined above, specify that it is valid on all blocks
125  if (_blk_ids.empty() && !moose_object->isParamValid("boundary"))
126  {
128  _blocks = {"ANY_BLOCK_ID"};
129  }
130 
131  // If this object is block restricted, check that defined blocks exist on the mesh
132  if (_blk_ids.find(Moose::ANY_BLOCK_ID) == _blk_ids.end())
133  {
134  const std::set<SubdomainID> & valid_ids = _blk_mesh->meshSubdomains();
135  std::vector<SubdomainID> diff;
136 
137  std::set_difference(_blk_ids.begin(),
138  _blk_ids.end(),
139  valid_ids.begin(),
140  valid_ids.end(),
141  std::back_inserter(diff));
142 
143  if (!diff.empty())
144  {
145  std::ostringstream msg;
146  msg << "The object '" << _blk_name
147  << "' contains the following block ids that do not exist on the mesh:";
148  for (const auto & id : diff)
149  msg << " " << id;
150  mooseError(msg.str());
151  }
152  }
153 }
const bool _blk_dual_restrictable
Flag for allowing dual restriction.
const std::set< SubdomainID > & meshSubdomains() const
Returns a read-only reference to the set of subdomains currently present in the Mesh.
Definition: MooseMesh.C:2157
void mooseError(Args &&...args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:182
FEProblemBase * _blk_feproblem
Pointer to FEProblemBase.
const std::set< SubdomainID > & activeSubdomains() const
std::shared_ptr< MaterialData > _blk_material_data
Pointer to the MaterialData class for this object.
THREAD_ID _blk_tid
Thread id for this object.
std::vector< SubdomainName > _blocks
Vector the block names supplied by the user via the input file.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseObject.h:67
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseObject.h:122
std::string getMooseType(const std::string &name) const
Utility functions for retrieving one of the MooseTypes variables into the common "string" base class...
std::shared_ptr< MaterialData > getMaterialData(Moose::MaterialDataType type, THREAD_ID tid=0)
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.h:117
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:53
virtual MooseMesh & mesh() override
const std::set< BoundaryID > & _boundary_ids
Reference to the boundary_ids, defaults to an empty set if not provided.
std::vector< SubdomainID > getSubdomainIDs(const std::vector< SubdomainName > &subdomain_name) const
Get the associated subdomainIDs for the subdomain names that are passed in.
Definition: MooseMesh.C:1051
std::set< SubdomainID > _blk_ids
Set of block ids supplied by the user via the input file (for error reporting)
virtual MooseVariable & getVariable(THREAD_ID tid, const std::string &var_name) override
Returns the variable reference for requested variable which may be in any system. ...
const std::string & _blk_name
Name of the object.
MooseMesh * _blk_mesh
Pointer to Mesh.
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.h:119
void SetupInterface::initialSetup ( )
virtualinherited
void Material::initQpStatefulProperties ( )
protectedvirtualinherited

Initialize stateful properties at quadrature points.

Note when using this function you only need to address the "current" material properties not the old ones directly, i.e. if you have a property named "_diffusivity" and an older property named "_diffusivity_old". You only need to initialize diffusivity. MOOSE will use copy that initial value to the old and older values as necessary.

Reimplemented in GenericConstantMaterial, and GenericFunctionMaterial.

Definition at line 148 of file Material.C.

Referenced by Material::initStatefulProperties(), and Material::isBoundaryMaterial().

149 {
151 }
bool _overrides_init_stateful_props
Definition: Material.h:292
void Material::initStatefulProperties ( unsigned int  n_points)
virtualinherited

Initialize stateful properties (if material has some)

Definition at line 130 of file Material.C.

131 {
132  for (_qp = 0; _qp < n_points; ++_qp)
134 
135  // checking for statefulness of properties via this loop is necessary
136  // because owned props might have been promoted to stateful by calls to
137  // getMaterialProperty[Old/Older] from other objects. In these cases, this
138  // object won't otherwise know that it owns stateful properties.
139  for (auto & prop : _supplied_props)
140  if (_material_data->getMaterialPropertyStorage().isStatefulProp(prop) &&
142  mooseError(std::string("Material \"") + name() + "\" provides one or more stateful "
143  "properties but initQpStatefulProperties() "
144  "was not overridden in the derived class.");
145 }
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:47
bool _overrides_init_stateful_props
Definition: Material.h:292