← 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"
11BOOST_CLASS_EXPORT_IMPLEMENT(CalculationAid)
12
13using namespace std;
14
15
17// Construction/Destruction
19
21{
22
23}
24
26{
27
28}
29
31{
32 string directory, str, str1, file_name;
33 bool found_file;
34 ifstream fin;
35 int i, n_polynomial;
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
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
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
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
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);
Polynomial calculation utilities for parameter interpolation and curve fitting.
SimulationContext g_sim
Global simulation context: the single instance, defined in SimulationContext.cpp.
virtual ~CalculationAid()
void copyCalculationAidToRestartInfoForRestart(const CalculationAid &)
void copyCalculationAidFromRestartInfoForRestart(const CalculationAid &)
std::vector< std::unique_ptr< polynomial > > list_of_polynomial
void clearCalculationAidForRestart()
polynomial * checkExistanceOfPolynomial(std::string)
std::string getProjectDirectory()
Definition: Scheduler.cpp:595
struct @0 r5pars_
Scheduler SScheduler
Simulation scheduling, parses CLI options.