https://mooseframework.inl.gov
SteffensenSolve.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 "FixedPointSolve.h"
13 #include "NonlinearSystemBase.h"
14 
16 {
17 public:
19 
21 
22  virtual void initialSetup() override;
23 
32  virtual void allocateStorage(const bool primary) override final;
33 
35  Real initial_norm,
36  const std::vector<Real> & timestep_begin_norms,
37  const std::vector<Real> & timestep_end_norms) const override final;
38 
39 private:
46  virtual void saveVariableValues(const bool primary) override final;
47 
54  virtual void savePostprocessorValues(const bool primary) override final;
55 
62  virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final;
63 
72  virtual void transformPostprocessors(const bool primary) override final;
73 
83  virtual void transformVariables(const std::set<dof_id_type> & transformed_dofs,
84  const bool primary) override final;
85 
88 
91 
94 
97 };
virtual void printFixedPointConvergenceHistory(Real initial_norm, const std::vector< Real > &timestep_begin_norms, const std::vector< Real > &timestep_end_norms) const override final
Print the convergence history of the coupling, at every fixed point iteration.
SteffensenSolve(Executioner &ex)
unsigned int TagID
Definition: MooseTypes.h:210
virtual void transformPostprocessors(const bool primary) override final
Use the fixed point algorithm to transform the postprocessors.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void savePostprocessorValues(const bool primary) override final
Saves the current values of the postprocessors, and update the old(er) vectors.
virtual void transformVariables(const std::set< dof_id_type > &transformed_dofs, const bool primary) override final
Use the fixed point algorithm to transform the variables.
TagID _fxn_m1_tagid
Vector tag id for the most recent solution variable, pre-Steffensen transform, as a main app...
TagID _xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a main app.
virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final
Use the fixed point algorithm transform instead of simply using the Picard update.
TagID _secondary_xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a sub app.
Executioners are objects that do the actual work of solving your problem.
Definition: Executioner.h:30
virtual void saveVariableValues(const bool primary) override final
Saves the current values of the variables, and update the old(er) vectors.
virtual void allocateStorage(const bool primary) override final
Allocate storage for the fixed point algorithm.
TagID _secondary_fxn_m1_tagid
Vector tag id for the most recent solution variable, pre-Steffensen transform, as a sub app...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void initialSetup() override
Method that should be executed once, before any solve calls.
static InputParameters validParams()