Creep + plasticity¶
Overview¶
A SmallStrainCreepPlasticity model combines any of the previous types of material models with a rate dependent creep model. The model solves the simultaneous nonlinear equations

Here the model with superscript base is the base material model and the model with superscript cr is the creep model (a CreepModel object). The base model can be any NEMLModel_sd object. The creep model add no additional history variables, it is solely a function of stress, temperature, and strain.
Unlike base material models creep models in NEML are configured to return strain as a function of stress, rather than stress as a function of strain. Because of this these equations can be combined into a single nonlinear equation

The implementation solves this nonlinear equation and provides the appropriate Jacobian using a matrix decomposition formula.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Temperature dependent elastic constants |
No |
|
|
Base material model |
No |
|
|
Rate dependent creep model |
No |
|
|
Temperature dependent instantaneous CTE |
|
|
|
|
Integration tolerance |
|
|
|
Maximum number of integration iters |
|
|
|
Print lots of convergence info |
|
|
|
Scale factor on strain equation |
|
Note
The scale factor is multiplied by a strain residual equation that may involve very small values of strain. The default value works well for values of nominal strain (i.e. in/in or mm/mm).
Class description¶
-
class SmallStrainCreepPlasticity : public neml::NEMLModel_sd, public neml::Solvable¶
Small strain, rate-independent plasticity + creep.
Public Functions
-
SmallStrainCreepPlasticity(ParameterSet ¶ms)¶
Parameters are an elastic model, a base NEMLModel_sd, a CreepModel, the CTE, a solution tolerance, the maximum number of nonlinear iterations, a verbosity flag, and a scale factor to regularize the nonlinear equations.
-
virtual void update_sd_actual(const double *const e_np1, const double *const e_n, double T_np1, double T_n, double t_np1, double t_n, double *const s_np1, const double *const s_n, double *const h_np1, const double *const h_n, double *const A_np1, double &u_np1, double u_n, double &p_np1, double p_n)¶
Small strain stress update.
-
virtual size_t nparams() const¶
The number of parameters in the nonlinear equation.
-
virtual void init_x(double *const x, TrialState *ts)¶
Initialize the nonlinear solver.
-
virtual void RJ(const double *const x, TrialState *ts, double *const R, double *const J)¶
Residual equation to solve and corresponding jacobian.
-
void make_trial_state(const double *const e_np1, const double *const e_n, double T_np1, double T_n, double t_np1, double t_n, const double *const s_n, const double *const h_n, SSCPTrialState &ts)¶
Setup a trial state from known information.
Set a new elastic model.
Public Static Functions
-
static std::string type()¶
Type for the object system.
-
static ParameterSet parameters()¶
Setup parameters for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize from a parameter set.
-
SmallStrainCreepPlasticity(ParameterSet ¶ms)¶