https://mooseframework.inl.gov
SecantSolve.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 
30  virtual void allocateStorage(const bool primary) override final;
31 
33  Real initial_norm,
34  const std::vector<Real> & timestep_begin_norms,
35  const std::vector<Real> & timestep_end_norms) const override final;
36 
37 private:
44  virtual void saveVariableValues(const bool primary) override final;
45 
52  virtual void savePostprocessorValues(const bool primary) override final;
53 
60  virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final;
61 
70  virtual void transformPostprocessors(const bool primary) override final;
71 
81  virtual void transformVariables(const std::set<dof_id_type> & transformed_dofs,
82  const bool primary) override final;
83 
86 
89 
92 
95 
98 
101 
104 
107 };
TagID _secondary_xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a sub app.
Definition: SecantSolve.h:100
unsigned int TagID
Definition: MooseTypes.h:210
TagID _secondary_fxn_m2_tagid
Vector tag id for the result of the last but one secondary solve, as a sub app.
Definition: SecantSolve.h:103
static InputParameters validParams()
Definition: SecantSolve.C:19
TagID _secondary_xn_m2_tagid
Vector tag id for the solution variable two primary solves ago, as a sub app.
Definition: SecantSolve.h:106
virtual void saveVariableValues(const bool primary) override final
Saves the current values of the variables, and update the old(er) vectors.
Definition: SecantSolve.C:78
TagID _xn_m2_tagid
Vector tag id for the solution variable two solves ago, as a main app.
Definition: SecantSolve.h:94
TagID _fxn_m1_tagid
Vector tag id for the most recent solution variable, pre-Secant transform, as a main app...
Definition: SecantSolve.h:85
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void transformPostprocessors(const bool primary) override final
Use the fixed point algorithm to transform the postprocessors.
Definition: SecantSolve.C:158
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.
Definition: SecantSolve.C:252
TagID _secondary_fxn_m1_tagid
Vector tag id for the most recent solution variable, pre-Secant transform, as a sub app...
Definition: SecantSolve.h:97
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.
Definition: SecantSolve.C:201
Executioners are objects that do the actual work of solving your problem.
Definition: Executioner.h:30
virtual void savePostprocessorValues(const bool primary) override final
Saves the current values of the postprocessors, and update the old(er) vectors.
Definition: SecantSolve.C:115
TagID _fxn_m2_tagid
Vector tag id for the result of the last but one solve, as a main app.
Definition: SecantSolve.h:91
TagID _xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a main app.
Definition: SecantSolve.h:88
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void allocateStorage(const bool primary) override final
Allocate storage for the fixed point algorithm.
Definition: SecantSolve.C:39
virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final
Use the fixed point algorithm transform instead of simply using the Picard update.
Definition: SecantSolve.C:148
SecantSolve(Executioner &ex)
Definition: SecantSolve.C:26