Kokkos Materials System
Before reading this documentation, consider reading the following materials first for a better understanding of this documentation:
Materials System to understand the MOOSE material system,
Getting Started with Kokkos-MOOSE to understand the programming practices for Kokkos-MOOSE,
Kokkos Kernels System to understand the common design pattern of objects in Kokkos-MOOSE.
Kokkos-MOOSE materials do not support automatic differention yet.
A Kokkos-MOOSE material can be created by subclassing Moose::Kokkos::Material. Note that it should now be registered with registerKokkosMaterial() instead of registerMooseObject(). The hook method for material property computation, which used to be:
virtual void computeQpProperties() override;
in the original MOOSE materials, is now defined as a inlined public method with the following signature:
template <typename Derived>
KOKKOS_FUNCTION void computeQpProperties(const unsigned int qp, Datum & datum) const;
Other than the hook method definition, the Kokkos-MOOSE materials have several notable differences with the original MOOSE materials in the handling of material properties. The material property producer and consumer methods now have the signatures of
declareKokkosProperty<type, dimension>(name, dims), andgetKokkosMaterialProperty<type, dimension, state>(name),
respectively. Unlike in the original MOOSE materials where the type can be any valid C++ type, Kokkos-MOOSE materials require it to be a trivial type. Namely, it should not contain any virtual functions, dynamically allocated member variables, user-defined constructors, and other member variables of non-trivial types. While the code will not prevent using non-trivial types, it is your responsibility to understand the implications of using them and to make them behave properly. For instance, using a class with a user-defined constructor will have to be manually initialized as it is not called automatically upon allocation. Same applies to a class with in-class member initialization, which is equivalent to having a user-defined constructor. Using a class with dynamic allocations will incur a significant performance hit and will break when it is used for stateful material properties.
Instead, the material properties in Kokkos-MOOSE can be multi-dimensional to partially support the needs for dynamically-sized material properties. The dimension is provided as the second template argument dimension, which has the default value of 0 (scalar). The size of each dimension is provied as a vector as the function argument dims. When a material property is declared by multiple materials, it should have the same dimension over the entire domain, while the size of each dimension can be different between subdomains. However, a material property declared by boundary-restricted materials should have identical dimension sizes over the entire domain.
The material properties are stored as an object of type Moose::Kokkos::MaterialProperty<type, dimension>. Note that any material property object should be stored as a concrete instance. The producer and consumer methods also return the material property objects as copies. The only containers that are allowed to hold material properties dynamically are Moose::Kokkos::Array and Moose::Kokkos::Map.
The material property values of a quadrature point is accessed via operator() of Moose::Kokkos::MaterialProperty with datum and qp as arguments. It creates and returns a temporary object of type Moose::Kokkos::MaterialPropertyValue<type, dimension> which is a thin object that retrives the property values of the current quadrature point. Consider storing this temporary object locally to avoid object creation overhead every time it is called. For scalar properties, the temporary object can directly be cast into the property data type and overloads operator= so that a value can be directly assigned to it. For multi-dimensional properties, it provides operator() with dimensional indices like Moose::Kokkos::Array. The following examples illustrate the usage of scalar and multi-dimensional material properties, respectively:
Scalar (
Moose::Kokkos::MaterialProperty<unsigned int>)
// Store the value
unsigned int value1 = _property1(datum, qp);
// Store the temporary object
auto prop1 = _property1(datum, qp);
auto prop2 = _property2(datum, qp);
// Compute material property (all are equivalent)
_property2(datum, qp) = value1 + 1;
_property2(datum, qp) = prop1 + 1;
prop2 = value1 + 1;
prop2 = prop1 + 1;
Multi-dimensional (
Moose::Kokkos::MaterialProperty<unsigned int, 3>)
// Store the temporary object
auto prop = _property(datum, qp);
// Compute material property
for (unsigned int i = 0; i < n1; ++i)
for (unsigned int j = 0; j < n2; ++j)
for (unsigned int k = 0; k < n3; ++k)
prop(i, j, k) = i + j + k;
See the following source codes of KokkosGenericConstantMaterial for an example of a material:
Listing 1: The KokkosGenericConstantMaterial header file.
#include "KokkosMaterial.h"
class KokkosGenericConstantMaterial : public Moose::Kokkos::Material
{
public:
static InputParameters validParams();
KokkosGenericConstantMaterial(const InputParameters & parameters);
template <typename Derived>
KOKKOS_FUNCTION void computeQpProperties(const unsigned int qp, Datum & datum) const
{
for (unsigned int i = 0; i < _num_props; ++i)
{
auto prop = _props[i](datum, qp);
prop = _prop_values[i];
}
}
protected:
// Material property names
const std::vector<std::string> & _prop_names;
// GPU-accessible array of property values
const Moose::Kokkos::Array<Real> _prop_values;
// GPU-accessible array of Kokkos material properties
Moose::Kokkos::Array<Moose::Kokkos::MaterialProperty<Real>> _props;
// Number of properties
const unsigned int _num_props;
};
(framework/include/kokkos/materials/KokkosGenericConstantMaterial.h)Listing 2: The KokkosGenericConstantMaterial source file.
#include "KokkosGenericConstantMaterial.h"
registerKokkosMaterial("MooseApp", KokkosGenericConstantMaterial);
InputParameters
KokkosGenericConstantMaterial::validParams()
{
InputParameters params = Material::validParams();
params.addClassDescription(
"Declares material properties based on names and values prescribed by input parameters.");
params.addRequiredParam<std::vector<std::string>>(
"prop_names", "The names of the properties this material will have");
params.addRequiredParam<std::vector<Real>>("prop_values",
"The values associated with the named properties");
params.declareControllable("prop_values");
return params;
}
KokkosGenericConstantMaterial::KokkosGenericConstantMaterial(const InputParameters & parameters)
: Material(parameters),
_prop_names(getParam<std::vector<std::string>>("prop_names")),
_prop_values(getParam<std::vector<Real>>("prop_values")),
_num_props(_prop_names.size())
{
unsigned int num_names = _prop_names.size();
unsigned int num_values = _prop_values.size();
if (num_names != num_values)
paramError("prop_names", "Size must match the number of prop_values.");
_props.create(_num_props);
for (unsigned int i = 0; i < _num_props; ++i)
_props[i] = declareKokkosProperty<Real>(_prop_names[i]);
}
(framework/src/kokkos/materials/KokkosGenericConstantMaterial.K)Stateful Material Properties
Stateful material properties can be obtained by getKokkosMaterialPropertyOld<type, dimension>(name) or getKokkosMaterialPropertyOlder<type, dimension>(name), or by specifying the state number (0 for current, 1 for old, and 2 for older) explicitly as the third template argument state of getKokkosMaterialProperty<type, dimension, state>(name) which defaults to 0. Stateful material properties can be optionally initialized by defining the following inlined public hook method:
template <typename Derived>
KOKKOS_FUNCTION void initQpStatefulProperties(const unsigned int qp, Datum & datum) const
See the following source codes of KokkosStatefulTest for an example of stateful material properties:
Listing 3: The KokkosStatefulTest header file.
#pragma once
#include "KokkosMaterial.h"
class KokkosStatefulTest : public Moose::Kokkos::Material
{
public:
static InputParameters validParams();
KokkosStatefulTest(const InputParameters & parameters);
template <typename Derived>
KOKKOS_FUNCTION void initQpStatefulProperties(const unsigned int qp, Datum & datum) const
{
if (_coupled_val)
for (unsigned int i = 0; i < _num_props; ++i)
_properties[i](datum, qp) = _coupled_val(datum, qp);
else
for (unsigned int i = 0; i < _num_props; ++i)
_properties[i](datum, qp) = _prop_values[i];
}
template <typename Derived>
KOKKOS_FUNCTION void computeQpProperties(const unsigned int qp, Datum & datum) const
{
// Really Expensive Fibonacci sequence generator!
for (unsigned int i = 0; i < _num_props; ++i)
_properties[i](datum, qp) = _properties_old[i](datum, qp) + _properties_older[i](datum, qp);
}
private:
// optional coupled variable
const Moose::Kokkos::VariableValue _coupled_val;
std::vector<std::string> _prop_names;
Moose::Kokkos::Array<Real> _prop_values;
unsigned int _num_props;
Moose::Kokkos::Array<Moose::Kokkos::MaterialProperty<Real>> _properties;
Moose::Kokkos::Array<Moose::Kokkos::MaterialProperty<Real>> _properties_old;
Moose::Kokkos::Array<Moose::Kokkos::MaterialProperty<Real>> _properties_older;
};
(test/include/kokkos/materials/KokkosStatefulTest.h)Listing 4: The KokkosStatefulTest source file.
#include "KokkosStatefulTest.h"
registerKokkosMaterial("MooseTestApp", KokkosStatefulTest);
InputParameters
KokkosStatefulTest::validParams()
{
InputParameters params = Material::validParams();
params.addParam<std::vector<std::string>>("prop_names",
"The names of the properties this material will have");
params.addParam<std::vector<Real>>("prop_values",
"The values associated with the named properties");
params.addCoupledVar("coupled", "Coupled Value to be used in initQpStatefulProperties()");
return params;
}
KokkosStatefulTest::KokkosStatefulTest(const InputParameters & parameters)
: Material(parameters),
_coupled_val(isParamValid("coupled") ? kokkosCoupledValue("coupled") : kokkosZeroValue()),
_prop_names(getParam<std::vector<std::string>>("prop_names")),
_prop_values(getParam<std::vector<Real>>("prop_values"))
{
unsigned int num_names = _prop_names.size();
unsigned int num_values = _prop_values.size();
if (num_names != num_values)
mooseError("Number of prop_names must match the number of prop_values for KokkosStatefulTest "
"material!");
_num_props = num_names;
_properties.create(num_names);
_properties_old.create(num_names);
_properties_older.create(num_names);
for (unsigned int i = 0; i < _num_props; ++i)
{
_properties[i] = declareKokkosProperty<Real>(_prop_names[i]);
_properties_old[i] = getKokkosMaterialPropertyOld<Real>(_prop_names[i]);
_properties_older[i] = getKokkosMaterialPropertyOlder<Real>(_prop_names[i]);
}
}
(test/src/kokkos/materials/KokkosStatefulTest.K)On-Demand Properties
In Kokkos-MOOSE, all material property data are stored for each quadrature point, regardless of whether the material properties are stateful or not. This is due to the massive parallelization of GPU that prevents storing material properties only for a single element or face. If you are unsure whether a material property will be actually requested by another object, you can declare the property as an on-demand property with declareKokkosOnDemandProperty<type, dimension>(name, dims). The storage of an on-demand property is only allocated when there is any object consuming the property, aiding in reducing the memory usage and computational cost for unused material properties. When accessing an on-demand property in its declaring material, you should always check the validity of the property. See the following section on optional properties for more details.
Optional Properties
There is no special method and object for weakly coupled material properties in Kokkos-MOOSE. Instead, a material property object will simply evaluate to false when it is uninitialized or when it holds an on-demand material property not requested by any object. Namely, if (property) will evaluate to false for the above conditions. You can query the existence of a material property with hasKokkosMaterialProperty<type, dimension>(name) and optionally initialize the material property object to reproduce the same behavior with the optional material properties in the original MOOSE.
See the following source codes of KokkosVarCouplingMaterial for an example of optional material properties:
Listing 5: The KokkosVarCouplingMaterial header file.
#pragma once
#include "KokkosMaterial.h"
/**
* A material that couples a variable
*/
class KokkosVarCouplingMaterial : public Moose::Kokkos::Material
{
public:
static InputParameters validParams();
KokkosVarCouplingMaterial(const InputParameters & parameters);
template <typename Derived>
KOKKOS_FUNCTION void initQpStatefulProperties(const unsigned int qp, Datum & datum) const
{
_coupled_prop(datum, qp) = _var(datum, qp);
}
template <typename Derived>
KOKKOS_FUNCTION void computeQpProperties(const unsigned int qp, Datum & datum) const
{
// If "declare_old" is set, then just use it. The test associated is checking that
// initQpStatefulProperties can use a coupledValue
if (_coupled_prop_old)
_coupled_prop(datum, qp) = _coupled_prop_old(datum, qp);
else
_coupled_prop(datum, qp) = _base + _coef * _var(datum, qp);
}
protected:
const Moose::Kokkos::VariableValue _var;
Real _base;
Real _coef;
Moose::Kokkos::MaterialProperty<Real> _coupled_prop;
Moose::Kokkos::MaterialProperty<Real> _coupled_prop_old;
};
(test/include/kokkos/materials/KokkosVarCouplingMaterial.h)Listing 6: The KokkosVarCouplingMaterial source file.
#include "KokkosVarCouplingMaterial.h"
registerKokkosMaterial("MooseTestApp", KokkosVarCouplingMaterial);
InputParameters
KokkosVarCouplingMaterial::validParams()
{
InputParameters params = Material::validParams();
params.addRequiredCoupledVar("var", "The variable to be coupled in");
params.addParam<Real>("base", 0.0, "The baseline of the property");
params.addParam<Real>("coef", 1.0, "The linear coefficient of the coupled var");
params.addParam<bool>(
"declare_old", false, "When True the old value for the material property is declared.");
params.addParam<TagName>("tag", Moose::SOLUTION_TAG, "The solution vector to be coupled in");
params.addParam<bool>("use_tag",
true,
"Whether the coupled value should come from a tag. If false, then we use "
"an ordinary coupled value.");
params.addParam<MaterialPropertyName>(
"coupled_prop_name",
"diffusion",
"The name of the material property that this material declares.");
return params;
}
KokkosVarCouplingMaterial::KokkosVarCouplingMaterial(const InputParameters & parameters)
: Material(parameters),
_var(getParam<bool>("use_tag") ? kokkosCoupledVectorTagValue("var", "tag")
: kokkosCoupledValue("var")),
_base(getParam<Real>("base")),
_coef(getParam<Real>("coef")),
_coupled_prop(declareKokkosProperty<Real>("coupled_prop_name"))
{
if (getParam<bool>("declare_old"))
_coupled_prop_old = getKokkosMaterialPropertyOld<Real>("coupled_prop_name");
}
(test/src/kokkos/materials/KokkosVarCouplingMaterial.K)Constant Properties
By default, material properties are computed and stored for each quadrature point. However, material properties are often constant within an element or subdomain, or vary little in space so that they can be approximated as constant without significant loss of accuracy. In this case, you can set the constant_on parameter of a material to ELEMENT or SUBDOMAIN, which makes the material properties declared by the material only computed and stored on per-element or per-subdomain basis. This can help save both computational cost and memory usage. However, note that a material property declared by boundary-restricted materials should have identical constant_on option across the entire domain.
Material Property Output
Material property output is not supported by Kokkos-MOOSE yet.
Advanced Topics
Evaluation of Material Properties on Element Faces
Analogously to the original MOOSE, Kokkos-MOOSE also creates three copies of materials for element and face material properties, which are distinguished by the combination of boolean flags _bnd and _neighbor. For Kokkos-MOOSE, it is crucial to optimize your material by switching off the declaration and evaluation of material properties that are not used on faces, because of the full storage of material properties. You can save a considerable amount of memory as well as computing time by switching off unused material properties. You can also leverage on-demand material properties to achieve the same effect.
Unsupported Material Types
The following material types are not supported by Kokkos-MOOSE yet:
Functor materials
Interface materials
Discrete materials
Available Objects
- Moose App
- ADCoupledGradientMaterialCreates a gradient material equal to the gradient of the coupled variable times a scalar material property.
- ADCoupledValueFunctionMaterialCompute a function value from coupled variables
- ADDerivativeParsedMaterialParsed Function Material with automatic derivatives.
- ADDerivativeSumMaterialMeta-material to sum up multiple derivative materials
- ADFluxFromGradientMaterialComputes a flux vector material property based on the gradient of a coupled variable and a scalar diffusivity.
- ADGenericConstant2DArrayA material evaluating one material property in type of RealEigenMatrix
- ADGenericConstantMaterialDeclares material properties based on names and values prescribed by input parameters.
- ADGenericConstantRankTwoTensorObject for declaring a constant rank two tensor as a material property.
- ADGenericConstantRealVectorValueObject for declaring a constant 3-vector as a material property.
- ADGenericConstantStdVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- ADGenericConstantSymmetricRankTwoTensorObject for declaring a constant symmetric rank two tensor as a material property.
- ADGenericConstantVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- 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.
- ADParsedMaterialParsed expression Material.
- 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
- CoupledGradientMaterialCreates a gradient material equal to the gradient of the coupled variable times a scalar material property.
- CoupledValueFunctionMaterialCompute a function value from coupled variables
- DerivativeParsedMaterialParsed Function Material with automatic derivatives.
- DerivativeSumMaterialMeta-material to sum up multiple derivative materials
- GenericConstant2DArrayA material evaluating one material property in type of RealEigenMatrix
- GenericConstantArrayA material evaluating one material property in type of RealEigenVector
- GenericConstantMaterialDeclares material properties based on names and values prescribed by input parameters.
- GenericConstantRankTwoTensorObject for declaring a constant rank two tensor as a material property.
- GenericConstantRealVectorValueObject for declaring a constant 3-vector as a material property.
- GenericConstantStdVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- GenericConstantSymmetricRankTwoTensorObject for declaring a constant symmetric rank two tensor as a material property.
- GenericConstantVectorMaterialDeclares material properties based on names and vector values prescribed by input parameters.
- 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.
- InterpolatedStatefulMaterialRankFourTensorAccess old state from projected data.
- InterpolatedStatefulMaterialRankTwoTensorAccess old state from projected data.
- InterpolatedStatefulMaterialRealAccess old state from projected data.
- InterpolatedStatefulMaterialRealVectorValueAccess old state from projected data.
- KokkosGenericConstantMaterialDeclares material properties based on names and values prescribed by input parameters.
- KokkosParsedMaterialEvaluates a property with a parsed expression.
- 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
- NEML2ToMOOSERankFourTensorMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type RankFourTensorTempl<double>.
- NEML2ToMOOSERankTwoTensorMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type RankTwoTensorTempl<double>.
- NEML2ToMOOSERealMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type double.
- NEML2ToMOOSERealVectorValueMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type libMesh::VectorValue<double>.
- NEML2ToMOOSESymmetricRankFourTensorMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type SymmetricRankFourTensorTempl<double>.
- NEML2ToMOOSESymmetricRankTwoTensorMaterialPropertyProvide an output (or its derivative) from a NEML2 model as a MOOSE material property of type SymmetricRankTwoTensorTempl<double>.
- ParsedMaterialParsed expression Material.
- 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
- RankTwoTensorFromComponentPropertiesAssembles a RankTwoTensor from scalar material properties or constants
- RankTwoTensorMaterialADConverterConverts regular material properties to AD properties and vice versa
- RankTwoTensorMaterialConverterConverts regular material properties to AD properties and vice versa
- TorchScriptMaterialMaterial object which relies on the evaluation of a TorchScript module.
- VectorFromComponentVariablesMaterialComputes a vector material property from coupled variables
- VectorMaterialFunctorConverterConverts functor to non-AD and AD regular material properties
- Optimization App
- ADMisfitReporterOffsetFunctionMaterialComputes the misfit and misfit gradient materials for inverse optimizations problems.
- ADReporterOffsetFunctionMaterialCompute the sum of a function offset by a set of points.
- CostSensitivityComputes cost sensitivity needed for multimaterial SIMP method.
- MisfitReporterOffsetFunctionMaterialComputes the misfit and misfit gradient materials for inverse optimizations problems.
- ReporterOffsetFunctionMaterialCompute the sum of a function offset by a set of points.
- Porous Flow App
- ADPorousFlow1PhaseFullySaturatedThis Material is used for the fully saturated single-phase situation where porepressure is the primary variable
- ADPorousFlow1PhasePThis Material is used for the partially saturated single-phase situation where porepressure is the primary variable
- ADPorousFlow2PhasePPThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase situation, and derivatives of these with respect to the PorousFlowVariables
- ADPorousFlow2PhasePSThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase situation, and derivatives of these with respect to the PorousFlowVariables.
- ADPorousFlowDiffusivityConstThis Material provides constant tortuosity and diffusion coefficients
- ADPorousFlowDiffusivityMillingtonQuirkThis Material provides saturation-dependent diffusivity using the Millington-Quirk model
- ADPorousFlowEffectiveFluidPressureThis Material calculates an effective fluid pressure: effective_stress = total_stress + biot_coeff*effective_fluid_pressure. The effective_fluid_pressure = sum_{phases}(S_phase * P_phase)
- ADPorousFlowFluidStateClass for fluid state calculations using persistent primary variables and a vapor-liquid flash
- ADPorousFlowFluidStateSingleComponentClass for single component multiphase fluid state calculations using pressure and enthalpy
- ADPorousFlowJoinerThis Material forms a std::vector of properties, old properties (optionally), and derivatives, out of the individual phase properties
- ADPorousFlowMassFractionThis Material forms a std::vector<std::vector ...> of mass-fractions out of the individual mass fractions
- ADPorousFlowMatrixInternalEnergyThis Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature. Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system
- ADPorousFlowMultiComponentFluidThis Material calculates fluid properties for a multicomponent fluid
- ADPorousFlowPermeabilityConstThis Material calculates the permeability tensor assuming it is constant
- ADPorousFlowPermeabilityConstFromVarThis Material calculates the permeability tensor given by the input variables
- ADPorousFlowPermeabilityExponentialThis Material calculates the permeability tensor from an exponential function of porosity: k = k_ijk * BB exp(AA phi), where k_ijk is a tensor providing the anisotropy, phi is porosity, and AA and BB are empirical constants. The user can provide input for the function expressed in ln k, log k or exponential forms (see poroperm_function).
- ADPorousFlowPermeabilityKozenyCarmanThis Material calculates the permeability tensor from a form of the Kozeny-Carman equation based on the spatially constant initial permeability and porosity or grain size.
- ADPorousFlowPermeabilityKozenyCarmanFromVarThis Material calculates the permeability tensor from the Kozeny-Carman equation for spatially varying initial properties.
- ADPorousFlowPermeabilityTensorFromVarThis Material calculates the permeability tensor from a coupled variable multiplied by a tensor
- ADPorousFlowPorosityConstThis Material calculates the porosity assuming it is constant
- ADPorousFlowRelativePermeabilityBCBrooks-Corey relative permeability
- ADPorousFlowRelativePermeabilityBWBroadbridge-White form of relative permeability
- ADPorousFlowRelativePermeabilityConstThis class sets the relative permeability to a constant value (default = 1)
- ADPorousFlowRelativePermeabilityCoreyThis Material calculates relative permeability of the fluid phase, using the simple Corey model ((S-S_res)/(1-sum(S_res)))^n
- ADPorousFlowRelativePermeabilityFLACThis Material calculates relative permeability of a phase using a model inspired by FLAC
- ADPorousFlowRelativePermeabilityVGThis Material calculates relative permeability of a phase using the van Genuchten model
- ADPorousFlowSingleComponentFluidThis Material calculates fluid properties at the quadpoints or nodes for a single component fluid
- ADPorousFlowTemperatureMaterial to provide temperature at the quadpoints or nodes and derivatives of it with respect to the PorousFlow variables
- ADPorousFlowThermalConductivityFromPorosityThis Material calculates rock-fluid combined thermal conductivity for the single phase, fully saturated case by using a linear weighted average. Thermal conductivity = phi * lambda_f + (1 - phi) * lambda_s, where phi is porosity, and lambda_f, lambda_s are thermal conductivities of the fluid and solid (assumed constant)
- ADPorousFlowThermalConductivityIdealThis Material calculates rock-fluid combined thermal conductivity by using a weighted sum. Thermal conductivity = dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - dry_thermal_conductivity), where S is the aqueous saturation
- PorousFlow1PhaseFullySaturatedThis Material is used for the fully saturated single-phase situation where porepressure is the primary variable
- PorousFlow1PhaseHysPThis Material is used for unsaturated single-phase situations where porepressure is the primary variable and the capillary pressure is hysteretic. The hysteretic formulation assumes that the single phase is a liquid
- PorousFlow1PhaseMD_GaussianThis Material is used for the single-phase situation where log(mass-density) is the primary variable. calculates the 1 porepressure and the 1 saturation in a 1-phase situation, and derivatives of these with respect to the PorousFlowVariables. A gaussian capillary function is assumed
- PorousFlow1PhasePThis Material is used for the partially saturated single-phase situation where porepressure is the primary variable
- PorousFlow2PhaseHysPPThis Material is used for 2-phase situations. It calculates the 2 saturations given the 2 porepressures, assuming the capillary pressure is hysteretic. Derivatives of these quantities are also computed
- PorousFlow2PhaseHysPSThis Material is used for 2-phase situations. It calculates the 2 saturations and 2 porepressures, assuming the capillary pressure is hysteretic. Derivatives of these quantities are also computed
- PorousFlow2PhasePPThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase situation, and derivatives of these with respect to the PorousFlowVariables
- PorousFlow2PhasePSThis Material calculates the 2 porepressures and the 2 saturations in a 2-phase situation, and derivatives of these with respect to the PorousFlowVariables.
- PorousFlowAqueousPreDisChemistryThis Material forms a std::vector of mineralisation reaction rates (L(precipitate)/L(solution)/s) appropriate to the aqueous precipitation-dissolution system provided. Note: the PorousFlowTemperature must be measured in Kelvin.
- PorousFlowAqueousPreDisMineralThis Material forms a std::vector of mineral concentrations (volume-of-mineral/volume-of-material) appropriate to the aqueous precipitation-dissolution system provided.
- PorousFlowBrineThis Material calculates fluid properties for brine at the quadpoints or nodes
- PorousFlowConstantBiotModulusComputes the Biot Modulus, which is assumed to be constant for all time. Sometimes 1 / BiotModulus is called storativity
- PorousFlowConstantThermalExpansionCoefficientComputes the effective thermal expansion coefficient, (biot_coeff - porosity) * drained_coefficient + porosity * fluid_coefficient.
- PorousFlowDarcyVelocityMaterialThis Material calculates the Darcy velocity for all phases
- PorousFlowDiffusivityConstThis Material provides constant tortuosity and diffusion coefficients
- PorousFlowDiffusivityMillingtonQuirkThis Material provides saturation-dependent diffusivity using the Millington-Quirk model
- PorousFlowEffectiveFluidPressureThis Material calculates an effective fluid pressure: effective_stress = total_stress + biot_coeff*effective_fluid_pressure. The effective_fluid_pressure = sum_{phases}(S_phase * P_phase)
- PorousFlowFluidStateClass for fluid state calculations using persistent primary variables and a vapor-liquid flash
- PorousFlowFluidStateSingleComponentClass for single component multiphase fluid state calculations using pressure and enthalpy
- PorousFlowHysteresisOrderComputes hysteresis order for use in hysteretic capillary pressures and relative permeabilities
- PorousFlowHystereticCapillaryPressureThis Material computes information that is required for the computation of hysteretic capillary pressures in single and multi phase situations
- PorousFlowHystereticInfoThis Material computes capillary pressure or saturation, etc. It is primarily of use when users desire to compute hysteretic quantities such as capillary pressure for visualisation purposes. The result is written into PorousFlow_hysteretic_info_nodal or PorousFlow_hysteretic_info_qp (depending on the at_nodes flag). It does not compute porepressure and should not be used in simulations that employ PorousFlow*PhaseHys* Materials.
- PorousFlowHystereticRelativePermeabilityGasPorousFlow material that computes relative permeability of the gas phase in 1-phase or 2-phase models that include hysteresis. You should ensure that the 'phase' for this Material does indeed represent the gas phase
- PorousFlowHystereticRelativePermeabilityLiquidPorousFlow material that computes relative permeability of the liquid phase in 1-phase or 2-phase models that include hysteresis. You should ensure that the 'phase' for this Material does indeed represent the liquid phase
- PorousFlowJoinerThis Material forms a std::vector of properties, old properties (optionally), and derivatives, out of the individual phase properties
- PorousFlowMassFractionThis Material forms a std::vector<std::vector ...> of mass-fractions out of the individual mass fractions
- PorousFlowMassFractionAqueousEquilibriumChemistryThis Material forms a std::vector<std::vector ...> of mass-fractions (total concentrations of primary species (m{3}(primary species)/m{3}(solution)) and since this is for an aqueous system only, mass-fraction equals volume-fraction) corresponding to an aqueous equilibrium chemistry system. The first mass fraction is the concentration of the first primary species, etc, and the last mass fraction is the concentration of H2O.
- PorousFlowMatrixInternalEnergyThis Material calculates the internal energy of solid rock grains, which is specific_heat_capacity * density * temperature. Kernels multiply this by (1 - porosity) to find the energy density of the porous rock in a rock-fluid system
- PorousFlowMultiComponentFluidThis Material calculates fluid properties for a multicomponent fluid
- PorousFlowNearestQpProvides the nearest quadpoint to a node in each element
- PorousFlowPermeabilityConstThis Material calculates the permeability tensor assuming it is constant
- PorousFlowPermeabilityConstFromVarThis Material calculates the permeability tensor given by the input variables
- PorousFlowPermeabilityExponentialThis Material calculates the permeability tensor from an exponential function of porosity: k = k_ijk * BB exp(AA phi), where k_ijk is a tensor providing the anisotropy, phi is porosity, and AA and BB are empirical constants. The user can provide input for the function expressed in ln k, log k or exponential forms (see poroperm_function).
- PorousFlowPermeabilityKozenyCarmanThis Material calculates the permeability tensor from a form of the Kozeny-Carman equation based on the spatially constant initial permeability and porosity or grain size.
- PorousFlowPermeabilityKozenyCarmanFromVarThis Material calculates the permeability tensor from the Kozeny-Carman equation for spatially varying initial properties.
- PorousFlowPermeabilityTensorFromVarThis Material calculates the permeability tensor from a coupled variable multiplied by a tensor
- PorousFlowPorosityThis Material calculates the porosity PorousFlow simulations
- PorousFlowPorosityConstThis Material calculates the porosity assuming it is constant
- PorousFlowPorosityHMBiotModulusThis Material calculates the porosity for hydro-mechanical simulations, assuming that the Biot modulus and the fluid bulk modulus are both constant. This is useful for comparing with solutions from poroelasticity theory, but is less accurate than PorousFlowPorosity
- PorousFlowPorosityLinearThis Material calculates the porosity in PorousFlow simulations using the relationship porosity_ref + P_coeff * (P - P_ref) + T_coeff * (T - T_ref) + epv_coeff * (epv - epv_ref), where P is the effective porepressure, T is the temperature and epv is the volumetric strain
- PorousFlowRelativePermeabilityBCBrooks-Corey relative permeability
- PorousFlowRelativePermeabilityBWBroadbridge-White form of relative permeability
- PorousFlowRelativePermeabilityConstThis class sets the relative permeability to a constant value (default = 1)
- PorousFlowRelativePermeabilityCoreyThis Material calculates relative permeability of the fluid phase, using the simple Corey model ((S-S_res)/(1-sum(S_res)))^n
- PorousFlowRelativePermeabilityFLACThis Material calculates relative permeability of a phase using a model inspired by FLAC
- PorousFlowRelativePermeabilityVGThis Material calculates relative permeability of a phase using the van Genuchten model
- PorousFlowSingleComponentFluidThis Material calculates fluid properties at the quadpoints or nodes for a single component fluid
- PorousFlowTemperatureMaterial to provide temperature at the quadpoints or nodes and derivatives of it with respect to the PorousFlow variables
- PorousFlowThermalConductivityFromPorosityThis Material calculates rock-fluid combined thermal conductivity for the single phase, fully saturated case by using a linear weighted average. Thermal conductivity = phi * lambda_f + (1 - phi) * lambda_s, where phi is porosity, and lambda_f, lambda_s are thermal conductivities of the fluid and solid (assumed constant)
- PorousFlowThermalConductivityIdealThis Material calculates rock-fluid combined thermal conductivity by using a weighted sum. Thermal conductivity = dry_thermal_conductivity + S^exponent * (wet_thermal_conductivity - dry_thermal_conductivity), where S is the aqueous saturation
- PorousFlowTotalGravitationalDensityFullySaturatedFromPorosityThis Material calculates the porous medium density from the porosity, solid density (assumed constant) and fluid density, for the fully-saturated single fluid phase case, using a linear weighted average. density = phi * rho_f + (1 - phi) * rho_s, where phi is porosity and rho_f, rho_s are the densities of the fluid and solid phases.
- PorousFlowVolumetricStrainCompute volumetric strain and the volumetric_strain rate, for use in PorousFlow.
- Chemical Reactions App
- LangmuirMaterialMaterial type that holds info regarding Langmuir desorption from matrix to porespace and viceversa
- MollifiedLangmuirMaterialMaterial type that holds info regarding MollifiedLangmuir desorption from matrix to porespace and viceversa
- Solid Properties App
- ADConstantDensityThermalSolidPropertiesMaterialComputes solid thermal properties as a function of temperature but with a constant density.
- ADThermalSolidPropertiesMaterialComputes solid thermal properties as a function of temperature
- ADTungstenThermalPropertiesMaterialComputes tungsten thermal properties as a function of temperature
- ConstantDensityThermalSolidPropertiesMaterialComputes solid thermal properties as a function of temperature but with a constant density.
- ThermalSolidPropertiesMaterialComputes solid thermal properties as a function of temperature
- TungstenThermalPropertiesMaterialComputes tungsten thermal properties as a function of temperature
- Electromagnetics App
- WaveEquationCoefficientMaterial for use as coefficient (where a is a scalar coefficient) in standard-form Helmholtz wave equation applications with derivatives calculated using automatic differentiation.
- Reactor App
- ControlDrumMaterialEvaluate a material property based on the material properties of all segments of a rotating drum.
- Heat Transfer App
- ADAnisoHeatConductionMaterialGeneral-purpose material model for anisotropic heat conduction
- ADElectricalConductivityCalculates resistivity and electrical conductivity as a function of temperature, using copper for parameter defaults.
- ADHeatConductionMaterialGeneral-purpose material model for heat conduction
- AnisoHeatConductionMaterialGeneral-purpose material model for anisotropic heat conduction
- ElectricalConductivityCalculates resistivity and electrical conductivity as a function of temperature, using copper for parameter defaults.
- ElectromagneticHeatingMaterialMaterial class used to provide the electric field as a material property and computes the residual contributions for electromagnetic/electrostatic heating objects.
- FunctionPathEllipsoidHeatSourceDouble ellipsoid volumetric source heat with function path.
- GapConductanceMaterial to compute an effective gap conductance based on the thermal conductivity of the gap and diffusive approximation to the radiative heat transfer.
- GapConductanceConstantMaterial to compute a constant, prescribed gap conductance
- HeatConductionMaterialGeneral-purpose material model for heat conduction
- KokkosHeatConductionMaterialGeneral-purpose material model for heat conduction
- 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.
- Navier Stokes App
- AirAir.
- ConservedVarValuesMaterialProvides access to variables for a conserved variable set of density, total fluid energy, and momentum
- GeneralFluidPropsComputes fluid properties using a (P, T) formulation
- GenericPorousMediumMaterialComputes generic material properties related to simulation of fluid flow in a porous medium
- INSAD3EqnThis material computes properties needed for stabilized formulations of the mass, momentum, and energy equations.
- INSADMaterialThis is the material class used to compute some of the strong residuals for the INS equations.
- INSADStabilized3EqnThis is the material class used to compute the stabilization parameter tau for momentum and tau_energy for the energy equation.
- INSADTauMaterialThis is the material class used to compute the stabilization parameter tau.
- INSFEMaterialComputes generic material properties related to simulation of fluid flow
- MDFluidMaterialComputes generic material properties related to simulation of fluid flow
- PINSFEMaterialComputes generic material properties related to simulation of fluid flow in a porous medium
- PorousConservedVarMaterialProvides access to variables for a conserved variable set of density, total fluid energy, and momentum
- PorousMixedVarMaterialProvides access to variables for a primitive variable set of pressure, temperature, and superficial velocity
- PorousPrimitiveVarMaterialProvides access to variables for a primitive variable set of pressure, temperature, and superficial velocity
- SoundspeedMatComputes the speed of sound
- XFEMApp
- ADLevelSetBiMaterialRankFourCompute a RankFourTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADLevelSetBiMaterialRankTwoCompute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADLevelSetBiMaterialRealCompute a Real material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- ADXFEMCutSwitchingMaterialRankFourTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRankThreeTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRankTwoTensorSwitch the material property based on the CutSubdomainID.
- ADXFEMCutSwitchingMaterialRealSwitch the material property based on the CutSubdomainID.
- ComputeCrackTipEnrichmentSmallStrainComputes the crack tip enrichment at a point within a small strain formulation.
- LevelSetBiMaterialRankFourCompute a RankFourTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- LevelSetBiMaterialRankTwoCompute a RankTwoTensor material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- LevelSetBiMaterialRealCompute a Real material property for bi-materials problem (consisting of two different materials) defined by a level set function.
- XFEMCutSwitchingMaterialRankFourTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRankThreeTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRankTwoTensorSwitch the material property based on the CutSubdomainID.
- XFEMCutSwitchingMaterialRealSwitch the material property based on the CutSubdomainID.
- 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:
- ADPhaseFieldTwoPhaseMaterialMaterial that assigns properties based on the phase field variable.
- 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.
- InterfaceNormalCurvaturesComputes the two normal curvatures kappa_1 and kappa_2 of a diffuse interface from an order parameter eta.
- 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
- Thermal Hydraulics App
- ADAverageWallTemperature3EqnMaterialWeighted average wall temperature from multiple sources for 1-phase flow
- ADConstantMaterialDefines a constant AD material property
- ADConvectionHeatFluxHSMaterialComputes heat flux from convection with heat structure for a given fluid phase.
- ADConvectionHeatFluxMaterialComputes heat flux from convection for a given fluid phase.
- ADConvectiveHeatTransferCoefficientMaterialComputes convective heat transfer coefficient from Nusselt number
- ADCoupledVariableValueMaterialStores values of a variable into material properties
- ADDynamicViscosityMaterialComputes dynamic viscosity as a material property
- ADFluidProperties3EqnMaterialDefines material properties from fluid properties to serve in the 3-equation model
- ADHydraulicDiameterCircularMaterialDefines a circular-equivalent hydraulic diameter from the local area
- ADMaterialFunctionProductMaterialComputes the product of a material property and a function.
- ADPrandtlNumberMaterialComputes Prandtl number as material property
- ADRDG3EqnMaterialReconstructed solution values for the 1-D, 1-phase, variable-area Euler equations
- ADReynoldsNumberMaterialComputes Reynolds number as a material property
- ADTemperatureWall3EqnMaterialComputes the wall temperature from the fluid temperature, the heat flux and the heat transfer coefficient
- ADWallFrictionChengMaterialComputes wall friction factor using the Cheng-Todreas correlation for interior, edge and corner channels.
- ADWallFrictionChurchillMaterialComputes the Darcy friction factor using the Churchill correlation.
- ADWallFrictionColebrookWhiteMaterialComputes the Darcy friction factor using the Colebrook-White correlation.
- ADWallFrictionFunctionMaterialDefines a Darcy friction factor equal to the value of the function at the local coordinates and time
- ADWallHTCGnielinskiAnnularMaterialComputes wall heat transfer coefficient for gases and water in an annular flow channel using the Gnielinski correlation
- ADWallHeatTransferCoefficient3EqnDittusBoelterMaterialComputes wall heat transfer coefficient using Dittus-Boelter equation
- ADWallHeatTransferCoefficientGnielinskiMaterialComputes wall heat transfer coefficient for gases and water using the Gnielinski correlation
- ADWallHeatTransferCoefficientKazimiMaterial Computes wall heat transfer coefficient for liquid sodium using Kazimi-Carelli correlation
- ADWallHeatTransferCoefficientLyonMaterialComputes wall heat transfer coefficient for liquid sodium using Lyon correlation
- ADWallHeatTransferCoefficientMikityukMaterialComputes wall heat transfer coefficient for liquid sodium using Mikityuk correlation
- ADWallHeatTransferCoefficientSchadMaterialComputes wall heat transfer coefficient for liquid sodium using Schad-modified correlation
- ADWallHeatTransferCoefficientWeismanMaterialComputes wall heat transfer coefficient for water using the Weisman correlation
- ADWallHeatTransferCoefficientWolfMcCarthyMaterialComputes wall heat transfer coefficient using Wolf-McCarthy correlation
- ADWeightedAverageMaterialWeighted average of material properties using variables as weights
- AverageWallTemperature3EqnMaterialWeighted average wall temperature from multiple sources for 1-phase flow
- BinaryDiffusionCoefMaterialComputes the Stefan-Maxwell binary diffusion coefficient.
- ConstantMaterialDefines a single constant material property, along with zero derivative material properties for user-defined variables
- ConvectiveHeatTransferCoefficientMaterialComputes convective heat transfer coefficient from Nusselt number
- CoupledVariableValueMaterialStores values of a variable into material properties
- DirectionMaterialComputes the direction of 1D elements
- DynamicViscosityMaterialComputes the dynamic viscosity as a material property
- FluidProperties3EqnMaterialDefines material properties from fluid properties to serve in the 3-equation model
- FluidPropertiesGasMixMaterialComputes various fluid properties for FlowModelGasMix.
- HydraulicDiameterCircularMaterialDefines a circular-equivalent hydraulic diameter from the local area
- MeshAlignmentVariableTransferMaterialCreates an AD material property for a variable transferred from the boundary of a 2D mesh onto a 1D mesh.
- PrandtlNumberMaterialComputes the Prandtl number as a material property
- RDG3EqnMaterialReconstructed solution values for the 1-D, 1-phase, variable-area Euler equations
- ReynoldsNumberMaterialComputes Reynolds number as a material property
- SlopeReconstructionGasMixMaterialComputes reconstructed solution values for FlowModelGasMix.
- TemperatureWall3EqnMaterialComputes the wall temperature from the fluid temperature, the heat flux and the heat transfer coefficient
- WallFrictionChurchillMaterialComputes the Darcy friction factor using the Churchill correlation.
- WallFrictionFunctionMaterialDefines a Darcy friction factor equal to the value of the function at the local coordinates and time
- WallHeatTransferCoefficient3EqnDittusBoelterMaterialComputes wall heat transfer coefficient using Dittus-Boelter equation
- WeightedAverageMaterialWeighted average of material properties using variables as weights
- 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
- ADCompositePowerLawCreepStressUpdateThis 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. This class is an extension to include multi-phase capability.
- 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.
- ADConstantsFromElasticityTensorCalculate elastic constants from an isotropic elasticity tensor
- ADEigenDecompositionMaterialEmits material properties for the eigenvalues and eigenvectors of a symmetric rank two tensor.
- ADEshelbyTensorComputes the Eshelby tensor as a function of strain energy density and the first Piola-Kirchhoff stress
- ADExponentialEnergyBasedSofteningSoftening model with an exponential softening response upon cracking. This class is intended to be used with ADComputeSmearedCrackingStress and relies on automatic differentiation.
- 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
- ADStrainAdjustedDensityCreates density material property
- 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
- 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
- CompositePowerLawCreepStressUpdateThis 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. This class is an extension to include multi-phase capability.
- 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
- ComputeHomogenizedLagrangianStrainCalculate eigenstrain-like contribution from the homogenization strain used to satisfy the homogenization constraints.
- 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.
- ComputeLagrangianCauchyCustomStressCustom stress update providing the Cauchy stress
- ComputeLagrangianLinearElasticStressStress update based on the small (engineering) stress
- ComputeLagrangianObjectiveCustomStressStress update based on the small (engineering) stress
- ComputeLagrangianObjectiveCustomSymmetricStressStress 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.
- ComputeLagrangianStressCustomPK2Stress update based on the first Piola-Kirchhoff stress
- 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.
- ConstantsFromElasticityTensorCalculate elastic constants from an isotropic elasticity tensor
- 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
- DensityScalingComputes the scaled inertial density needed to enable stable explicit time-stepping using the desired_time_step in solid-mechanics problems. Note that if this inertial density is used in input files (for instance, in the mass matrix) it will impact the dynamics of the system, largely eliminating high-frequency oscillations, and impacting low-frequency dynamics. Hence, use with caution.
- EigenDecompositionMaterialEmits material properties for the eigenvalues and eigenvectors of a symmetric rank two tensor.
- EshelbyTensorComputes the Eshelby tensor as a function of strain energy density and the first Piola-Kirchhoff stress
- ExponentialEnergyBasedSofteningSoftening model with an exponential softening response upon cracking. This class is intended to be used with ComputeSmearedCrackingStress.
- 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.
- InclusionPropertiesCalculate quantities used to define the analytical elasticity solution to the inclusion problem.
- 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
- 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.
- RankFourTensorToSymmetricRankFourTensorConverts material property of type RankFourTensorTempl<double> to type SymmetricRankFourTensorTempl<double>
- 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
- RankTwoTensorToSymmetricRankTwoTensorConverts material property of type RankTwoTensorTempl<double> to type SymmetricRankTwoTensorTempl<double>
- SalehaniIrani3DCTraction3D Coupled (3DC) cohesive law of Salehani and Irani with no damage
- ScalarMaterialDamageScalar damage model for which the damage is prescribed by another material
- StrainAdjustedDensityCreates density material property
- 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.
- SymmetricRankFourTensorToRankFourTensorConverts material property of type SymmetricRankFourTensorTempl<double> to type RankFourTensorTempl<double>
- SymmetricRankTwoTensorToRankTwoTensorConverts material property of type SymmetricRankTwoTensorTempl<double> to type RankTwoTensorTempl<double>
- 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
- WaveSpeedCalculate the wave speed as where is the effective stiffness, and is the material density.
- Fluid Properties App
- ADSaturationPressureMaterialComputes saturation pressure at some temperature.
- ADSaturationTemperatureMaterialComputes saturation temperature at some pressure
- ADSurfaceTensionMaterialComputes surface tension at some temperature
- FluidPropertiesMaterialComputes fluid properties using (specific internal energy, specific volume) formulation
- FluidPropertiesMaterialPTFluid properties using the (pressure, temperature) formulation
- FluidPropertiesMaterialVEComputes fluid properties using (specific internal energy, specific volume) formulation
- SaturationPressureMaterialComputes saturation pressure at some temperature.
- SodiumPropertiesMaterialMaterial properties for liquid sodium sampled from SodiumProperties.
- Peridynamics App
- ComputeFiniteStrainNOSPDClass for computing nodal quantities for residual and jacobian calculation for peridynamic correspondence models under finite strain assumptions
- ComputePlaneFiniteStrainNOSPDClass for computing nodal quantities for residual and jacobian calculation for peridynamic correspondence models under planar finite strain assumptions
- ComputePlaneSmallStrainNOSPDClass for computing nodal quantities for residual and jacobian calculation for peridynamic correspondence models under planar small strain assumptions
- ComputeSmallStrainConstantHorizonMaterialBPDClass for computing peridynamic micro elastic modulus for bond-based model using regular uniform mesh
- ComputeSmallStrainConstantHorizonMaterialOSPDClass for computing peridynamic micro elastic moduli for ordinary state-based model using regular uniform mesh
- ComputeSmallStrainNOSPDClass for computing nodal quantities for the residual and Jacobian calculation for the peridynamic correspondence models under small strain assumptions
- ComputeSmallStrainVariableHorizonMaterialBPDClass for computing peridynamic micro elastic modulus for bond-based model using irregular mesh
- ComputeSmallStrainVariableHorizonMaterialOSPDClass for computing peridynamic micro elastic moduli for ordinary state-based model using irregular mesh
- ThermalConstantHorizonMaterialBPDClass for computing peridynamic micro conductivity for bond-based model using regular uniform mesh
- ThermalVariableHorizonMaterialBPDClass for computing peridynamic micro conductivity for bond-based model using irregular mesh
- Rdg App
- AEFVMaterialA material kernel for the advection equation using a cell-centered finite volume method.
- Misc App
- ADArrheniusMaterialPropertyArbitrary material property of the sum of an arbitary number () of Arrhenius functions , where is the frequency factor, is the activation energy, and is the gas constant.
- ADDensityCreates density material property. This class is deprecated, and its functionalityis replaced by StrainAdjustedDensity for cases when the density should be adjustedto account for material deformation. If it is not desired to adjust the density fordeformation, a variety of general-purpose Materials, such as GenericConstantMaterialor ParsedMaterial can be used to define the density. A StrainAdjustedDensity can also be used with '0 0 0' for the displacements.
- ArrheniusMaterialPropertyArbitrary material property of the sum of an arbitary number () of Arrhenius functions , where is the frequency factor, is the activation energy, and is the gas constant.
- DensityCreates density material property. This class is deprecated, and its functionalityis replaced by StrainAdjustedDensity for cases when the density should be adjustedto account for material deformation. If it is not desired to adjust the density fordeformation, a variety of general-purpose Materials, such as GenericConstantMaterialor ParsedMaterial can be used to define the density. A StrainAdjustedDensity can also be used with '0 0 0' for the displacements.