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.

state is defined as a dictionary with the following contents:

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