NEMLModel¶
Stress update interfaces¶
NEMLModel is the common interface to the constitutive models contained in NEML. It currently requires models to provide two types of stress updates. The first type of update is a small strain kinematics incremental update based on the interface

Here
indicates values at the previous time step and
values
at the next time step.
The quantities are stress (
), strain (
),
the vector of history variables (
), strain energy (
)
dissipated work (
), temperature (
), time (
), and
the algorithmic tangent (
)

The second update is a large strain kinematics update based on the interface

Here
is the deformation rate tensor (the symmetric part of the spatial velocity gradient),
is the vorticity (the skew part of the spatial velocity gradient),
is

and
is

while the other quantities are defined identically to the small strain interface.
Implementations¶
Parameters¶
None
Class description¶
-
class NEMLModel : public neml::HistoryNEMLObject¶
NEML material model interface definitions.
Subclassed by neml::NEMLModel_ldi, neml::NEMLModel_sd
Public Functions
-
NEMLModel(ParameterSet ¶ms)¶
-
inline virtual ~NEMLModel()¶
-
virtual void save(std::string file_name, std::string model_name)¶
Store model to an XML file.
-
virtual void update_sd(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) = 0¶
Raw data small strain update interface.
-
virtual void update_ld_inc(const double *const d_np1, const double *const d_n, const double *const w_np1, const double *const w_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 *const B_np1, double &u_np1, double u_n, double &p_np1, double p_n) = 0¶
Raw data large strain incremental update.
-
virtual double alpha(double T) const = 0¶
Instantaneous thermal expansion coefficient as a function of temperature.
-
virtual void elastic_strains(const double *const s_np1, double T_np1, const double *const h_np1, double *const e_np1) const = 0¶
Elastic strain for a given stress, temperature, and history state.
-
virtual double get_damage(const double *const h_np1)¶
Used to find the damage value from the history.
-
virtual bool should_del_element(const double *const h_np1)¶
Used to determine if element should be deleted.
-
virtual bool is_damage_model() const¶
Used to determine if this is a damage model.
-
size_t nstate() const¶
Number of actual internal variables.
-
size_t nstatic() const¶
Number of static variables.
-
virtual std::vector<std::string> report_internal_variable_names() const¶
Report nice names for the internal variables.
-
NEMLModel(ParameterSet ¶ms)¶