Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
TimeIntegrator.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level Nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 
8 
9 #ifndef TimeIntegrator_h
10 #define TimeIntegrator_h
11 
12 #include <Enums.h>
13 // yaml for parsing..
14 #include <yaml-cpp/yaml.h>
15 
16 #include <vector>
17 #include <string>
18 
19 
20 namespace sierra{
21 namespace nalu{
22 
23 class Realm;
24 class Simulation;
25 
27 {
28 public:
29 
33 
34  void load(const YAML::Node & node) ;
35 
36  void breadboard();
37 
38  void initialize();
39  Simulation *root();
40  Simulation *parent();
41 
42  void integrate_realm();
43  void provide_mean_norm();
44  bool simulation_proceeds();
45  Simulation* sim_{nullptr};
46 
47  double totalSimTime_;
48  double currentTime_;
50  double timeStepN_;
51  double timeStepNm1_;
52  double gamma1_;
53  double gamma2_;
54  double gamma3_;
61 
62  std::string name_;
63 
64  std::vector<std::string> realmNamesVec_;
65 
66  std::vector<Realm*> realmVec_;
67 
68  double get_time_step(
69  const NaluState &theState = NALU_STATE_N) const;
70  double get_current_time() const;
71  double get_gamma1() const;
72  double get_gamma2() const;
73  double get_gamma3() const;
74  int get_time_step_count() const;
75  double get_time_step_from_file();
78  double get_total_sim_time();
80  void compute_gamma();
81 
82 };
83 
84 } // namespace nalu
85 } // namespace Sierra
86 
87 #endif
~TimeIntegrator()
Definition: TimeIntegrator.C:56
Definition: TimeIntegrator.h:26
Definition: Simulation.h:28
bool simulation_proceeds()
Definition: TimeIntegrator.C:361
int get_time_step_count() const
Definition: TimeIntegrator.C:442
Definition: ABLForcingAlgorithm.C:26
void initialize()
Definition: TimeIntegrator.C:138
std::string name_
Definition: TimeIntegrator.h:62
bool adaptiveTimeStep_
Definition: TimeIntegrator.h:58
bool get_is_terminate_based_on_time()
Definition: TimeIntegrator.C:460
int get_max_time_step_count()
Definition: TimeIntegrator.C:475
Simulation * sim_
Definition: TimeIntegrator.h:45
double timeStepN_
Definition: TimeIntegrator.h:50
void breadboard()
Definition: TimeIntegrator.C:129
int timeStepCount_
Definition: TimeIntegrator.h:55
std::vector< std::string > realmNamesVec_
Definition: TimeIntegrator.h:64
double timeStepNm1_
Definition: TimeIntegrator.h:51
Simulation * parent()
Definition: TimeIntegrator.C:144
void load(const YAML::Node &node)
Definition: TimeIntegrator.C:61
void compute_gamma()
Definition: TimeIntegrator.C:403
double get_gamma3() const
Definition: TimeIntegrator.C:436
bool get_is_fixed_time_step()
Definition: TimeIntegrator.C:454
int maxTimeStepCount_
Definition: TimeIntegrator.h:56
void integrate_realm()
Definition: TimeIntegrator.C:148
bool terminateBasedOnTime_
Definition: TimeIntegrator.h:59
double gamma1_
Definition: TimeIntegrator.h:52
Simulation * root()
Definition: TimeIntegrator.C:143
double totalSimTime_
Definition: TimeIntegrator.h:47
double get_gamma2() const
Definition: TimeIntegrator.C:429
std::vector< Realm * > realmVec_
Definition: TimeIntegrator.h:66
void provide_mean_norm()
Definition: TimeIntegrator.C:341
NaluState
Definition: Enums.h:140
double gamma2_
Definition: TimeIntegrator.h:53
double currentTime_
Definition: TimeIntegrator.h:48
double get_gamma1() const
Definition: TimeIntegrator.C:422
Definition: Enums.h:141
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
double get_current_time() const
Definition: TimeIntegrator.C:396
TimeIntegrator()
Definition: TimeIntegrator.h:30
double gamma3_
Definition: TimeIntegrator.h:54
int nonlinearIterations_
Definition: TimeIntegrator.h:60
bool secondOrderTimeAccurate_
Definition: TimeIntegrator.h:57
double timeStepFromFile_
Definition: TimeIntegrator.h:49
double get_time_step(const NaluState &theState=NALU_STATE_N) const
Definition: TimeIntegrator.C:377
double get_total_sim_time()
Definition: TimeIntegrator.C:466
double get_time_step_from_file()
Definition: TimeIntegrator.C:448