ngsPETSc.snes
This module contains all the functions related to the PETSc SNES
Classes
This class creates a PETSc Non-Linear Solver (SNES) from a callback to |
Module Contents
- class ngsPETSc.snes.NonLinearSolver(fes, a=None, residual=None, objective=None, jacobian=None, solverParameters={}, optionsPrefix='')
This class creates a PETSc Non-Linear Solver (SNES) from a callback to a NGSolve residual vector
- Parameters:
fes – the finite element space over which the non-linear problem is defined
a – the variational form reppresenting the non-linear problem
residual – callback to the residual for the non-linear solver, this fuction is used only if the argument a is None.
objective – callback to the objective for the non-linear solver, this fuction is used only if the argument a is None, if False the PETSSc default is norm 2.
jacobian – callback to the Jacobian for the non-linear solver, this fuction is used only if the argument a is None.
- fes
- dofs
- second_order = False
- jacobianMatType
- snes
- options_object
- vectorMapping
- setup(x0)
This is method is used to setup the PETSc SNES object
- Parameters:
x0 – NGSolve grid function reppresenting the initial guess
- solve(x0)
This is method solves the non-linear problem
- Parameters:
x0 – NGSolve grid function reppresenting the initial guess
- petscResidual(snes, x, f)
This is method is used to wrap the callback to the resiudal in a PETSc compatible way
- Parameters:
snes – PETSc SNES object reppresenting the non-linear solver
x – current guess of the solution as a PETSc Vec
f – residual function as PETSc Vec
- abstract residual()
Callback to the residual of the non-linear problem
- Parameters:
x – current guess of the solution as a PETSc Vec
- Returns:
the residual as an NGSolve grid function
- petscObjective(snes, x)
This is method is used to wrap the callback to the objetcive in a PETSc compatible way
- Parameters:
snes – PETSc SNES object reppresenting the non-linear solver
x – current guess of the solution as a PETSc Vec
energy – energy as a PETSc Scalar
- abstract objective()
Callback to the objective of the non-linear problem
- Parameters:
x – current guess of the solution as a PETSc Vec
- Returns:
the energy
- petscJacobian(snes, x, J, P)
This is method is used to wrap the callback to the Jacobian in a PETSc compatible way
- Parameters:
snes – PETSc SNES object reppresenting the non-linear solver
x – current guess of the solution as a PETSc Vec
J – Jacobian computed at x as a PETSc Mat
P – preconditioner for the Jacobian computed at x as a PETSc Mat
- abstract jacobian()
Callback to the Jacobian of the non-linear problem
- Parameters:
x – current guess of the solution as a PETSc Vec
- Returns:
the Jacobian as an NGSolve matrix