Yaguchi & Takahashi viscoplastic model for Grade 91 steel¶
Warning
This model has been depreciated. It produces inconistent results because of the time-dependent parts of the formulation. Use at your own risk!
Overview¶
This flow rule implements the complete Yaguchi & Takahashi model for Grade 91 steel defined in [YT2000] and [YT2005]. The model has a modified Chaboche form. This object provides a complete implementation of the flow and hardening functions. Furthermore, the model hard codes the complicated interpolation formula the original authors provide for the model coefficients. So this implementation takes no parameters, but is nevertheless valid over the range 473 K to 873 K. This is the only model in NEML where units are hard-coded into the formulation, rather than being provided by the user.
The following equations define the model:
![\dot{\gamma}=\left\langle \frac{J_{2}\left(\operatorname{dev}\left(\bm{\sigma}\right)-\operatorname{dev}\left(\mathbf{X}\right)\right)-\sigma_{a}}{D}\right\rangle ^{n}
J_{2}\left(\mathbf{Y}\right)=\sqrt{\frac{3}{2}\mathbf{Y}:\mathbf{Y}}
\mathbf{g}_{\gamma}=\frac{3}{2}\frac{\operatorname{dev}\left(\bm{\sigma}\right)-\operatorname{dev}\left(\mathbf{X}\right)}{J_{2}\left(\operatorname{dev}\left(\bm{\sigma}\right)-\operatorname{dev}\left(\mathbf{X}\right)\right)}
\bm{\alpha}=\left[\begin{array}{cccc}
\mathbf{X}_{1} & \mathbf{X}_{2} & Q & \sigma_{a}\end{array}\right]
\mathbf{h}_{\gamma}=\left[\begin{array}{cccc}
\boldsymbol{X}_{1,\gamma} & \boldsymbol{X}_{2,\gamma} & Q_{\gamma} & \sigma_{a,\gamma}\end{array}\right]
\mathbf{X}=\mathbf{X}_{1}+\mathbf{X}_{2}
\mathbf{X}_{1,\gamma}=C_{1}\left(\frac{2}{3}\left(a_{10}-Q\right)\mathbf{n}-\mathbf{X}_{1}\right)\dot{\gamma}-\gamma_{1}J_{2}\left(\mathbf{X}_{1}\right)^{m-1}\mathbf{X}_{1}
\mathbf{X}_{2,\gamma}=C_{2}\left(\frac{2}{3}a_{2}\mathbf{n}-\mathbf{X}_{2}\right)\dot{\gamma}-\gamma_{2}J_{2}\left(\mathbf{X}_{2}\right)^{m-1}\mathbf{X}_{2}
Q_{\gamma}=d\left(q-Q\right)\sigma_{a,\gamma} = b\left(\sigma_{as}-\sigma_{a}\right)
b = \begin{cases}
b_{h} & \sigma_{as}-\sigma_{a}\ge0\\
b_{r} & \sigma_{as}-\sigma_{a}<0
\end{cases}
\sigma_{as} = \left\langle A+B\log_{10}\dot{p}\right\rangle](_images/math/358d03ea9b7b89d89e2a2df76c150da8c9975272.png)
Parameters¶
None, all parameters are hard coded into the object.
Class description¶
-
class YaguchiGr91FlowRule : public neml::ViscoPlasticFlowRule¶
Non-associative flow for Gr. 91 from Yaguchi & Takahashi (2000) + (2005)
Public Functions
-
YaguchiGr91FlowRule(ParameterSet ¶ms)¶
All parameters are hard coded to those given in the paper.
-
virtual void y(const double *const s, const double *const alpha, double T, double &yv) const¶
Scalar inelastic 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 scalar inelastic 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.
-
virtual void h_time(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening rule proportional to time.
-
virtual void dh_ds_time(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_time wrt stress.
-
virtual void dh_da_time(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_time wrt history.
-
double D(double T) const¶
Value of parameter D.
-
double n(double T) const¶
Value of parameter n.
-
double a10(double T) const¶
Value of parameter a_10.
-
double C2(double T) const¶
Value of parameter C2.
-
double a2(double T) const¶
Value of parameter a2.
-
double g1(double T) const¶
Value of parameter g1.
-
double g2(double T) const¶
Value of parameter g2.
-
double m(double T) const¶
Value of parameter m.
-
double br(double T) const¶
Value of parameter b_r.
-
double bh(double T) const¶
Value of parameter b_h.
-
double A(double T) const¶
Value of parameter A.
-
double B(double T) const¶
Value of parameter B.
-
double d(double T) const¶
Value of parameter d.
-
double q(double T) const¶
Value of parameter q.
-
double C1(double T) const¶
Value of parameter C1.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize from a parameter set.
-
static ParameterSet parameters()¶
Default parameter set.
-
YaguchiGr91FlowRule(ParameterSet ¶ms)¶