ComputeMultiPlasticityStress

buildconstruction:Undocumented Class

The ComputeMultiPlasticityStress has not been documented. The content listed below should be used as a starting point for documenting the class, which includes the typical automatic 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

Overview

Example Input File Syntax

Input Parameters

  • 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

    Controllable:No

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

Required 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

    Controllable:No

    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 blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • 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

    Controllable:No

    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 computeQpProperties() 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

    Options:NONE, ELEMENT, SUBDOMAIN

    Controllable:No

    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 computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

  • 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

    Options:optimized, safe, dumb, optimized_to_safe, safe_to_dumb, optimized_to_safe_to_dumb, optimized_to_dumb

    Controllable:No

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

    Options:none, crash, jacobian, jacobian_and_linear_system

    Controllable:No

    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

  • debug_intnl_changeDebug finite differencing parameters for the internal parameters

    C++ Type:std::vector<double>

    Controllable:No

    Description:Debug finite differencing parameters for the internal parameters

  • debug_jac_at_intnlDebug Jacobian entries at these internal parameters

    C++ Type:std::vector<double>

    Controllable:No

    Description:Debug Jacobian entries at these internal parameters

  • debug_jac_at_pmDebug Jacobian entries at these plastic multipliers

    C++ Type:std::vector<double>

    Controllable:No

    Description:Debug Jacobian entries at these plastic multipliers

  • 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<double>

    Controllable:No

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

  • debug_pm_changeDebug finite differencing parameters for the plastic multipliers

    C++ Type:std::vector<double>

    Controllable:No

    Description:Debug finite differencing parameters for the plastic multipliers

  • debug_stress_change1Debug finite differencing parameter for the stress

    Default:1

    C++ Type:double

    Controllable:No

    Description:Debug finite differencing parameter for the stress

  • declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

  • 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

    Controllable:No

    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.

  • 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

    Controllable:No

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

  • max_NR_iterations20Maximum number of Newton-Raphson iterations allowed

    Default:20

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum number of Newton-Raphson iterations allowed

  • 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

    Controllable:No

    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

  • 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

    Controllable:No

    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

  • 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

    Controllable:No

    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

  • 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<UserObjectName>

    Controllable:No

    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.

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • 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

    Options:none, rock, joint

    Controllable:No

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

  • 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

    Options:elastic, linear, nonlinear

    Controllable:No

    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.

  • 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<double>

    Controllable:No

    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.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    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

    Controllable:No

    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

    Controllable:No

    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<std::string>

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

    C++ Type:std::vector<OutputName>

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs Parameters

Input Files