https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
13#include "MooseApp.h"
14#include "Executioner.h"
15
17
22{
23public:
26
28
29 virtual void checkIterationType(IterationType it_type) const override;
30
31 virtual MooseConvergenceStatus checkConvergence(unsigned int n_iter) override;
32
33protected:
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;
65 const Real _nl_abs_div_tol;
67 const Real _nl_rel_div_tol;
69 const Real _div_threshold;
71 unsigned int _nl_forced_its;
73 const unsigned int _nl_max_pingpong;
76};
MooseConvergenceStatus
Status returned by calls to checkConvergence.
Definition Convergence.h:34
Base class for default convergence criteria.
Default nonlinear convergence criteria for FEProblem.
const Real _nl_rel_div_tol
Nonlinear relative divergence tolerance.
unsigned int _nl_current_pingpong
Current number of nonlinear ping-pong iterations for the current solve.
const Real _nl_abs_div_tol
Nonlinear absolute divergence tolerance.
unsigned int _nl_forced_its
Number of iterations to force.
PetscReal _rel_tol
Nonlinear relative tolerance.
virtual NonlinearSystemBase & nonlinearSystem()
Nonlinear system whose convergence state should be checked.
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.
virtual void checkIterationType(IterationType it_type) const override
Perform checks related to the iteration type.
const Real _div_threshold
Divergence threshold value.
static InputParameters residualConvergenceParams()
const unsigned int _nl_max_pingpong
Maximum number of nonlinear ping-pong iterations for a solve.
PetscReal _abs_tol
Nonlinear absolute tolerance.
virtual MooseConvergenceStatus checkConvergence(unsigned int n_iter) override
Returns convergence status.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
Class for containing MooseEnum item information.
Nonlinear system to be solved.