3.2.5.9. ExpressNewton Algorithm

This command is used to construct an ExpressNewton algorithm object for nonlinear structural dynamics. It accepts the solution after a constant number of Newton-Raphson iterations using a constant system Jacobian matrix. It is advised to be combined with transient integrators only. The command is of the following form:

algorithm ExpressNewton $iter $kMultiplier <-initialTangent> <-currentTangent> <-factorOnce>

Argument

Type

Description

$iter

integer

constant number of iterations. Default to 2

$kMultiplier

float

multiplier to system stiffness in evaluation of the system Jacobian matrix to support unconditional stability for hardening system. Default to 1.0. Dicussed in Reference [1]

-initialTangent

string

optional flag to indicate to use initial stiffness in evaluation of the system Jacobian matrix

-currentTangent

string

optional and default flag to indicate to use current stiffness in evaluation of the system Jacobian matrix

-factorOnce

string

optional flag to indicate to factorize the system Jacobian matrix only once. It is suggested to specify this flag to maximize the solution efficiency (Reference [1]). If this flag is not specified factorization will be performed on every iteraction.

The strategy of the ExpressNewton algorithm is to adopt a typical transient integrator and accept the solution after a constant number of iterations using a constant system Jacobian matrix. The algorithm inherits the advantages of the host transient integrators, such as the unconditional stability, the order of accuracy, and the numerical dissipation that helps suppress the spurious high-frequency oscillation. Using a constant Jacobian matrix is vital to minimizing the computational expense associated with matrix operations. The algorithm helps achieve an exponential efficiency improvement in a response history analysis with any transient integrator.

Warning

There is no check on the convergence of the model in this algorithm. It iterates a constant number of iterations and then proceeds to the next time step.

Code Developed by: Yuli Huang

References