- ep_plastic_toleranceThe Newton-Raphson process is only deemed converged if the plastic strain increment constraints have L2 norm less than this.
C++ Type:double

Description:The Newton-Raphson process is only deemed converged if the plastic strain increment constraints have L2 norm less than this.

# ComputeMultiPlasticityStress

The ComputeMultiPlasticityStress has not been documented, if you would like to contribute to MOOSE by writing documentation, please see Documenting MOOSE. The content contained on this page explains the typical documentation associated with a MooseObject; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.

Material for multi-surface finite-strain plasticity

## Input Parameters

- store_stress_oldFalseParameter which indicates whether the old stress state, required for the HHT time integration scheme and Rayleigh damping, needs to be stored
Default:False

C++ Type:bool

Description:Parameter which indicates whether the old stress state, required for the HHT time integration scheme and Rayleigh damping, needs to be stored

- debug_fspbnoneDebug types for use by developers when creating new plasticity models, not for general use. 2 = debug Jacobian entries, 3 = check the entire Jacobian, and check Ax=b
Default:none

C++ Type:MooseEnum

Description:Debug types for use by developers when creating new plasticity models, not for general use. 2 = debug Jacobian entries, 3 = check the entire Jacobian, and check Ax=b

- specialICnoneFor certain combinations of plastic models, the set of active constraints can be initialized optimally. 'none': no special initialization is performed. For all other choices, the plastic_models must be chosen to have the following types. 'rock': 'TensileMulti MohrCoulombMulti'. 'joint': 'WeakPlaneTensile WeakPlaneShear'.
Default:none

C++ Type:MooseEnum

Description:For certain combinations of plastic models, the set of active constraints can be initialized optimally. 'none': no special initialization is performed. For all other choices, the plastic_models must be chosen to have the following types. 'rock': 'TensileMulti MohrCoulombMulti'. 'joint': 'WeakPlaneTensile WeakPlaneShear'.

- max_NR_iterations20Maximum number of Newton-Raphson iterations allowed
Default:20

C++ Type:unsigned int

Description:Maximum number of Newton-Raphson iterations allowed

- ignore_failuresFalseThe return-map algorithm will return with the best admissible stresses and internal parameters that it can, even if they don't fully correspond to the applied strain increment. To speed computations, this flag can be set to true, the max_NR_iterations set small, and the min_stepsize large.
Default:False

C++ Type:bool

Description:The return-map algorithm will return with the best admissible stresses and internal parameters that it can, even if they don't fully correspond to the applied strain increment. To speed computations, this flag can be set to true, the max_NR_iterations set small, and the min_stepsize large.

- min_stepsize0.01If ordinary Newton-Raphson + line-search fails, then the applied strain increment is subdivided, and the return-map is tried again. This parameter is the minimum fraction of applied strain increment that may be applied before the algorithm gives up entirely
Default:0.01

C++ Type:double

Description:If ordinary Newton-Raphson + line-search fails, then the applied strain increment is subdivided, and the return-map is tried again. This parameter is the minimum fraction of applied strain increment that may be applied before the algorithm gives up entirely

- debug_jac_at_stress(xx,xy,xz)=( 0, 0, 0) (yx,yy,yz)=( 0, 0, 0) (zx,zy,zz)=( 0, 0, 0) Debug Jacobian entries at this stress. For use by developers
Default:(xx,xy,xz)=( 0, 0, 0) (yx,yy,yz)=( 0, 0, 0) (zx,zy,zz)=( 0, 0, 0)

C++ Type:libMesh::TensorValue

Description:Debug Jacobian entries at this stress. For use by developers

- debug_jac_at_intnlDebug Jacobian entries at these internal parameters
C++ Type:std::vector

Description:Debug Jacobian entries at these internal parameters

- 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

- linear_dependent0.0001Flow directions are considered linearly dependent if the smallest singular value is less than linear_dependent times the largest singular value
Default:0.0001

C++ Type:double

Description:Flow directions are considered linearly dependent if the smallest singular value is less than linear_dependent times the largest singular value

- deactivation_schemeoptimizedScheme by which constraints are deactivated. (NOTE: This is irrelevant if there is only one yield surface.) safe: return to the yield surface and then deactivate constraints with negative plasticity multipliers. optimized: deactivate a constraint as soon as its plasticity multiplier becomes negative. dumb: iteratively try all combinations of active constraints until the solution is found. You may specify fall-back options. Eg optimized_to_safe: first use 'optimized', and if that fails, try the return with 'safe'.
Default:optimized

C++ Type:MooseEnum

Description:Scheme by which constraints are deactivated. (NOTE: This is irrelevant if there is only one yield surface.) safe: return to the yield surface and then deactivate constraints with negative plasticity multipliers. optimized: deactivate a constraint as soon as its plasticity multiplier becomes negative. dumb: iteratively try all combinations of active constraints until the solution is found. You may specify fall-back options. Eg optimized_to_safe: first use 'optimized', and if that fails, try the return with 'safe'.

- debug_intnl_changeDebug finite differencing parameters for the internal parameters
C++ Type:std::vector

Description:Debug finite differencing parameters for the internal parameters

- 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

- debug_pm_changeDebug finite differencing parameters for the plastic multipliers
C++ Type:std::vector

Description:Debug finite differencing parameters for the plastic multipliers

- max_stepsize_for_dumb0.01If your deactivation_scheme is 'something_to_dumb', then 'dumb' will only be used if the stepsize falls below this value. This parameter is useful because the 'dumb' scheme is computationally expensive
Default:0.01

C++ Type:double

Description:If your deactivation_scheme is 'something_to_dumb', then 'dumb' will only be used if the stepsize falls below this value. This parameter is useful because the 'dumb' scheme is computationally expensive

- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the Material via MaterialPropertyInterface::getMaterial(). Non-computed Materials 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 Material via MaterialPropertyInterface::getMaterial(). Non-computed Materials are not sorted for dependencies.

- tangent_operatornonlinearType of tangent operator to return. 'elastic': return the elasticity tensor. 'linear': return the consistent tangent operator that is correct for plasticity with yield functions linear in stress. 'nonlinear': return the full, general consistent tangent operator. The calculations assume the hardening potentials are independent of stress and hardening parameters.
Default:nonlinear

C++ Type:MooseEnum

Description:Type of tangent operator to return. 'elastic': return the elasticity tensor. 'linear': return the consistent tangent operator that is correct for plasticity with yield functions linear in stress. 'nonlinear': return the full, general consistent tangent operator. The calculations assume the hardening potentials are independent of stress and hardening parameters.

- 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

- debug_jac_at_pmDebug Jacobian entries at these plastic multipliers
C++ Type:std::vector

Description:Debug Jacobian entries at these plastic multipliers

- transverse_directionIf this parameter is provided, before the return-map algorithm is called a rotation is performed so that the 'z' axis in the new frame lies along the transverse_direction in the original frame. After returning, the inverse rotation is performed. The transverse_direction will itself rotate with large strains. This is so that transversely-isotropic plasticity models may be easily defined in the frame where the isotropy holds in the x-y plane.
C++ Type:libMesh::VectorValue

Description:If this parameter is provided, before the return-map algorithm is called a rotation is performed so that the 'z' axis in the new frame lies along the transverse_direction in the original frame. After returning, the inverse rotation is performed. The transverse_direction will itself rotate with large strains. This is so that transversely-isotropic plasticity models may be easily defined in the frame where the isotropy holds in the x-y plane.

- plastic_modelsList of names of user objects that define the plastic models that could be active for this material. If no plastic_models are provided, only elasticity will be used.
C++ Type:std::vector

Description:List of names of user objects that define the plastic models that could be active for this material. If no plastic_models are provided, only elasticity will be used.

- debug_stress_change1Debug finite differencing parameter for the stress
Default:1

C++ Type:double

Description:Debug finite differencing parameter for the stress

- 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

### 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.

- seed0The seed for the master random number generator
Default:0

C++ Type:unsigned int

Description:The seed for the master random number generator

- 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

- 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

### 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