- inelastic_modelsThe material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second.
C++ Type:std::vector
Description:The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second.
- initial_porosityInitial porosity
C++ Type:double
Description:Initial porosity
AD Compute Multiple Porous Inelastic Stress
Compute 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.
Description
ADComputeMultiplePorousInelasticStress
computes the stress and a decomposition of the strain into elastic and inelastic components for a series of different inelastic material models (e.g. creep and plasticity) which inherit from ADStressUpdateBase
. The tangent operator and relevant Jacobian information is computed using automatic differentiation techniques. ADComputeMultiplePorousInelasticStress
operates almost exactly the same as ADComputeMultipleInelasticStress but adds a porosity
material property. After a inelastic strain is calculated, the porosity, is updated by, The porosity can then in turn be used by viscoplasticity methods or other porosity dependent materials
Refer to ADComputeMultipleInelasticStress for the remainder of the details of how ADComputeMultiplePorousInelasticStress
computes stress.
Example Input Files
ADComputeMultiplePorousInelasticStress
can take individual or combinations of different inelastic material models that inherit from ADStressUpdateBase
.
[Materials]
[./elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e10
poissons_ratio = 0.3
[../]
[./stress]
type = ADComputeMultiplePorousInelasticStress
inelastic_models = 'one two'
initial_porosity = 0.1
outputs = all
[../]
[./one]
type = ADViscoplasticityStressUpdate
coefficient = 'coef_3'
power = 3
base_name = 'lps_1'
outputs = all
relative_tolerance = 1e-11
[../]
[./two]
type = ADViscoplasticityStressUpdate
coefficient = 1e-10
power = 1
base_name = 'lps_3'
outputs = all
relative_tolerance = 1e-11
[../]
[./coef]
type = ParsedMaterial
f_name = coef_3
# Example of creep power law
function = '0.5e-18 * exp(-4e4 / 1.987 / 1200)'
[../]
[]
(modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_dual.i)Input Parameters
- absolute_tolerance1e-05Absolute convergence tolerance for the stress update iterations over the stress change after all update materials are called
Default:1e-05
C++ Type:double
Description:Absolute convergence tolerance for the stress update iterations over the stress change after all update materials are called
- base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
C++ Type:std::string
Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
- combined_inelastic_strain_weightsThe combined_inelastic_strain Material Property is a weighted sum of the model inelastic strains. This parameter is a vector of weights, of the same length as inelastic_models. Default = '1 1 ... 1'. This parameter is set to 1 if the number of models = 1
C++ Type:std::vector
Description:The combined_inelastic_strain Material Property is a weighted sum of the model inelastic strains. This parameter is a vector of weights, of the same length as inelastic_models. Default = '1 1 ... 1'. This parameter is set to 1 if the number of models = 1
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- cycle_modelsFalseAt time step N use only inelastic model N % num_models.
Default:False
C++ Type:bool
Description:At time step N use only inelastic model N % num_models.
- extra_stress_namesMaterial property names of rank two tensors to be added to the stress.
C++ Type:std::vector
Description:Material property names of rank two tensors to be added to the stress.
- internal_solve_full_iteration_historyFalseSet to true to output stress update iteration information over the stress change
Default:False
C++ Type:bool
Description:Set to true to output stress update iteration information over the stress change
- max_iterations30Maximum number of the stress update iterations over the stress change after all update materials are called
Default:30
C++ Type:unsigned int
Description:Maximum number of the stress update iterations over the stress change after all update materials are called
- perform_finite_strain_rotationsTrueTensors are correctly rotated in finite-strain simulations. For optimal performance you can set this to 'false' if you are only ever using small strains
Default:True
C++ Type:bool
Description:Tensors are correctly rotated in finite-strain simulations. For optimal performance you can set this to 'false' if you are only ever using small strains
- porosity_nameporosityName of porosity material property
Default:porosity
C++ Type:MaterialPropertyName
Description:Name of porosity material property
- relative_tolerance1e-05Relative convergence tolerance for the stress update iterations over the stress change after all update materials are called
Default:1e-05
C++ Type:double
Description:Relative convergence tolerance for the stress update iterations over the stress change after all update materials are called
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Description:The seed for the master random number generator
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names were you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
Input Files
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/creep.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single_split.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_dual.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/lps_single.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/gtn_single.i
- modules/tensor_mechanics/test/tests/ad_viscoplasticity_stress_update/exact.i