DOLFIN
DOLFIN C++ interface
|
#include <PETScSNESSolver.h>
Public Member Functions | |
PETScSNESSolver (MPI_Comm comm, std::string nls_type="default") | |
Create SNES solver. | |
PETScSNESSolver (std::string nls_type="default") | |
Create SNES solver on MPI_COMM_WORLD. | |
virtual | ~PETScSNESSolver () |
Destructor. | |
std::pair< std::size_t, bool > | solve (NonlinearProblem &nonlinear_problem, GenericVector &x, const GenericVector &lb, const GenericVector &ub) |
std::pair< std::size_t, bool > | solve (NonlinearProblem &nonlinear_function, GenericVector &x) |
void | init (NonlinearProblem &nonlinear_problem, GenericVector &x) |
void | set_from_options () const |
Set options from the PETSc options database. | |
void | set_options_prefix (std::string options_prefix) |
std::string | get_options_prefix () const |
MPI_Comm | mpi_comm () const |
Return the MPI communicator. | |
SNES | snes () const |
Return PETSc SNES pointer. | |
Public Member Functions inherited from dolfin::PETScObject | |
PETScObject () | |
Constructor. Ensures that PETSc has been initialised. | |
virtual | ~PETScObject () |
Destructor. | |
Static Public Member Functions | |
static std::vector< std::pair< std::string, std::string > > | methods () |
Return a list of available solver methods. | |
static Parameters | default_parameters () |
Default parameter values. | |
Static Public Member Functions inherited from dolfin::PETScObject | |
static void | petsc_error (int error_code, std::string filename, std::string petsc_function) |
Print error message for PETSc calls that return an error. | |
Public Attributes | |
Parameters | parameters |
Parameters. | |
This class implements methods for solving nonlinear systems via PETSc's SNES interface. It includes line search and trust region techniques for globalising the convergence of the nonlinear iteration.
std::string PETScSNESSolver::get_options_prefix | ( | ) | const |
Returns the prefix used by PETSc when searching the PETSc options database
void PETScSNESSolver::init | ( | NonlinearProblem & | nonlinear_problem, |
GenericVector & | x | ||
) |
Set up the SNES object, but don't do anything yet, in case the user wants to access the SNES object directly
void PETScSNESSolver::set_options_prefix | ( | std::string | options_prefix | ) |
Sets the prefix used by PETSc when searching the PETSc options database
std::pair< std::size_t, bool > PETScSNESSolver::solve | ( | NonlinearProblem & | nonlinear_problem, |
GenericVector & | x, | ||
const GenericVector & | lb, | ||
const GenericVector & | ub | ||
) |
Solve a nonlinear variational inequality with bound constraints
Arguments nonlinear_function (NonlinearProblem) The nonlinear problem. x (GenericVector) The vector. lb (GenericVector) The lower bound. ub (GenericVector) The upper bound.
Returns std::pair<std::size_t, bool> Pair of number of Newton iterations, and whether iteration converged)
std::pair< std::size_t, bool > PETScSNESSolver::solve | ( | NonlinearProblem & | nonlinear_function, |
GenericVector & | x | ||
) |
Solve abstract nonlinear problem :math:F(x) = 0
for given :math:F
and Jacobian :math:\dfrac{\partial F}{\partial x}
.
Arguments nonlinear_function (NonlinearProblem) The nonlinear problem. x (GenericVector) The vector.
Returns std::pair<std::size_t, bool> Pair of number of Newton iterations, and whether iteration converged)