Arc-Length Force Control#

This module solves the nonlinear FEA problem using the arc-length solver with prescribed forces (i.e. traction Nuemann boundary conditions).

arc_length.force_control_solver#

class arc_length.force_control_solver.force_control(psi, lmbda0, max_iter, u, F_int, F_ext, bcs, J, load_factor, abs_tol=1e-10, rel_tol=None, solver='default')[source]#

Bases: object

The arc-length force control solver of this library

Parameters
  • psi – the scalar arc-length parameter. When psi = 1, the method becomes the spherical arc-length method and when psi = 0 the method becomes the cylindrical arc-length method

  • lmbda0 – the initial load parameter

  • max_iter – maximum number of iterations for the linear solver

  • u – the solution function

  • F_int – First variation of strain energy (internal nodal forces)

  • F_ext – Externally applied load (external applied force)

  • J – The Jacobian of the residual with respect to the deformation (tangential stiffness matrix)

  • load_factor – The incremental load factor

  • abs_tol (optional) – absolute residual tolerance for the solver (default value: 1e-10)

  • rel_tol (optional) – relative residual tolerance for solver; the relative residual is defined as the ration between the current residual and initial residual of the displacement step (default value: DOLFIN_EPS)

  • solver (optional) – type of linear solver for the FEniCS linear solve function – default FEniCS linear solver is used if no argument is used.

solve()[source]#

Main function to increment through the arc-length scheme.