ComputeMultiPlasticityStress performs the return-map algorithm and associated stress updates for plastic models defined by a General User Objects. More...
#include <ComputeMultiPlasticityStress.h>
Public Member Functions | |
ComputeMultiPlasticityStress (const InputParameters ¶meters) | |
void | outputAndCheckDebugParameters () |
Outputs the debug parameters: _fspb_debug_stress, _fspd_debug_pm, etc and checks that they are sized correctly. More... | |
void | checkDerivatives () |
Checks the derivatives, eg dyieldFunction_dstress by using finite difference approximations. More... | |
void | checkJacobian (const RankFourTensor &E_inv, const std::vector< Real > &intnl_old) |
Checks the full Jacobian, which is just certain linear combinations of the dyieldFunction_dstress, etc, by using finite difference approximations. More... | |
void | checkSolution (const RankFourTensor &E_inv) |
Checks that Ax does equal b in the NR procedure. More... | |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Types | |
enum | TangentOperatorEnum { elastic, linear, nonlinear } |
The type of tangent operator to return. tangent operator = d(stress_rate)/d(strain_rate). More... | |
enum | DeactivationSchemeEnum { optimized, safe, dumb, optimized_to_safe, safe_to_dumb, optimized_to_safe_to_dumb, optimized_to_dumb } |
enum | quickStep_called_from_t { computeQpStress_function, returnMap_function } |
The functions from which quickStep can be called. More... | |
Protected Member Functions | |
virtual void | computeQpStress () |
Compute the stress and store it in the _stress material property for the current quadrature point. More... | |
virtual void | initQpStatefulProperties () |
virtual bool | reinstateLinearDependentConstraints (std::vector< bool > &deactivated_due_to_ld) |
makes all deactivated_due_to_ld false, and if >0 of them were initially true, returns true More... | |
virtual unsigned int | numberActive (const std::vector< bool > &active) |
counts the number of active constraints More... | |
virtual Real | residual2 (const std::vector< Real > &pm, const std::vector< Real > &f, const RankTwoTensor &epp, const std::vector< Real > &ic, const std::vector< bool > &active, const std::vector< bool > &deactivated_due_to_ld) |
The residual-squared. More... | |
virtual bool | returnMap (const RankTwoTensor &stress_old, RankTwoTensor &stress, const std::vector< Real > &intnl_old, std::vector< Real > &intnl, const RankTwoTensor &plastic_strain_old, RankTwoTensor &plastic_strain, const RankFourTensor &E_ijkl, const RankTwoTensor &strain_increment, std::vector< Real > &f, unsigned int &iter, bool can_revert_to_dumb, bool &linesearch_needed, bool &ld_encountered, bool &constraints_added, bool final_step, RankFourTensor &consistent_tangent_operator, std::vector< Real > &cumulative_pm) |
Implements the return map. More... | |
virtual bool | lineSearch (Real &nr_res2, RankTwoTensor &stress, const std::vector< Real > &intnl_old, std::vector< Real > &intnl, std::vector< Real > &pm, const RankFourTensor &E_inv, RankTwoTensor &delta_dp, const RankTwoTensor &dstress, const std::vector< Real > &dpm, const std::vector< Real > &dintnl, std::vector< Real > &f, RankTwoTensor &epp, std::vector< Real > &ic, const std::vector< bool > &active, const std::vector< bool > &deactivated_due_to_ld, bool &linesearch_needed) |
Performs a line search. More... | |
virtual bool | singleStep (Real &nr_res2, RankTwoTensor &stress, const std::vector< Real > &intnl_old, std::vector< Real > &intnl, std::vector< Real > &pm, RankTwoTensor &delta_dp, const RankFourTensor &E_inv, std::vector< Real > &f, RankTwoTensor &epp, std::vector< Real > &ic, std::vector< bool > &active, DeactivationSchemeEnum deactivation_scheme, bool &linesearch_needed, bool &ld_encountered) |
Performs a single Newton-Raphson + linesearch step Constraints are deactivated and the step is re-done if deactivation_scheme is set appropriately. More... | |
virtual bool | checkAdmissible (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< Real > &all_f) |
Checks whether the yield functions are in the admissible region. More... | |
void | buildDumbOrder (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< unsigned int > &dumb_order) |
Builds the order which "dumb" activation will take. More... | |
virtual void | incrementDumb (int &dumb_iteration, const std::vector< unsigned int > &dumb_order, std::vector< bool > &act) |
Increments "dumb_iteration" by 1, and sets "act" appropriately (act[alpha] = true iff alpha_th bit of dumb_iteration == 1) More... | |
virtual bool | checkKuhnTucker (const std::vector< Real > &f, const std::vector< Real > &pm, const std::vector< bool > &active) |
Checks Kuhn-Tucker conditions, and alters "active" if appropriate. More... | |
virtual void | applyKuhnTucker (const std::vector< Real > &f, const std::vector< Real > &pm, std::vector< bool > &active) |
Checks Kuhn-Tucker conditions, and alters "active" if appropriate. More... | |
virtual void | preReturnMap () |
virtual void | postReturnMap () |
virtual bool | quickStep (const RankTwoTensor &stress_old, RankTwoTensor &stress, const std::vector< Real > &intnl_old, std::vector< Real > &intnl, std::vector< Real > &pm, std::vector< Real > &cumulative_pm, const RankTwoTensor &plastic_strain_old, RankTwoTensor &plastic_strain, const RankFourTensor &E_ijkl, const RankTwoTensor &strain_increment, std::vector< Real > &yf, unsigned int &iterations, RankFourTensor &consistent_tangent_operator, const quickStep_called_from_t called_from, bool final_step) |
Attempts to find an admissible (stress, intnl) by using the customized return-map algorithms defined through the TensorMechanicsPlasticXXXX.returnMap functions. More... | |
virtual bool | plasticStep (const RankTwoTensor &stress_old, RankTwoTensor &stress, const std::vector< Real > &intnl_old, std::vector< Real > &intnl, const RankTwoTensor &plastic_strain_old, RankTwoTensor &plastic_strain, const RankFourTensor &E_ijkl, const RankTwoTensor &strain_increment, std::vector< Real > &yf, unsigned int &iterations, bool &linesearch_needed, bool &ld_encountered, bool &constraints_added, RankFourTensor &consistent_tangent_operator) |
performs a plastic step More... | |
bool | canChangeScheme (DeactivationSchemeEnum current_deactivation_scheme, bool can_revert_to_dumb) |
bool | canIncrementDumb (int dumb_iteration) |
void | changeScheme (const std::vector< bool > &initial_act, bool can_revert_to_dumb, const RankTwoTensor &initial_stress, const std::vector< Real > &intnl_old, DeactivationSchemeEnum ¤t_deactivation_scheme, std::vector< bool > &act, int &dumb_iteration, std::vector< unsigned int > &dumb_order) |
bool | canAddConstraints (const std::vector< bool > &act, const std::vector< Real > &all_f) |
unsigned int | activeCombinationNumber (const std::vector< bool > &act) |
RankFourTensor | consistentTangentOperator (const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &E_ijkl, const std::vector< Real > &pm_this_step, const std::vector< Real > &cumulative_pm) |
Computes the consistent tangent operator (another name for the jacobian = d(stress_rate)/d(strain_rate) More... | |
virtual void | computeQpProperties () override |
virtual void | calculateConstraints (const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankTwoTensor &delta_dp, std::vector< Real > &f, std::vector< RankTwoTensor > &r, RankTwoTensor &epp, std::vector< Real > &ic, const std::vector< bool > &active) |
The constraints. More... | |
virtual void | calculateRHS (const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankTwoTensor &delta_dp, std::vector< Real > &rhs, const std::vector< bool > &active, bool eliminate_ld, std::vector< bool > &deactivated_due_to_ld) |
Calculate the RHS which is rhs = -(epp(0,0), epp(1,0), epp(1,1), epp(2,0), epp(2,1), epp(2,2), f[0], f[1], ..., f[num_f], ic[0], ic[1], ..., ic[num_ic]) More... | |
virtual void | calculateJacobian (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankFourTensor &E_inv, const std::vector< bool > &active, const std::vector< bool > &deactivated_due_to_ld, std::vector< std::vector< Real >> &jac) |
d(rhs)/d(dof) More... | |
virtual void | nrStep (const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankFourTensor &E_inv, const RankTwoTensor &delta_dp, RankTwoTensor &dstress, std::vector< Real > &dpm, std::vector< Real > &dintnl, const std::vector< bool > &active, std::vector< bool > &deactivated_due_to_ld) |
Performs one Newton-Raphson step. More... | |
virtual void | yieldFunction (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &f) |
The active yield function(s) More... | |
virtual void | dyieldFunction_dstress (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &df_dstress) |
The derivative of the active yield function(s) with respect to stress. More... | |
virtual void | dyieldFunction_dintnl (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &df_dintnl) |
The derivative of active yield function(s) with respect to their internal parameters (the user objects assume there is exactly one internal param per yield function) More... | |
virtual void | flowPotential (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &r) |
The active flow potential(s) - one for each yield function. More... | |
virtual void | dflowPotential_dstress (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankFourTensor > &dr_dstress) |
The derivative of the active flow potential(s) with respect to stress. More... | |
virtual void | dflowPotential_dintnl (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &dr_dintnl) |
The derivative of the active flow potentials with respect to the active internal parameters The UserObjects explicitly assume that r[alpha] is only dependent on intnl[alpha]. More... | |
virtual void | hardPotential (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &h) |
The active hardening potentials (one for each internal parameter and for each yield function) by assumption in the Userobjects, the h[a][alpha] is nonzero only if the surface alpha is part of model a, so we only calculate those here. More... | |
virtual void | dhardPotential_dstress (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &dh_dstress) |
The derivative of the active hardening potentials with respect to stress By assumption in the Userobjects, the h[a][alpha] is nonzero only for a = alpha, so we only calculate those here. More... | |
virtual void | dhardPotential_dintnl (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &dh_dintnl) |
The derivative of the active hardening potentials with respect to the active internal parameters. More... | |
virtual void | buildActiveConstraints (const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act) |
Constructs a set of active constraints, given the yield functions, f. More... | |
unsigned int | modelNumber (unsigned int surface) |
returns the model number, given the surface number More... | |
bool | anyActiveSurfaces (int model, const std::vector< bool > &active) |
returns true if any internal surfaces of the given model are active according to 'active' More... | |
void | activeModelSurfaces (int model, const std::vector< bool > &active, std::vector< unsigned int > &active_surfaces_of_model) |
Returns the internal surface number(s) of the active surfaces of the given model This may be of size=0 if there are no active surfaces of the given model. More... | |
void | activeSurfaces (int model, const std::vector< bool > &active, std::vector< unsigned int > &active_surfaces) |
Returns the external surface number(s) of the active surfaces of the given model This may be of size=0 if there are no active surfaces of the given model. More... | |
bool | returnMapAll (const RankTwoTensor &trial_stress, const std::vector< Real > &intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &stress, std::vector< Real > &intnl, std::vector< Real > &pm, std::vector< Real > &cumulative_pm, RankTwoTensor &delta_dp, std::vector< Real > &yf, unsigned &num_successful_plastic_returns, unsigned &custom_model) |
Performs a returnMap for each plastic model using their inbuilt returnMap functions. More... | |
Protected Attributes | |
unsigned int | _max_iter |
Maximum number of Newton-Raphson iterations allowed. More... | |
Real | _min_stepsize |
Minimum fraction of applied strain that may be applied during adaptive stepsizing. More... | |
Real | _max_stepsize_for_dumb |
"dumb" deactivation will only be used if the stepsize falls below this quantity More... | |
bool | _ignore_failures |
Even if the returnMap fails, return the best values found for stress and internal parameters. More... | |
enum ComputeMultiPlasticityStress::TangentOperatorEnum | _tangent_operator_type |
Real | _epp_tol |
Tolerance on the plastic strain increment ("direction") constraint. More... | |
std::vector< Real > | _dummy_pm |
dummy "consistency parameters" (plastic multipliers) used in quickStep when called from computeQpStress More... | |
std::vector< Real > | _cumulative_pm |
the sum of the plastic multipliers over all the sub-steps. More... | |
enum ComputeMultiPlasticityStress::DeactivationSchemeEnum | _deactivation_scheme |
bool | _n_supplied |
User supplied the transverse direction vector. More... | |
RealVectorValue | _n_input |
the supplied transverse direction vector More... | |
RealTensorValue | _rot |
rotation matrix that takes _n to (0, 0, 1) More... | |
bool | _perform_finite_strain_rotations |
whether to perform the rotations necessary in finite-strain simulations More... | |
const std::string | _elasticity_tensor_name |
Name of the elasticity tensor material property. More... | |
const MaterialProperty< RankFourTensor > & | _elasticity_tensor |
Elasticity tensor material property. More... | |
MaterialProperty< RankTwoTensor > & | _plastic_strain |
plastic strain More... | |
const MaterialProperty< RankTwoTensor > & | _plastic_strain_old |
Old value of plastic strain. More... | |
MaterialProperty< std::vector< Real > > & | _intnl |
internal parameters More... | |
const MaterialProperty< std::vector< Real > > & | _intnl_old |
old values of internal parameters More... | |
MaterialProperty< std::vector< Real > > & | _yf |
yield functions More... | |
MaterialProperty< Real > & | _iter |
Number of Newton-Raphson iterations used in the return-map. More... | |
MaterialProperty< Real > & | _linesearch_needed |
Whether a line-search was needed in the latest Newton-Raphson process (1 if true, 0 otherwise) More... | |
MaterialProperty< Real > & | _ld_encountered |
Whether linear-dependence was encountered in the latest Newton-Raphson process (1 if true, 0 otherwise) More... | |
MaterialProperty< Real > & | _constraints_added |
Whether constraints were added in during the latest Newton-Raphson process (1 if true, 0 otherwise) More... | |
MaterialProperty< RealVectorValue > & | _n |
current value of transverse direction More... | |
const MaterialProperty< RealVectorValue > & | _n_old |
old value of transverse direction More... | |
const MaterialProperty< RankTwoTensor > & | _strain_increment |
strain increment (coming from ComputeIncrementalSmallStrain, for example) More... | |
const MaterialProperty< RankTwoTensor > & | _total_strain_old |
Old value of total strain (coming from ComputeIncrementalSmallStrain, for example) More... | |
const MaterialProperty< RankTwoTensor > & | _rotation_increment |
Rotation increment (coming from ComputeIncrementalSmallStrain, for example) More... | |
const MaterialProperty< RankTwoTensor > & | _stress_old |
Old value of stress. More... | |
const MaterialProperty< RankTwoTensor > & | _elastic_strain_old |
Old value of elastic strain. More... | |
bool | _cosserat |
whether Cosserat mechanics should be used More... | |
const MaterialProperty< RankTwoTensor > * | _curvature |
The Cosserat curvature strain. More... | |
const MaterialProperty< RankFourTensor > * | _elastic_flexural_rigidity_tensor |
The Cosserat elastic flexural rigidity tensor. More... | |
MaterialProperty< RankTwoTensor > * | _couple_stress |
the Cosserat couple-stress More... | |
const MaterialProperty< RankTwoTensor > * | _couple_stress_old |
the old value of Cosserat couple-stress More... | |
MaterialProperty< RankFourTensor > * | _Jacobian_mult_couple |
derivative of couple-stress w.r.t. curvature More... | |
RankFourTensor | _my_elasticity_tensor |
Elasticity tensor that can be rotated by this class (ie, its not const) More... | |
RankTwoTensor | _my_strain_increment |
Strain increment that can be rotated by this class, and split into multiple increments (ie, its not const) More... | |
RankFourTensor | _my_flexural_rigidity_tensor |
Flexual rigidity tensor that can be rotated by this class (ie, its not const) More... | |
RankTwoTensor | _my_curvature |
Curvature that can be rotated by this class, and split into multiple increments (ie, its not const) More... | |
const std::string | _base_name |
Base name prepended to all material property names to allow for multi-material systems. More... | |
const MaterialProperty< RankTwoTensor > & | _mechanical_strain |
Mechanical strain material property. More... | |
MaterialProperty< RankTwoTensor > & | _stress |
Stress material property. More... | |
MaterialProperty< RankTwoTensor > & | _elastic_strain |
Elastic strain material property. More... | |
const MaterialProperty< RankTwoTensor > & | _extra_stress |
Extra stress tensor. More... | |
std::vector< const Function * > | _initial_stress_fcn |
initial stress components More... | |
MaterialProperty< RankFourTensor > & | _Jacobian_mult |
derivative of stress w.r.t. strain (_dstress_dstrain) More... | |
MooseEnum | _fspb_debug |
none - don't do any debugging crash - currently inactive jacobian - check the jacobian entries jacobian_and_linear_system - check entire jacobian and check that Ax=b More... | |
RankTwoTensor | _fspb_debug_stress |
Debug the Jacobian entries at this stress. More... | |
std::vector< Real > | _fspb_debug_pm |
Debug the Jacobian entires at these plastic multipliers. More... | |
std::vector< Real > | _fspb_debug_intnl |
Debug the Jacobian entires at these internal parameters. More... | |
Real | _fspb_debug_stress_change |
Debug finite-differencing parameter for the stress. More... | |
std::vector< Real > | _fspb_debug_pm_change |
Debug finite-differencing parameters for the plastic multipliers. More... | |
std::vector< Real > | _fspb_debug_intnl_change |
Debug finite-differencing parameters for the internal parameters. More... | |
Real | _svd_tol |
Tolerance on the minimum ratio of singular values before flow-directions are deemed linearly dependent. More... | |
Real | _min_f_tol |
Minimum value of the _f_tol parameters for the Yield Function User Objects. More... | |
const InputParameters & | _params |
unsigned int | _num_models |
Number of plastic models for this material. More... | |
unsigned int | _num_surfaces |
Number of surfaces within the plastic models. More... | |
std::vector< std::vector< unsigned int > > | _surfaces_given_model |
_surfaces_given_model[model_number] = vector of surface numbers for this model More... | |
MooseEnum | _specialIC |
Allows initial set of active constraints to be chosen optimally. More... | |
std::vector< const TensorMechanicsPlasticModel * > | _f |
User objects that define the yield functions, flow potentials, etc. More... | |
Private Member Functions | |
RankTwoTensor | rot (const RankTwoTensor &tens) |
void | fddyieldFunction_dstress (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< RankTwoTensor > &df_dstress) |
The finite-difference derivative of yield function(s) with respect to stress. More... | |
void | fddyieldFunction_dintnl (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< Real > &df_dintnl) |
The finite-difference derivative of yield function(s) with respect to internal parameter(s) More... | |
virtual void | fddflowPotential_dstress (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< RankFourTensor > &dr_dstress) |
The finite-difference derivative of the flow potential(s) with respect to stress. More... | |
virtual void | fddflowPotential_dintnl (const RankTwoTensor &stress, const std::vector< Real > &intnl, std::vector< RankTwoTensor > &dr_dintnl) |
The finite-difference derivative of the flow potentials with respect to internal parameters. More... | |
virtual void | fdJacobian (const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankTwoTensor &delta_dp, const RankFourTensor &E_inv, bool eliminate_ld, std::vector< std::vector< Real >> &jac) |
The Jacobian calculated using finite differences. More... | |
bool | dof_included (unsigned int dof, const std::vector< bool > &deactivated_due_to_ld) |
virtual int | singularValuesOfR (const std::vector< RankTwoTensor > &r, std::vector< Real > &s) |
Performs a singular-value decomposition of r and returns the singular values. More... | |
virtual void | eliminateLinearDependence (const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< Real > &f, const std::vector< RankTwoTensor > &r, const std::vector< bool > &active, std::vector< bool > &deactivated_due_to_ld) |
Performs a number of singular-value decompositions to check for linear-dependence of the active directions "r" If linear dependence is found, then deactivated_due_to_ld will contain 'true' entries where surfaces need to be deactivated_due_to_ld. More... | |
void | buildActiveConstraintsRock (const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act) |
"Rock" version Constructs a set of active constraints, given the yield functions, f. More... | |
void | buildActiveConstraintsJoint (const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act) |
"Joint" version Constructs a set of active constraints, given the yield functions, f. More... | |
Private Attributes | |
std::vector< unsigned int > | _model_given_surface |
given a surface number, this returns the model number More... | |
std::vector< unsigned int > | _model_surface_given_surface |
given a surface number, this returns the corresponding-model's internal surface number More... | |
ComputeMultiPlasticityStress performs the return-map algorithm and associated stress updates for plastic models defined by a General User Objects.
Note that if run in debug mode you might have to use the –no-trap-fpe flag because PETSc-LAPACK-BLAS explicitly compute 0/0 and 1/0, and this causes Libmesh to trap the floating-point exceptions
Definition at line 30 of file ComputeMultiPlasticityStress.h.
|
protected |
Enumerator | |
---|---|
optimized | |
safe | |
dumb | |
optimized_to_safe | |
safe_to_dumb | |
optimized_to_safe_to_dumb | |
optimized_to_dumb |
Definition at line 79 of file ComputeMultiPlasticityStress.h.
|
protected |
The functions from which quickStep can be called.
Enumerator | |
---|---|
computeQpStress_function | |
returnMap_function |
Definition at line 445 of file ComputeMultiPlasticityStress.h.
|
protected |
The type of tangent operator to return. tangent operator = d(stress_rate)/d(strain_rate).
Enumerator | |
---|---|
elastic | |
linear | |
nonlinear |
Definition at line 54 of file ComputeMultiPlasticityStress.h.
ComputeMultiPlasticityStress::ComputeMultiPlasticityStress | ( | const InputParameters & | parameters | ) |
Definition at line 99 of file ComputeMultiPlasticityStress.C.
|
protected |
|
protectedinherited |
Returns the internal surface number(s) of the active surfaces of the given model This may be of size=0 if there are no active surfaces of the given model.
model | the model number | |
active | array with entries being 'true' if the surface is active | |
[out] | active_surfaces_of_model | the output |
Definition at line 811 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityRawComponentAssembler::dflowPotential_dintnl(), MultiPlasticityRawComponentAssembler::dflowPotential_dstress(), MultiPlasticityRawComponentAssembler::dhardPotential_dintnl(), MultiPlasticityRawComponentAssembler::dhardPotential_dstress(), MultiPlasticityRawComponentAssembler::dyieldFunction_dintnl(), MultiPlasticityRawComponentAssembler::dyieldFunction_dstress(), MultiPlasticityRawComponentAssembler::flowPotential(), MultiPlasticityRawComponentAssembler::hardPotential(), and MultiPlasticityRawComponentAssembler::yieldFunction().
|
protectedinherited |
Returns the external surface number(s) of the active surfaces of the given model This may be of size=0 if there are no active surfaces of the given model.
model | the model number | |
active | array with entries being 'true' if the surface is active | |
[out] | active_surfaces | the output |
Definition at line 800 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateConstraints().
|
protectedinherited |
returns true if any internal surfaces of the given model are active according to 'active'
Definition at line 791 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityLinearSystem::calculateRHS(), MultiPlasticityDebugger::checkSolution(), MultiPlasticityDebugger::dof_included(), MultiPlasticityLinearSystem::nrStep(), and residual2().
|
protectedvirtual |
Checks Kuhn-Tucker conditions, and alters "active" if appropriate.
Do not let the simplicity of this routine fool you! Explicitly: (1) checks that pm = 0 for all the f < 0. If not, then active is set to false for that constraint. This may be triggered if upon exit of the NR loops a constraint got deactivated due to linear dependence, and then f<0 and its pm>0. (2) checks that pm = 0 for all inactive constraints. This should always be true unless someone has screwed with the code. (3) if any pm < 0, then active is set to false for that constraint. This may be triggered if _deactivation_scheme!="optimized".
f | values of the active yield functions |
pm | values of all the plastic multipliers |
active | the active constraints (true if active) |
Definition at line 1313 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap().
|
protectedvirtualinherited |
Constructs a set of active constraints, given the yield functions, f.
This uses TensorMechanicsPlasticModel::activeConstraints to identify the active constraints for each model.
f | yield functions (should be _num_surfaces of these) | |
stress | stress tensor | |
intnl | internal parameters | |
Eijkl | elasticity tensor (stress = Eijkl*strain) | |
[out] | act | the set of active constraints (will be resized to _num_surfaces) |
Definition at line 344 of file MultiPlasticityRawComponentAssembler.C.
Referenced by returnMap().
|
privateinherited |
"Joint" version Constructs a set of active constraints, given the yield functions, f.
This uses TensorMechanicsPlasticModel::activeConstraints to identify the active constraints for each model.
f | yield functions (should be _num_surfaces of these) | |
stress | stress tensor | |
intnl | internal parameters | |
Eijkl | elasticity tensor (stress = Eijkl*strain) | |
[out] | act | the set of active constraints (will be resized to _num_surfaces) |
Definition at line 381 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityRawComponentAssembler::buildActiveConstraints().
|
privateinherited |
"Rock" version Constructs a set of active constraints, given the yield functions, f.
This uses TensorMechanicsPlasticModel::activeConstraints to identify the active constraints for each model.
f | yield functions (should be _num_surfaces of these) | |
stress | stress tensor | |
intnl | internal parameters | |
Eijkl | elasticity tensor (stress = Eijkl*strain) | |
[out] | act | the set of active constraints (will be resized to _num_surfaces) |
Definition at line 422 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityRawComponentAssembler::buildActiveConstraints().
|
protected |
Builds the order which "dumb" activation will take.
stress | stress to evaluate yield functions and derivatives at | |
intnl | internal parameters to evaluate yield functions and derivatives at | |
[out] | dumb_order | dumb_order[0] will be the yield surface furthest away from (stress, intnl), dumb_order[1] will be the next yield surface, etc. The distance measure used is f/|df_dstress|. This array can then be fed into incrementDumb in order to first try the yield surfaces which are farthest away from the (stress, intnl). |
Definition at line 1524 of file ComputeMultiPlasticityStress.C.
Referenced by changeScheme(), and returnMap().
|
protectedvirtualinherited |
The constraints.
These are set to zero (or <=0 in the case of the yield functions) by the Newton-Raphson process, except in the case of linear-dependence which complicates things.
stress | The stress | |
intnl_old | old values of the internal parameters | |
intnl | internal parameters | |
pm | Current value(s) of the plasticity multiplier(s) (consistency parameters) | |
delta_dp | Change in plastic strain incurred so far during the return | |
[out] | f | Active yield function(s) |
[out] | r | Active flow directions |
[out] | epp | Plastic-strain increment constraint |
[out] | ic | Active internal-parameter constraint |
active | The active constraints. |
Definition at line 228 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityLinearSystem::calculateRHS(), and lineSearch().
|
protectedvirtualinherited |
d(rhs)/d(dof)
Definition at line 367 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityDebugger::checkJacobian(), MultiPlasticityDebugger::checkSolution(), and MultiPlasticityLinearSystem::nrStep().
|
protectedvirtualinherited |
Calculate the RHS which is rhs = -(epp(0,0), epp(1,0), epp(1,1), epp(2,0), epp(2,1), epp(2,2), f[0], f[1], ..., f[num_f], ic[0], ic[1], ..., ic[num_ic])
Note that the 'epp' components only contain the upper diagonal. These contain flow directions and plasticity-multipliers for all active surfaces, even the deactivated_due_to_ld surfaces. Note that the 'f' components only contain the active and not deactivated_due_to_ld surfaces Note that the 'ic' components only contain the internal constraints for models which contain active and not deactivated_due_to_ld surfaces. They contain hardening-potentials and plasticity-multipliers for the active surfaces, even the deactivated_due_to_ld surfaces
stress | The stress | |
intnl_old | old values of the internal parameters | |
intnl | internal parameters | |
pm | Current value(s) of the plasticity multiplier(s) (consistency parameters) | |
delta_dp | Change in plastic strain incurred so far during the return | |
[out] | rhs | the rhs |
active | The active constraints. | |
eliminate_ld | Check for linear dependence of constraints and put the results into deactivated_due_to_ld. Usually this should be true, but for certain debug operations it should be false | |
[out] | deactivated_due_to_ld | constraints deactivated due to linear-dependence of flow directions |
Definition at line 288 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityDebugger::checkSolution(), MultiPlasticityDebugger::fdJacobian(), and MultiPlasticityLinearSystem::nrStep().
|
protected |
|
protected |
Definition at line 1025 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap().
|
protected |
|
protected |
|
protectedvirtual |
Checks whether the yield functions are in the admissible region.
stress | stress | |
intnl | internal parameters | |
[out] | all_f | the values of all the yield functions |
Definition at line 1271 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap().
|
inherited |
Checks the derivatives, eg dyieldFunction_dstress by using finite difference approximations.
Definition at line 85 of file MultiPlasticityDebugger.C.
Referenced by initQpStatefulProperties(), and plasticStep().
|
inherited |
Checks the full Jacobian, which is just certain linear combinations of the dyieldFunction_dstress, etc, by using finite difference approximations.
Definition at line 161 of file MultiPlasticityDebugger.C.
Referenced by computeQpStress(), and plasticStep().
|
protectedvirtual |
Checks Kuhn-Tucker conditions, and alters "active" if appropriate.
Do not let the simplicity of this routine fool you! Explicitly: (1) checks that pm = 0 for all the f < 0. If not, then active is set to false for that constraint. This may be triggered if upon exit of the NR loops a constraint got deactivated due to linear dependence, and then f<0 and its pm>0. (2) checks that pm = 0 for all inactive constraints. This should always be true unless someone has screwed with the code. (3) if any pm < 0, then active is set to false for that constraint. This may be triggered if _deactivation_scheme!="optimized".
f | values of the active yield functions |
pm | values of all the plastic multipliers |
active | the active constraints (true if active) |
Definition at line 1288 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap().
|
inherited |
Checks that Ax does equal b in the NR procedure.
Definition at line 367 of file MultiPlasticityDebugger.C.
Referenced by computeQpStress(), and plasticStep().
|
overrideprotectedvirtualinherited |
Definition at line 50 of file ComputeStressBase.C.
|
protectedvirtual |
Compute the stress and store it in the _stress material property for the current quadrature point.
Implements ComputeStressBase.
Definition at line 221 of file ComputeMultiPlasticityStress.C.
|
protected |
Computes the consistent tangent operator (another name for the jacobian = d(stress_rate)/d(strain_rate)
The computations performed depend upon _tangent_operator_type
stress | The value of stress after the return map algorithm has converged |
intnl | The internal parameters after the return map has converged |
E_ijkl | The elasticity tensor (in the case of no plasticity this is the jacobian) |
pm_this_step | The plastic multipliers coming from the final strain increment. In many cases these will be equal to cumulative_pm, but in the case where the returnMap algorithm had to be performed in multiple substeps of smaller applied strain increments, pm_this_step are just the plastic multipliers for the final application of the strain incrment |
cumulative_pm | The plastic multipliers needed for this current Return (this is the sum of the plastic multipliers over all substeps if the strain increment was applied in small substeps) |
Definition at line 1585 of file ComputeMultiPlasticityStress.C.
Referenced by quickStep(), and returnMap().
|
protectedvirtualinherited |
The derivative of the active flow potentials with respect to the active internal parameters The UserObjects explicitly assume that r[alpha] is only dependent on intnl[alpha].
stress | the stress at which to calculate the flow potential | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "dr_dintnl" | |
[out] | dr_dintnl | the derivatives. dr_dintnl[alpha](i, j) = dr[alpha](i, j)/dintnl[alpha] |
Definition at line 235 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityDebugger::checkDerivatives(), and consistentTangentOperator().
|
protectedvirtualinherited |
The derivative of the active flow potential(s) with respect to stress.
stress | the stress at which to calculate the flow potential | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "dr_dstress" | |
[out] | dr_dstress | the derivative. dr_dstress[alpha](i, j, k, l) = dr[alpha](i, j)/dstress(k, l) |
Definition at line 207 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityDebugger::checkDerivatives(), and consistentTangentOperator().
|
protectedvirtualinherited |
The derivative of the active hardening potentials with respect to the active internal parameters.
stress | the stress at which to calculate the hardening potentials | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "dh_dintnl" | |
[out] | dh_dintnl | the derivatives. dh_dintnl[a][alpha][b] = dh[a][alpha]/dintnl[b]. Note that the userobjects assume that there is exactly one internal parameter per yield function, so the derivative is only nonzero for a=alpha=b, so that is all we calculate |
Definition at line 317 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian().
|
protectedvirtualinherited |
The derivative of the active hardening potentials with respect to stress By assumption in the Userobjects, the h[a][alpha] is nonzero only for a = alpha, so we only calculate those here.
stress | the stress at which to calculate the hardening potentials | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "dh_dstress" | |
[out] | dh_dstress | the derivative. dh_dstress[a](i, j) = dh[a]/dstress(k, l) |
Definition at line 289 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian().
|
privateinherited |
Definition at line 349 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::fdJacobian().
|
protectedvirtualinherited |
The derivative of active yield function(s) with respect to their internal parameters (the user objects assume there is exactly one internal param per yield function)
stress | the stress at which to calculate the yield function | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "df_dintnl" | |
[out] | df_dintnl | the derivatives. df_dstress[alpha] = dyieldFunction[alpha]/dintnl[alpha] |
Definition at line 153 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityDebugger::checkDerivatives(), and consistentTangentOperator().
|
protectedvirtualinherited |
The derivative of the active yield function(s) with respect to stress.
stress | the stress at which to calculate the yield function | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active derivatives are put into "df_dstress" | |
[out] | df_dstress | the derivative (or derivatives in the case of multisurface plasticity). df_dstress[alpha](i, j) = dyieldFunction[alpha]/dstress(i, j) |
Definition at line 125 of file MultiPlasticityRawComponentAssembler.C.
Referenced by buildDumbOrder(), MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityDebugger::checkDerivatives(), consistentTangentOperator(), and MultiPlasticityLinearSystem::eliminateLinearDependence().
|
privatevirtualinherited |
Performs a number of singular-value decompositions to check for linear-dependence of the active directions "r" If linear dependence is found, then deactivated_due_to_ld will contain 'true' entries where surfaces need to be deactivated_due_to_ld.
stress | the current stress | |
intnl | the current values of internal parameters | |
f | Active yield function values | |
r | the flow directions that for those yield functions that are active upon entry to this function | |
active | true if active | |
[out] | deactivated_due_to_ld | Yield functions deactivated due to linearly-dependent flow directions |
Definition at line 107 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityLinearSystem::calculateRHS().
|
privatevirtualinherited |
The finite-difference derivative of the flow potentials with respect to internal parameters.
stress | the stress at which to calculate the flow potential | |
intnl | vector of internal parameters | |
[out] | dr_dintnl | the derivatives. dr_dintnl[alpha](i, j) = dr[alpha](i, j)/dintnl[alpha] |
Definition at line 607 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkDerivatives().
|
privatevirtualinherited |
The finite-difference derivative of the flow potential(s) with respect to stress.
stress | the stress at which to calculate the flow potential | |
intnl | vector of internal parameters | |
[out] | dr_dstress | the derivative. dr_dstress[alpha](i, j, k, l) = dr[alpha](i, j)/dstress(k, l) |
Definition at line 578 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkDerivatives().
|
privateinherited |
The finite-difference derivative of yield function(s) with respect to internal parameter(s)
stress | the stress at which to calculate the yield function | |
intnl | vector of internal parameters | |
[out] | df_dintnl | the derivative (or derivatives in the case of multisurface plasticity). df_dintnl[alpha] = dyieldFunction[alpha]/dintnl[alpha] |
Definition at line 547 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkDerivatives().
|
privateinherited |
The finite-difference derivative of yield function(s) with respect to stress.
stress | the stress at which to calculate the yield function | |
intnl | vector of internal parameters | |
[out] | df_dstress | the derivative (or derivatives in the case of multisurface plasticity). df_dstress[alpha](i, j) = dyieldFunction[alpha]/dstress(i, j) |
Definition at line 519 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkDerivatives().
|
privatevirtualinherited |
The Jacobian calculated using finite differences.
The output should be equal to calculateJacobian(...) if everything is coded correctly.
stress | the stress at which to calculate the Jacobian | |
intnl_old | the old values of internal variables (jacobian is inependent of these, but they are needed to do the finite-differencing cleanly) | |
intnl | the vector of internal parameters at which to calculate the Jacobian | |
pm | the plasticity multipliers at which to calculate the Jacobian | |
delta_dp | plastic_strain - plastic_strain_old (Jacobian is independent of this, but it is needed to do the finite-differencing cleanly) | |
E_inv | inverse of the elasticity tensor | |
eliminate_ld | only calculate the Jacobian for the linearly independent constraints | |
[out] | jac | the finite-difference Jacobian |
Definition at line 221 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkJacobian(), and MultiPlasticityDebugger::checkSolution().
|
protectedvirtualinherited |
The active flow potential(s) - one for each yield function.
stress | the stress at which to calculate the flow potential | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active flow potentials are put into "r" | |
[out] | r | the flow potential (flow potentials in the multi-surface case) |
Definition at line 180 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateConstraints(), MultiPlasticityLinearSystem::calculateJacobian(), consistentTangentOperator(), MultiPlasticityDebugger::fddflowPotential_dintnl(), and MultiPlasticityDebugger::fddflowPotential_dstress().
|
protectedvirtualinherited |
The active hardening potentials (one for each internal parameter and for each yield function) by assumption in the Userobjects, the h[a][alpha] is nonzero only if the surface alpha is part of model a, so we only calculate those here.
stress | the stress at which to calculate the hardening potential | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active hardening potentials are put into "h" | |
[out] | h | the hardening potentials. h[alpha] = hardening potential for yield fcn alpha (and, by the above assumption we know which hardening parameter, a, this belongs to) |
Definition at line 262 of file MultiPlasticityRawComponentAssembler.C.
Referenced by MultiPlasticityLinearSystem::calculateConstraints(), MultiPlasticityLinearSystem::calculateJacobian(), and consistentTangentOperator().
|
protectedvirtual |
Increments "dumb_iteration" by 1, and sets "act" appropriately (act[alpha] = true iff alpha_th bit of dumb_iteration == 1)
[in,out] | dumb_iteration | Used to set act bitwise - the "dumb" scheme tries all possible combinations of act until a successful return |
[in] | dumb_order | dumb_order dumb_order[0] will be the yield surface furthest away from (stress, intnl), dumb_order[1] will be the next yield surface, etc. The distance measure used is f/|df_dstress|. This array can then be fed into incrementDumb in order to first try the yield surfaces which are farthest away from the (stress, intnl). |
[out] | act | active constraints |
Definition at line 1555 of file ComputeMultiPlasticityStress.C.
Referenced by changeScheme(), and returnMap().
|
protectedvirtual |
Reimplemented from ComputeStressBase.
Definition at line 191 of file ComputeMultiPlasticityStress.C.
|
protectedvirtual |
Performs a line search.
Algorithm is taken straight from "Numerical Recipes". Given the changes dstress, dpm and dintnl provided by the nrStep routine, a line-search looks for an appropriate under-relaxation that reduces the residual-squared (nr_res2).
Most variables are input/output variables: they enter the function with their values at the start of the Newton step, and they exit the function with values attained after applying the under-relaxation
[in,out] | nr_res2 | The residual-squared |
[out] | stress | The stress after returning to the yield surface |
intnl_old | The internal variables at the previous "time" step | |
[in,out] | intnl | The internal variables |
[in,out] | pm | The plasticity multiplier(s) (consistency parameter(s)) |
E_inv | inverse of the elasticity tensor | |
[in,out] | delta_dp | Change in plastic strain from start of "time" step to current configuration (plastic_strain - plastic_strain_old) |
dstress | Change in stress for a full Newton step | |
dpm | Change in plasticity multiplier for a full Newton step | |
dintnl | change in internal parameter(s) for a full Newton step | |
[in,out] | f | Yield function(s). In this routine, only the active constraints that are not deactivated_due_to_ld are contained in f. |
[in,out] | epp | Plastic strain increment constraint |
[in,out] | ic | Internal constraint. In this routine, only the active constraints that are not deactivated_due_to_ld are contained in ic. |
active | The active constraints. | |
deactivated_due_to_ld | True if a constraint has temporarily been made deactive due to linear dependence. | |
[out] | linesearch_needed | True if the full Newton-Raphson step was cut by the linesearch |
Definition at line 1391 of file ComputeMultiPlasticityStress.C.
Referenced by singleStep().
|
protectedinherited |
returns the model number, given the surface number
Definition at line 785 of file MultiPlasticityRawComponentAssembler.C.
Referenced by applyKuhnTucker(), MultiPlasticityLinearSystem::calculateJacobian(), canAddConstraints(), checkAdmissible(), checkKuhnTucker(), consistentTangentOperator(), MultiPlasticityDebugger::fddflowPotential_dintnl(), MultiPlasticityDebugger::fddyieldFunction_dintnl(), residual2(), returnMap(), and singleStep().
|
protectedvirtualinherited |
Performs one Newton-Raphson step.
The purpose here is to find the changes, dstress, dpm and dintnl according to the Newton-Raphson procedure
stress | Current value of stress | |
intnl_old | The internal variables at the previous "time" step | |
intnl | Current value of the internal variables | |
pm | Current value of the plasticity multipliers (consistency parameters) | |
E_inv | inverse of the elasticity tensor | |
delta_dp | Current value of the plastic-strain increment (ie plastic_strain - plastic_strain_old) | |
[out] | dstress | The change in stress for a full Newton step |
[out] | dpm | The change in all plasticity multipliers for a full Newton step |
[out] | dintnl | The change in all internal variables for a full Newton step |
active | The active constraints | |
[out] | deactivated_due_to_ld | The constraints deactivated due to linear-dependence of the flow directions |
Definition at line 615 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityDebugger::checkSolution(), and singleStep().
|
protectedvirtual |
counts the number of active constraints
Definition at line 1261 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap(), and singleStep().
|
inherited |
Outputs the debug parameters: _fspb_debug_stress, _fspd_debug_pm, etc and checks that they are sized correctly.
Definition at line 55 of file MultiPlasticityDebugger.C.
Referenced by MultiPlasticityDebugger::checkDerivatives(), MultiPlasticityDebugger::checkJacobian(), and MultiPlasticityDebugger::checkSolution().
|
protectedvirtual |
performs a plastic step
stress_old | The value of stress at the previous "time" step | |
[out] | stress | stress after returning to the yield surface |
intnl_old | The internal variables at the previous "time" step | |
[out] | intnl | internal variables after returning to the yield surface |
plastic_strain_old | The value of plastic strain at the previous "time" step | |
[out] | plastic_strain | plastic_strain after returning to the yield surface |
E_ijkl | The elasticity tensor. | |
strain_increment | The applied strain increment | |
[out] | yf | All the yield functions at (stress, intnl) |
[out] | iterations | The total number of Newton-Raphson iterations used |
[out] | linesearch_needed | True if a linesearch was needed at any stage during the Newton-Raphson proceedure |
[out] | ld_encountered | True if a linear-dependence of the flow directions was encountered at any stage during the Newton-Raphson proceedure |
[out] | constraints_added | True if constraints were added into the active set at any stage during the Newton-Raphson proceedure |
[out] | consistent_tangent_operator | The consistent tangent operator d(stress_rate)/d(strain_rate) |
the idea in the following is to potentially subdivide the strain increment into smaller fractions, of size "step_size". First step_size = 1 is tried, and if that fails then 0.5 is tried, then 0.25, etc. As soon as a step is successful, its results are put into the "good" variables, which are used if a subsequent step fails. If >= 2 consecutive steps are successful, the step_size is increased by 1.2
The point of all this is that I hope that the time-step for the entire mesh need not be cut if there are only a few "bad" quadpoints where the return-map is difficult
Definition at line 468 of file ComputeMultiPlasticityStress.C.
Referenced by computeQpStress().
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Attempts to find an admissible (stress, intnl) by using the customized return-map algorithms defined through the TensorMechanicsPlasticXXXX.returnMap functions.
stress_old | The value of stress at the previous "time" step | |
[out] | stress | If returnvalue=true then this is the returned value of stress. Otherwise, this is undefined |
intnl_old | The internal variables at the previous "time" step | |
[out] | intnl | If returnvalue=true then this is the value of the internal parameters after returning. Otherwise, this is undefined |
[out] | pm | If returnvalue=true, this is the plastic multipliers needed to bring aout the return. Otherwise, this is undefined |
[in/out] | cumulative_pm If returnvalue=true, this is cumulative plastic multipliers, updated with pm. Otherwise, this is untouched by the algorithm | |
plastic_strain_old | The value of plastic strain at the previous "time" step | |
[out] | plastic_strain | If returnvalue=true, this is the new plastic strain. Otherwise it is set to plastic_strain_old |
E_ijkl | The elasticity tensor. | |
strain_increment | The applied strain increment | |
[out] | yf | If returnvalue=true, then all the yield functions at (stress, intnl). Otherwise, all the yield functions at (stress_old, intnl_old) |
[out] | iterations | Number of NR iterations used, which is always zero in the current implementation. |
called_from | This can be called from computeQpStress, in which case it can actually provde an answer to the returnmap algorithm, or from returnMap in which case it is probably only providing an answer to a particular subdivision of the returnmap algorithm. The consistent tangent operator is calculated idfferently in each case | |
final_step | The consistent tangent operator is calculated if this is true | |
[out] | consistent_tangent_operator | If final_step==true and returnvalue=true, then this is the consistent tangent operator d(stress_rate)/d(strain_rate). Otherwise it is undefined. |
Definition at line 371 of file ComputeMultiPlasticityStress.C.
Referenced by computeQpStress(), and returnMap().
|
protectedvirtual |
makes all deactivated_due_to_ld false, and if >0 of them were initially true, returns true
Definition at line 1248 of file ComputeMultiPlasticityStress.C.
Referenced by singleStep().
|
protectedvirtual |
The residual-squared.
pm | the plastic multipliers for all constraints |
f | the active yield function(s) (not including the ones that are deactivated_due_to_ld) |
epp | the plastic strain increment constraint |
ic | the active internal constraint(s) (not including the ones that are deactivated_due_to_ld) |
active | true if constraint is active |
deactivated_due_to_ld | true if constraint has been temporarily deactivated due to linear dependence of flow directions |
Definition at line 1354 of file ComputeMultiPlasticityStress.C.
Referenced by lineSearch(), and singleStep().
|
protectedvirtual |
Implements the return map.
Note that this algorithm doesn't do any rotations. In order to find the final stress and plastic_strain must be rotated using _rotation_increment. This is usually done in computeQpStress
stress_old | The value of stress at the previous "time" step | |
[out] | stress | The stress after returning to the yield surface |
intnl_old | The internal variables at the previous "time" step | |
[out] | intnl | All the internal variables after returning to the yield surface |
plastic_strain_old | The value of plastic strain at the previous "time" step | |
[out] | plastic_strain | The value of plastic strain after returning to the yield surface |
E_ijkl | The elasticity tensor. If no plasiticity then stress = stress_old + E_ijkl*strain_increment | |
strain_increment | The applied strain increment | |
[out] | f | All the yield functions after returning to the yield surface |
[out] | iter | The number of Newton-Raphson iterations used |
can_revert_to_dumb | If the _deactivation_scheme is set to revert to dumb, it will only be allowed to do so if this parameter is true | |
[out] | linesearch_needed | True if a linesearch was needed at any stage during the Newton-Raphson proceedure |
[out] | ld_encountered | True if a linear-dependence of the flow directions was encountered at any stage during the Newton-Raphson proceedure |
[out] | constraints_added | True if constraints were added into the active set at any stage during the Newton-Raphson proceedure |
final_step | Each strain increment may be decomposed into a sum of smaller increments if the return-map algorithm fails. This flag indicates whether this is the last application of incremental strain | |
[out] | consistent_tangent_operator | The consistent tangent operator d(stress_rate)/d(strain_rate). This is only output if final_step=true, and the return value of returnMap is also true. |
[in,out] | cumulative_pm | Upon input: the plastic multipliers before the return map. Upon output: the plastic multipliers after this return map, if the return map was successful |
Definition at line 615 of file ComputeMultiPlasticityStress.C.
Referenced by plasticStep().
|
protectedinherited |
Performs a returnMap for each plastic model using their inbuilt returnMap functions.
Performs a returnMap for each plastic model.
This may be used to quickly ascertain whether a (trial_stress, intnl_old) configuration is admissible, or whether a single model's customized returnMap function can provide a solution to the return-map problem, or whether a full Newton-Raphson approach such as implemented in ComputeMultiPlasticityStress is needed.
There are three cases mentioned below: (A) The (trial_stress, intnl_old) configuration is admissible according to all plastic models (B) The (trial_stress, intnl_old) configuration is inadmissible to exactly one plastic model, and that model can successfully use its customized returnMap function to provide a returned (stress, intnl) configuration, and that configuration is admissible according to all plastic models (C) All other cases. This includes customized returnMap functions failing, or more than one plastic_model being inadmissible, etc
trial_stress | the trial stress | |
intnl_old | the old values of the internal parameters | |
E_ijkl | the elasticity tensor | |
ep_plastic_tolerance | the tolerance on the plastic strain | |
[out] | stress | is set to trial_stress in case (A) or (C), and the returned value of stress in case (B). |
[out] | intnl | is set to intnl_old in case (A) or (C), and the returned value of intnl in case (B) |
[out] | pm | Zero in case (A) or (C), otherwise the plastic multipliers needed to bring about the returnMap in case (B) |
[in/out] | cumulative_pm cumulative plastic multipliers, updated in case (B), otherwise left untouched | |
[out] | delta_dp | is unchanged in case (A) or (C), and is set to the change in plastic strain in case(B) |
[out] | yf | will contain the yield function values at (stress, intnl) |
[out] | num_successful_plastic_returns | will be 0 for (A) and (C), and 1 for (B) |
If all models actually signal "elastic" by returning true from their returnMap, and by returning model_plastically_active=0, then yf will contain the yield function values num_successful_plastic_returns will be zero intnl = intnl_old delta_dp will be unchanged from its input value stress will be set to trial_stress pm will be zero cumulative_pm will be unchanged return value will be true num_successful_plastic_returns = 0
If only one model signals "plastically active" by returning true from its returnMap, and by returning model_plastically_active=1, then yf will contain the yield function values num_successful_plastic_returns will be one intnl will be set by the returnMap algorithm delta_dp will be set by the returnMap algorithm stress will be set by the returnMap algorithm pm will be nonzero for the single model, and zero for other models cumulative_pm will be updated return value will be true num_successful_plastic_returns = 1
If >1 model signals "plastically active" or if >=1 model's returnMap fails, then yf will contain the yield function values num_successful_plastic_returns will be set appropriately intnl = intnl_old delta_dp will be unchanged from its input value stress will be set to trial_stress pm will be zero cumulative_pm will be unchanged return value will be true if all returnMap functions returned true, otherwise it will be false num_successful_plastic_returns is set appropriately
Definition at line 599 of file MultiPlasticityRawComponentAssembler.C.
Referenced by quickStep().
|
private |
Definition at line 312 of file ComputeMultiPlasticityStress.C.
Referenced by computeQpStress().
|
protectedvirtual |
Performs a single Newton-Raphson + linesearch step Constraints are deactivated and the step is re-done if deactivation_scheme is set appropriately.
[in,out] | nr_res2 | Residual-squared that the line-search will reduce |
[in,out] | stress | stress |
[in] | intnl_old | old values of the internal parameters |
[in,out] | intnl | internal parameters |
[in,out] | pm | plastic multipliers |
[in,out] | delta_dp | Change in plastic strain from start of "time" step to current configuration (plastic_strain - plastic_strain_old) |
[in] | E_inv | Inverse of the elasticity tensor |
[in,out] | f | Yield function(s). Upon successful exit only the active constraints are contained in f |
[in,out] | epp | Plastic strain increment constraint |
[in,out] | ic | Internal constraint. Upon successful exit only the active constraints are contained in ic |
active | The active constraints. This is may be modified, depending upon deactivation_scheme | |
deactivation_scheme | The scheme used for deactivating constraints | |
[out] | linesearch_needed | True if a linesearch was employed during this Newton-Raphson step |
[out] | ld_encountered | True if a linear-dependence of the flow directions was encountered at any stage during the Newton-Raphson proceedure |
Definition at line 1082 of file ComputeMultiPlasticityStress.C.
Referenced by returnMap().
|
privatevirtualinherited |
Performs a singular-value decomposition of r and returns the singular values.
Example: If r has size 5 then the singular values of the following matrix are returned: ( r[0](0,0) r[0](0,1) r[0](0,2) r[0](1,1) r[0](1,2) r[0](2,2) ) ( r[1](0,0) r[1](0,1) r[1](0,2) r[1](1,1) r[1](1,2) r[1](2,2) ) a = ( r[2](0,0) r[2](0,1) r[2](0,2) r[2](1,1) r[2](1,2) r[2](2,2) ) ( r[3](0,0) r[3](0,1) r[3](0,2) r[3](1,1) r[3](1,2) r[3](2,2) ) ( r[4](0,0) r[4](0,1) r[4](0,2) r[4](1,1) r[4](1,2) r[4](2,2) )
r | The flow directions | |
[out] | s | The singular values |
Definition at line 47 of file MultiPlasticityLinearSystem.C.
Referenced by MultiPlasticityLinearSystem::eliminateLinearDependence().
|
static |
Definition at line 24 of file ComputeMultiPlasticityStress.C.
|
protectedvirtualinherited |
The active yield function(s)
stress | the stress at which to calculate the yield function | |
intnl | vector of internal parameters | |
active | set of active constraints - only the active yield functions are put into "f" | |
[out] | f | the yield function (or functions in the case of multisurface plasticity) |
Definition at line 98 of file MultiPlasticityRawComponentAssembler.C.
Referenced by buildDumbOrder(), MultiPlasticityLinearSystem::calculateConstraints(), checkAdmissible(), MultiPlasticityDebugger::fddyieldFunction_dintnl(), MultiPlasticityDebugger::fddyieldFunction_dstress(), and returnMap().
|
protectedinherited |
Base name prepended to all material property names to allow for multi-material systems.
Definition at line 45 of file ComputeStressBase.h.
Referenced by ComputeLinearElasticStress::initialSetup(), and ComputeCosseratLinearElasticStress::initialSetup().
|
protected |
Whether constraints were added in during the latest Newton-Raphson process (1 if true, 0 otherwise)
Definition at line 132 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protected |
whether Cosserat mechanics should be used
Definition at line 156 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), initQpStatefulProperties(), postReturnMap(), and preReturnMap().
|
protected |
the Cosserat couple-stress
Definition at line 165 of file ComputeMultiPlasticityStress.h.
|
protected |
the old value of Cosserat couple-stress
Definition at line 168 of file ComputeMultiPlasticityStress.h.
|
protected |
the sum of the plastic multipliers over all the sub-steps.
This is used for calculating the consistent tangent operator
Definition at line 71 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and plasticStep().
|
protected |
The Cosserat curvature strain.
Definition at line 159 of file ComputeMultiPlasticityStress.h.
|
protected |
Referenced by canChangeScheme(), changeScheme(), ComputeMultiPlasticityStress(), and returnMap().
|
protected |
dummy "consistency parameters" (plastic multipliers) used in quickStep when called from computeQpStress
Definition at line 65 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protected |
The Cosserat elastic flexural rigidity tensor.
Definition at line 162 of file ComputeMultiPlasticityStress.h.
|
protectedinherited |
Elastic strain material property.
Definition at line 52 of file ComputeStressBase.h.
Referenced by ComputeSmearedCrackingStress::computeCrackStrainAndOrientation(), ComputeLinearElasticStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStressIntermediateConfiguration(), ComputeMultipleInelasticStress::finiteStrainRotation(), and ComputeStressBase::initQpStatefulProperties().
|
protected |
Old value of elastic strain.
Definition at line 153 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protected |
Elasticity tensor material property.
Definition at line 105 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protected |
Name of the elasticity tensor material property.
Definition at line 103 of file ComputeMultiPlasticityStress.h.
|
protected |
Tolerance on the plastic strain increment ("direction") constraint.
Definition at line 62 of file ComputeMultiPlasticityStress.h.
Referenced by ComputeMultiPlasticityStress(), quickStep(), and residual2().
|
protectedinherited |
Extra stress tensor.
Definition at line 55 of file ComputeStressBase.h.
Referenced by ComputeStressBase::computeQpProperties().
|
protectedinherited |
User objects that define the yield functions, flow potentials, etc.
Definition at line 75 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::activeModelSurfaces(), MultiPlasticityRawComponentAssembler::activeSurfaces(), MultiPlasticityRawComponentAssembler::anyActiveSurfaces(), applyKuhnTucker(), MultiPlasticityRawComponentAssembler::buildActiveConstraints(), MultiPlasticityRawComponentAssembler::buildActiveConstraintsJoint(), MultiPlasticityRawComponentAssembler::buildActiveConstraintsRock(), canAddConstraints(), checkAdmissible(), checkKuhnTucker(), MultiPlasticityRawComponentAssembler::dflowPotential_dintnl(), MultiPlasticityRawComponentAssembler::dflowPotential_dstress(), MultiPlasticityRawComponentAssembler::dhardPotential_dintnl(), MultiPlasticityRawComponentAssembler::dhardPotential_dstress(), MultiPlasticityRawComponentAssembler::dyieldFunction_dintnl(), MultiPlasticityRawComponentAssembler::dyieldFunction_dstress(), MultiPlasticityRawComponentAssembler::flowPotential(), MultiPlasticityRawComponentAssembler::hardPotential(), MultiPlasticityLinearSystem::MultiPlasticityLinearSystem(), MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler(), quickStep(), residual2(), returnMap(), MultiPlasticityRawComponentAssembler::returnMapAll(), singleStep(), and MultiPlasticityRawComponentAssembler::yieldFunction().
|
protectedinherited |
none - don't do any debugging crash - currently inactive jacobian - check the jacobian entries jacobian_and_linear_system - check entire jacobian and check that Ax=b
Definition at line 62 of file MultiPlasticityDebugger.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protectedinherited |
Debug the Jacobian entires at these internal parameters.
Definition at line 71 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::checkDerivatives(), MultiPlasticityDebugger::checkJacobian(), MultiPlasticityDebugger::checkSolution(), MultiPlasticityDebugger::outputAndCheckDebugParameters(), and plasticStep().
|
protectedinherited |
Debug finite-differencing parameters for the internal parameters.
Definition at line 80 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::fddflowPotential_dintnl(), MultiPlasticityDebugger::fddyieldFunction_dintnl(), MultiPlasticityDebugger::fdJacobian(), and MultiPlasticityDebugger::outputAndCheckDebugParameters().
|
protectedinherited |
Debug the Jacobian entires at these plastic multipliers.
Definition at line 68 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::checkJacobian(), MultiPlasticityDebugger::checkSolution(), MultiPlasticityDebugger::outputAndCheckDebugParameters(), and plasticStep().
|
protectedinherited |
Debug finite-differencing parameters for the plastic multipliers.
Definition at line 77 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::fdJacobian(), and MultiPlasticityDebugger::outputAndCheckDebugParameters().
|
protectedinherited |
Debug the Jacobian entries at this stress.
Definition at line 65 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::checkDerivatives(), MultiPlasticityDebugger::checkJacobian(), MultiPlasticityDebugger::checkSolution(), MultiPlasticityDebugger::outputAndCheckDebugParameters(), and plasticStep().
|
protectedinherited |
Debug finite-differencing parameter for the stress.
Definition at line 74 of file MultiPlasticityDebugger.h.
Referenced by MultiPlasticityDebugger::fddflowPotential_dstress(), MultiPlasticityDebugger::fddyieldFunction_dstress(), MultiPlasticityDebugger::fdJacobian(), and MultiPlasticityDebugger::outputAndCheckDebugParameters().
|
protected |
Even if the returnMap fails, return the best values found for stress and internal parameters.
Definition at line 51 of file ComputeMultiPlasticityStress.h.
Referenced by plasticStep().
|
protectedinherited |
initial stress components
Definition at line 58 of file ComputeStressBase.h.
|
protected |
internal parameters
Definition at line 114 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protected |
old values of internal parameters
Definition at line 117 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and plasticStep().
|
protected |
Number of Newton-Raphson iterations used in the return-map.
Definition at line 123 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protectedinherited |
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition at line 61 of file ComputeStressBase.h.
Referenced by ComputeStrainIncrementBasedStress::computeQpJacobian(), FiniteStrainHyperElasticViscoPlastic::computeQpJacobian(), ComputeMultipleInelasticCosseratStress::computeQpJacobianMult(), ComputeMultipleInelasticStress::computeQpJacobianMult(), ComputeLinearElasticStress::computeQpStress(), ComputeDamageStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), FiniteStrainUObasedCP::elasticTangentModuli(), FiniteStrainUObasedCP::elastoPlasticTangentModuli(), ComputeMultipleInelasticStress::finiteStrainRotation(), postReturnMap(), FiniteStrainCrystalPlasticity::postSolveQp(), FiniteStrainCrystalPlasticity::preSolveQp(), and ComputeMultipleInelasticStress::updateQpStateSingleModel().
|
protected |
derivative of couple-stress w.r.t. curvature
Definition at line 171 of file ComputeMultiPlasticityStress.h.
|
protected |
Whether linear-dependence was encountered in the latest Newton-Raphson process (1 if true, 0 otherwise)
Definition at line 129 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protected |
Whether a line-search was needed in the latest Newton-Raphson process (1 if true, 0 otherwise)
Definition at line 126 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().
|
protected |
Maximum number of Newton-Raphson iterations allowed.
Definition at line 42 of file ComputeMultiPlasticityStress.h.
Referenced by returnMap().
|
protected |
"dumb" deactivation will only be used if the stepsize falls below this quantity
Definition at line 48 of file ComputeMultiPlasticityStress.h.
Referenced by plasticStep().
|
protectedinherited |
Mechanical strain material property.
Definition at line 48 of file ComputeStressBase.h.
Referenced by ComputeLinearElasticStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), and ComputeLinearElasticPFFractureStress::computeStressSpectral().
|
protectedinherited |
Minimum value of the _f_tol parameters for the Yield Function User Objects.
Definition at line 136 of file MultiPlasticityLinearSystem.h.
Referenced by MultiPlasticityLinearSystem::eliminateLinearDependence(), and MultiPlasticityLinearSystem::MultiPlasticityLinearSystem().
|
protected |
Minimum fraction of applied strain that may be applied during adaptive stepsizing.
Definition at line 45 of file ComputeMultiPlasticityStress.h.
Referenced by plasticStep().
|
privateinherited |
given a surface number, this returns the model number
Definition at line 295 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::modelNumber(), and MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler().
|
privateinherited |
given a surface number, this returns the corresponding-model's internal surface number
Definition at line 298 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler().
|
protected |
Curvature that can be rotated by this class, and split into multiple increments (ie, its not const)
Definition at line 183 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), postReturnMap(), and preReturnMap().
|
protected |
Elasticity tensor that can be rotated by this class (ie, its not const)
Definition at line 174 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), plasticStep(), postReturnMap(), and preReturnMap().
|
protected |
Flexual rigidity tensor that can be rotated by this class (ie, its not const)
Definition at line 180 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), postReturnMap(), and preReturnMap().
|
protected |
Strain increment that can be rotated by this class, and split into multiple increments (ie, its not const)
Definition at line 177 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), postReturnMap(), and preReturnMap().
|
protected |
current value of transverse direction
Definition at line 135 of file ComputeMultiPlasticityStress.h.
Referenced by initQpStatefulProperties(), postReturnMap(), and preReturnMap().
|
protected |
the supplied transverse direction vector
Definition at line 94 of file ComputeMultiPlasticityStress.h.
Referenced by ComputeMultiPlasticityStress(), and initQpStatefulProperties().
|
protected |
old value of transverse direction
Definition at line 138 of file ComputeMultiPlasticityStress.h.
Referenced by postReturnMap().
|
protected |
User supplied the transverse direction vector.
Definition at line 91 of file ComputeMultiPlasticityStress.h.
Referenced by ComputeMultiPlasticityStress(), postReturnMap(), preReturnMap(), and rot().
|
protectedinherited |
Number of plastic models for this material.
Definition at line 57 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::buildActiveConstraints(), MultiPlasticityLinearSystem::calculateConstraints(), MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityLinearSystem::calculateRHS(), MultiPlasticityDebugger::checkSolution(), MultiPlasticityRawComponentAssembler::dflowPotential_dintnl(), MultiPlasticityRawComponentAssembler::dflowPotential_dstress(), MultiPlasticityRawComponentAssembler::dhardPotential_dintnl(), MultiPlasticityRawComponentAssembler::dhardPotential_dstress(), MultiPlasticityRawComponentAssembler::dyieldFunction_dintnl(), MultiPlasticityRawComponentAssembler::dyieldFunction_dstress(), MultiPlasticityDebugger::fddflowPotential_dintnl(), MultiPlasticityDebugger::fddyieldFunction_dintnl(), MultiPlasticityDebugger::fdJacobian(), MultiPlasticityRawComponentAssembler::flowPotential(), MultiPlasticityRawComponentAssembler::hardPotential(), initQpStatefulProperties(), MultiPlasticityLinearSystem::MultiPlasticityLinearSystem(), MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler(), MultiPlasticityLinearSystem::nrStep(), MultiPlasticityDebugger::outputAndCheckDebugParameters(), plasticStep(), residual2(), returnMap(), MultiPlasticityRawComponentAssembler::returnMapAll(), singleStep(), and MultiPlasticityRawComponentAssembler::yieldFunction().
|
protectedinherited |
Number of surfaces within the plastic models.
For many situations this will be = _num_models since each model will contain just one surface. More generally it is >= _num_models. For instance, Mohr-Coulomb is a single model with 6 surfaces
Definition at line 66 of file MultiPlasticityRawComponentAssembler.h.
Referenced by activeCombinationNumber(), applyKuhnTucker(), MultiPlasticityRawComponentAssembler::buildActiveConstraints(), buildDumbOrder(), MultiPlasticityLinearSystem::calculateConstraints(), MultiPlasticityLinearSystem::calculateJacobian(), MultiPlasticityLinearSystem::calculateRHS(), canAddConstraints(), canIncrementDumb(), changeScheme(), checkAdmissible(), MultiPlasticityDebugger::checkDerivatives(), MultiPlasticityDebugger::checkJacobian(), checkKuhnTucker(), MultiPlasticityDebugger::checkSolution(), ComputeMultiPlasticityStress(), computeQpStress(), consistentTangentOperator(), MultiPlasticityRawComponentAssembler::dflowPotential_dintnl(), MultiPlasticityRawComponentAssembler::dflowPotential_dstress(), MultiPlasticityRawComponentAssembler::dhardPotential_dintnl(), MultiPlasticityRawComponentAssembler::dhardPotential_dstress(), MultiPlasticityDebugger::dof_included(), MultiPlasticityRawComponentAssembler::dyieldFunction_dintnl(), MultiPlasticityRawComponentAssembler::dyieldFunction_dstress(), MultiPlasticityLinearSystem::eliminateLinearDependence(), MultiPlasticityDebugger::fddflowPotential_dintnl(), MultiPlasticityDebugger::fddflowPotential_dstress(), MultiPlasticityDebugger::fddyieldFunction_dintnl(), MultiPlasticityDebugger::fddyieldFunction_dstress(), MultiPlasticityDebugger::fdJacobian(), MultiPlasticityRawComponentAssembler::flowPotential(), MultiPlasticityRawComponentAssembler::hardPotential(), incrementDumb(), initQpStatefulProperties(), MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler(), MultiPlasticityLinearSystem::nrStep(), numberActive(), MultiPlasticityDebugger::outputAndCheckDebugParameters(), plasticStep(), reinstateLinearDependentConstraints(), residual2(), returnMap(), MultiPlasticityRawComponentAssembler::returnMapAll(), singleStep(), and MultiPlasticityRawComponentAssembler::yieldFunction().
|
protectedinherited |
Definition at line 54 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler().
|
protected |
whether to perform the rotations necessary in finite-strain simulations
Definition at line 100 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protected |
plastic strain
Definition at line 108 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), initQpStatefulProperties(), and postReturnMap().
|
protected |
Old value of plastic strain.
Definition at line 111 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protected |
rotation matrix that takes _n to (0, 0, 1)
Definition at line 97 of file ComputeMultiPlasticityStress.h.
Referenced by postReturnMap(), preReturnMap(), and rot().
|
protected |
Rotation increment (coming from ComputeIncrementalSmallStrain, for example)
Definition at line 147 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and postReturnMap().
|
protectedinherited |
Allows initial set of active constraints to be chosen optimally.
Definition at line 72 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::buildActiveConstraints(), and MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler().
|
protected |
strain increment (coming from ComputeIncrementalSmallStrain, for example)
Definition at line 141 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protectedinherited |
Stress material property.
Definition at line 50 of file ComputeStressBase.h.
Referenced by ComputeMultipleInelasticCosseratStress::computeAdmissibleState(), ComputeMultipleInelasticStress::computeAdmissibleState(), ComputeStressBase::computeQpProperties(), ComputeStrainIncrementBasedStress::computeQpStress(), ComputeLinearElasticStress::computeQpStress(), ComputeDamageStress::computeQpStress(), ComputeFiniteStrainElasticStress::computeQpStress(), ComputeCosseratLinearElasticStress::computeQpStress(), ComputeSmearedCrackingStress::computeQpStress(), ComputeLinearElasticPFFractureStress::computeQpStress(), FiniteStrainPlasticMaterial::computeQpStress(), computeQpStress(), ComputeLinearViscoelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStress(), ComputeMultipleInelasticStress::computeQpStressIntermediateConfiguration(), ComputeLinearElasticPFFractureStress::computeStrainSpectral(), ComputeLinearElasticPFFractureStress::computeStrainVolDev(), ComputeLinearElasticPFFractureStress::computeStressSpectral(), ComputeMultipleInelasticStress::finiteStrainRotation(), ComputeStressBase::initQpStatefulProperties(), FiniteStrainCrystalPlasticity::initQpStatefulProperties(), FiniteStrainUObasedCP::initQpStatefulProperties(), FiniteStrainHyperElasticViscoPlastic::initQpStatefulProperties(), postReturnMap(), FiniteStrainUObasedCP::postSolveQp(), FiniteStrainHyperElasticViscoPlastic::postSolveQp(), FiniteStrainCrystalPlasticity::postSolveQp(), ComputeSmearedCrackingStress::updateCrackingStateAndStress(), ComputeMultipleInelasticStress::updateQpState(), and ComputeMultipleInelasticStress::updateQpStateSingleModel().
|
protected |
Old value of stress.
Definition at line 150 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress().
|
protectedinherited |
_surfaces_given_model[model_number] = vector of surface numbers for this model
Definition at line 69 of file MultiPlasticityRawComponentAssembler.h.
Referenced by MultiPlasticityRawComponentAssembler::activeModelSurfaces(), MultiPlasticityRawComponentAssembler::activeSurfaces(), MultiPlasticityRawComponentAssembler::anyActiveSurfaces(), MultiPlasticityRawComponentAssembler::MultiPlasticityRawComponentAssembler(), quickStep(), and MultiPlasticityRawComponentAssembler::returnMapAll().
|
protectedinherited |
Tolerance on the minimum ratio of singular values before flow-directions are deemed linearly dependent.
Definition at line 133 of file MultiPlasticityLinearSystem.h.
Referenced by MultiPlasticityLinearSystem::eliminateLinearDependence().
|
protected |
Referenced by consistentTangentOperator(), and quickStep().
|
protected |
Old value of total strain (coming from ComputeIncrementalSmallStrain, for example)
Definition at line 144 of file ComputeMultiPlasticityStress.h.
|
protected |
yield functions
Definition at line 120 of file ComputeMultiPlasticityStress.h.
Referenced by computeQpStress(), and initQpStatefulProperties().