Perzyna viscoplastic flow rule¶
Overview¶
The Perzyna model is an associative viscoplastic model [P1966]. It is defined by:

where
is a flow surface, a hardening interface provides the
function, and
is a Rate function.
The notation
indicates the
Macaulay brackets.
The implementation uses the default zero values of the time and temperature rate
contributions and so the model evolves only as a function of the inelastic
strain rate.
The model maintains the set of history variables defined by the hardening model.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Flow surface interface |
No |
|
|
Hardening rule interface |
No |
|
|
Rate sensitivity function |
No |
Class description¶
-
class PerzynaFlowRule : public neml::ViscoPlasticFlowRule¶
Perzyna associative viscoplasticity.
Public Functions
-
PerzynaFlowRule(ParameterSet ¶ms)¶
Parameters: a flow surface, a hardening rule, and the rate sensitivity function
-
virtual void y(const double *const s, const double *const alpha, double T, double &yv) const¶
Scalar strain rate.
-
virtual void dy_ds(const double *const s, const double *const alpha, double T, double *const dyv) const¶
Derivative of y wrt stress.
-
virtual void dy_da(const double *const s, const double *const alpha, double T, double *const dyv) const¶
Derivative of y wrt history.
-
virtual void g(const double *const s, const double *const alpha, double T, double *const gv) const¶
Flow rule proportional to the scalar strain rate.
-
virtual void dg_ds(const double *const s, const double *const alpha, double T, double *const dgv) const¶
Derivative of g wrt stress.
-
virtual void dg_da(const double *const s, const double *const alpha, double T, double *const dgv) const¶
Derivative of g wrt history.
-
virtual void h(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening rule proportional to the scalar strain rate.
-
virtual void dh_ds(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h wrt stress.
-
virtual void dh_da(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h wrt history.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Default parameters.
-
static ParameterSet parameters()¶
Initialize from parameters.
-
PerzynaFlowRule(ParameterSet ¶ms)¶
Rate function¶
These functions define the rate sensitivity of the Peryna flow model. They have the form
where f is the current value of the flow surface.
-
class GFlow : public neml::NEMLObject¶
The “g” function in the Perzyna model — often a power law.
Subclassed by neml::GPowerLaw
Public Functions
-
GFlow(ParameterSet ¶ms)¶
-
virtual double g(double f, double T) const = 0¶
The value of g.
-
virtual double dg(double f, double T) const = 0¶
The derivative of g wrt to the flow surface.
-
GFlow(ParameterSet ¶ms)¶
Power law¶
This rate function implements simple power law

for some temperature-dependent rate sensitivity exponent
and fluidity
.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Rate sensitivity exponent |
No |
|
|
Fluidity |
No |
Class description¶
-
class GPowerLaw : public neml::GFlow¶
g is a power law
Public Functions
-
GPowerLaw(ParameterSet ¶ms)¶
Parameter: the power law exponent.
-
virtual double g(double f, double T) const¶
g = (f/eta)^n
-
virtual double dg(double f, double T) const¶
Derivative of g wrt f.
-
double n(double T) const¶
Helper, just return the power law exponent.
-
double eta(double T) const¶
Helper, just returns the fluidity.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Default parameters.
-
static ParameterSet parameters()¶
Initialize from parameters.
-
GPowerLaw(ParameterSet ¶ms)¶