←
Documentation
ADS-IDAC Engine
5.0.0
CalculationAid.cpp
Go to the documentation of this file.
1
// CalculationAid.cpp: implementation of the CalculationAid class.
2
//
4
5
#include "
CalculationAid.h
"
6
#include "../Scheduler/Scheduler.h"
7
#include "../Scheduler/CommunicationPlace.h"
8
#include "../Branch/BranchRecord.h"
9
#include <boost/serialization/export.hpp>
10
#include "../Global/SimulationContext.h"
11
BOOST_CLASS_EXPORT_IMPLEMENT(
CalculationAid
)
12
13
using namespace
std;
14
15
17
// Construction/Destruction
19
20
CalculationAid::CalculationAid
()
21
{
22
23
}
24
25
CalculationAid::~CalculationAid
()
26
{
27
28
}
29
30
void
CalculationAid::readInfoFromFile
()
31
{
32
string
directory, str, str1, file_name;
33
bool
found_file;
34
ifstream fin;
35
int
i, n_polynomial;
36
file_name =
g_sim
.
SScheduler
.
getProjectDirectory
();
37
str1 =
"/Input/Crew/"
;
38
file_name += str1;
39
file_name +=
"Calculation_Aid.txt"
;
40
fin.open(file_name.c_str(), ios::in);
41
if
(!fin.is_open()){
//the file contains the list of Calculation Aid cannot be found
42
cout <<
"File: "
<< file_name <<
" cound not be found"
<< endl;
43
ofstream fout(
"err messages.txt"
, ios::app);
44
fout <<
r5pars_
.timesno <<
" File: "
<< file_name <<
" cound not be found\n"
;
45
fout.close();
46
r5pars_
.terminateall =
true
;
47
found_file =
false
;
48
return
;
49
}
50
else
{
51
found_file =
true
;
52
fin >> str >> n_polynomial;
53
for
(i = 0; i < n_polynomial; i++){
54
auto
poly_pt = make_unique<polynomial>();
55
poly_pt->readInfoFromFile(fin);
56
list_of_polynomial
.push_back(std::move(poly_pt));
57
}
58
fin.close();
59
}
60
}
61
62
polynomial
*
CalculationAid::checkExistanceOfPolynomial
(
string
_name)
63
{
64
polynomial
*poly_pt =
nullptr
;
65
bool
found =
false
;
66
for
(
auto
& p :
list_of_polynomial
){
67
if
(p->GetCurveName() == _name){
68
poly_pt = p.get();
69
found =
true
;
70
break
;
71
}
72
}
73
if
(found ==
false
)
74
{
75
//Error messege here!!
76
}
77
return
poly_pt;
78
}
79
80
void
CalculationAid::copyCalculationAidToRestartInfoForRestart
(
const
CalculationAid
& _CA)
81
{
82
for
(
auto
& src : _CA.
list_of_polynomial
)
83
{
84
auto
ptr = make_unique<polynomial>();
85
ptr->copyPolynomial(*src);
86
list_of_polynomial
.push_back(std::move(ptr));
87
}
88
}
89
90
void
CalculationAid::copyCalculationAidFromRestartInfoForRestart
(
const
CalculationAid
& _CA)
91
{
92
for
(
auto
& src : _CA.
list_of_polynomial
)
93
{
94
auto
ptr = make_unique<polynomial>();
95
ptr->copyPolynomial(*src);
96
list_of_polynomial
.push_back(std::move(ptr));
97
}
98
}
99
100
void
CalculationAid::clearCalculationAidForRestart
()
101
{
102
list_of_polynomial
.clear();
103
}
104
// Explicit instantiation if needed
105
// template void CalculationAid::serialize<boost::archive::binary_oarchive>(boost::archive::binary_oarchive &, const unsigned int);
106
// template void CalculationAid::serialize<boost::archive::binary_iarchive>(boost::archive::binary_iarchive &, const unsigned int);
CalculationAid.h
Polynomial calculation utilities for parameter interpolation and curve fitting.
g_sim
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
Definition:
SimulationContext.cpp:7
CalculationAid
Definition:
CalculationAid.h:26
CalculationAid::~CalculationAid
virtual ~CalculationAid()
Definition:
CalculationAid.cpp:25
CalculationAid::copyCalculationAidToRestartInfoForRestart
void copyCalculationAidToRestartInfoForRestart(const CalculationAid &)
Definition:
CalculationAid.cpp:80
CalculationAid::copyCalculationAidFromRestartInfoForRestart
void copyCalculationAidFromRestartInfoForRestart(const CalculationAid &)
Definition:
CalculationAid.cpp:90
CalculationAid::list_of_polynomial
std::vector< std::unique_ptr< polynomial > > list_of_polynomial
Definition:
CalculationAid.h:36
CalculationAid::readInfoFromFile
void readInfoFromFile()
Definition:
CalculationAid.cpp:30
CalculationAid::clearCalculationAidForRestart
void clearCalculationAidForRestart()
Definition:
CalculationAid.cpp:100
CalculationAid::CalculationAid
CalculationAid()
Definition:
CalculationAid.cpp:20
CalculationAid::checkExistanceOfPolynomial
polynomial * checkExistanceOfPolynomial(std::string)
Definition:
CalculationAid.cpp:62
Scheduler::getProjectDirectory
std::string getProjectDirectory()
Definition:
Scheduler.cpp:595
polynomial
Definition:
Polynomial.h:15
r5pars_
struct @0 r5pars_
SimulationContext::SScheduler
Scheduler SScheduler
Simulation scheduling, parses CLI options.
Definition:
SimulationContext.h:41
src
ADSIDAC
CalculationAid
CalculationAid.cpp
Generated by
1.9.4