1#ifndef WARPX_NONLINEAR_SOLVER_H_
2#define WARPX_NONLINEAR_SOLVER_H_
26template<
class Vec,
class Ops>
NonlinearSolver(const NonlinearSolver &)=delete
virtual void PrintParams() const =0
Print parameters used by the nonlinear solver.
bool m_usePC
Definition NonlinearSolver.H:92
bool m_is_defined
Definition NonlinearSolver.H:88
std::string m_diagnostic_file
Definition NonlinearSolver.H:90
virtual ~NonlinearSolver()=default
virtual bool UsePreconditioner()
Whether a preconditioner is used by the nonlinear solver.
Definition NonlinearSolver.H:78
NonlinearSolver()=default
bool IsDefined() const
Check if the nonlinear solver has been defined.
Definition NonlinearSolver.H:52
virtual void GetSolverParams(amrex::Real &, amrex::Real &, int &)=0
Return the convergence parameters used by the nonlinear solver.
virtual void Verbose(bool a_verbose)
Allow caller to dynamically change the verbosity flag. For example, one may want to only print solver...
Definition NonlinearSolver.H:84
int m_diagnostic_interval
Definition NonlinearSolver.H:91
NonlinearSolver & operator=(const NonlinearSolver &)=delete
virtual void Define(const Vec &, Ops *)=0
Read user-provided parameters that control the nonlinear solver. Allocate intermediate data container...
virtual void Solve(Vec &, const Vec &, amrex::Real, amrex::Real, int) const =0
Solve the specified nonlinear equation for U. Picard: U = b + R(U). Newton: F(U) = U - b - R(U) = 0.
NonlinearSolver(NonlinearSolver &&) noexcept=delete
bool m_verbose
Definition NonlinearSolver.H:89