4.20. Viscoplastic Model
4.20.1. Theory
The viscoplastic model is a rate dependent plasticity model that is useful for modeling solders and brazes and was developed by Neilsen et al. [[1]]. This model is formulated in terms of the stress rate for the material. Like many inelastic models, the rate of deformation, \(D_{ij}\), is additively decomposed into an elastic, \(D_{ij}^{\text{e}}\), and an inelastic, \(D_{ij}^{\text{in}}\) part such that,
The elastic rate of deformation is the only part that contributes to the stress rate and it does so through the elastic moduli, \(\mathbb{C}_{ijkl}\), in a linear fashion leading to the relation,
where \(\mathbb{C}_{ijkl}\) are the components of the fourth-order, isotropic elasticity tensor. The stress rate is arbitrary, as long as it is objective. Two objective stress rates are commonly used: the Jaumann rate and the Green-McInnis rate. For problems with fixed principal axes of deformation, these two rates give the same answers. For problems where the principal axes of deformation rotate during the deformation, the two rates can give different answers. Generally speaking there is no reason to pick one objective rate over another.
The inelastic strain rate is a function of the stress state, \(\sigma_{ij}\), the temperature, \(\theta\), and a number of internal state variables including both scalar isotropic, \(D\), and tensorial kinematic, \(B_{ij}\), hardening variables. With these dependencies defined, a general form for the evolution of the inelastic deformation may be given by,
where \(n_{ij}\) is the direction of inelastic deformation and is defined as,
and
with \(s_{ij}\) being the deviatoric stress tensor. The inelastic strain rate, \(\gamma\), is defined via a hyperbolic sin law,
where \(f(\theta) = \exp(g(\theta))\). The expressions \(g(\theta)\), \(\alpha(\theta)\), and \(p(\theta)\) are model parameters that are functions of temperature.
The evolution laws for the state variables \(D\) and \(B_{ij}\) are,
and
where
The parameters \(D_{0}\), \(A_{1}\), \(A_{2}\), \(A_{3}\), \(A_{4}\), \(A_{5}\) and \(A_{6}\) are model parameters. The parameters \(A_{1}\), \(A_{2}\), \(A_{4}\) and \(A_{5}\) are also functions of temperature. The model can be simplified with the appropriate choice of these parameters.
The following material parameters are functions of temperature and have the following form
where the functions \(h_{*}(\theta)\) are normalized functions of temperature and the values \((*)_{0}\) or \((*)^{0}\) are the reference values that are input in the command block.
4.20.2. Implementation
An explicit, forward Euler scheme is used to integrate the viscoplastic model. First, during initialization, the isotropic hardening variable \(D\) is set to \(1.001 D_{0}\). This is done to avoid a singularity in (4.83). Additionally, the kinematic variable is set to zero (\(B_{ij}=0\)).
Like the power law creep model that is integrated in a similar fashion, the chosen numerical scheme is conditionally stable. As detailed in [[1]], a critical stability time step of,
may be determined. For convince, in the following the dependence of \(f,~p,\) and \(\alpha\) will be assumed and not explicitly written. Instead, \(f^{n+1}\) will be used to refer to \(f\left(\theta^{n+1}\right)\). Two additional limits are also imposed to ensure accurate integration of the state variables. Specifically,
and
where \(\delta\) is an allowable error measure (here, \(1.0x10^{-3}\)) and \(\dot{x}_n\) refers to the time rate of change of variable \(x\) at time step \(n\). The current time step is checked to ensure it meets those criteria or else it is scaled back to ensure accurate integration.
After assessing the acceptability of the time step, the new material state at time \(t=t_{n+1}\) is determined. If the time step needs to be cut back, multiple sub-increments are used. To elaborate, let \(k\) denote a specific sub-increment and \(N\) represent the total number of sub-increments. Each \(k^{th}\) interval evaluates the numerical routine over a step size \(\delta t^k\) where \(\Delta t =\sum_{k=0}^N\delta t^k\). In such cases, temperature dependent variables are linearly interpolated between their values at \(t_n\) and \(t_{n+1}\). For example,
where \(\Delta t^k\) is the current sub-increment time, \(\Delta t^k=\sum_{r=0}^k\delta t^r\). For simplicity and clarity of presentation, in the discussion below it is assumed that the input time step is acceptable and only a single increment is needed. If additional sub-increments were needed, the below steps would be repeated \(N\) times with time intervals of \(\delta t^k\).
It is first noted that the unrotated stress, \(T_{ij}\), and deformation rate, \(d_{ij}\), may be decomposed as,
with \(p\) being the pressure (\(p=-\frac{1}{3}T_{kk}\)) and \(\hat{d}_{ij}\) being the rate of deviatoric deformation. As the inelastic deformation flows in a deviatoric direction, the hydrostatic and deviatoric components may be evaluated separately. With this in mind, the pressure may be easily integrated via,
where \(K^n\) is abbreviated notation for \(K\left(\theta^{n}\right)\). The inelastic deformation rate is then determined as,
by evaluating expressions (4.81)-(4.82) at \(t=t_n\) and \(\theta=\theta^n\). The internal state variables may then be similar evolved via (4.83) and (4.84). With the inelastic state determined, the updated deviatoric stress may be found via,
with the updated stress being,
4.20.3. Verification
The viscoplastic model is verified through two, time-dependent tests – creep and stress relaxation. To simplify the problem for verification purposes, the isothermal response only considering isotropic hardening and recovery is investigated. It is noted, however, that given the stress dependence and evolving internal state variable in the inelastic strain rate, a closed-form analytical solution may not be found. Semi-analytical approaches numerically integrating the differential equations are easily obtainable and used for comparison purposes. The considered test temperature is 450\(^{\circ}`C (:math:`723\) K) and material properties and model parameters are those of CusilABA taken from Table 3 of [[1]] and are reproduced for convenience below in Table 4.30.
\(E\) |
77.8 GPa |
\(\nu\) |
0.375 |
\(g\) |
-13.88 |
\(p\) |
2.589 |
\(A_1\) |
\(3x10^4\) MPa\(^{A_3+1}\) |
\(A_2\) |
\(2.07x10^{-5}\) \(\frac{1}{\text{MPa s}}\) |
\(A_3\) |
1.746 |
\(D_0\) |
50.0 MPa |
\(A_4\) |
0 MPa\(^{A_6+1}\) |
\(A_5\) |
0.0 \(\frac{1}{\text{MPa s}}\) |
\(A_6\) |
0.0 |
\(\alpha\) |
\(1.0\) |
4.20.3.1. Creep
The creep response of the viscoplastic model is investigated both numerically and semi-analytically. For such a loading, the stress tensor is \(\sigma_{ij}=\sigma\left(t\right)\delta_{i1}\delta_{j1}\) with \(\sigma\left(t\right)\) being a prescribed quantity. For this study, \(\sigma\left(t\right)\) ramps linearly from \(0\) to \(\sigma_{max}\) over the interval \(t=[0,100~\text{s}]\) with \(\sigma_{max}=300\) MPa. That magnitude is then maintained for the next 900 s.
To analytically determine the model response, the constitutive law (4.80) is inverted to yield
and it is trivial to determine that
For the inelastic response, for the purely isotropic case it is noted that \(\tau=\sigma\left(t\right)\) and therefore \(n_{ij}=\frac{2}{3}\left[\delta_{i1}\delta_{j1}-\frac{1}{2}\left(\delta_{i2}\delta_{j2}+\delta_{i3}\delta_{j3}\right)\right]\). Additionally, the inelastic strain rate reduces to,
producing a rate of inelastic deformation of,
Expressions (4.85), (4.86), (4.88), and (4.83) can be easily integrated (via forward Euler or Runge-Kutta) to determine a semi-analytical response. Both the numerical and semi-analytical responses of the strain and stress (including flow stress, \(D\)) are presented below in Fig. 4.97(a) and Fig. 4.97(b), respectively.
Fig. 4.97 Semi-analytical and numerical results of (a) strain and (b) external and internal, (\(D\)), stress evolution during a creep test with the viscoplastic model.
4.20.3.2. Stress Relaxation
The model response through a stress relaxation type loading is considered here both numerically and semi-analytically. For this purpose, a displacement controlled loading, \(u_1=\lambda\left(t\right)\), is employed. The other displacement degrees of freedom are not prescribed to ensure that a uniaxial stress state (\(\sigma_{ij}=\sigma\left(t\right)\delta_{i1}\delta_{j1}\)) develops. Specifically, the displacement is set to scale linearly over 100 s (from \(t=0\) to \(t=100\) s) obtaining a maximum of \(u_1=0.01\) at \(t=100\) s. Initially, a unit length is assumed. This displacement is held fixed over the next 900 s to investigate the stress relaxation characteristics of the model.
A similar procedure to the power law creep model (Section 4.19.3.2) is employed here. Specifically, by noting the elastic isotropy, uniaxial stress state, and (4.88) the elastic deformation rate in the direction of loading (\(D^{\text{e}}_{11}\)) is found to be,
where an expression for \(\gamma\) is given in (4.87). By noting \(\dot{\sigma}_{ij}=\mathbb{C}_{ijkl}D^{\text{e}}_{kl}\) and \(D_{ij}=D^{\text{e}}_{ij}+D^{\text{in}}_{ij}\), the material state may easily be found via numerical integration. The result strain and stress evolutions are given in Fig. 4.98(a) and Fig. 4.98(b), respectively.
Fig. 4.98 Semi-analytical and numerical results of (a) strain and (b) external and internal (\(D\)) stress evolution during a stress relaxation test with the viscoplastic model.
4.20.4. User Guide
BEGIN PARAMETERS FOR MODEL VISCOPLASTIC
#
# Elastic constants
#
YOUNGS MODULUS = <real>
POISSONS RATIO = <real>
SHEAR MODULUS = <real>
BULK MODULUS = <real>
LAMBDA = <real>
TWO MU = <real>
FLOW RATE = <real>
SINH EXPONENT = <real>
ALPHA = <real>
ISO HARDENING = <real>
ISO RECOVERY = <real>
ISO EXPONENT = <real>
KIN HARDENING = <real>
KIN RECOVERY = <real>
KIN EXPONENT = <real>
FLOW STRESS = <real>
SHEAR FUNCTION = <string>
BULK FUNCTION = <string>
RATE FUNCTION = <string>
EXPONENT FUNCTION = <string>
ALPHA FUNCTION = <string>
IHARD FUNCTION = <string>
IREC FUNCTION = <string>
KHARD FUNCTION = <string>
KREC FUNCTION = <string>
MAX SUBINCREMENTS = <int> itmax (2000)
END [PARAMETERS FOR MODEL VISCOPLASTIC]
In the above command blocks:
Since the model requires functions to describe the temperature dependence of the bulk and shear modulus, it is recommended that one inputs the bulk and shear modulus at some reference temperature. However, any two of the elastic constants can be used for input.
The reference value in the equation for the flow rate, \(\ln f_{0}\), is defined with the
FLOW RATEcommand line.The reference value for the exponent on the \(\sinh\) function, \(p_{0}\), is defined with the
SINH EXPONENTcommand line.The reference value \(alpha_{0}\) is defined with the
ALPHAcommand line.The reference value for the isotropic hardening parameter, \(A_{1}^{0}\), is defined with the
ISO HARDENINGcommand line.The reference value for the isotropic recovery parameter, \(A_{2}^{0}\), is defined with the
ISO RECOVERYcommand line.The value for the isotropic hardening exponent parameter, \(A_{3}\), is defined with the
ISO EXPONENTcommand line.The reference value for the kinematic hardening parameter, \(A_{4}^{0}\), is defined with the
KIN HARDENINGcommand line.The reference value for the kinematic recovery parameter, \(A_{5}^{0}\), is defined with the
KIN RECOVERYcommand line.The value for the kinematic hardening exponent parameter, \(A_{6}\), is defined with the
KIN EXPONENTcommand line.The value for the flow stress, \(D_{0}\), is defined with the
FLOW STRESScommand line.The user-defined and normalized function that gives the shear modulus as a function of temperature, \(h_{G}(\theta)\), is defined with the
SHEAR FUNCTIONcommand line.The user-defined and normalized function that gives the bulk modulus as a function of temperature, \(h_{K}(\theta)\), is defined with the
BULK FUNCTIONcommand line.The user-defined and normalized function that gives the flow rate as a function of temperature, \(h_{g}(\theta)\), is defined with the
RATE FUNCTIONcommand line.The user-defined and normalized function that gives the \(\sinh\) exponent as a function of temperature, \(h_{p}(\theta)\), is defined with the
EXPONENT FUNCTIONcommand line.The user-defined and normalized function that gives \(\alpha\) as a function of temperature, \(h_{\alpha}(\theta)\), is defined with the
ALPHA FUNCTIONcommand line.The user-defined and normalized function that gives \(A_{1}\) as a function of temperature, \(h_{1}(\theta)\), is defined with the
IHARD FUNCTIONcommand line.The user-defined and normalized function that gives \(A_{2}\) as a function of temperature, \(h_{2}(\theta)\), is defined with the
IREC FUNCTIONcommand line.The user-defined and normalized function that gives \(A_{4}\) as a function of temperature, \(h_{4}(\theta)\), is defined with the
KHARD FUNCTIONcommand line.The user-defined and normalized function that gives \(A_{5}\) as a function of temperature, \(h_{5}(\theta)\), is defined with the
KREC FUNCTIONcommand line.The Viscoplastic model may need to take sub-increments to solve for the plastic flow over the current time step. The maximum number of steps that may be taken on a step prior to issuing an error can be set by the
MAX SUBINCREMENTScommand line. This value defaults to 2000.
Output variables available for this model are listed in Table 4.31.
More information on the model can be found in the report by Neilsen, et. al. [[1]].
Name |
Description |
|---|---|
|
equivalent plastic strain |
|
kinematic hardening variable, \({\bf B}\) |
|
kinematic hardening variable - xx component, \(B_{xx}\) |
|
kinematic hardening variable - yy component, \(B_{yy}\) |
|
kinematic hardening variable - zz component, \(B_{zz}\) |
|
kinematic hardening variable - xy component, \(B_{xy}\) |
|
kinematic hardening variable - yz component, \(B_{yz}\) |
|
kinematic hardening variable - zx component, \(B_{zx}\) |
|
isotropic hardening variable, \(D\) |
|
inelastic strain rate, \(\gamma\) |
|
number of sub-increments |
|
shear modulus, \(G(\theta)\) |
|
bulk modulus, \(K(\theta)\) |
|
\(g(\theta)\) (see (4.82)) |
|
\(p(\theta)\) (see (4.82)) |
|
\(\alpha(\theta)\) (see (4.82)) |
|
isotropic hardening parameter, \(A_{1}(\theta)\) |
|
isotropic recovery parameter, \(A_{2}(\theta)\) |
|
kinematic hardening parameter, \(A_{4}(\theta)\) |
|
kinematic recovery parameter, \(A_{5}(\theta)\) |

