Class PETScNonLinearSolver

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class PETScNonLinearSolver : public opensn::NonLinearSolver

Implementation of a PETSc non-linear solver.

Subclassed by opensn::NLKEigenDiffSolver, opensn::NLKEigenvalueAGSSolver

Public Functions

explicit PETScNonLinearSolver(std::shared_ptr<NonLinearSolverContext> context_ptr, const InputParameters &params = PETScNonLinearSolverOptions::GetInputParameters())
~PETScNonLinearSolver() override
inline PETScNonLinearSolverOptions &GetToleranceOptions()
void ApplyToleranceOptions()
inline bool IsConverged() const
std::string GetConvergedReasonString() const
virtual void Setup() override
virtual void Solve() override

Protected Functions

inline bool IsSystemSet() const
virtual void PreSetupCallback()
virtual void SetOptions()
virtual void SetSolverContext()
virtual void SetConvergenceTest()
virtual void SetMonitor()
virtual void SetPreconditioner()
virtual void SetSystemSize() = 0
virtual void SetSystem() = 0
virtual void SetFunction() = 0
virtual void SetJacobian() = 0
virtual void PostSetupCallback()
virtual void PreSolveCallback()
virtual void SetInitialGuess() = 0
virtual void PostSolveCallback()

Protected Attributes

Mat J_
Mat P_
Vec r_
Vec x_
SNES nl_solver_
int64_t num_local_dofs_
int64_t num_global_dofs_
PETScNonLinearSolverOptions options_