-
Notifications
You must be signed in to change notification settings - Fork 2
/
CirculationModel_la.h
143 lines (114 loc) · 3.36 KB
/
CirculationModel_la.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
// Filename: CirculationModel.h
// Created on 04 May 2007 by Boyce Griffith
// Modified 2019, Alexander D. Kaiser
#ifndef included_CirculationModel
#define included_CirculationModel
/////////////////////////////// INCLUDES /////////////////////////////////////
// IBTK INCLUDES
#include <ibtk/ibtk_utilities.h>
// SAMRAI INCLUDES
#include <CellVariable.h>
#include <tbox/Database.h>
#include <tbox/Serializable.h>
// C++ STDLIB INCLUDES
#include <vector>
// NAMESPACE
#include <ibamr/app_namespaces.h>
/////////////////////////////// CLASS DEFINITION /////////////////////////////
/*!
* \brief Class CirculationModel
*/
class CirculationModel : public Serializable
{
public:
/*!
* \brief The object name.
*/
string d_object_name;
/*!
* \brief Whether the object is registered with the restart manager.
*/
bool d_registered_for_restart;
/*!
* \brief Windkessel model data.
*/
double d_time;
int d_nsrc;
vector<double> d_psrc;
vector<double> d_qsrc;
vector<string> d_srcname;
double d_P_PA;
double d_P_LA;
double d_Q_R;
double d_Q_P;
double d_Q_mi;
/*!
* \brief The level of the patch hierarchy on which the Lagrangian
* structures that interface the boundary are located.
*/
int d_bdry_interface_level_number;
/*!
* \brief Constructor
*/
CirculationModel(const string& object_name, double P_LA_0, double P_PV_0, double t=0.0, bool register_for_restart=true);
/*!
* \brief Destructor.
*/
virtual ~CirculationModel();
/*!
* \brief Advance time-dependent data.
*/
void advanceTimeDependentData(const double dt,
const double Q_mi);
/*!
* \name Implementation of Serializable interface.
*/
/*!
* Write out object state to the given database.
*
* When assertion checking is active, database point must be non-null.
*/
void putToDatabase(Pointer<Database> db);
void write_plot_code();
private:
/*!
* \brief Copy constructor.
*
* \note This constructor is not implemented and should not be used.
*
* \param from The value to copy to this object.
*/
CirculationModel(const CirculationModel& from);
/*!
* \brief Assignment operator.
*
* \note This operator is not implemented and should not be used.
*
* \param that The value to assign to this object.
*
* \return A reference to this object.
*/
CirculationModel& operator=(const CirculationModel& that);
/*!
* Write out source/sink state data to disk.
*/
void writeDataFile() const;
/*!
* Read object state from the restart file and initialize class data
* members. The database from which the restart data is read is determined
* by the object_name specified in the constructor.
*
* Unrecoverable Errors:
*
* - The database corresponding to object_name is not found in the
* restart file.
*
* - The class version number and restart version number do not match.
*
*/
void getFromRestart();
};
/////////////////////////////// INLINE ///////////////////////////////////////
//#include <CirculationModel.I>
//////////////////////////////////////////////////////////////////////////////
#endif //#ifndef included_CirculationModel