19 #include "libmesh/enum_norm_type.h" 55 std::ostringstream & oss)
override;
72 const Real initial_residual_before_preset_bcs);
virtual void nonlinearConvergenceSetup() override
Performs setup necessary for each call to checkConvergence.
virtual bool checkResidualConvergence(const unsigned int it, const Real fnorm, const Real ref_norm, const Real rel_tol, const Real abs_tol, std::ostringstream &oss) override
Check the absolute and relative convergence of the nonlinear solution.
Interface class shared between ReferenceResidualProblem and ReferenceResidualConvergence.
std::vector< NonlinearVariableName > _group_names
std::vector< NonlinearVariableName > _soln_var_names
const unsigned int _accept_iters
ReferenceVectorTagIDKey(const ReferenceVectorTagIDKey &)
ReferenceResidualConvergence(const InputParameters ¶meters)
const MooseEnum _norm_type_enum
Enum holding the normalization type.
const InputParameters & parameters() const
Get the parameters of the object.
std::vector< bool > _converge_on_var
Flag for each solution variable or group being in 'converge_on'.
const NumericVector< Number > * _reference_vector
The vector storing the reference residual values.
std::vector< Real > _group_resid
void updateReferenceResidual()
Computes the reference residuals for each group.
static InputParameters validParams()
std::vector< AuxVariableName > _ref_resid_var_names
std::vector< unsigned int > _soln_vars
TagID _reference_vector_tag_id
The reference vector tag id.
const bool _unscale_the_residual
Bool to unscale the residual before convergence checks and screen output.
TagID referenceVectorTagID(ReferenceVectorTagIDKey) const
Returns the tag ID associated with the reference vector tag ID key.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
ReferenceVectorTagIDKey()
bool _local_norm
Flag to optionally perform normalization of residual by reference residual before or after L2 norm is...
bool checkConvergenceIndividVars(const Real fnorm, const Real abs_tol, const Real rel_tol, const Real initial_residual_before_preset_bcs)
Check the convergence by comparing the norm of each variable's residual separately against its refere...
std::vector< Real > _group_ref_resid
std::vector< unsigned int > _ref_resid_vars
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
Uses a reference residual to define relative convergence criteria.
const NumericVector< Number > * _residual_vector
The optional vector storing the reference residual values.
libMesh::FEMNormType _norm_type
Container for normalization type.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
enum ReferenceResidualConvergence::ZeroReferenceType _zero_ref_type
std::vector< unsigned int > _group_index
Group number index for each variable.
std::vector< bool > _is_var_grouped
Vector of bools to signify if variable is in a group.
std::vector< Real > _scaling_factors
Local storage for the scaling factors applied to each of the variables to apply to _ref_resid_vars...
Default nonlinear convergence criteria for FEProblem.
std::vector< bool > _converge_on_group
ZeroReferenceType
Container for convergence treatment when the reference residual is zero.