15 #include "libmesh/system.h" 29 const std::string &
name,
33 virtual void preInit()
override;
42 const std::set<TagID> & vector_tags_to_close) = 0;
SolverSystem(SubProblem &subproblem, FEProblemBase &fe_problem, const std::string &name, Moose::VarKindType var_kind)
Moose::PCSideType _pc_side
Preconditioning side.
void checkInvalidSolution()
virtual libMesh::System & system()=0
Get the reference to the libMesh system.
void setSolution(const NumericVector< Number > &soln)
Set the solution to a given vector.
void setPCSide(MooseEnum pcs)
Set the side on which the preconditioner is applied to.
Base class for a system (of equations)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual bool matrixFromColoring() const
Whether a system matrix is formed from coloring.
virtual std::vector< std::string > timeKernelVariableNames()=0
Returns the names of the variables that have time derivative kernels in the system.
MooseKSPNormType
Norm type for converge test.
virtual const std::string & name() const
virtual const NumericVector< Number > *const & currentSolution() const override final
The solution vector that is currently being operated on.
VarKindType
Framework-wide stuff.
SubProblem & subproblem()
virtual NumericVector< Number > & solutionInternal() const override final
Internal getter for solution owned by libMesh.
std::unique_ptr< NumericVector< Number > > solution
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
virtual void restoreSolutions() override final
Restore current solutions (call after your solve failed)
bool _solution_is_invalid
Boolean to see if solution is invalid.
const NumericVector< Number > * _current_solution
solution vector from solver
virtual bool containsTimeKernel()=0
If the system has a kernel that corresponds to a time derivative.
Generic class for solving transient nonlinear problems.
virtual void stopSolve(const ExecFlagType &exec_flag, const std::set< TagID > &vector_tags_to_close)=0
Quit the current solve as soon as possible.
Class for containing MooseEnum item information.
virtual void compute(ExecFlagType type) override
Compute time derivatives, auxiliary variables, etc.
virtual void preInit() override
This is called prior to the libMesh system has been init'd.
PCSideType
Preconditioning side.
Moose::MooseKSPNormType getMooseKSPNormType()
Get the norm in which the linear convergence is measured.
Moose::MooseKSPNormType _ksp_norm
KSP norm type.
virtual bool converged()=0
Returns the convergence state.
Moose::PCSideType getPCSide()
Get the current preconditioner side.
void setMooseKSPNormType(MooseEnum kspnorm)
Set the norm in which the linear convergence will be measured.