# Nonlinear Transient Analysis

Nonlinear Small Displacement Transient and Nonlinear Large Displacement Transient (LGDISP) Analysis are currently available to solve nonlinear problems which include transient effects.

The predominant difference between Nonlinear Static Analysis and Nonlinear Transient Analysis is the inclusion of inertia and momentum terms in the solution of the equation of motion. This nonlinear transient solution sequence typically supports all nonlinear features supported by Nonlinear Static Analysis, including geometric nonlinearity, material nonlinearity, and contact. Subcase continuation between Nonlinear Transient Analysis and Nonlinear Static Analysis is also supported.

## Nonlinearity Sources

### Geometric Nonlinearity

In analyses involving geometric nonlinearity, changes in geometry as the structure deforms are considered in formulating the constitutive and equilibrium equations. Many engineering applications require the use of large deformation analysis based on geometric nonlinearity. For example, applications such as metal forming, tire analysis, and medical device analysis. Small deformation analysis based on geometric nonlinearity is required for some applications, like analysis involving cables, arches and shells. Such applications involve small deformation, except finite displacement or rotation.

### Material Nonlinearity

Material nonlinearity involves the nonlinear behavior of a material based on current deformation, deformation history, rate of deformation, temperature, pressure, and so on.

### Constraint and Contact Nonlinearity

Constraint nonlinearity in a system can occur if kinematic constraints are present in the model. The kinematic degrees-of-freedom of a model can be constrained by imposing restrictions on its movement. In OptiStruct, constraints are enforced with Lagrange multipliers.

In the case of contact, the constraint condition is based on inequalities and such a constraint generally does not allow penetration between any two bodies in contact.

Applied loads can depend upon the deformation of the structure when large deformations are involved. Geometrically, the applied loads (Forces or Pressure) can deviate from their initial direction based on how the model deforms at the location of application of load. In OptiStruct, if the applied load is treated as follower load, the orientation and/or the integrated magnitude of the load will be updated with changing geometry throughout the analysis.

### Nonlinear Transient Solution Method

Nonlinear Transient solutions are done by marching through the solution in the time domain. The time-discretized equation is solved using Newton's method (similar to NLSTAT). Two time stepping schemes are provided for nonlinear transient analysis. The TMTD field on the TSTEP entry can be used to switch between the two integration schemes. The Generalized Alpha method (TMTD=1, default) and the Backward Euler method (TMTD=2).

### Generalized Alpha (α) Method

In the Generalized Alpha method, the equilibrium equation takes the following form:(1) ${f}_{ext}^{t+\alpha h}=M\left(\left(1-{\alpha }_{m}\right){a}^{t+\alpha h}+{\alpha }_{m}{a}^{t}\right)+C{v}^{t+\alpha h}+{f}_{int}^{t+\alpha h}$
Where,
$M$
Mass
$C$
Viscous damping
$K$
Stiffness matrix
$f$
Total force

Subscripts, $ext$ and $int$ indicating external and internal force, respectively. Superscripts, $t$ and $t+h$ indicate the time when the variable is calculated, with $t$ being the previous time and $t+h$ being the current time when the displacement increment is being solved for. The Lagrangian coordinate is denoted by $x$, and the material time derivatives of $x$ are denoted by $v$ (velocity) and $a$ (acceleration).

The velocity and acceleration at current time are computed with Newmark approximation by involving parameters $\gamma$ and $\beta$.(2) ${v}^{t+h}={v}^{t}+h\left(\left(1-\gamma \right){a}^{t}+\gamma {a}^{t+h}\right)$ (3) ${u}^{t+h}={u}^{t}+h{v}^{t}+\frac{1}{2}{h}^{2}\left(\left(1-2\beta \right){a}^{t}+2\beta {a}^{t+h}\right)$
The superscript $t+\alpha h$ indicates, for a general quantity, $z$, that is using parameter $\alpha$:(4) ${z}^{t+\alpha h}=\left(1+\alpha \right){z}^{t+h}-\alpha {z}^{t}$
As the only special case, the acceleration is interpolated using parameter ${\alpha }_{m}$.(5) ${a}^{t+\alpha h}=\left(1+{\alpha }_{m}\right){a}^{t+h}-{\alpha }_{m}{a}^{t}$
From the above equations, it can be inferred that the Generalized Alpha method is controlled by four non-dimensional parameters ($\alpha ,\beta ,\gamma ,$ and ${\alpha }_{m}$). With ${\alpha }_{m}=0.0$ or $\alpha ={\alpha }_{m}=0.0$, the method degenerates into the HHT-$\alpha$ method or Newmark-$\beta$ method, respectively. The parameters can be selected as:(6) $\left[-\frac{1}{3}<\alpha \le 0\right];\left[\beta \ge \frac{1}{4}-\frac{1}{2}\left({\alpha }_{m}+\alpha \right)\right];\left[-1\le {\alpha }_{m}<\frac{1}{2}\right]$
Given ${\alpha }_{m}$ and $\alpha$, the default values of $\gamma$ and $\beta$ which ensure the method is unconditionally stable (for linear problems), 2nd order accurate and with maximized high frequency dissipation:(7) $\left[\gamma =\frac{1}{2}-\left({\alpha }_{m}+\alpha \right)\right];\left[\beta =\frac{1}{4}{\left(1-{\alpha }_{m}-\alpha \right)}^{2}\right]$

By default, ${\alpha }_{m}=0.0$ and $\alpha =-0.05$. That is, the default scheme is HHT-$\alpha$ method.

The Generalized Alpha method is solved using Newton's method. In each iteration, $\text{Δ}{u}^{t+h}$, the increment of displacement $\text{Δ}{u}^{t+h}={u}^{t+h}-{u}^{h}$, is solved for. The subscript denotes the iteration count.(8) ${K}^{*}\text{Δ}{u}_{j+1}^{t+h}={f}_{ext}^{t+h}-{f}_{int}^{t+\alpha h}-M{a}_{j}^{t-{\alpha }_{m}h}-C{v}_{j}^{t+h}$ (9) ${K}^{*}=\frac{1-{\alpha }_{m}}{\beta {h}^{2}}M+\left(1+\alpha \right)\frac{\gamma }{h\beta }C+\left(1+\alpha \right){K}_{j}$ (10) ${a}_{j}^{t-{\alpha }_{m}h}={\alpha }_{m}{a}^{t}+\left(1-{\alpha }_{m}\right){a}_{j}^{t+h}={\alpha }_{m}{a}^{t}+\left(1-{\alpha }_{m}\right)\left(\frac{1}{\beta {h}^{2}}\text{Δ}{u}_{j}^{t+h}-\frac{1}{\beta h}{v}^{t}-\frac{1-2\beta }{2\beta }{a}^{t}\right)$ (11) ${v}_{j}^{t+h}={v}^{t}+h\left(\left(1-\gamma \right){a}^{t}+\gamma {a}_{j}^{t+h}\right)$

### Backward Euler Method

In the Backward Euler method, the equilibrium equation takes the following form:(12) ${f}_{ext}^{t+\alpha h}=M{a}^{t+h}+C{v}^{t+h}+{f}_{int}^{t+\alpha h}$ (13) ${v}^{t+h}=\frac{{u}^{t+h}-{u}^{t}}{h}$ (14) ${a}^{t+h}=\frac{{v}^{t+h}-{v}^{t}}{h}$
Where,
$M$
Mass
$C$
Viscous damping
$K$
Stiffness matrix
$f$
Total force

Subscripts, $ext$ and $int$ indicating external and internal force, respectively. Superscripts, $t$ and $t+h$ indicate the time when the variable is calculated, with $t$ being the previous time and $t+h$ being the current time when the displacement increment is being solved for. The Lagrangian coordinate is denoted by $x$, and the material time derivatives of $x$ are denoted by $v$ (velocity) and $a$ (acceleration).

The Backward Euler method is also solved using Newton's method. In each iteration, $\text{Δ}{u}^{t+h}$, the increment of displacement $\text{Δ}{u}^{t+h}={u}^{t+h}-{u}^{h}$, is solved for. The subscript denotes the iteration count.(15) ${K}^{*}\text{Δ}{u}_{j+1}^{t+h}={f}_{ext}^{t+h}-{f}_{int}^{t+h}-M{a}_{j}^{t+h}-C{v}_{j}^{t+h}$ (16) ${K}^{*}=\frac{1}{{h}^{2}}M+\frac{1}{h}C+{K}_{j}$ (17) ${a}_{j}^{t+h}=\frac{1}{{h}^{2}}\text{Δ}{u}_{j}^{t+h}-\frac{1}{h}{v}^{t}$ (18) ${v}_{j}^{t+h}=\frac{1}{h}\text{Δ}{u}_{j}^{t+h}$

The only parameter for Backward Euler method is the time step $h$.

The Backward Euler method does not require the input of TCi fields on the TSTEP entry. The Alpha and Beta fields introduce subcase-dependent Rayleigh damping, so that the viscous damping matrix $C$ in a particular subcase is $C=\alpha M+\beta K$.

Typically, the Generalized Alpha method should be used for most Nonlinear Transient Analysis. In this method, numerical damping can be adjusted through the parameters $\alpha$, $\beta$, $\gamma$ and ${\alpha }_{m}$. In particular, non-zero $\alpha$ and ${\alpha }_{m}$ introduce damping for high-frequency response components. However, Backward Euler method can be used for Static Analysis such as post-buckling solutions, since this method is dissipative and therefore highly stable.

## Automatic Time Stepping

This Nonlinear Transient solution provides automatic time stepping based on Local Truncation Error (LTE).

The HHT-$\alpha$ method is used as an example to derive the method, and the other methods follow similar steps. Using HHT-$\alpha$ method, by Taylor's expansion, the LTE of displacement $u$ from time $t$ to $t+h$ is:(19) $\begin{array}{l}e=\frac{1}{6}{h}^{3}\stackrel{⃛}{u}\left(\tau \right)\\ t<\tau
Using acceleration, $e$ can be approximated as:(20) $e=\frac{1}{6}{h}^{2}|\text{Δ}a|$
For coupled multiple DOF system, the above absolute value is replaced by certain norm of $\text{Δ}a$. Here the mass-weighted norm is used, so that:(21) $e=\frac{1}{6}{h}^{2}{\left(\text{Δ}{a}^{T}M\text{Δ}a\right)}^{1}{2}}$
Error estimation in the previous equation requires normalization, as it depends on certain reference displacement, for example, initial displacement, as well as cut-off frequency. The normalized error estimation is:(22) $\stackrel{˜}{e}=\frac{e}{{K}_{\Omega }‖{u}_{R}‖}$
Here, ${K}_{\Omega }$ is the time-averaged Local Truncation Error (LTE) measure of a linear undamped single DOF oscillator with unit initial displacement and oscillating at approximately 10 cycles per second or with cut-off frequency $\Omega =\omega h=0.6$ (where, $\omega$ is the natural frequency of the single DOF system). $‖{u}_{R}‖$ is the maximum value of the displacement norm over all the previous time steps.(23) $‖{u}_{R}‖=\underset{1\le j\le n}{\mathrm{max}}\left(‖{u}_{j}‖\right)$

Where, ${u}_{j}$ is the displacement at time step, $j$.

The norm is defined as:(24) $‖{u}_{j}‖=\sqrt{{\left({u}_{j}\right)}^{T}M\left({u}_{j}\right)}$
The time steps are automatically adjusted based on the following conditions (TOL is the user-defined tolerance set on the TSTEP Bulk Data Entry), if:
• $\stackrel{˜}{e}$ > TOL - Reject current step, cutback and redo the current step.
• TOL > $\stackrel{˜}{e}$ > 0.5 * TOL - Accept current step, cutback the next step.
• 0.5 * TOL > $\stackrel{˜}{e}$ > 1/16 * TOL - No changes.
• 1/16 * TOL > $\stackrel{˜}{e}$ - The next time step is doubled.

The MREF continuation line on TSTEP entry can be used to control automatic time stepping, so that the time step $h$ is adjusted according to the LTE of the current step. As shown above, when error is "large" when compared to the tolerance (TOL), $h$ will be reduced by half and the current step is re-calculated. The maximum number of such operations within each step is controlled by the TN1 field. On the other hand, when $h$ is "small" compared to the tolerance (TOL), $h$ is requested to be increased, but only after TN2 contiguous steps with such a request, will $h$ be actually increased.

### Damping

This Nonlinear Transient solution sequence currently only provides support for Rayleigh Damping. The global Rayleigh damping parameters can be input using PARAM, ALPHA1 and PARAM, ALPHA2. Subcase-dependent Rayleigh damping parameters can be input using the Alpha and Beta fields on the TSTEP Bulk Data Entry. Material-dependent Rayleigh damping parameters can be input via the RAYL continuation line on the corresponding material entry (MAT1, MAT2, MAT8, MAT9, and MAT9OR Bulk Data Entries).

## Baseline Correction

Baseline correction can be applied to correct the acceleration record to avoid displacement shift.

When acceleration is applied as input via SPCD, the integration of displacement results may diverge at the last point of simulation. Baseline correction can be used to correct the acceleration input. The BASELIN Subcase and BASELIN Bulk Data Entry pair can be used to apply baseline correction.

There are two methods by which Baseline correction can be applied. For both cases, the acceleration load is corrected by fitting the load to a polynomial with coefficients ${C}_{0}$, ${C}_{1}$, and ${C}_{2}$.

### Acceleration Method (METHOD=ACCE on BASELIN Bulk Data)

The baseline correction to the acceleration load is calculated as: (25) ${a}_{b}\left(t\right)={C}_{0}+{C}_{1}t+{C}_{2}{t}^{2}$
The corrected acceleration load is:(26) ${a}_{c}\left(t\right)=a\left(t\right)-{a}_{b}\left(t\right)$
The coefficients of the polynomial are evaluated by minimizing the square of the corrected acceleration load.(27) $S\left({C}_{1},{C}_{2},{C}_{3}\right)=\mathrm{min}\left[\sum _{i=1}^{n}{\left({a}_{c}\left({t}_{i}\right)\right)}^{2}\right]$
Where,
${C}_{0}$, ${C}_{1}$, and ${C}_{2}$
Coefficients of the polynomial, which are unknowns to be calculated from the above minimization functions.
$S$
Function of polynomial coefficients.
$a\left(t\right)$
${a}_{b}\left(t\right)$
Baseline correction of the acceleration.
${a}_{c}\left(t\right)$
Corrected acceleration after baseline correction.
$t$
Time associated with each acceleration data point in the record.
$n$
Total number of acceleration data points in the record (points on TABLED# entry referenced on TLOAD1 entry).

### Velocity Method (METHOD=VELO on BASELIN Bulk Data)

The baseline correction to the acceleration load is calculated as: (28) ${a}_{b}\left(t\right)={C}_{0}+{C}_{1}\left(\frac{t-{T}_{1}}{{T}_{2}-{T}_{1}}\right)+{C}_{2}{\left(\frac{t-{T}_{1}}{{T}_{2}-{T}_{1}}\right)}^{2}$
The corrected acceleration load is:(29) ${a}_{c}\left(t\right)=a\left(t\right)-{a}_{b}\left(t\right)$
The corrected velocity is:(30) ${v}_{c}\left(t\right)=v\left({T}_{1}\right)+\underset{{T}_{1}}{\overset{{T}_{2}}{\int }}{a}_{c}\left(t\right)dt$
The coefficients of the polynomial are evaluated by minimizing the integration of square of the corrected velocity load. (31) $S\left({C}_{1},{C}_{2},{C}_{3}\right)=\mathrm{min}\left[\underset{{T}_{1}}{\overset{{T}_{2}}{\int }}{\left({v}_{c}\left(t\right)\right)}^{2}dt\right]$
Where,
${C}_{0}$, ${C}_{1}$, and ${C}_{2}$
Coefficients of the polynomial, which are unknowns to be calculated from the above minimization functions.
$S$
Function of polynomial coefficients.
${a}_{b}\left(t\right)$
Baseline correction of the acceleration.
${a}_{c}\left(t\right)$
Corrected acceleration after baseline correction.
$v\left(t\right)$
${v}_{c}\left(t\right)$
Corrected velocity after baseline correction.
$t$
Time associated with each acceleration data point in the record.
${T}_{1}$ and ${T}_{2}$
Initial and final total time.
For both continuation subcases or independent subcases, the baseline correction calculation is conducted for each subcase, and separate ${C}_{0}$, ${C}_{1}$, and ${C}_{2}$ coefficients are calculated for each subcase for baseline correction. In the case of continuation subcases, the values of ${T}_{1}$ and ${T}_{2}$ used in the calculation are still the total time.

## Problem Setup

### Input

For Nonlinear Transient Analysis, the loads and boundary conditions are defined in the Bulk Data Entry section of the input deck. The static loads and boundary conditions are defined in the Bulk Data Entry section of the input deck. They should be referenced in the Subcase Information Entry section using a SPC and DLOAD statement in a subcase, respectively.

For Nonlinear One-step Transient Thermal Stress Analysis (OSTTS), if the Nonlinear Transient Analysis subcase has a temperature load defined (via TEMPT), then a TEMP Subcase Information Entry referencing the TEMPT Bulk Data Entry can be directly specified in the nonlinear transient subcase.

Large Displacement Analysis can be activated via PARAM, LGDISP, 1, NLPARM(LGDISP), or NLCTRL(LGDISP) Subcase Information Entries.

To indicate that a nonlinear transient solution is required for any subcase, the combination of NLPARM (or NLCTRL) and TSTEP entries should be present (an alternative definition is to just use TSTEPNL instead of both NLPARM (or NLCTRL) and TSTEP). The NLPARM (or NLCTRL) Subcase Information Entry, in turn, points to the NLPARM (or NLCTRL) Bulk Data Entry, and the TSTEP entry points to the TSTEP Bulk Data Entry. If TSTEPNL is used in the subcase, then it points to the TSTEPNL Bulk Data Entry.

Using both TSTEPNL and NLPARM, or TSTEPNL and NLCTRL in a subcase is not supported (refer to the TSTEPNL Bulk Data Entry for more information). If NLPARM or NLCTRL is present in a Nonlinear Transient subcase, then a TSTEP entry is mandatory. However, if TSTEPNL entry is present instead of NLPARM or NLCTRL, then the TSTEP entry is not compulsory.

The NLOUT Bulk Data Entry and NLOUT Subcase Information Entry can be used to control incremental output. The NLADAPT Bulk Data Entry and Subcase Information Entry can be used to define parameters for time-stepping and convergence criteria.

### Example (NLPARM)

SUBCASE 10
ANALYSIS = DTRAN
SPC = 1
NLPARM = 99
TSTEP = 2
NLOUT = 23
IC = 12
.
.
BEGIN BULK
PARAM,LGDISP,1
NLPARM  99
TSTEP, 2

### Example (NLCTRL)

SUBCASE 10
ANALYSIS=DTRAN
SPC = 1
NLCTRL = 99
TSTEP = 2
NLOUT = 23
IC = 12
.
.
BEGIN BULK
PARAM,LGDISP,1
NLCTRL  99
TSTEP, 2

Detailed convergence check information for implicit nonlinear subcases, increments, and Newton-Raphson iterations are printed in the _nl.out file. Additional options for checking Nonlinear Analysis run information and monitoring progress of Nonlinear Implicit Analysis jobs are listed in Runtime Monitoring in the User Guide.

The NLPARM or NLCTRL data provides Nonlinear Analysis parameters. DLOAD inputs the time-dependent loading, and IC provides the initial condition (if absent, the initial velocity is set to zero). NLOUT issues the output controls. The TSTEP entry contains the Nonlinear Transient method parameters, damping, and time-stepping parameters.

### Subcase Continuation

Subcase continuation is supported between Nonlinear Transient subcases in the same model. It is also supported from a NLSTAT subcase to a Nonlinear Transient subcase.

With subcase continuation, subcase 2 follows subcase 1. When both are of Nonlinear Transient type, the initial condition (IC entry, if present) in subcase 2 is ignored. Instead, subcase 2 obtains its initial condition from the last time step of subcase 1.

One typical use case for subcase continuation is the post-buckling analysis. One can load the structure to a point close to buckling using a NLSTAT Subcase, followed by a Nonlinear Transient subcase (using the Backward Euler method to improve stability) for the rest of buckling process.

Subcase continuation between Small and Large Displacement Nonlinear Transient Analyses (or vice-versa) is not allowed.

### Output

The typical output entries (DISPLACEMENT, VELOCITY, and ACCELERATION) can be used to request corresponding output for Nonlinear Transient Analysis. The NLOUT Subcase and Bulk Data Entries can be used to request intermediate results.

Energy output is available by default and additional control is available via NLENRG Bulk/Subcase pair.

If automatic time-stepping is not active, then the typical convergence results are output for each time step similar to NLSTAT Subcases. However, if automatic time-stepping is activated, then, in addition to the convergence results, an extra line is added to each time step.

The fields show the current time step number (itstp), current time (time), norm of acceleration error (norm(da)), the norm of the reference displacement (u_ref), the acceleration error (err_da) and adjustment request (adjustment), respectively.

The adjustment request field shows the following syntax:
Adjustment Printing (.out file)
Information
Reduce Next
Indicates a reduction of next time step for $h$
Enlarge Next
Indicates an increase of next time step for $h$
No Change
Indicates no change in $h$ for current and subsequent step.
Cutback
Indicates reduction of current step. The current step is then redone.
Note:
1. The same limitations that apply to Nonlinear Static Analysis also apply to Nonlinear Transient Analysis.
2. The NLADAPT entry is recommended to be used to control the maximum and minimum time-step in Nonlinear Transient Analysis.
3. Linear and large rotation DMIG (Direct Matrix Input at Grid points) are supported in Nonlinear Transient Analysis.

## Plot Convergence During Analysis

The convergence plot can be obtained for all nonlinear iterations across all subcases for nonlinear static and nonlinear transient analysis, using the Altair Compute Console (ACC).

The progress can also be monitored for all the optimization iterations.

For more details, refer to Plot Convergence During Analysis in the Runtime Monitoring section.