#include <AbstractNonlinearSolver.hpp>
Inherited by SimpleNewtonNonlinearSolver, and SimplePetscNonlinearSolver.
Public Member Functions | |
virtual Vec | Solve (PetscErrorCode(*pComputeResidual)(SNES, Vec, Vec, void *), PetscErrorCode(*pComputeJacobian)(SNES, Vec, Mat *, Mat *, MatStructure *, void *), Vec initialGuess, unsigned fill, void *pContext)=0 |
virtual | ~AbstractNonlinearSolver () |
Abstract Nonlinear equation system solver, dictates that each solver must have a Solve function.
Definition at line 39 of file AbstractNonlinearSolver.hpp.
virtual AbstractNonlinearSolver::~AbstractNonlinearSolver | ( | ) | [inline, virtual] |
Destructor.
Definition at line 77 of file AbstractNonlinearSolver.hpp.
virtual Vec AbstractNonlinearSolver::Solve | ( | PetscErrorCode(*)(SNES, Vec, Vec, void *) | pComputeResidual, | |
PetscErrorCode(*)(SNES, Vec, Mat *, Mat *, MatStructure *, void *) | pComputeJacobian, | |||
Vec | initialGuess, | |||
unsigned | fill, | |||
void * | pContext | |||
) | [pure virtual] |
Pure virtual Solve() method.
pComputeResidual | points to the function which computes the residual, it must take arguments SNES (a PETSc nonlinear solver object), Vec (current guess - a vector of the correct size), Vec (a Vec of the correct size in which the residual is returned), void* (a pointer to anything you may need to refer to when calculating the residual) | |
pComputeJacobian | points to the function which computes the Jacobian, it must take arguments SNES (a PETSc nonlinear solver * object), Mat* (a pointer to the Jacobian matrix) ,Mat* (a pointer to a preconditioner matrix), MatStructure* (points to the PETSc matrix type e.g. AIJ), void* (a pointer to anything you may need to refer to when calculating the residual). | |
initialGuess | A PETSc Vec of the correct size, containing initial guesses for the nonlinear solver. | |
pContext | [optional] A pointer to a class that may have to be used in the ComputeResidual and ComputeJacobian functions | |
fill | the expected maximum number of nonzeros in a row of the Jacobian matrix |
Implemented in SimpleNewtonNonlinearSolver, and SimplePetscNonlinearSolver.
Referenced by AbstractNonlinearAssemblerSolverHybrid< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Solve().