Materials System
The material system is the primary mechanism for defining spatially varying properties. The system allows properties to be defined in a single object (a Material
) and shared among the many other systems such as the Kernel or BoundaryCondition systems. Material objects are designed to directly couple to solution variables as well as other materials and therefore allow for capturing the true nonlinear behavior of the equations.
The material system relies on a producer/consumer relationship: Material
objects produce properties and other objects (including materials) consume these properties.
The properties are produced on demand, thus the computed values are always up to date. For example, a property that relies on a solution variable (e.g., thermal conductivity as function of temperature) will be computed with the current temperature during the solve iterations, so the properties are tightly coupled.
The material system supports the use of automatic differentiation for property calculations, as such there are two approaches for producing and consuming properties: with and without automatic differentiation. The following sections detail the producing and consuming properties using the two approaches. To further understand automatic differentiation, please refer to the Automatic Differentiation page for more information.
The proceeding sections briefly describe the different aspects of a Material
object for producing and computing the properties as well as how other objects consume the properties. For an example of how a Material
object is created and used please refer to ex08_materials.md.
Producing/Computing Properties
Properties must be produced by a Material
object by declaring the property with one of two methods:
declareProperty<TYPE>("property_name")
declares a property with a name "property_name" to be computed by theMaterial
object.declareADProperty<TYPE>
declares a property with a name "property_name" to be computed by theMaterial
object that will include automatic differentiation.
The TYPE
is any valid C++ type such an int
or Real
or std::vector<Real>
. The properties must then be computed within the computeQpProperties
method defined within the object.
The property name is an arbitrary name of the property, this name should be set such that it corresponds to the value be computed (e.g., "diffusivity"). The name provided here is the same name that will be used for consuming the property. More information on names is provided in Property Names section below.
For example, consider a simulation that requires a diffusivity term. In the Material
object header a property is declared (in the C++ since) as follows.
MaterialProperty<Real> & _diffusivity;
(moose/examples/ex08_materials/include/materials/ExampleMaterial.h)All properties will either be a MaterialProperty<TYPE>
or ADMaterialProperty<TYPE>
and must be a non-const reference. Again, the TYPE
can be any C++ type. In this example, a scalar Real
number is being used.
In the source file the reference is initialized in the initialization list using the aforementioned declare functions as follows. This declares the property (in the material property sense) to be computed.
_diffusivity(declareProperty<Real>("diffusivity")),
(moose/examples/ex08_materials/src/materials/ExampleMaterial.C)The final step for producing a property is to compute the value. The computation occurs within a Material
object computeQpProperties
method. As the method name suggests, the purpose of the method is to compute the values of properties at a quadrature point. This method is a virtual method that must be overridden. To do this, in the header the virtual method is declared (again in the C++ sense).
virtual void computeQpProperties() override;
(moose/examples/ex08_materials/include/materials/ExampleMaterial.h)In the source file the method is defined. For the current example this definition computes the "diffusivity" as well another term, refer to ex08_materials.md.
ExampleMaterial::computeQpProperties()
{
// Diffusivity is the value of the interpolated piece-wise function described by the user
_diffusivity[_qp] = _piecewise_func.sample(_q_point[_qp](2));
// Convection velocity is set equal to the gradient of the variable set by the user.
_convection_velocity[_qp] = _diffusion_gradient[_qp];
}
(moose/examples/ex08_materials/src/materials/ExampleMaterial.C)The purpose of the content of this method is to assign values for the properties at a quadrature point. Recall that "_diffusivity" is a reference to a MaterialProperty
type. The MaterialProperty
type is a container that stores the values of a property for each quadrature point. Therefore, this container must be indexed by _qp
to compute the value for a specific quadrature point.
ExampleMaterial
can call isPropertyActive(_diffusivity.id())
in its computeQpProperties
to check whether this property is consumed during the run-time. This function provides a capability of skipping evaluations of certain material properties within a material when such evaluations are costly for performance optimization. MOOSE calls materials to do the evaluations when needed. This isPropertyActive
routine gives code developers a finer control on the material property evaluation.
Consuming Properties
Objects that require material properties consume them using one of two functions
getMaterialProperty<TYPE>("property_name")
retrieves a property with a name "property_name" to be consumed by the object.getADMaterialProperty<TYPE>("property_name")
retrieves a property with a name "property_name" to be consumed by the object that will include automatic differentiation.
For an object to consume a property the same basic procedure is followed. First in the consuming objects header file a MaterialProperty
with the correct type (e.g., Real
for the diffusivity example) is declared (in the C++ sense) as follows. Notice, that the member variable is a const reference. The const is important. Consuming objects cannot modify a property, it only uses the property so it is marked to be constant.
const MaterialProperty<Real> & _diffusivity;
(moose/examples/ex08_materials/include/kernels/ExampleDiffusion.h)In the source file the reference is initialized in the initialization list using the aforementioned get methods. This method initializes the _diffusivity
member variable to reference the desired value of the property as computed by the material object.
: Diffusion(parameters), _diffusivity(getMaterialProperty<Real>("diffusivity"))
(moose/examples/ex08_materials/src/kernels/ExampleDiffusion.C)The name used in the get method, "diffusivity", in this case is not arbitrary. This name corresponds with the name used to declare the property in the material object.
If a material property is declared for automatic differentiation (AD) using declareADProperty
then it must be consumed with the getADMaterialProperty
. The same is true for non-automatic differentiation; properties declared with declareProperty
must be consumed with the getMaterialProperty
method.
Optional Properties
Objects can weakly couple to material properties that may or may not exist.
getOptionalMaterialProperty<TYPE>("property_name")
retrieves an optional property with a name "property_name" to be consumed by the object.getOptionalADMaterialProperty<TYPE>("property_name")
retrieves an optional property with a name "property_name" to be consumed by the object that will include automatic differentiation.
This API returns a reference to an optional material property (OptionalMaterialProperty
or OptionalADMaterialProperty
). If the requested property is not provided by any material this reference will evaluate to false
. It is the consuming object's responsibility to check for this before accessing the material property data. Note that the state of the returned reference is only finalized _after_ all materials have been constructed, so a validity check must _not_ be made in the constructor of a material class but either at time of first use in computeQpProperties
or in initialSetup
.
Property Names
When creating a Material object and declaring the properties that shall be computed, it is often desirable to allow for the property name to be changed via the input file. This may be accomplished by adding an input parameter for assigning the name. For example, considering the example above the following code snippet adds an input parameter, "diffusivity_name", that allows the input file to set the name of the diffusivity property, but by default the name remains "diffusivity".
params.addParam<MaterialPropertyName>("diffusivity_name", "diffusivity",
"The name of the diffusivity material property.");
In the material object, the declare function is simply changed to use the parameter name rather than string by itself. By default a property will be declared with the name "diffusivity".
_diffusivity_name(declareProperty<Real>("diffusivity_name")),
(moose/examples/ex08_materials/src/materials/ExampleMaterial.C)However, if the user wants to alter this name to something else, such as "not_diffusivity" then the input parameter "diffusivity_name" is simply added to the input file block for the material.
[Materials]
[example]
type = ExampleMaterial
diffusivity_name = not_diffusivity
[]
[]
On the consumer side, the get method will now be required to use the name "not_diffusivity" to retrieve the property. Consuming objects can also use the same procedure to allow for custom property names by adding a parameter and using the parameter name in the get method in the same fashion.
Default Material Properties
The MaterialPropertyName
input parameter also provides the ability to set default values for scalar (Real
) properties. In the above example, the input file can use number or parsed function (see ParsedFunction) to define a the property value. For example, the input snippet above could set a constant value.
[Materials]
[example]
type = ExampleMaterial
diffusivity_name = 12345
[]
[]
Stateful Material Properties
In general properties are computed on demand and not stored. However, in some cases values of material properties from a previous timestep may be required. To access properties two methods exist:
getMaterialPropertyOld<TYPE>
returns a reference to the property from the previous timestep.getMaterialPropertyOlder<TYPE>
returns a reference to the property from two timesteps before the current.
This is often referred to as a "state" variable, in MOOSE we refer to them as "stateful material properties." As stated, material properties are usually computed on demand.
When a stateful property is requested through one of the above methods this is no longer the case. When it is computed the value is also stored for every quadrature point on every element. As such, stateful properties can become memory intensive, especially if the property being stored is a vector or tensor value.
Material Property Output
Output of Material
properties is enabled by setting the "outputs" parameter. The following example creates two additional variables called "mat1" and "mat2" that will show up in the output file.
[Materials]
[block_1]
type = OutputTestMaterial
block = 1
output_properties = 'real_property tensor_property'
outputs = exodus
variable = u
[]
[block_2]
type = OutputTestMaterial
block = 2
output_properties = 'vector_property tensor_property'
outputs = exodus
variable = u
[]
[]
[Outputs]
exodus = true
[]
(moose/test/tests/materials/output/output_block.i)Material
properties can be of arbitrary (C++) type, but not all types can be output. The following table lists the types of properties that are available for automatic output.
Type | AuxKernel | Variable Name(s) |
---|---|---|
Real | MaterialRealAux | prop |
RealVectorValue | MaterialRealVectorValueAux | prop_1, prop_2, and prop_3 |
RealTensorValue | MaterialRealTensorValueAux | prop_11, prop_12, prop_13, prop_21, etc. |
Material sorting
Materials are sorted such that one material may consume a property produced by another material and know that the consumed property will be up-to-date, e.g. the producer material will execute before the consumer material. If a cyclic dependency is detected between two materials, then MOOSE will produce an error.
Functor Material Properties
Functor materials are a special kind of materials used for on-the-fly material property evaluation. Please refer to the syntax page for FunctorMaterials for more information.
Advanced Topics
Evaluation of Material Properties on Element Faces
MOOSE creates three copies of a non-boundary restricted material for evaluations on quadrature points of elements, element faces on both the current element side and the neighboring element side. The name of the element interior material is the material name from the input file, while the name of the element face material is the material name appended with _face
and the name of the neighbor face material is the material name appended with _neighbor
. The element material can be identified in a material with its member variable _bnd=false
. The other two copies have _bnd=true
. The element face material and neighbor face material differentiate with each other by the value of another member variable _neighbor
. If a material declares multiple material properties and some of them are not needed on element faces, users can switch off their declaration and evaluation based on member variable _bnd
.
Interface Material Objects
MOOSE allows a material to be defined on an internal boundary of a mesh with a specific material type InterfaceMaterial
. Material properties declared in interface materials are available on both sides of the boundary. Interface materials allows users to evaluate the properties on element faces based on quantities on both sides of the element face. Interface materials are often used along with InterfaceKernel.
Discrete Material Objects
A "Discrete" Material
is an object that may be detached from MOOSE and computed explicitly from other objects. An object inheriting from MaterialPropertyInterface may explicitly call the compute methods of a Material
object via the getMaterial
method.
The following should be considered when computing Material
properties explicitly.
It is possible to disable the automatic computation of a
Material
object by MOOSE by setting thecompute=false
parameter.When
compute=false
is set the compute method (computeQpProperties
) is not called by MOOSE, instead it must be called explicitly in your application using thecomputeProperties
method that accepts a quadrature point index.When
compute=false
an additional method should be defined,resetQpProperties
, which sets the properties to a safe value (e.g., 0) for later calls to the compute method. Not doing this can lead to erroneous material properties values.
The original intent for this functionality was to enable to ability for material properties to be computed via iteration by another object, as in the following example. First, consider define a material (RecomputeMaterial
) that computes the value of a function and its derivative.
and
where v is known value and not a function of p. The following is the compute portion of this object.
void
RecomputeMaterial::computeQpProperties()
{
Real x = _p[_qp];
_f[_qp] = x * x - _constant;
_f_prime[_qp] = 2 * x;
}
(moose/test/src/materials/RecomputeMaterial.C)Second, define another material (NewtonMaterial
) that computes the value of using Newton iterations. This material declares a material property (_p
) which is what is solved for by iterating on the material properties containing f
and f'
from RecomputeMaterial
. The _discrete
member is a reference to a Material
object retrieved with getMaterial
.
void
NewtonMaterial::computeQpProperties()
{
_p[_qp] = 0.5; // initial guess
// Only attempt to solve if iterations are to be taken. This is usually not required, but needed
// here to retain the old test behavior that would not trigger a discrete material evaluation. The
// NestedSolve class will always evaluate the residual for the initial guess (and will return a
// success state if the initial guess was exact).
if (getParam<unsigned int>("max_iterations") > 0)
_nested_solve.nonlinear(
_p[_qp],
// Lambda function to compute residual and jacobian. The initial guess is not
// used here as it (_p) is directly coupled in the discrete material.
[&](const Real & /*guess*/, Real & r, Real & j)
{
_discrete->computePropertiesAtQp(_qp);
r = _f[_qp];
j = _f_prime[_qp];
});
}
(moose/test/src/materials/NewtonMaterial.C)To create and use a "Discrete" Material
use the following to guide the process.
Create a
Material
object by, in typical MOOSE fashion, inheriting from theMaterial
object in your own application.In your input file, set
compute=false
for this new object.From within another object (e.g., another Material) that inherits from
MaterialPropertyInterface
call thegetMaterial
method. Note, this method returns a reference to aMaterial
object, be sure to include&
when calling or declaring the variable.When needed, call the
computeProperties
method of theMaterial
being sure to provide the current quadrature point index to the method (_qp
in most cases).
Available Objects
- Moose App
- ADCoupledValueFunctionMaterialCompute a function value from coupled variables
- ADDerivativeParsedMaterialParsed Function Material with automatic derivatives.
- ADDerivativeSumMaterialMeta-material to sum up multiple derivative materials
- ADGenericConstantFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- ADGenericConstantMaterialDeclares material properties based on names and values prescribed by input parameters.
- ADGenericConstantRankTwoTensorObject for declaring a constant rank two tensor as a material property.
- ADGenericConstantSymmetricRankTwoTensorObject for declaring a constant symmetric rank two tensor as a material property.
- ADGenericConstantVectorFunctorMaterialFunctorMaterial object for declaring vector properties that are populated by evaluation of functor (constants, functions, variables, matprops) object.
- ADGenericConstantVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- ADGenericFunctionFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- ADGenericFunctionMaterialMaterial object for declaring properties that are populated by evaluation of Function object.
- ADGenericFunctionRankTwoTensorMaterial object for defining rank two tensor properties using functions.
- ADGenericFunctionVectorMaterialMaterial object for declaring vector properties that are populated by evaluation of Function objects.
- ADGenericFunctorGradientMaterialFunctorMaterial object for declaring properties that are populated by evaluation of gradients of Functors (a constant, variable, function or functor material property) objects.
- ADGenericFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- ADGenericFunctorTimeDerivativeMaterialFunctorMaterial object for declaring properties that are populated by evaluation of time derivatives of Functors objects. (such as variables, constants, postprocessors). The time derivative is only returned if the 'dot' functor routine is implemented.
- ADGenericVectorFunctorMaterialFunctorMaterial object for declaring vector properties that are populated by evaluation of functor (constants, functions, variables, matprops) object.
- ADParsedFunctorMaterialComputes a functor material from a parsed expression of other functors.
- ADParsedMaterialParsed expression Material.
- ADPiecewiseByBlockFunctorMaterialComputes a property value on a per-subdomain basis
- ADPiecewiseByBlockVectorFunctorMaterialComputes a property value on a per-subdomain basis
- ADPiecewiseConstantByBlockMaterialComputes a property value on a per-subdomain basis
- ADPiecewiseLinearInterpolationMaterialCompute a property using a piecewise linear interpolation to define its dependence on a variable
- ADVectorFromComponentVariablesMaterialComputes a vector material property from coupled variables
- ADVectorMagnitudeFunctorMaterialThis class takes up to three scalar-valued functors corresponding to vector components or a single vector functor and computes the Euclidean norm.
- CoupledValueFunctionMaterialCompute a function value from coupled variables
- DerivativeParsedMaterialParsed Function Material with automatic derivatives.
- DerivativeSumMaterialMeta-material to sum up multiple derivative materials
- FVADPropValPerSubdomainMaterialComputes a property value on a per-subdomain basis
- FVPropValPerSubdomainMaterialComputes a property value on a per-subdomain basis
- FunctorADConverterConverts regular functors to AD functors and AD functors to regular functors
- FunctorSmootherCreates smoother functor(s) using various averaging techniques
- GenericConstant2DArrayA material evaluating one material property in type of RealEigenMatrix
- GenericConstantArrayA material evaluating one material property in type of RealEigenVector
- GenericConstantFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- GenericConstantMaterialDeclares material properties based on names and values prescribed by input parameters.
- GenericConstantRankTwoTensorObject for declaring a constant rank two tensor as a material property.
- GenericConstantSymmetricRankTwoTensorObject for declaring a constant symmetric rank two tensor as a material property.
- GenericConstantVectorFunctorMaterialFunctorMaterial object for declaring vector properties that are populated by evaluation of functor (constants, functions, variables, matprops) object.
- GenericConstantVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- GenericFunctionFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- GenericFunctionMaterialMaterial object for declaring properties that are populated by evaluation of Function object.
- GenericFunctionRankTwoTensorMaterial object for defining rank two tensor properties using functions.
- GenericFunctionVectorMaterialMaterial object for declaring vector properties that are populated by evaluation of Function objects.
- GenericFunctorGradientMaterialFunctorMaterial object for declaring properties that are populated by evaluation of gradients of Functors (a constant, variable, function or functor material property) objects.
- GenericFunctorMaterialFunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.
- GenericFunctorTimeDerivativeMaterialFunctorMaterial object for declaring properties that are populated by evaluation of time derivatives of Functors objects. (such as variables, constants, postprocessors). The time derivative is only returned if the 'dot' functor routine is implemented.
- GenericVectorFunctorMaterialFunctorMaterial object for declaring vector properties that are populated by evaluation of functor (constants, functions, variables, matprops) object.
- InterpolatedStatefulMaterialRankFourTensorAccess old state from projected data.
- InterpolatedStatefulMaterialRankTwoTensorAccess old state from projected data.
- InterpolatedStatefulMaterialRealAccess old state from projected data.
- InterpolatedStatefulMaterialRealVectorValueAccess old state from projected data.
- MaterialADConverterConverts regular material properties to AD properties and vice versa
- MaterialConverterConverts regular material properties to AD properties and vice versa
- MaterialFunctorConverterConverts functor to non-AD and AD regular material properties
- ParsedFunctorMaterialComputes a functor material from a parsed expression of other functors.
- ParsedMaterialParsed expression Material.
- PiecewiseByBlockFunctorMaterialComputes a property value on a per-subdomain basis
- PiecewiseByBlockVectorFunctorMaterialComputes a property value on a per-subdomain basis
- PiecewiseConstantByBlockMaterialComputes a property value on a per-subdomain basis
- PiecewiseLinearInterpolationMaterialCompute a property using a piecewise linear interpolation to define its dependence on a variable
- RankFourTensorMaterialADConverterConverts regular material properties to AD properties and vice versa
- RankFourTensorMaterialConverterConverts regular material properties to AD properties and vice versa
- RankTwoTensorMaterialADConverterConverts regular material properties to AD properties and vice versa
- RankTwoTensorMaterialConverterConverts regular material properties to AD properties and vice versa
- VectorFromComponentVariablesMaterialComputes a vector material property from coupled variables
- VectorFunctorADConverterConverts regular functors to AD functors and AD functors to regular functors
- VectorMagnitudeFunctorMaterialThis class takes up to three scalar-valued functors corresponding to vector components or a single vector functor and computes the Euclidean norm.
- VectorMaterialFunctorConverterConverts functor to non-AD and AD regular material properties
- Phase Field App
- ADConstantAnisotropicMobilityProvide a constant mobility tensor value
- ADGBEvolutionComputes necessary material properties for the isotropic grain growth model
- ADInterfaceOrientationMaterial2D interfacial anisotropy
- ADMathCTDFreeEnergyMaterial that implements the math free energy using the expression builder and automatic differentiation
- ADMathFreeEnergyMaterial that implements the math free energy and its derivatives:
- ADSwitchingFunctionMultiPhaseMaterialCalculates the switching function for a given phase for a multi-phase, multi-order parameter model
- AsymmetricCrossTermBarrierFunctionMaterialFree energy contribution asymmetric across interfaces between arbitrary pairs of phases.
- BarrierFunctionMaterialHelper material to provide and its derivative in a polynomial. SIMPLE: LOW: HIGH:
- CompositeMobilityTensorAssemble a mobility tensor from multiple tensor contributions weighted by material properties
- ComputeGBMisorientationTypeCalculate types of grain boundaries in a polycrystalline sample
- ComputePolycrystalElasticityTensorCompute an evolving elasticity tensor coupled to a grain growth phase field model.
- ConstantAnisotropicMobilityProvide a constant mobility tensor value
- CoupledValueFunctionFreeEnergyCompute a free energy from a lookup function
- CrossTermBarrierFunctionMaterialFree energy contribution symmetric across interfaces between arbitrary pairs of phases.
- DeformedGrainMaterialComputes scaled grain material properties
- DerivativeMultiPhaseMaterialTwo phase material that combines n phase materials using a switching function with and n non-conserved order parameters (to be used with SwitchingFunctionConstraint*).
- DerivativeTwoPhaseMaterialTwo phase material that combines two single phase materials using a switching function.
- DiscreteNucleationFree energy contribution for nucleating discrete particles
- ElasticEnergyMaterialFree energy material for the elastic energy contributions.
- ElectrochemicalDefectMaterialCalculates density, susceptibility, and derivatives for a defect species in the grand potential sintering model coupled with electrochemistry
- ElectrochemicalSinteringMaterialIncludes switching and thermodynamic properties for the grand potential sintering model coupled with electrochemistry
- ExternalForceDensityMaterialProviding external applied force density to grains
- ForceDensityMaterialCalculating the force density acting on a grain
- GBAnisotropyA material to compute anisotropic grain boundary energies and mobilities.
- GBDependentAnisotropicTensorCompute anisotropic rank two tensor based on GB phase variable
- GBDependentDiffusivityCompute diffusivity rank two tensor based on GB phase variable
- GBEvolutionComputes necessary material properties for the isotropic grain growth model
- GBWidthAnisotropyA material to compute anisotropic grain boundary energies and mobilities with user-specified grain boundary widths, independently for each interface between grains
- GrainAdvectionVelocityCalculation the advection velocity of grain due to rigid body translation and rotation
- GrandPotentialInterfaceCalculate Grand Potential interface parameters for a specified interfacial free energy and width
- GrandPotentialSinteringMaterialIncludes switching and thermodynamic properties for the grand potential sintering model
- GrandPotentialTensorMaterialDiffusion and mobility parameters for grand potential model governing equations. Uses a tensor diffusivity
- IdealGasFreeEnergyFree energy of an ideal gas.
- InterfaceOrientationMaterial2D interfacial anisotropy
- InterfaceOrientationMultiphaseMaterialThis Material accounts for the the orientation dependence of interfacial energy for multi-phase multi-order parameter phase-field model.
- KKSPhaseConcentrationDerivativesComputes the KKS phase concentration derivatives wrt global concentrations and order parameters, which are used in the chain rules in the KKS kernels. This class is intended to be used with KKSPhaseConcentrationMaterial.
- KKSPhaseConcentrationMaterialComputes the KKS phase concentrations by using nested Newton iteration to solve the equal chemical potential and concentration conservation equations. This class is intended to be used with KKSPhaseConcentrationDerivatives.
- KKSPhaseConcentrationMultiPhaseDerivativesComputes the KKS phase concentration derivatives wrt global concentrations and order parameters, which are used for the chain rule in the KKS kernels. This class is intended to be used with KKSPhaseConcentrationMultiPhaseMaterial.
- KKSPhaseConcentrationMultiPhaseMaterialComputes the KKS phase concentrations by using a nested Newton iteration to solve the equal chemical potential and concentration conservation equations for multiphase systems. This class is intented to be used with KKSPhaseConcentrationMultiPhaseDerivatives.
- KKSXeVacSolidMaterialKKS Solid phase free energy for Xe,Vac in UO2. Fm(cmg,cmv)
- LinearizedInterfaceFunctionDefines the order parameter substitution for linearized interface phase field models
- MathCTDFreeEnergyMaterial that implements the math free energy using the expression builder and automatic differentiation
- MathEBFreeEnergyMaterial that implements the math free energy using the expression builder and automatic differentiation
- MathFreeEnergyMaterial that implements the math free energy and its derivatives:
- MixedSwitchingFunctionMaterialHelper material to provide h(eta) and its derivative in one of two polynomial forms. MIX234 and MIX246
- MultiBarrierFunctionMaterialDouble well phase transformation barrier free energy contribution.
- PFCRFFMaterialDefined the mobility, alpha and A constants for the RFF form of the phase field crystal model
- PFCTradMaterialPolynomial coefficients for a phase field crystal correlation function
- PFParamsPolyFreeEnergyPhase field parameters for polynomial free energy for single component systems
- PhaseNormalTensorCalculate normal tensor of a phase based on gradient
- PolycrystalDiffusivityGenerates a diffusion coefficient to distinguish between the bulk, pore, grain boundaries, and surfaces
- PolycrystalDiffusivityTensorBaseGenerates a diffusion tensor to distinguish between the bulk, grain boundaries, and surfaces
- PolynomialFreeEnergyPolynomial free energy for single component systems
- RegularSolutionFreeEnergyMaterial that implements the free energy of a regular solution
- StrainGradDispDerivativesProvide the constant derivatives of strain w.r.t. the displacement gradient components.
- SwitchingFunction3PhaseMaterialMaterial for switching function that prevents formation of a third phase at a two-phase interface:
- SwitchingFunctionMaterialHelper material to provide and its derivative in one of two polynomial forms. SIMPLE: HIGH:
- SwitchingFunctionMultiPhaseMaterialCalculates the switching function for a given phase for a multi-phase, multi-order parameter model
- ThirdPhaseSuppressionMaterialFree Energy contribution that penalizes more than two order parameters being non-zero
- TimeStepMaterialProvide various time stepping quantities as material properties.
- VanDerWaalsFreeEnergyFree energy of a Van der Waals gas.
- VariableGradientMaterialCompute the norm of the gradient of a variable
- Heat Transfer App
- ADAnisoHeatConductionMaterialGeneral-purpose material model for anisotropic heat conduction
- ADConvectionHeatFluxFunctorMaterialComputes a convection heat flux from a solid surface to a fluid.
- ADCylindricalGapHeatFluxFunctorMaterialComputes cylindrical gap heat flux due to conduction and radiation.
- ADElectricalConductivityCalculates resistivity and electrical conductivity as a function of temperature, using copper for parameter defaults.
- ADFinEfficiencyFunctorMaterialComputes fin efficiency.
- ADFinEnhancementFactorFunctorMaterialComputes a heat transfer enhancement factor for fins.
- ADHeatConductionMaterialGeneral-purpose material model for heat conduction
- ADRadiativeP1DiffusionCoefficientMaterialComputes the P1 diffusion coefficient from the opacity and effective scattering cross section.
- AnisoHeatConductionMaterialGeneral-purpose material model for anisotropic heat conduction
- ConvectionHeatFluxFunctorMaterialComputes a convection heat flux from a solid surface to a fluid.
- CylindricalGapHeatFluxFunctorMaterialComputes cylindrical gap heat flux due to conduction and radiation.
- ElectricalConductivityCalculates resistivity and electrical conductivity as a function of temperature, using copper for parameter defaults.
- FinEfficiencyFunctorMaterialComputes fin efficiency.
- FinEnhancementFactorFunctorMaterialComputes a heat transfer enhancement factor for fins.
- FunctionPathEllipsoidHeatSourceDouble ellipsoid volumetric source heat with function path.
- GapConductance
- GapConductanceConstantMaterial to compute a constant, prescribed gap conductance
- HeatConductionMaterialGeneral-purpose material model for heat conduction
- RadiativeP1DiffusionCoefficientMaterialComputes the P1 diffusion coefficient from the opacity and effective scattering cross section.
- SemiconductorLinearConductivityCalculates electrical conductivity of a semiconductor from temperature
- SideSetHeatTransferMaterialThis material constructs the necessary coefficients and properties for SideSetHeatTransferKernel.
- ThermalComplianceComputes cost sensitivity needed for multimaterial SIMP method.
- ThermalSensitivityComputes cost sensitivity needed for multimaterial SIMP method.
- Solid Mechanics App
- ADAbruptSofteningSoftening model with an abrupt stress release upon cracking. This class relies on automatic differentiation and is intended to be used with ADComputeSmearedCrackingStress.
- ADCZMComputeDisplacementJumpSmallStrainCompute the total displacement jump across a czm interface in local coordinates for the Small Strain kinematic formulation
- ADCZMComputeDisplacementJumpTotalLagrangianCompute the displacement jump increment across a czm interface in local coordinates for the Total Lagrangian kinematic formulation
- ADCZMComputeGlobalTractionSmallStrainComputes the czm traction in global coordinates for a small strain kinematic formulation
- ADCZMComputeGlobalTractionTotalLagrangianCompute the equilibrium traction (PK1) and its derivatives for the Total Lagrangian formulation.
- ADCombinedNonlinearHardeningPlasticityCombined isotropic and kinematic plasticity model with nonlinear hardening rules, including a Voce model for isotropic hardening and an Armstrong-Fredrick model for kinematic hardening.
- ADCombinedScalarDamageScalar damage model which is computed as a function of multiple scalar damage models
- ADComputeAxisymmetricRZFiniteStrainCompute a strain increment for finite strains under axisymmetric assumptions.
- ADComputeAxisymmetricRZIncrementalStrainCompute a strain increment and rotation increment for finite strains under axisymmetric assumptions.
- ADComputeAxisymmetricRZSmallStrainCompute a small strain in an Axisymmetric geometry
- ADComputeDamageStressCompute stress for damaged elastic materials in conjunction with a damage model.
- ADComputeDilatationThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the total dilatation as a function of temperature
- ADComputeEigenstrainComputes a constant Eigenstrain
- ADComputeElasticityTensorCompute an elasticity tensor.
- ADComputeFiniteShellStrainCompute a large strain increment for the shell.
- ADComputeFiniteStrainCompute a strain increment and rotation increment for finite strains.
- ADComputeFiniteStrainElasticStressCompute stress using elasticity for finite strains
- ADComputeGreenLagrangeStrainCompute a Green-Lagrange strain.
- ADComputeIncrementalShellStrainCompute a small strain increment for the shell.
- ADComputeIncrementalSmallStrainCompute a strain increment and rotation increment for small strains.
- ADComputeIncrementalStrainCompute a strain increment and rotation increment for small strains.
- ADComputeInstantaneousThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the instantaneous thermal expansion as a function of temperature
- ADComputeIsotropicElasticityTensorCompute a constant isotropic elasticity tensor.
- ADComputeIsotropicElasticityTensorShellCompute a plane stress isotropic elasticity tensor.
- ADComputeLinearElasticStressCompute stress using elasticity for small strains
- ADComputeMeanThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the mean thermal expansion as a function of temperature
- ADComputeMultipleInelasticStressCompute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.
- ADComputeMultiplePorousInelasticStressCompute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. A porosity material property is defined and is calculated from the trace of inelastic strain increment.
- ADComputePlaneFiniteStrainCompute strain increment and rotation increment for finite strain under 2D planar assumptions.
- ADComputePlaneIncrementalStrainCompute strain increment for small strain under 2D planar assumptions.
- ADComputePlaneSmallStrainCompute a small strain under generalized plane strain assumptions where the out of plane strain is generally nonzero.
- ADComputeRSphericalFiniteStrainCompute a strain increment and rotation increment for finite strains in 1D spherical symmetry problems.
- ADComputeRSphericalIncrementalStrainCompute a strain increment for incremental strains in 1D spherical symmetry problems.
- ADComputeRSphericalSmallStrainCompute a small strain 1D spherical symmetry case.
- ADComputeShellStressCompute in-plane stress using elasticity for shell
- ADComputeSmallStrainCompute a small strain.
- ADComputeSmearedCrackingStressCompute stress using a fixed smeared cracking model. Uses automatic differentiation
- ADComputeStrainIncrementBasedStressCompute stress after subtracting inelastic strain increments
- ADComputeThermalExpansionEigenstrainComputes eigenstrain due to thermal expansion with a constant coefficient
- ADComputeVariableIsotropicElasticityTensorCompute an isotropic elasticity tensor for elastic constants that change as a function of material properties
- ADComputeVolumetricEigenstrainComputes an eigenstrain that is defined by a set of scalar material properties that summed together define the volumetric change.
- ADEshelbyTensorComputes the Eshelby tensor as a function of strain energy density and the first Piola-Kirchhoff stress
- ADExponentialSofteningSoftening model with an exponential softening response upon cracking. This class is intended to be used with ADComputeSmearedCrackingStress and relies on automatic differentiation.
- ADHillConstantsBuild and rotate the Hill Tensor. It can be used with other Hill plasticity and creep materials.
- ADHillCreepStressUpdateThis class uses the stress update material in a generalized radial return anisotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADHillElastoPlasticityStressUpdateThis class uses the generalized radial return for anisotropic elasto-plasticity model.This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADHillPlasticityStressUpdateThis class uses the generalized radial return for anisotropic plasticity model.This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADIsotropicPlasticityStressUpdateThis class uses the discrete material in a radial return isotropic plasticity model. This class is one of the basic radial return constitutive models, yet it can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADIsotropicPowerLawHardeningStressUpdateThis class uses the discrete material in a radial return isotropic plasticity power law hardening model, solving for the yield stress as the intersection of the power law relation curve and Hooke's law. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADLAROMANCEPartitionStressUpdateLAROMANCE base class for partitioned reduced order models
- ADLAROMANCEStressUpdateBase class to calculate the effective creep strain based on the rates predicted by a material specific Los Alamos Reduced Order Model derived from a Visco-Plastic Self Consistent calculations.
- ADMultiplePowerLawCreepStressUpdateThis class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADNonlocalDamageNonlocal damage model. Given an RadialAverage UO this creates a new damage index that can be used as for ComputeDamageStress without havign to change existing local damage models.
- ADPorosityFromStrainPorosity calculation from the inelastic strain.
- ADPowerLawCreepStressUpdateThis class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- ADPowerLawSofteningSoftening model with an abrupt stress release upon cracking. This class is intended to be used with ADComputeSmearedCrackingStress and relies on automatic differentiation.
- ADPureElasticTractionSeparationPure elastic traction separation law.
- ADRankTwoCartesianComponentAccess a component of a RankTwoTensor
- ADRankTwoCylindricalComponentCompute components of a rank-2 tensor in a cylindrical coordinate system
- ADRankTwoDirectionalComponentCompute a Direction scalar property of a RankTwoTensor
- ADRankTwoInvariantCompute a invariant property of a RankTwoTensor
- ADRankTwoSphericalComponentCompute components of a rank-2 tensor in a spherical coordinate system
- ADScalarMaterialDamageScalar damage model for which the damage is prescribed by another material
- ADStrainEnergyDensityComputes the strain energy density using a combination of the elastic and inelastic components of the strain increment, which is a valid assumption for monotonic behavior.
- ADStrainEnergyRateDensityComputes the strain energy density rate using a combination of the elastic and inelastic components of the strain increment, which is a valid assumption for monotonic behavior.
- ADSymmetricFiniteStrainCompute a strain increment and rotation increment for finite strains.
- ADSymmetricFiniteStrainElasticStressCompute stress using elasticity for finite strains
- ADSymmetricIsotropicElasticityTensorCompute a constant isotropic elasticity tensor.
- ADSymmetricLinearElasticStressCompute stress using elasticity for small strains
- ADSymmetricSmallStrainCompute a small strain.
- ADTemperatureDependentHardeningStressUpdateComputes the stress as a function of temperature and plastic strain from user-supplied hardening functions. This class can be used in conjunction with other creep and plasticity materials for more complex simulations
- ADViscoplasticityStressUpdateThis material computes the non-linear homogenized gauge stress in order to compute the viscoplastic responce due to creep in porous materials. This material must be used in conjunction with ADComputeMultiplePorousInelasticStress
- AbaqusUMATStressCoupling material to use Abaqus UMAT models in MOOSE
- AbruptSofteningSoftening model with an abrupt stress release upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.
- BiLinearMixedModeTractionMixed mode bilinear traction separation law.
- CZMComputeDisplacementJumpSmallStrainCompute the total displacement jump across a czm interface in local coordinates for the Small Strain kinematic formulation
- CZMComputeDisplacementJumpTotalLagrangianCompute the displacement jump increment across a czm interface in local coordinates for the Total Lagrangian kinematic formulation
- CZMComputeGlobalTractionSmallStrainComputes the czm traction in global coordinates for a small strain kinematic formulation
- CZMComputeGlobalTractionTotalLagrangianCompute the equilibrium traction (PK1) and its derivatives for the Total Lagrangian formulation.
- CZMRealVectorCartesianComponentAccess a component of a RealVectorValue defined on a cohesive zone
- CZMRealVectorScalarCompute the normal or tangent component of a vector quantity defined on a cohesive interface.
- CappedDruckerPragerCosseratStressUpdateCapped Drucker-Prager plasticity stress calculator for the Cosserat situation where the host medium (ie, the limit where all Cosserat effects are zero) is isotropic. Note that the return-map flow rule uses an isotropic elasticity tensor built with the 'host' properties defined by the user.
- CappedDruckerPragerStressUpdateCapped Drucker-Prager plasticity stress calculator
- CappedMohrCoulombCosseratStressUpdateCapped Mohr-Coulomb plasticity stress calculator for the Cosserat situation where the host medium (ie, the limit where all Cosserat effects are zero) is isotropic. Note that the return-map flow rule uses an isotropic elasticity tensor built with the 'host' properties defined by the user.
- CappedMohrCoulombStressUpdateNonassociative, smoothed, Mohr-Coulomb plasticity capped with tensile (Rankine) and compressive caps, with hardening/softening
- CappedWeakInclinedPlaneStressUpdateCapped weak inclined plane plasticity stress calculator
- CappedWeakPlaneCosseratStressUpdateCapped weak-plane plasticity Cosserat stress calculator
- CappedWeakPlaneStressUpdateCapped weak-plane plasticity stress calculator
- CauchyStressFromNEML2To use this object, you need to have the
NEML2
library installed. Refer to the documentation for guidance on how to enable it. To build this library MOOSE must be configured withLIBTORCH
support! (Original description: Perform the objective stress update using a NEML2 material model) - CauchyStressFromNEML2ReceiverTo use this object, you need to have the
NEML2
library installed. Refer to the documentation for guidance on how to enable it. To build this library MOOSE must be configured withLIBTORCH
support! (Original description: Retrieve the batched output vector from a NEML2 material model and use the output variables to perform the objective stress integration) - CombinedNonlinearHardeningPlasticityCombined isotropic and kinematic plasticity model with nonlinear hardening rules, including a Voce model for isotropic hardening and an Armstrong-Fredrick model for kinematic hardening.
- CombinedScalarDamageScalar damage model which is computed as a function of multiple scalar damage models
- ComplianceSensitivityComputes compliance sensitivity needed for SIMP method.
- CompositeEigenstrainAssemble an Eigenstrain tensor from multiple tensor contributions weighted by material properties
- CompositeElasticityTensorAssemble an elasticity tensor from multiple tensor contributions weighted by material properties
- ComputeAxisymmetric1DFiniteStrainCompute a strain increment and rotation increment for finite strains in an axisymmetric 1D problem
- ComputeAxisymmetric1DIncrementalStrainCompute strain increment for small strains in an axisymmetric 1D problem
- ComputeAxisymmetric1DSmallStrainCompute a small strain in an Axisymmetric 1D problem
- ComputeAxisymmetricRZFiniteStrainCompute a strain increment for finite strains under axisymmetric assumptions.
- ComputeAxisymmetricRZIncrementalStrainCompute a strain increment and rotation increment for small strains under axisymmetric assumptions.
- ComputeAxisymmetricRZSmallStrainCompute a small strain in an Axisymmetric geometry
- ComputeBeamResultantsCompute forces and moments using elasticity
- ComputeConcentrationDependentElasticityTensorCompute concentration dependent elasticity tensor.
- ComputeCosseratElasticityTensorCompute Cosserat elasticity and flexural bending rigidity tensors
- ComputeCosseratIncrementalSmallStrainCompute incremental small Cosserat strains
- ComputeCosseratLinearElasticStressCompute Cosserat stress and couple-stress elasticity for small strains
- ComputeCosseratSmallStrainCompute small Cosserat strains
- ComputeCrackedStressComputes energy and modifies the stress for phase field fracture
- ComputeCreepPlasticityStressCompute state (stress and internal parameters such as inelastic strains and internal parameters) using an Newton process for one creep and one plasticity model
- ComputeCrystalPlasticityThermalEigenstrainComputes the deformation gradient associated with the linear thermal expansion in a crystal plasticity simulation
- ComputeCrystalPlasticityVolumetricEigenstrainComputes the deformation gradient from the volumetric eigenstrain due to spherical voids in a crystal plasticity simulation
- ComputeDamageStressCompute stress for damaged elastic materials in conjunction with a damage model.
- ComputeDeformGradBasedStressComputes stress based on Lagrangian strain
- ComputeDilatationThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the total dilatation as a function of temperature
- ComputeEigenstrainComputes a constant Eigenstrain
- ComputeEigenstrainBeamFromVariableComputes an eigenstrain from a set of variables
- ComputeEigenstrainFromInitialStressComputes an eigenstrain from an initial stress
- ComputeElasticityBeamComputes the equivalent of the elasticity tensor for the beam element, which are vectors of material translational and flexural stiffness.
- ComputeElasticityTensorCompute an elasticity tensor.
- ComputeElasticityTensorCPCompute an elasticity tensor for crystal plasticity.
- ComputeExtraStressConstantComputes a constant extra stress that is added to the stress calculated by the constitutive model
- ComputeExtraStressVDWGasComputes a hydrostatic stress corresponding to the pressure of a van der Waals gas that is added as an extra_stress to the stress computed by the constitutive model
- ComputeFiniteBeamStrainCompute a rotation increment for finite rotations of the beam and computes the small/large strain increments in the current rotated configuration of the beam.
- ComputeFiniteStrainCompute a strain increment and rotation increment for finite strains.
- ComputeFiniteStrainElasticStressCompute stress using elasticity for finite strains
- ComputeGlobalStrainMaterial for storing the global strain values from the scalar variable
- ComputeHomogenizedLagrangianStrainSets the homogenization gradient as a material property from an auxiliary variable input gradient
- ComputeHypoelasticStVenantKirchhoffStressCalculate a small strain elastic stress that is equivalent to the hyperelastic St. Venant-Kirchhoff model if integrated using the Truesdell rate.
- ComputeIncrementalBeamStrainCompute a infinitesimal/large strain increment for the beam.
- ComputeIncrementalSmallStrainCompute a strain increment and rotation increment for small strains.
- ComputeIncrementalStrainCompute a strain increment and rotation increment for small strains.
- ComputeInstantaneousThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the instantaneous thermal expansion as a function of temperature
- ComputeInterfaceStressStress in the plane of an interface defined by the gradient of an order parameter
- ComputeIsotropicElasticityTensorCompute a constant isotropic elasticity tensor.
- ComputeLagrangianLinearElasticStressStress update based on the small (engineering) stress
- ComputeLagrangianStrainCompute strain in Cartesian coordinates.
- ComputeLagrangianStrainAxisymmetricCylindricalCompute strain in 2D axisymmetric RZ coordinates.
- ComputeLagrangianStrainCentrosymmetricSphericalCompute strain in centrosymmetric spherical coordinates.
- ComputeLagrangianWPSStrainCompute strain in Cartesian coordinates.
- ComputeLagrangianWrappedStressStress update based on the small (engineering) stress
- ComputeLayeredCosseratElasticityTensorComputes Cosserat elasticity and flexural bending rigidity tensors relevant for simulations with layered materials. The layering direction is assumed to be perpendicular to the 'z' direction.
- ComputeLinearElasticPFFractureStressComputes the stress and free energy derivatives for the phase field fracture model, with small strain
- ComputeLinearElasticStressCompute stress using elasticity for small strains
- ComputeLinearViscoelasticStressDivides total strain into elastic + creep + eigenstrains
- ComputeMeanThermalExpansionFunctionEigenstrainComputes eigenstrain due to thermal expansion using a function that describes the mean thermal expansion as a function of temperature
- ComputeMultiPlasticityStressMaterial for multi-surface finite-strain plasticity
- ComputeMultipleCrystalPlasticityStressCrystal Plasticity base class: handles the Newton iteration over the stress residual and calculates the Jacobian based on constitutive laws from multiple material classes that are inherited from CrystalPlasticityStressUpdateBase
- ComputeMultipleInelasticCosseratStressCompute state (stress and other quantities such as plastic strains and internal parameters) using an iterative process, as well as Cosserat versions of these quantities. Only elasticity is currently implemented for the Cosserat versions. Combinations of creep models and plastic models may be used
- ComputeMultipleInelasticStressCompute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.
- ComputeNeoHookeanStressStress update based on the first Piola-Kirchhoff stress
- ComputePlaneFiniteStrainCompute strain increment and rotation increment for finite strain under 2D planar assumptions.
- ComputePlaneIncrementalStrainCompute strain increment for small strain under 2D planar assumptions.
- ComputePlaneSmallStrainCompute a small strain under generalized plane strain assumptions where the out of plane strain is generally nonzero.
- ComputePlasticHeatEnergyPlastic heat energy density = stress * plastic_strain_rate
- ComputeRSphericalFiniteStrainCompute a strain increment and rotation increment for finite strains in 1D spherical symmetry problems.
- ComputeRSphericalIncrementalStrainCompute a strain increment for incremental strains in 1D spherical symmetry problems.
- ComputeRSphericalSmallStrainCompute a small strain 1D spherical symmetry case.
- ComputeReducedOrderEigenstrainaccepts eigenstrains and computes a reduced order eigenstrain for consistency in the order of strain and eigenstrains.
- ComputeSimoHughesJ2PlasticityStressThe Simo-Hughes style J2 plasticity.
- ComputeSmallStrainCompute a small strain.
- ComputeSmearedCrackingStressCompute stress using a fixed smeared cracking model
- ComputeStVenantKirchhoffStressStress update based on the first Piola-Kirchhoff stress
- ComputeStrainIncrementBasedStressCompute stress after subtracting inelastic strain increments
- ComputeSurfaceTensionKKSSurface tension of an interface defined by the gradient of an order parameter
- ComputeThermalExpansionEigenstrainComputes eigenstrain due to thermal expansion with a constant coefficient
- ComputeThermalExpansionEigenstrainBeamComputes eigenstrain due to thermal expansion with a constant coefficient
- ComputeUpdatedEulerAngleThis class computes the updated Euler angle for crystal plasticity simulations. This needs to be used together with the ComputeMultipleCrystalPlasticityStress class, where the updated rotation material property is computed.
- ComputeVariableBaseEigenStrainComputes Eigenstrain based on material property tensor base
- ComputeVariableEigenstrainComputes an Eigenstrain and its derivatives that is a function of multiple variables, where the prefactor is defined in a derivative material
- ComputeVariableIsotropicElasticityTensorCompute an isotropic elasticity tensor for elastic constants that change as a function of material properties
- ComputeVolumetricDeformGradComputes volumetric deformation gradient and adjusts the total deformation gradient
- ComputeVolumetricEigenstrainComputes an eigenstrain that is defined by a set of scalar material properties that summed together define the volumetric change. This also computes the derivatives of that eigenstrain with respect to a supplied set of variable dependencies.
- CrystalPlasticityHCPDislocationSlipBeyerleinUpdateTwo-term dislocation slip model for hexagonal close packed crystals from Beyerline and Tome
- CrystalPlasticityKalidindiUpdateKalidindi version of homogeneous crystal plasticity.
- CrystalPlasticityTwinningKalidindiUpdateTwinning propagation model based on Kalidindi's treatment of twinning in a FCC material
- DensityScalingCreates an additional density scaling term to allow for larger time steps for specific time integration schemes
- EshelbyTensorComputes the Eshelby tensor as a function of strain energy density and the first Piola-Kirchhoff stress
- ExponentialSofteningSoftening model with an exponential softening response upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.
- FiniteStrainCPSlipRateResDeprecated class: please use CrystalPlasticityKalidindiUpdate and ComputeMultipleCrystalPlasticityStress instead.
- FiniteStrainCrystalPlasticityDeprecated class: please use CrystalPlasticityKalidindiUpdate and ComputeMultipleCrystalPlasticityStress instead. Crystal Plasticity base class: FCC system with power law flow rule implemented
- FiniteStrainHyperElasticViscoPlasticMaterial class for hyper-elastic viscoplatic flow: Can handle multiple flow models defined by flowratemodel type user objects
- FiniteStrainPlasticMaterialAssociative J2 plasticity with isotropic hardening.
- FiniteStrainUObasedCPUserObject based Crystal Plasticity system.
- FluxBasedStrainIncrementCompute strain increment based on flux
- GBRelaxationStrainIncrementCompute strain increment based on lattice relaxation at grain boundaries
- GeneralizedKelvinVoigtModelGeneralized Kelvin-Voigt model composed of a serial assembly of unit Kelvin-Voigt modules
- GeneralizedMaxwellModelGeneralized Maxwell model composed of a parallel assembly of unit Maxwell modules
- HillConstantsBuild and rotate the Hill Tensor. It can be used with other Hill plasticity and creep materials.
- HillCreepStressUpdateThis class uses the stress update material in a generalized radial return anisotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- HillElastoPlasticityStressUpdateThis class uses the generalized radial return for anisotropic elasto-plasticity model.This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- HillPlasticityStressUpdateThis class uses the generalized radial return for anisotropic plasticity model.This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- HyperElasticPhaseFieldIsoDamageComputes damaged stress and energy in the intermediate configuration assuming isotropy
- HyperbolicViscoplasticityStressUpdateThis class uses the discrete material for a hyperbolic sine viscoplasticity model in which the effective plastic strain is solved for using a creep approach.
- InclusionPropertiesComputes analytical stress, strain and elastic energy terms for an elliptic inclusion
- IsotropicPlasticityStressUpdateThis class uses the discrete material in a radial return isotropic plasticity model. This class is one of the basic radial return constitutive models, yet it can be used in conjunction with other creep and plasticity materials for more complex simulations.
- IsotropicPowerLawHardeningStressUpdateThis class uses the discrete material in a radial return isotropic plasticity power law hardening model, solving for the yield stress as the intersection of the power law relation curve and Hooke's law. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- LAROMANCEPartitionStressUpdateLAROMANCE base class for partitioned reduced order models
- LAROMANCEStressUpdateBase class to calculate the effective creep strain based on the rates predicted by a material specific Los Alamos Reduced Order Model derived from a Visco-Plastic Self Consistent calculations.
- LinearElasticTrussComputes the linear elastic strain for a truss element
- LinearViscoelasticStressUpdateCalculates an admissible state (stress that lies on or within the yield surface, plastic strains, internal parameters, etc). This class is intended to be a parent class for classes with specific constitutive models.
- MultiPhaseStressMaterialCompute a global stress from multiple phase stresses
- NEML2ParameterDerivativeToRealMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ParameterDerivativeToStdVectorRealMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ParameterDerivativeToSymmetricRankFourTensorMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ParameterDerivativeToSymmetricRankTwoTensorMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2StressToMOOSEThis object requires the application to be built with NEML2.
- NEML2ToRealMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ToStdVectorRealMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ToSymmetricRankFourTensorMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NEML2ToSymmetricRankTwoTensorMOOSEMaterialPropertyThis object requires the application to be built with NEML2.
- NonlocalDamageNonlocal damage model. Given an RadialAverage UO this creates a new damage index that can be used as for ComputeDamageStress without havign to change existing local damage models.
- PlasticTrussComputes the stress and strain for a truss element with plastic behavior defined by either linear hardening or a user-defined hardening function.
- PorosityFromStrainPorosity calculation from the inelastic strain.
- PowerLawCreepStressUpdateThis class uses the stress update material in a radial return isotropic power law creep model. This class can be used in conjunction with other creep and plasticity materials for more complex simulations.
- PowerLawSofteningSoftening model with an abrupt stress release upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.
- PureElasticTractionSeparationPure elastic traction separation law.
- RankTwoCartesianComponentAccess a component of a RankTwoTensor
- RankTwoCylindricalComponentCompute components of a rank-2 tensor in a cylindrical coordinate system
- RankTwoDirectionalComponentCompute a Direction scalar property of a RankTwoTensor
- RankTwoInvariantCompute a invariant property of a RankTwoTensor
- RankTwoSphericalComponentCompute components of a rank-2 tensor in a spherical coordinate system
- SalehaniIrani3DCTraction3D Coupled (3DC) cohesive law of Salehani and Irani with no damage
- ScalarMaterialDamageScalar damage model for which the damage is prescribed by another material
- StrainEnergyDensityComputes the strain energy density using a combination of the elastic and inelastic components of the strain increment, which is a valid assumption for monotonic behavior.
- StrainEnergyRateDensityComputes the strain energy density rate using a combination of the elastic and inelastic components of the strain increment, which is a valid assumption for monotonic behavior.
- StressBasedChemicalPotentialChemical potential from stress
- SumTensorIncrementsCompute tensor property by summing tensor increments
- SymmetricIsotropicElasticityTensorCompute a constant isotropic elasticity tensor.
- TemperatureDependentHardeningStressUpdateComputes the stress as a function of temperature and plastic strain from user-supplied hardening functions. This class can be used in conjunction with other creep and plasticity materials for more complex simulations
- TensileStressUpdateAssociative, smoothed, tensile (Rankine) plasticity with hardening/softening
- ThermalFractureIntegralCalculates summation of the derivative of the eigenstrains with respect to temperature.
- TwoPhaseStressMaterialCompute a global stress in a two phase model
- VolumeDeformGradCorrectedStressTransforms stress with volumetric term from previous configuration to this configuration
- WaveSpeedComputes an approximate wave speed from the material stiffness and density
- raccoon App
- ArrheniusLawThis class computes the Arrhenius coefficient , where is the activation energy, is the ideal gas constant, and is the temperature.
- ArrheniusLawHardeningPlastic hardening following a temperature dependent Arrhenius law.
- CNHIsotropicElasticityIsotropic Compressible Neo-Hookean hyperelasticity model.
- ComputeDeformationGradientThis class computes the deformation gradient. Eigen deformation gradients are extracted from the total deformation gradient. The F-bar approach can optionally be used to correct volumetric locking.
- ComputeEigenstrainFromFunctionInitialStressThis class computes the eigenstrain given a predefined intial stress. The eigenstrain is defined as , where is the compliance tensor. Isotropic linear elasticity is assumed.
- ComputeLargeDeformationStressStress calculator given an elasticity model, a plasticity model and a viscoelasticity model. Large deformation is assumed.
- ComputeSmallDeformationStressThe stress calculator given an elasticity model and a plasticity model. Small deformation is assumed.
- ComputeThermalExpansionEigenDeformationGradientThis class computes the thermal deformation gradient, , where is the thermal expansion coefficient, is the temperature, and is the reference temperature corresponding to zero thermal expansion.
- CrackGeometricFunctionThis is a wrapper of ADDerivativeParsedMaterial to conveniently define a crack geometric function. The initial derivative as well as the normalization constant are automatically populated given the function definition.
- CrackSurfaceDensityThis class computes the crack surface density , where is the crack geometric function, is the normalization constant, and is the phase-field regularization length.
- ExponentialHardeningPlastic hardening in exponential form.
- HenckyIsotropicElasticityIsotropic Hencky-type hyperelasticity model. The logarithmic right Cauchy-Green strain tensor is used as the strain measure.
- JohnsonCookHardeningThe Johnson-Cook plasticity model.
- KLBFNucleationMicroForceThis class computes the external driving force for nucleation given a Drucker-Prager strength envelope developed by Kumar et al. (2020)
- KLRNucleationMicroForceThis class computes the external driving force for nucleation given a Drucker-Prager strength envelope developed by Kumar et al. (2022)
- LDLNucleationMicroForceThis class computes the external driving force for nucleation given a Drucker-Prager strength envelope developed by Larsen et al. (2024)
- LargeDeformationJ2PlasticityLarge deformation plasticity. The exponential constitutive update is used to update the plastic deformation.
- LargeDeformationJ2PowerLawCreepLarge deformation power-law creep. This is an approximation to the consistent plasticity model using the update formula .
- LargeDeformationNewtonianViscosityNewtonian viscosity.
- LinearHardeningPlastic hardening following a linear isotropic law.
- NoDegradationDummy function for no degradation, i.e. .
- PowerDegradationFunctiondefines the power degradation function .
- PowerLawHardeningPlastic hardening following a power law.
- PressureDensityThis class computes the effective pressure density , where is the indicator function.
- RationalDegradationFunctionDefines the rational degradation function where . is the fracture toughness, is the critical fracture energy, is the derivative of the local fracture energy at , is the normalization constant, and is the regularization length.
- SmallDeformationIsotropicElasticityIsotropic elasticity under small strain asumptions.
- SmallDeformationJ2PlasticitySmall deformation plasticity. The plastic deformation is updated using the additive decompsition of strain.
- ThinFilmInterfaceEnergyDensityThis class compute the interface energy density corresponding to a shear-lag model, i.e. .
Available Actions
- Moose App
- AddMaterialActionAdd a Material object to the simulation.