https://mooseframework.inl.gov
Loading...
Searching...
No Matches
TransientMultiApp.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 "MultiApp.h"
13
14#include "libmesh/numeric_vector.h"
15
16class TransientBase;
17
24{
25public:
27
29
30 virtual NumericVector<Number> & appTransferVector(unsigned int app,
31 std::string var_name) override;
32
33 virtual void initialSetup() override;
34
35 virtual bool solveStep(Real dt, Real target_time, bool auto_advance = true) override;
36
37 virtual void incrementTStep(Real target_time) override;
38
39 virtual void finishStep(bool recurse_through_multiapp_levels = false) override;
40
41 virtual void resetApp(unsigned int global_app, Real time) override;
42
46 Real computeDT();
47
48private:
55 void setupApp(unsigned int i, Real time = 0.0);
56
57 std::vector<TransientBase *> _transient_executioners;
58
63
64 unsigned int _max_failures;
66
67 unsigned int _failures;
68
71
73 bool & _first;
74
76 std::vector<std::string> _transferred_vars;
77
79 std::set<dof_id_type> _transferred_dofs;
80
81 std::vector<std::map<std::string, unsigned int>> _output_file_numbers;
82
84
85 std::set<unsigned int> _reset;
86
89};
90
95class MultiAppSolveFailure : public std::runtime_error
96{
97public:
98 MultiAppSolveFailure(const std::string & error) throw() : runtime_error(error) {}
99
100 MultiAppSolveFailure(const MultiAppSolveFailure & e) throw() : runtime_error(e) {}
101
103};
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
Utility class for catching solve failure errors so that MOOSE can recover state before continuing.
MultiAppSolveFailure(const MultiAppSolveFailure &e)
MultiAppSolveFailure(const std::string &error)
A MultiApp represents one or more MOOSE applications that are running simultaneously.
Definition MultiApp.h:116
Base class for transient executioners that use a FixedPointSolve solve object for multiapp-main app i...
MultiApp Implementation for Transient Apps.
virtual NumericVector< Number > & appTransferVector(unsigned int app, std::string var_name) override
Get the vector to transfer to for this MultiApp.
virtual void finishStep(bool recurse_through_multiapp_levels=false) override
Calls multi-apps executioners' endStep and postStep methods which creates output and advances time (n...
void setupApp(unsigned int i, Real time=0.0)
Setup the executioner for the local app.
virtual void initialSetup() override
Method to be called in main-app initial setup for create sub-apps if using positions is false.
std::vector< std::map< std::string, unsigned int > > _output_file_numbers
virtual void incrementTStep(Real target_time) override
Advances the multi-apps time step which is important for dt selection.
bool _print_sub_cycles
Flag for toggling console output on sub cycles.
std::set< dof_id_type > _transferred_dofs
The DoFs associated with all of the currently transferred variables.
virtual void resetApp(unsigned int global_app, Real time) override
"Reset" the App corresponding to the global App number passed in.
Real computeDT()
Finds the smallest dt from among any of the apps.
virtual bool solveStep(Real dt, Real target_time, bool auto_advance=true) override
Re-solve all of the Apps.
unsigned int _max_failures
bool & _first
Is it our first time through the execution loop?
std::vector< std::string > _transferred_vars
The variables that have been transferred to. Used when doing transfer interpolation....
static InputParameters validParams()
std::vector< TransientBase * > _transient_executioners
std::set< unsigned int > _reset