https://mooseframework.inl.gov
PicardSolve.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 
15 // System includes
16 #include <string>
17 
19 {
20 public:
22 
24 
33  virtual void allocateStorage(const bool primary) override final;
34 
36  Real initial_norm,
37  const std::vector<Real> & timestep_begin_norms,
38  const std::vector<Real> & timestep_end_norms) const override final;
39 
40 private:
47  virtual void saveVariableValues(const bool primary) override final;
48 
55  virtual void savePostprocessorValues(const bool primary) override final;
56 
63  virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final;
64 
73  virtual void transformPostprocessors(const bool primary) override final;
74 
84  virtual void transformVariables(const std::set<dof_id_type> & transformed_dofs,
85  const bool primary) override final;
86 
89 
92 };
static InputParameters validParams()
Definition: PicardSolve.C:19
virtual void savePostprocessorValues(const bool primary) override final
Saves the current values of the postprocessors, and update the old(er) vectors.
Definition: PicardSolve.C:89
virtual void transformPostprocessors(const bool primary) override final
Use the fixed point algorithm to transform the postprocessors.
Definition: PicardSolve.C:125
unsigned int TagID
Definition: MooseTypes.h:210
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
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: PicardSolve.C:186
virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final
Use the fixed point algorithm transform instead of simply using the Picard update.
Definition: PicardSolve.C:114
Executioners are objects that do the actual work of solving your problem.
Definition: Executioner.h:30
TagID _old_tag_id
Vector tag id for the previous solution variable, as a main app.
Definition: PicardSolve.h:88
TagID _secondary_old_tag_id
Vector tag id for the previous solution variable, as a sub app.
Definition: PicardSolve.h:91
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: PicardSolve.C:28
virtual void saveVariableValues(const bool primary) override final
Saves the current values of the variables, and update the old(er) vectors.
Definition: PicardSolve.C:64
PicardSolve(Executioner &ex)
Definition: PicardSolve.C:25
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: PicardSolve.C:158