https://mooseframework.inl.gov
DefaultNonlinearConvergence.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "DefaultConvergenceBase.h"
13 #include "MooseApp.h"
14 #include "Executioner.h"
15 
17 
22 {
23 public:
26 
28 
29  virtual void checkIterationType(IterationType it_type) const override;
30 
31  virtual MooseConvergenceStatus checkConvergence(unsigned int n_iter) override;
32 
33 protected:
38 
49  virtual bool checkResidualConvergence(const unsigned int n_iter,
50  const Real fnorm,
51  const Real ref_norm,
52  const Real rel_tol,
53  const Real abs_tol,
54  std::ostringstream & oss);
55 
57  virtual void nonlinearConvergenceSetup() {}
58 
61  PetscReal _abs_tol;
63  PetscReal _rel_tol;
71  unsigned int _nl_forced_its;
73  const unsigned int _nl_max_pingpong;
75  unsigned int _nl_current_pingpong;
76 };
virtual bool checkResidualConvergence(const unsigned int n_iter, const Real fnorm, const Real ref_norm, const Real rel_tol, const Real abs_tol, std::ostringstream &oss)
Check the absolute and relative convergence of the nonlinear solution.
virtual void nonlinearConvergenceSetup()
Performs setup necessary for each call to checkConvergence.
PetscReal _abs_tol
Nonlinear absolute tolerance.
virtual MooseConvergenceStatus checkConvergence(unsigned int n_iter) override
Returns convergence status.
const Real _nl_rel_div_tol
Nonlinear relative divergence tolerance.
Base class for default convergence criteria.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
DefaultNonlinearConvergence(const InputParameters &parameters)
virtual NonlinearSystemBase & nonlinearSystem()
Nonlinear system whose convergence state should be checked.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
const Real _nl_abs_div_tol
Nonlinear absolute divergence tolerance.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
static InputParameters residualConvergenceParams()
const unsigned int _nl_max_pingpong
Maximum number of nonlinear ping-pong iterations for a solve.
Nonlinear system to be solved.
MooseConvergenceStatus
Status returned by calls to checkConvergence.
Definition: Convergence.h:33
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _nl_current_pingpong
Current number of nonlinear ping-pong iterations for the current solve.
Class for containing MooseEnum item information.
Definition: MooseEnumItem.h:18
unsigned int _nl_forced_its
Number of iterations to force.
const Real _div_threshold
Divergence threshold value.
Default nonlinear convergence criteria for FEProblem.
virtual void checkIterationType(IterationType it_type) const override
Perform checks related to the iteration type.
PetscReal _rel_tol
Nonlinear relative tolerance.