30 virtual bool solve()
override;
68 mooseDeprecated(
"numPicards() is deprecated. Please use numFixedPointIts() instead.");
157 solveStep(Real & begin_norm, Real & end_norm,
const std::set<dof_id_type> & transformed_dofs);
182 const bool primary) = 0;
std::vector< std::vector< PostprocessorValue > > _transformed_pps_values
Previous values of the relaxed postprocessors.
unsigned int maxFixedPointIts() const
Get the maximum number of fixed point iterations.
std::vector< std::vector< PostprocessorValue > > _secondary_transformed_pps_values
Previous values of the postprocessors relaxed outside of the fixed point iteration (used as a subapp)...
unsigned int minFixedPointIts() const
Get the minimum number of fixed point iterations.
FixedPointSolve(Executioner &ex)
virtual void saveVariableValues(const bool primary)=0
Saves the current values of the variables, and update the old(er) vectors.
void mooseDeprecated(Args &&... args) const
Real _fixed_point_initial_norm
Initial residual norm.
bool examineFixedPointConvergence(bool &converged)
Examine the various convergence metrics.
bool _has_fixed_point_its
Whether or not we activate fixed point iteration.
bool _fixed_point_force_norms
Whether or not we force evaluation of residual norms even without multiapps.
std::vector< Real > _fixed_point_timestep_end_norm
Full history of residual norm after evaluation of timestep_end.
virtual void allocateStorage(const bool primary)=0
Allocate storage for the fixed point algorithm.
void failStep()
Mark the current solve as failed due to external conditions.
unsigned int _min_fixed_point_its
Minimum fixed point iterations.
virtual bool solve() override
Iteratively solves the FEProblem.
bool _has_fixed_point_norm
Whether or not to use residual norm to check the fixed point convergence.
void setMultiAppRelaxationFactor(Real factor)
Set relaxation factor for the current solve as a SubApp.
const PostprocessorValue * _fixed_point_custom_pp
Postprocessor value for user-defined fixed point convergence check.
void clearFixedPointStatus()
Clear fixed point status.
MooseFixedPointConvergenceReason
Enumeration for fixed point convergence reasons.
unsigned int numPicardIts() const
Deprecated getter for the number of fixed point iterations.
virtual void saveAllValues(const bool primary)
Save both the variable and postprocessor values.
unsigned int numFixedPointIts() const
Get the number of fixed point iterations performed Because this returns the number of fixed point ite...
bool _fail_step
force the current step to fail, triggering are repeat with a cut dt
virtual void transformPostprocessors(const bool primary)=0
Use the fixed point algorithm to transform the postprocessors.
MooseFixedPointConvergenceReason checkConvergence() const
Check the solver status.
std::vector< PostprocessorName > _secondary_transformed_pps
Postprocessors to be relaxed outside of fixed point iteration (used as a subapp)
const std::vector< PostprocessorName > _transformed_pps
The postprocessors (transferred or not) that are going to be relaxed.
Real _fixed_point_rel_tol
Relative tolerance on residual norm.
virtual void savePostprocessorValues(const bool primary)=0
Saves the current values of the postprocessors, and update the old(er) vectors.
virtual ~FixedPointSolve()=default
unsigned int _xfem_update_count
Counter for number of xfem updates that have been performed in the current step.
std::vector< Real > _fixed_point_timestep_begin_norm
Full history of residual norm after evaluation of timestep_begin.
const Real _relax_factor
Relaxation factor for fixed point Iteration.
std::ostringstream _pp_history
Convergence history of the custom convergence check postprocessor.
MooseFixedPointConvergenceReason _fixed_point_status
Status of fixed point solve.
Real _pp_scaling
Scaling of custom convergence check postprocessor (its initial value)
Real _pp_new
Current value of the custom convergence check postprocessor.
Real PostprocessorValue
various MOOSE typedefs
virtual void transformVariables(const std::set< dof_id_type > &transformed_dofs, const bool primary)=0
Use the fixed point algorithm to transform the variables.
Executioners are objects that do the actual work of solving your problem.
unsigned int _max_fixed_point_its
Maximum fixed point iterations.
Real _secondary_relaxation_factor
Relaxation factor outside of fixed point iteration (used as a subapp)
virtual void setMultiAppTransformedPostprocessors(const std::vector< PostprocessorName > &pps)
Set relaxation postprocessors for the current solve as a SubApp.
bool XFEMRepeatStep() const
This function checks the _xfem_repeat_step flag set by solve.
virtual bool solveStep(Real &begin_norm, Real &end_norm, const std::set< dof_id_type > &transformed_dofs)
Perform one fixed point iteration or a full solve.
unsigned int _fixed_point_it
static InputParameters validParams()
virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary)=0
Use the fixed point algorithm transform instead of simply using the Picard update This routine can be...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const bool _auto_advance_set_by_user
Whether the user has set the auto_advance parameter for handling advancement of sub-applications in m...
std::vector< std::string > _secondary_transformed_variables
Variables to be relaxed outside of fixed point iteration (used as a subapp)
bool autoAdvance() const
Whether sub-applications are automatically advanced no matter what happens during their solves...
Real _pp_old
Old value of the custom convergence check postprocessor.
bool _xfem_repeat_step
Whether step should be repeated due to xfem modifying the mesh.
void setMultiAppTransformedVariables(const std::vector< std::string > &vars)
Set relaxation variables for the current solve as a SubApp.
const Real _custom_abs_tol
Absolute tolerance on postprocessor value.
Real _old_entering_time
Time of previous fixed point solve as a subapp.
const unsigned int _max_xfem_update
Maximum number of xfem updates per step.
Real _fixed_point_abs_tol
Absolute tolerance on residual norm.
void printFixedPointConvergenceReason()
Print information about the fixed point convergence.
bool hasFixedPointIteration()
Whether or not this has fixed point iterations.
virtual void printFixedPointConvergenceHistory()=0
Print the convergence history of the coupling, at every fixed point iteration.
bool _accept_max_it
Whether or not to treat reaching maximum number of fixed point iteration as converged.
const bool _auto_advance_user_value
The value of auto_advance set by the user for handling advancement of sub-applications in multi-app c...
unsigned int _main_fixed_point_it
fixed point iteration counter for the main app
void computeCustomConvergencePostprocessor()
Computes and prints the user-specified postprocessor assessing convergence.
const bool _update_xfem_at_timestep_begin
Controls whether xfem should update the mesh at the beginning of the time step.
const Real _custom_rel_tol
Relative tolerance on postprocessor value.
std::vector< std::string > _transformed_vars
The variables (transferred or not) that are going to be relaxed.