newton_raphson
gripyth.solving.newton_raphson
Newton-Raphson solver.
FUNCTION | DESCRIPTION |
---|---|
newton_raphson |
Solves for |
newton_raphson
newton_raphson(
assemble: Callable[
[NDArray[float64]],
tuple[NDArray[float64], NDArray[float64]],
],
field: NDArray[float64],
active_dof: NDArray[int32],
i_row: NDArray[int32],
j_col: NDArray[int32],
d_rhs_tract: NDArray[float64] | None = None,
max_iter: int = 500,
min_iter: int = 1,
res_tol: float = 1e-06,
) -> tuple[NDArray[float64], float64, float64]
Solves for field
iteratively using the Newton-Raphson method.
assemble
is a function object that accepts field
and returns
(K_vector, residual)
, i.e. the vectorized elements of the system
stiffness matrix and the residual vector of the field. It is typically,
if not always, implemented as a closure in the caller's scope, as it
will require knowledge of model attributes, such as mesh and material,
in order to call the actual assembly routine. In other words, the
closure separates what is relevant to the Newton-Raphson method from
everything that is not.
active_dof
is an array of indices into field
marking the active
degrees of freedom. i_row
and j_col
are the sparse-matrix indices
corresponding to K_vector
. They are thus expected to not change
over Newton-Raphson iterations. d_rhs_tract
is an optional right-hand
side of tractions, assumed to be zero if not provided. min_iter
and max_iter
restrict the number of Newton-Raphson iterations
to be performed to reach convergence. res_tol
is the tolerance for
the norm of the residual vector that determines if convergence has
been reached.
Returns the solution of field
as well as residual norms from the
first and last iteration.
Raises ArithmeticError
if the Newton-Raphson solver failed to converge.