https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
17public:
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
37private:
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};
unsigned int TagID
Definition MooseTypes.h:238
Executioners are objects that do the actual work of solving your problem.
Definition Executioner.h:37
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.
TagID _xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a main app.
Definition SecantSolve.h:88
TagID _secondary_xn_m1_tagid
Vector tag id for the solution variable before the latest solve, as a sub app.
virtual void transformPostprocessors(const bool primary) override final
Use the fixed point algorithm to transform the postprocessors.
TagID _xn_m2_tagid
Vector tag id for the solution variable two solves ago, as a main app.
Definition SecantSolve.h:94
virtual void allocateStorage(const bool primary) override final
Allocate storage for the fixed point algorithm.
Definition SecantSolve.C:37
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.
virtual bool useFixedPointAlgorithmUpdateInsteadOfPicard(const bool primary) override final
Use the fixed point algorithm transform instead of simply using the Picard update.
TagID _fxn_m1_tagid
Vector tag id for the most recent solution variable, pre-Secant transform, as a main app.
Definition SecantSolve.h:85
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.
TagID _fxn_m2_tagid
Vector tag id for the result of the last but one solve, as a main app.
Definition SecantSolve.h:91
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.
virtual void saveVariableValues(const bool primary) override final
Saves the current values of the variables, and update the old(er) vectors.
Definition SecantSolve.C:75
TagID _secondary_fxn_m2_tagid
Vector tag id for the result of the last but one secondary solve, as a sub app.
const TagID INVALID_TAG_ID
Definition MooseTypes.C:23