**process swt
#
Description#
This process allows to calculate number of cycles to failure according to a unified strain-stress fatigue model based on the Smith-Watson-Topper criterion.
The fatigue life is calculated by solving the following equation:
where the effective stress \(\displaystyle\sigma_{eff}\) is calculated as a product of the stress and strain amplitudes multiplied by a correction factor depending on the mean stress:
In the above formula \(E\) is the material Young’s modulus, while:
\(\displaystyle\frac{\Delta \sigma}{2}\) is the multiaxial stress amplitude (measured in terms of the von mises \(J_2\) stress invariant) as calculated by the
**process range
post-processor,a special treatment is needed for the calculation of the multiaxial strain amplitude \(\displaystyle\frac{\Delta \epsilon}{2}\) in order to be compatible with the uniaxial case (because of nonzero strains that arise in directions orthogonal to the uniaxial stress direction). The expression used to calculate \(\displaystyle\frac{\Delta \epsilon}{2}\) is the following one:
(175)#\[\frac{\Delta \epsilon}{2} = \frac{\Delta \sigma}{2 E} + \frac{\Delta \epsilon^{p}}{2}\]where the plastic strain amplitude \(\displaystyle\frac{\Delta \epsilon^{p}}{2}\) is computed either using the
**process range
post-processing, or by means of a cyclic hardening relation \(\displaystyle\Delta \epsilon^{p}=f(\Delta \sigma)\), depending on the option selected (see syntax). Note that when therange
post-processor is used, the distance measuring the amplitude in the deviatoric strain space is calculated by:(176)#\[J_2^{*}(\overline{\epsilon}^p) = \sqrt{\frac{2}{3} \deviator(\overline{\epsilon}^p):\deviator(\overline{\epsilon}^p)}\]the \(\displaystyle\frac{2}{3}\) factor being used instead of the conventional \(\displaystyle\frac{3}{2}\) of the mises stress invariant, for compatibility with the uniaxial case:
(177)#\[\overline{\epsilon}^p = (\epsilon^p_{11}, \epsilon^p_{22}, \epsilon^p_{33}, \epsilon^p_{12}, \epsilon^p_{23}, \epsilon^p_{31}) = (\epsilon^p_{11},-0.5 \epsilon^p_{11},-0.5 \epsilon^p_{11}, 0, 0, 0)\]such that:\(J_2^{*}(\overline{\epsilon}^p) = \epsilon^p_{11}\) in this case.
in the multiaxial case, the mean stress value \(\displaystyle\bar{\sigma}\) is calculated as the mean trace of tensor \(\displaystyle\overline{\sigma}\):
(178)#\[\bar{\sigma} = \frac{1}{2} \left[ \max ( \trace(\overline{\sigma}) ) + \min ( \trace(\overline{\sigma}) ) \right]\]the mean stress correction factor \(\displaystyle f(\frac{\Delta \sigma}{2}, \bar{\sigma})\) is defined as the following function of \(\displaystyle\bar{\sigma}\):
traction : \(\displaystyle\bar{\sigma}>0\)
(179)#\[f(\frac{\Delta \sigma}{2}, \bar{\sigma}) = \left( 1 + \frac{\bar{\sigma}}{\left(\frac{\Delta \sigma}{2}\right)} \right)^n\]where \(n\) is a model coefficient.
compression : \(\displaystyle\bar{\sigma}<0\)
(180)#\[f(\frac{\Delta \sigma}{2}, \bar{\sigma}) = \left( 1 - \frac{\bar{\sigma}}{\left(\frac{\Delta \sigma}{2}\right)} \right)^{-1}\]which yields an effect similar to the one predicted by the Sines criterion, or alternatively \(\displaystyle f(\frac{\Delta \sigma}{2}, \bar{\sigma})=1\) when the
*skip_compression
option is specified. The latter option ignores any beneficial effect of a compressive stress, and may be too pessimistic.traction \(\displaystyle\bar{\sigma}>0\) and option
*chaboche_2012
[U11]:(181)#\[\begin{split}f(\frac{\Delta \sigma}{2}, \bar{\sigma}) = \begin{cases} 1 + b_1\frac{\bar{\sigma}}{\left(\frac{\Delta \sigma}{2}\right)} & \text{if } t^* \geq \frac{\bar{\sigma}}{\left(\frac{\Delta \sigma}{2}\right)} \\ 1 + \left(b_1-b_2\right)t^* + b_2\frac{\bar{\sigma}}{\left(\frac{\Delta \sigma}{2}\right)} & \text{otherwise} \end{cases}\end{split}\]where \(b_1\), \(b_2\) and \(t^*\) are model coefficients.
Several definitions of \(F(N_f)\) are allowed depending on the options:
the first possibility (keyword
*expression manson
) is to derive \(F(N_f)\) from a prior Manson-Coffin model calibration on symmetric cyclic tests (loading factor R=-1, \(\displaystyle\bar{\sigma}=0\)).(182)#\[\frac{\Delta \epsilon}{2} = \frac{\Delta \epsilon^p}{2} + \frac{\Delta \epsilon^e}{2} = A N_f^{-\alpha} + B N_f^{-\beta}\]which yields by replacing \(\displaystyle\frac{\Delta \epsilon^p}{2}=A N_f^{-\alpha}\) and \(\displaystyle\frac{\Delta \epsilon^e}{2}=B N_f^{-\beta}\) in the effective stress formula:
(183)#\[F(N_f) = E \sqrt{ A B N_f^{-\alpha-\beta} + B^2 N_f^{-2 \beta} }\]In that case model coefficients \(A\), \(B\), \(\displaystyle\alpha\), \(\displaystyle\beta\) are directly known from the Manson-Coffin calibration, and the only additional coefficient still left to define is the \(n\) exponent involved in the mean stress correction factor,
a second possibility lets the user define an arbitrary expression for \(F(N_f)\), using the keyword
*expression <FUNCTION>
, where<FUNCTION>
is a valid function definition. For example, an user-defined expression of \(F(N_f)\) equivalent to themanson
option could be specified by:*expression E*(A*B*Nf^(-alpha-beta) + B*B*Nf^(-2.0*beta)^(0.5);
Note that it is mandatory that a variable named
Nf
ornf
should be used in the function definition. Other function coefficients are assumed to be model coefficients and should be given in the post-processing material file.
Introduction of a fatigue limit effect
An additional model coefficient \(\displaystyle\epsilon_D\) may be
used to add a fatigue limit effect when the manson
option is
selected. In this case the Manson-Coffin model used during calibration
is rewritten:
such that \(N_f = \infty\) when \(\displaystyle\frac{\Delta \epsilon}{2}<\epsilon_D\).
In that case the \(F(N_f)\) expression used in the swt
model
becomes:
Syntax#
**process swt
\(~\,\) *var
name_sig
[ *type scalar | tensor
]
[ *expression manson |
func_exp ]
[ *derivative
func_deriv ]
*plastic_strain
name_ep
| *cyclic hardening function
func_hard
| *cyclic hardening file
fname sig_col eto_col
[ *precision
prec ]
[ *iter
iter ]
[ *skip_compression
]
[ *chaboche_2012
]
name_sig is the name of the variable used to store the stress in the results file (one would expect
sig
here).The
*expression
command allows to define the \(F(N_f)\) function. Default is*expression manson
that defines a \(F(N_f)\) expression derived from a Manson-Coffin calibration as detailed above. A user-defined expression may alternatively be given by means of argument func_exp.The
*derivative
command allows to define the derivative \(\displaystyle\displaystyle \frac{dF(N_f)}{dN_f}\) of \(F(N_f)\) in the func_deriv argument, and may be needed when a user defined function is given after*expression
. In this case a Newton-Raphson method is used to solve the \(\displaystyle\sigma_{eff} = F(N_f)\) equation to calculate \(N_f\). Otherwise, a slower dichotomy method is used. Note that the*derivative
command is not needed in the default*expression manson
mode, and that the Newton-Raphson method is always used in this case.The
*plastic_strain
command is used to define the name of the variable where the plastic strain \(\displaystyle\overline{\epsilon^p}\) is stored in the results files. In this case the \(\displaystyle\frac{\Delta \epsilon^p}{2}\) amplitude needed in the effective stress expression will be calculated by applying therange
post-processor on the variable specified by the argument name_ep.Alternative specification of \(\displaystyle\frac{\Delta \epsilon^p}{2}\) calculation can be given by means of the
*cyclic_hardening function
command. In that case a function \(\displaystyle\frac{\Delta \epsilon^p}{2} = f(\frac{\Delta \sigma}{2})\) is expected for the func_hard argument.\(\displaystyle\frac{\Delta \epsilon^p}{2}\) may also be interpolated from cyclic hardening curve results by means of the
*cyclic_hardening file
command. In this case argument fname is the name of the file containing the cyclic hardening curve, and sig_col, eto_col are the column numbers in this file used to store \(\displaystyle\frac{\Delta \sigma}{2}\) and \(\displaystyle\frac{\Delta \epsilon^p}{2}\) respectively. Note that the half-amplitude is expected for both stress and strain values.The optional
*precision
command defines the precision required when solving the \(\displaystyle\sigma_{eff} = F(N_f)\) by either dichotomy or Newton-Raphson. Default value is \(10^{-4}\). Similarly, the maximum number of iterations allowed may be given after*iter
command (default is \(500\)). In general, the Newton-Raphson method converges in at most a few dozens of iterations, while the dichotomy method may need larger values depending on the precision required.When the optional
*skip_compression
command is given, the mean stress correction factor \(\displaystyle f(\frac{\Delta \sigma}{2}, \bar{\sigma})\) is set to \(1.0\), negative value of the mean stress \(\displaystyle\bar{\sigma}\).
Default output gives the number of cycles to failure in a variable named
Nf
, while the effective stress is stored in a variable named
“name_sig_swt
”, obtained by concatenation of the stress tensor
name “name_sig” specified with the “_swt
” character string.
The optional
*full_output
command will add the following results to the output:the stress amplitude under the name “name_sig
_alt
”the average stress under the name “name_sig
_ave
” where “name_sig” is the name of the stress tensor specifiedthe elastic and plastic amplitudes in variables
eel_alt
andein_alt
Example#
% standard definition using the default *expression manson option
**process swt
*var sig
*plastic_strain ev
*full_output
% The following syntax must be used in the material file in this case:
***post_processing_data
**process swt
young 98000.00
alpha 0.7438 % mandatory Manson-Coffin coefficients
A 165.e-2
beta 0.0745
B 0.8015e-2
epsd 0.13e-2 % optional fatigue limit coefficient
n 0.65 % mandatory mean stress correction coefficient
% if *chaboche_2012
b1 0.7 % mandatory mean stress correction coefficient
b2 0.3 % mandatory mean stress correction coefficient
t_star 0.4 % mandatory mean stress correction coefficient
% user definition of the F(Nf) function
**process swt
*var sig
*expression Au*Nf^(-au)+Bu*Nf^(-bu);
% optional derivative specification to allow faster newton-raphson resolution
*derivative -au*Au*Nf^(-au-1.0)-bu*Bu*Nf^(bu-1.0);
*plastic_strain ev
*full_output
% The following syntax must be used in the material file in this case:
% note the Au, au, Bu, bu coefficients needed depend of the user expression
***post_processing_data
**process swt
young 98000.00
au 0.7438
Au 165.e-2
bu 0.0745
Bu 0.8015e-2
n 0.65
% if *chaboche_2012
b1 0.7 % mandatory mean stress correction coefficient
b2 0.3 % mandatory mean stress correction coefficient
t_star 0.4 % mandatory mean stress correction coefficient
% definition of a cyclic hardening function
**process swt
*var sig
% note that the function variable should be called "dsig"
*cyclic_hardening function (dsig/K)^m;
*full_output
% The following syntax must be used in the material file in this case:
% note the K, m coefficients needed depend on the *cyclic_hardening user definition
***post_processing_data
**process swt
young 98000.00
alpha 0.7438
A 165.e-2
beta 0.0745
B 0.8015e-2
epsd 0.13e-2
n 0.65
K 1000.
m 0.07