Newton-Raphson Solver class
A load-control solver using the full Newton-Raphson iterative solver.
Parent class
Class doc
- class femedu.solver.NewtonRaphsonSolver.NewtonRaphsonSolver
An iterative solver for load-controlled nonlinear analysis.
- assemble(force_only=False)
inherited from
Solver
class.
- getResiduum()
** NEEDS REDESIGN TO WORK WITH SMART NODES **
- initArcLength(load_increment=1.0, alpha=0.0, tolerance=1e-12)
Initializes parameters for the arc-length constraint.
\[g({\bf u}, \lambda)) := \alpha ||\bar {\bf P}|| (\lambda-\lambda_n)^2 + ({\bf u} - {\bf u}_n)({\bf u} - {\bf u}_n) - \Delta s^2 = 0\]- Parameters:
load_increment – load increment used to calibrate the constraint
alpha – load contribution factor
tolerance – convergence tolerance
- pushState(state)
Pushes
state
to the solver. The solver will use that data to update it’s internal state. nodes
list of node pointers (required)
elements
list of element pointers (required)
P0
system vector of initial forces
Pref
system vector of reference forces
u1
system vector of current (converged) displacements
un
system vector of previous (converged) displacements
lam1
load level of current (converged) displacements
lamn
load level of previous (converged) displacements
- Parameters:
state – state of the solver
- solve(max_steps=10, verbose=False, **kwargs)
- Parameters:
max_step – maximum number of iterations (int)
verbose – set to
True
for additional information
- solveSingleStep()
Helper function performing a single solution of the linearized system
Called by solve(). (internal use only)
- stepArcLength(verbose=False, max_iter=10)
Progresses the model state by one arc-length.
Note
You need to initialize arc-length control by one call to
initArcLength()
at least once to set all necessary parameters.- Params max_iter:
maximum number of iteration steps; handed on to the solver
- Return normR:
the norm of the generalized residuum from the last iteration step