FEM.Solvers package

Solvers for Finite Element Method

Submodules

FEM.Solvers.Linear module

Define the structure of a lineal finite element solver

class FEM.Solvers.Linear.LinealEigen(FEMObject: Core)

Bases: Linear

Eigen value solver

Parameters:

FEMObject (Core) – FEM problem

run(path: str = '', k=20, **kargs)

Solves the smallest k eigenvalues using scipy’s eigen value solver

Parameters:
  • path (str, optional) – Path where the solution is stored. Defaults to ‘’.

  • k (int, optional) – Number of eigenvalues to calculate. Defaults to 20.

class FEM.Solvers.Linear.Linear(FEMObject: Core)

Bases: Solver

Lineal Finite Element Solver.

run(path: str = '', **kargs)

Solves the equation system using numpy’s solve function

Parameters:

path (str, optional) – Path where the solution is stored. Defaults to ‘’.

class FEM.Solvers.Linear.LinearSparse(FEMObject: Core)

Bases: Linear

Lineal Finite Element Solver using sparse matrix

run(path: str = '', **kargs)

Solves the equation system using scipy’s spsolve function

Parameters:

path (str, optional) – Path where the solution is stored. Defaults to ‘’.

FEM.Solvers.NonLinear module

Define the structure of a non lineal finite element solver

class FEM.Solvers.NonLinear.DirectIteration(FEMObject: Core, tol: float = 0.001, n: int = 50)

Bases: NonLinearSolver

docstring for DirectIteration

solve(path: str = '', guess=None, _guess=False, **kargs) None

Solves the equation system using newtons method

class FEM.Solvers.NonLinear.LoadControl(FEMObject, tol: float = 1e-10, n: int = 500, nls=10)

Bases: DirectIteration

General class for non lineal solvers :param tol: Tolerance for the maximum absolute value for the delta vector :type tol: float :param n: Maximum number of iterations per step :type n: int

run(**kargs) None

Solves the equation system using newtons method

set_increments(increments)
class FEM.Solvers.NonLinear.MGDCM(FEMObject: Core, tol: float = 1e-06, n: int = 200)

Bases: NonLinearSolver

docstring for DirectIteration

get_dld(dup, dur, i, k)

Calculates the load factor for the next iteration

set_delta_lambda_bar(delta_lambda_bar)
set_increments(increments)
solve(path: str = '', guess=None, _guess=False, **kargs) None

Solves the equation system using mgdcm method

class FEM.Solvers.NonLinear.Newton(FEMObject: Core, tol: float = 1e-10, n: int = 50)

Bases: NonLinearSolver

Creates a Newton Raphson iterative solver

Parameters:

FEMObject (Core) – Finite Element Model. The model have to calculate tangent matrix T in the self.elementMatrices() method.

solve(path: str = '', **kargs) None

Solves the equation system using newtons method

class FEM.Solvers.NonLinear.NonLinearSolver(FEMObject: Core, tol: float, n: int)

Bases: Solver

General class for non lineal solvers :param tol: Tolerance for the maximum absolute value for the delta vector :type tol: float :param n: Maximum number of iterations per step :type n: int

run(**kargs) None

Solves the equation system using newtons method

FEM.Solvers.Solver module

class FEM.Solvers.Solver.Solver(FEMObject: Core)

Bases: object

Base Finite Element Solver.

run(**kargs)

Solves the equation system

setSolution(step=-1, elements: bool = False) None

Sets the solution to the FEM Object.

Parameters:
  • step (int, optional) – Number of solution. Defaults to the last solution found.

  • elements (bool, optional) – To pass the general solution to the domain elements. Defaults to false.

FEM.Solvers.Transient module

Define the structure of a lineal finite element solver

class FEM.Solvers.Transient.Parabolic(FEMObject: Core)

Bases: Solver

Lineal Finite Element Solver.

run(t0, tf, steps, dt=None)

Solves the equation system