felupe.newtonrhapson(x0=None, fun=<function fun>, jac=<function jac>, solve=<function solve>, maxiter=16, update=<function update>, check=<function check>, args=(), kwargs={}, tol=1.4901161193847656e-08, items=None, dof1=None, dof0=None, ext0=None, solver=<function spsolve>, verbose=True)[source]#

General-purpose Newton-Rhapson algorithm

(Nonlinear) equilibrium equations f, as a function f(x) of the unknowns x, are solved by linearization of f at given unknowns x0.

f(x0) = 0 (1)

f(x0 + dx) = f(x0) + (df/dx)(x0) dx (= 0) (2) (df/dx)(x0) dx = -f(x0)

dx = solve(df/dx(x0), -f(x0)) (3)

x = x0 + dx (4)

Repeated evaluations of Eq.(3) and Eq.(4) lead to an incrementally updated solution of x which is shown in equation (4). Herein xn refer to the inital unknowns whereas x to the updated unknowns (the subscript n+1 is dropped for readability).

dx = solve(df/dx(xn), -f(xn)) (5)

x = xn + dx (6)

Eq.(5) and Eq.(6) are repeated until check(dx, x, f) returns True., fields, r=None, gradient=None, converged=True, filename='result.vtk', cell_data=None, point_data=None)[source]#
felupe.topoints(values, region, sym=True, mode='tensor')[source]#
felupe.project(values, region, average=True, mean=False)[source]#

Projection (and optionally averaging) of scalar or vectorial values at quadrature points to mesh-points., r, boundary)[source]#, r, boundary, point=array([0., 0., 0.]))[source]#