← Documentation
ADS-IDAC Engine 5.0.0
SystemDisplay.cpp
Go to the documentation of this file.
1// SystemDisplay.cpp: implementation of the SystemDisplay class.
2//
4
5#include "SystemDisplay.h"
6#include "../System/SystemModule.h"
7#include "../Branch/BranchRecord.h"
8#include <boost/serialization/export.hpp>
9#include "../Global/SimulationContext.h"
10#include <boost/archive/binary_oarchive.hpp>
11#include <boost/archive/binary_iarchive.hpp>
12BOOST_CLASS_EXPORT_IMPLEMENT(SystemDisplay)
13using namespace std;
14
15
17// Construction/Destruction
19
21{
25}
26
28{
29
30}
37}
40}
41double SystemDisplay::getCorrespondingHeatStructureValue(int _sequence_of_mesh_point){
42 HeatStructure *hs_ptr;
43 double r_value;
44 string err_str;
45 r_value = -99999.0;
46//
49 }
54 r_value = hs_ptr->getMeshPointTemperature(_sequence_of_mesh_point);
55 break;
56 default:
57 cout << "SystemDisplay::getCorrespondingSystemParameterValue Heat Structure has incorrect type of card: "
58 << static_cast<int>(ptr_to_corresponding_TH_element->getTypeOfCard()) << endl;
59 ofstream fout("err messages.txt", ios::app);
60 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue Heat Structure has incorrect type of card: "
61 << static_cast<int>(ptr_to_corresponding_TH_element->getTypeOfCard()) << '\n';
62 fout.close();
63 r5pars_.sim_err = true;
64 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingHeatStructureValue err.");
66 break;
67 }
68 }
69 else{//could not find the corresponding component
70 cout << "SystemDisplay::getCorrespondingSystemParameterValue Heat Structure can not find the corresponding component: "
72 ofstream fout("err messages.txt", ios::app);
73 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue Heat Structure can not find the corresponding component: "
75 fout.close();
76 r5pars_.sim_err = true;
77 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingHeatStructureValue err.");
79 }
80 return r_value;
81}
82
84 ControlVariable *cv_ptr;
85// HeatStructure *hs_ptr;
86 HydraulicJunction *hj_ptr;
87 HydraulicVolume *hv_ptr;
88 InteractiveVariable *iv_ptr;
89 LogicalTrip *lt_ptr;
90 VariableTrip *vt_ptr;
91 double r_value;
92 string err_str, str;
93 r_value = -99999.0;
94// map<string, THElement *> system_map;
97 }
103 if(str.compare("Pressure") == 0){
105 }
106 else if(str.compare("Liquid_Temperature") == 0){
108 }
109 else if(str.compare("Vapor_Temperature") == 0){
111 }
112 else if(str.compare("Saturation_Temperature") == 0){
114 }
115 else if(str.compare("Boron_Density") == 0){
117 }
118 else if(str.compare("Equilibrium_Quality") == 0){
120 }
121 else if(str.compare("Flow_Regime_Number") == 0){
123 }
124 else {
125 cout << "SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
126 << SystemDisplay::getCorrespondingSystemName() << " can not be recognized" << endl;
127 ofstream fout("err messages.txt", ios::app);
128 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
129 << SystemDisplay::getCorrespondingSystemName() << " can not be recognized\n";
130 fout.close();
131 r5pars_.sim_err = true;
132 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingSystemParameterValue err.");
134 }
135 }
136 if(!r5pars_.sim_err){
139 case 0:
140 r_value = hv_ptr->getPressure();
141 break;
142 case 1:
143 r_value = hv_ptr->getLiquidTemperature();
144 break;
145 case 2:
146 r_value = hv_ptr->getVaporTemperature();
147 break;
148 case 3:
149 r_value = hv_ptr->getSaturationTemperature();
150 break;
151 case 4:
152 r_value = hv_ptr->getBoronDensity();
153 break;
154 case 5:
155 r_value = hv_ptr->getEquilibriumQuality();
156 break;
157 case 6:
158 r_value = hv_ptr->getFlowRegimeNumber();
159 break;
160 default:
161 break;
162 }
163 }
164 break;
168 if(str.compare("Mass_Flow_Rate") == 0){
170 }
171 else if(str.compare("Liquid_Velocity") == 0){
173 }
174 else if(str.compare("Vapor_Velocity") == 0){
176 }
177 else {
178 cout << "SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
179 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized" << endl;
180 ofstream fout("err messages.txt", ios::app);
181 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
182 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized\n";
183 fout.close();
184 r5pars_.sim_err = true;
185 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingSystemParameterValue err.");
187 }
188 }
189 if(!r5pars_.sim_err){
192 case 0:
193 r_value = hj_ptr->getMassFlowRate();
194 break;
195 case 1:
196 r_value = hj_ptr->getLiquidVelocity();
197 break;
198 case 2:
199 r_value = hj_ptr->getVaporVelocity();
200 break;
201 default:
202 break;
203 }
204 }
205 break;
208 r_value = vt_ptr->getTripTime();
209 break;
212 r_value = lt_ptr->getTripTime();
213 break;
216 r_value = iv_ptr->getDisplayValue();
217 break;
220 r_value = cv_ptr->getControlValue();
221 break;
222// case Relap5ComponentType::HeatStructure:
223// hs_ptr = (HeatStructure *) ptr_to_corresponding_TH_element;
224// r_value = hs_ptr->getMeshPointTemperature(sequence_of_mesh_point);
225// break;
226 default:
227 cout << "SystemDisplay::getCorrespondingSystemParameterValue can not find the corresponding type of component: "
229 ofstream fout("err messages.txt", ios::app);
230 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue can not find the corresponding type of component: "
232 fout.close();
233 r5pars_.sim_err = true;
234 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingSystemParameterValue err.");
236 break;
237 }
238 }
239 else{//could not find the corresponding component
240 cout << "SystemDisplay::getCorrespondingSystemParameterValue can not find the corresponding component: "
242 ofstream fout("err messages.txt", ios::app);
243 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue can not find the corresponding component: "
245 fout.close();
246 r5pars_.sim_err = true;
247 g_sim.Branch_center.setTempESMessage("SystemDisplay::getCorrespondingSystemParameterValue err.");
249 }
250 return r_value;
251}
252
254 ControlVariable *cv_ptr;
255 HeatStructure *hs_ptr;
256 HydraulicJunction *hj_ptr;
257 HydraulicVolume *hv_ptr;
258 string r_str = "NOT_SPECIFIED";
259 string str;
260// map<string, THElement *> system_map;
263 }
269 if(str.compare("Pressure") == 0){
271 }
272 else if(str.compare("Liquid_Temperature") == 0){
274 }
275 else if(str.compare("Vapor_Temperature") == 0){
277 }
278 else if(str.compare("Saturation_Temperature") == 0){
280 }
281 else if(str.compare("Boron_Density") == 0){
283 }
284 else if(str.compare("Equilibrium_Quality") == 0){
286 }
287 else if(str.compare("Flow_regime_Number") == 0){
289 }
290 else {
291 cout << "SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
292 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized" << endl;
293 ofstream fout("err messages.txt", ios::app);
294 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
295 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized\n";
296 fout.close();
297 r5pars_.sim_err = true;
298 g_sim.Branch_center.setTempESMessage("SystemDisplay::setCorrespondingSystemParameterUnit err.");
300 }
301 }
302 if(!r5pars_.sim_err){
305 case 0:
306 str = hv_ptr->getUnitOfPressure();
307 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
309 break;
310 case 1:
311 str = hv_ptr->getUnitOfLiquidTemperature();
312 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
314 break;
315 case 2:
316 str = hv_ptr->getUnitOfVaporTemperature();
317 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
319 break;
320 case 3:
321 str = hv_ptr->getUnitOfSaturationTemperature();
322 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
324 break;
325 case 4:
326 str = hv_ptr->getUnitOfBoronDensity();
327 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
329 break;
330 //case 5 and case 6 do not have units
331 default:
332 break;
333 }
334 }
335 break;
339 if(str.compare("Mass_Flow_Rate") == 0){
341 }
342 else if(str.compare("Liquid_Velocity") == 0){
344 }
345 else if(str.compare("Vapor_Velocity") == 0){
347 }
348 else {
349 cout << "SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
350 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized" << endl;
351 ofstream fout("err messages.txt", ios::app);
352 fout << r5pars_.timesno << " SystemDisplay::getCorrespondingSystemParameterValue (SystemDisplay::getCorrespondingSystemName()): "
353 << (SystemDisplay::getCorrespondingSystemName()) << " can not be recognized\n";
354 fout.close();
355 r5pars_.sim_err = true;
356 g_sim.Branch_center.setTempESMessage("SystemDisplay::setCorrespondingSystemParameterUnit err.");
358 }
359 }
360 if(!r5pars_.sim_err){
363 case 0:
364 str = hj_ptr->getUnitOfMassFlowRate();
365 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
367 break;
368 case 1:
369 str = hj_ptr->getUnitOfLiquidVelocity();
370 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
372 break;
373 case 2:
374 str = hj_ptr->getUnitOfVaporVelocity();
375 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
377 break;
378 default:
379 break;
380 }
381 }
382 break;
385 break;
388 break;
391 str = cv_ptr->getUnitOfControlValue();
392 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
394 break;
397 str = hs_ptr->getUnitOfMeshPointTemperature();
398 if(type_of_display == DisplayType::ParameterTrend) str += "_per_min";
400 break;
401 default:
402// case Relap5ComponentType::InteractiveVariable does not have unit
403 break;
404 }
405 }
406 else{//could not find the corresponding component
407 cout << "DisplayElement::getCorrespondingSystemParameterValue can not find the corresponding component: "
409 ofstream fout("err messages.txt", ios::app);
410 fout << r5pars_.timesno << " DisplayElement::getCorrespondingSystemParameterValue can not find the corresponding component: "
412 fout.close();
413 r5pars_.sim_err = true;
414 g_sim.Branch_center.setTempESMessage("SystemDisplay::setCorrespondingSystemParameterUnit err.");
416 }
417}
422
424 this->copyDisplayElement(_sdp);
428}
430 this->saveDisplayElementToFile(fout);
431 fout << static_cast<int>(type_of_display) << ' ' << corresponding_system_parameter_name_in_number << ' ' << functional_state << '\n';
432}
436}
DisplayType
Definition: SimConstants.h:41
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
void setTempTypeOfConsequence(Consequence)
Stores the consequence of the end state the running sequence will get.
void setTempESMessage(std::string)
Stores the description of the end state the running sequence will get if it is terminated (set by mod...
double getControlValue()
std::string getUnitOfControlValue()
void saveDisplayElementToFile(std::ofstream &)
void readInfoFromFile(std::ifstream &)
std::string getCorrespondingSystemName()
std::string getCorrespondingSystemParameterName()
void retrieveDisplayElementFromFile(std::ifstream &)
void readInfoFromFileWithoutDisplayName(std::ifstream &)
void setCorrespondingSystemParameterUnit(std::string)
void copyDisplayElement(DisplayElement &)
std::string getUnitOfMeshPointTemperature()
double getMeshPointTemperature(int index)
std::string getUnitOfLiquidVelocity()
std::string getUnitOfVaporVelocity()
std::string getUnitOfMassFlowRate()
std::string getUnitOfSaturationTemperature()
double getLiquidTemperature()
double getSaturationTemperature()
double getBoronDensity()
std::string getUnitOfLiquidTemperature()
double getVaporTemperature()
std::string getUnitOfVaporTemperature()
double getFlowRegimeNumber()
std::string getUnitOfBoronDensity()
double getEquilibriumQuality()
std::string getUnitOfPressure()
double getTripTime()
Definition: LogicalTrip.cpp:27
void readInfoFromFileWithoutDisplayName(std::ifstream &)
virtual ~SystemDisplay()
double getCorrespondingSystemParameterValue()
void setTypeOfDisplay(DisplayType type)
void setCorrespondingSystemParameterNameInNumber(int name)
int corresponding_system_parameter_name_in_number
Definition: SystemDisplay.h:35
int getFunctionalState()
int getCorrespondingSystemParameterNameInNumber()
DisplayType getTypeOfDisplay()
double getCorrespondingHeatStructureValue(int)
void readInfoFromFile(std::ifstream &)
void setPtrToCorrespondingTHElement(THElement *ptr)
void saveSystemDisplayToFile(std::ofstream &)
THElement * getPtrToCorrespondingTHElement()
void retrieveSystemDisplayFromFile(std::ifstream &)
THElement * ptr_to_corresponding_TH_element
Definition: SystemDisplay.h:37
void setFunctionalState(int state)
DisplayType type_of_display
Definition: SystemDisplay.h:34
void setCorrespondingSystemParameterUnit()
void copySystemDisplay(SystemDisplay &)
THElement * getComponentFromSystemMap(std::string)
Relap5ComponentType getTypeOfCard()
Definition: THElement.cpp:34
double getTripTime()
struct @0 r5pars_
constexpr int Succeed
Definition: SimConstants.h:104
SystemModule Plant
Maps RELAP5 card numbers to C++ objects.
BranchRecord Branch_center
Dynamic event tree state.