MicroModelicaCCompiler  4.5.3
annotation.hpp
Go to the documentation of this file.
1 /*****************************************************************************
2 
3  This file is part of QSS Solver.
4 
5  QSS Solver is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  QSS Solver is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with QSS Solver. If not, see <http://www.gnu.org/licenses/>.
17 
18  ******************************************************************************/
19 
20 #pragma once
21 
22 #include <list>
23 #include <map>
24 #include <string>
25 #include <boost/variant/variant_fwd.hpp>
26 
27 #include <ast/ast_types.hpp>
28 #include <ir/model_matrix_gen.hpp>
29 #include <util/ast_util.hpp>
30 #include <util/util_types.hpp>
31 
32 namespace MicroModelica {
33 namespace IR {
34 
35 enum class Solver {
36  QSS,
37  CQSS,
38  LIQSS,
39  QSS2,
40  LIQSS2,
41  LIQSS_BDF,
42  QSS3,
43  LIQSS3,
44  QSS4,
45  DASSL,
46  DOPRI,
47  CVODE_BDF,
48  CVODE_AM,
49  IDA,
50  mLIQSS,
51  mLIQSS2
52 };
53 
54 enum class DT_Synch { DT_Fixed, DT_Asynchronous };
55 
56 class FunctionAnnotation {
57  public:
59  ~FunctionAnnotation() = default;
60  bool hasDerivative();
61  bool hasInclude();
62  bool hasIncludeDirectory();
63  bool hasLibraries();
64  bool hasLibraryDirectory();
65  bool insert(AST_Argument_Modification x);
66  string derivative();
67  string include();
68  string includeDirectory();
70  string libraryDirectory();
71 
72  protected:
74 
75  void initialize();
76 
77  map<std::string, FunctionAnnotation::type> _annotations;
78  std::string _derivative;
79  std::string _include;
80  std::string _includeDirectory;
82  std::string _libraryDirectory;
83 };
84 
86 
87 class ModelAnnotation {
88  public:
90  ~ModelAnnotation() = default;
91  void expComment(AST_Comment x, int id);
92  bool insert(AST_Argument_Modification x);
93  string desc();
94  list<double> dqmin();
95  list<double> dqrel();
96  double weight();
97  Solver solver();
98  string solverString();
99  double initialTime();
100  double finalTime();
101  double minStep();
102  double ZCHyst();
103  double derDelta();
104  double DT();
105  int lps();
106  void setNodeSize(int ns);
107  int nodeSize();
108  string commInterval();
109  list<double> sample();
110  bool symDiff();
111  int order();
112  string scheduler();
113  list<AST_Expression> output();
114  string storeData();
116  bool parallel();
117  int polyCoeffs();
118  string dtSynchString();
120  list<string> patohSettings();
121  list<string> scotchSettings();
122  list<string> metisSettings();
123  int jacobian();
124  bool isClassic();
125  AST_ExpressionList BDFPartition();
126  int BDFPartitionDepth();
127  double BDFMaxStep();
128  string EventId();
137  int getAnnotation(IntegerAnnotations annot) const;
138  bool hasAnnotation(IntegerAnnotations annot) const;
139 
140  protected:
141  enum class type {
142  EXPERIMENT,
143  DESC,
144  DQMIN,
145  DQREL,
146  WEIGHT,
147  SOLVER,
148  INITIAL_TIME,
149  FINAL_TIME,
150  MIN_STEP,
151  ZCHYST,
152  DER_DELTA,
153  LPS,
154  NODE_SIZE,
156  STEP_SIZE,
157  SYM_DIFF,
158  SCHEDULER,
159  OUTPUT,
160  STORE_DATA,
162  PARALLEL,
163  DELTAT,
164  DELTAT_SYNCH,
168  JACOBIAN,
171  BDF_MAX_STEP,
172  EVENT_ID,
173  HD_MATRIX,
174  HZ_MATRIX,
179  SD_MATRIX,
180  SZ_MATRIX,
181  RANDOM_SEED,
183  X_OUTPUT
184  };
185 
186  using IntAnnotValMap = std::map<IntegerAnnotations, int>;
187 
188  void initialize();
189  void processAnnotation(string annot, AST_Modification_Equal x);
190  void processArgument(AST_Argument_Modification arg);
191  void processList(AST_Expression x, list<double> *l);
192  void processList(AST_Expression x, list<string> *l);
193  void processExpressionList(AST_Expression x, AST_ExpressionList exps);
194  Solver getSolver(string s);
195  DT_Synch getDtSynch(string s);
196  void parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps &matrix);
197 
198  Solver _solver;
199  string _solverString;
200  string _commInterval;
201  bool _symDiff;
202  double _minStep;
203  int _lps;
204  double _derDelta;
205  int _nodeSize;
206  double _ZCHyst;
207  int _order;
208  string _scheduler;
209  string _storeData;
210  map<string, ModelAnnotation::type> _annotations;
211  list<double> _DQMin;
212  list<double> _DQRel;
213  double _weight;
214  list<double> _sample;
215  list<AST_Expression> _output;
216  double _initialTime;
217  double _finalTime;
219  bool _parallel;
220  double _dt;
221  int _polyCoeffs;
223  string _dtSynchString;
224  string _desc;
225  list<string> _patohSettings;
226  list<string> _scotchSettings;
227  list<string> _metisSettings;
228  int _jacobian;
229  AST_ExpressionList _BDFPartition;
230  int _BDFPartitionDepth;
231  double _BDFMaxStep;
240  string _event_ids;
242  map<string, IntegerAnnotations> _integer_annotations_map;
244 };
245 
246 using AnnotationType = boost::variant<ModelAnnotation, FunctionAnnotation>;
247 
249  public:
251  ~AnnotationValue() = default;
252  int integer();
253  void setInteger(int i);
254  double real();
255  void setReal(double d);
256  string str();
257  void setStr(string s);
258  string plainStr();
259  void setPlainStr(string plain_str);
260 
261  protected:
262  int _integer;
263  double _real;
264  string _str;
265  string _plain_str;
266 };
267 
268 class EvalAnnotation : public AST_Expression_Fold<AnnotationValue> {
269  public:
271  ~EvalAnnotation() override = default;
272 
273  private:
274  void setBoolean(bool condition, AnnotationValue *e);
275  AnnotationValue foldTraverseElement(AST_Expression) override;
277  AnnotationValue foldTraverseElementUMinus(AST_Expression) override;
278  std::vector<string> _tokens;
279 };
280 } // namespace IR
281 } // namespace MicroModelica
MicroModelica::IR::ModelAnnotation::HZMatrix
IR::MATRIX::UserDefMatrixExps HZMatrix()
Definition: annotation.cpp:708
MicroModelica::IR::FunctionAnnotation::includeDirectory
string includeDirectory()
Definition: annotation.cpp:131
MicroModelica::IR::AnnotationValue::_real
double _real
Definition: annotation.hpp:297
MicroModelica::IR::Solver::LIQSS2
@ LIQSS2
MicroModelica::IR::ModelAnnotation::type::SYM_DIFF
@ SYM_DIFF
MicroModelica::IR::ModelAnnotation::type::BDF_MAX_STEP
@ BDF_MAX_STEP
MicroModelica::IR::ModelAnnotation::_parallel
bool _parallel
Definition: annotation.hpp:253
MicroModelica::IR::AnnotationValue::AnnotationValue
AnnotationValue()
Definition: annotation.cpp:724
MicroModelica::IR::Solver::LIQSS3
@ LIQSS3
MicroModelica::IR::ModelAnnotation::_sz_matrix
IR::MATRIX::UserDefMatrixExps _sz_matrix
Definition: annotation.hpp:273
MicroModelica::IR::ModelAnnotation::ModelAnnotation
ModelAnnotation()
Definition: annotation.cpp:137
MicroModelica::IR::EvalAnnotation::~EvalAnnotation
~EvalAnnotation() override=default
MicroModelica::IR::DT_Synch::DT_Asynchronous
@ DT_Asynchronous
ModelTable< std::string, std::string >
MicroModelica::IR::FunctionAnnotation::type::LIBRARY_DIRECTORY
@ LIBRARY_DIRECTORY
MicroModelica::IR::AnnotationValue::setPlainStr
void setPlainStr(string plain_str)
Definition: annotation.cpp:740
MicroModelica::IR::FunctionAnnotation::_libraries
Util::SymbolTable _libraries
Definition: annotation.hpp:115
MicroModelica::IR::ModelAnnotation::insert
bool insert(AST_Argument_Modification x)
Definition: annotation.cpp:266
MicroModelica::IR::FunctionAnnotation::type
type
Definition: annotation.hpp:107
MicroModelica::IR::ModelAnnotation::ZCHyst
double ZCHyst()
Definition: annotation.cpp:658
MicroModelica::IR::ModelAnnotation::_commInterval
string _commInterval
Definition: annotation.hpp:234
MicroModelica::IR::ModelAnnotation::_BDFPartitionDepth
int _BDFPartitionDepth
Definition: annotation.hpp:264
MicroModelica::IR::ModelAnnotation::initialTime
double initialTime()
Definition: annotation.cpp:652
MicroModelica::IR::ModelAnnotation::type::RHS_ST_MATRIX
@ RHS_ST_MATRIX
MicroModelica::IR::ModelAnnotation::_dtSynch
DT_Synch _dtSynch
Definition: annotation.hpp:256
MicroModelica::IR::IntegerAnnotations::CVODEMaxOrder
@ CVODEMaxOrder
MicroModelica::IR::ModelAnnotation::type::HH_MATRIX
@ HH_MATRIX
AST_Expression_Fold
Definition: ast_util.hpp:195
MicroModelica::IR::FunctionAnnotation::initialize
void initialize()
Definition: annotation.cpp:56
MicroModelica::IR::ModelAnnotation::BDFPartition
AST_ExpressionList BDFPartition()
Definition: annotation.cpp:694
MicroModelica::IR::ModelAnnotation::_lps
int _lps
Definition: annotation.hpp:237
MicroModelica::IR::ModelAnnotation::type::X_OUTPUT
@ X_OUTPUT
MicroModelica::IR::ModelAnnotation::type::DELTAT_SYNCH
@ DELTAT_SYNCH
MicroModelica::IR::ModelAnnotation::parseMatrix
void parseMatrix(AST_Expression exp, IR::MATRIX::UserDefMatrixExps &matrix)
Definition: annotation.cpp:466
MicroModelica::IR::ModelAnnotation::_DQMin
list< double > _DQMin
Definition: annotation.hpp:245
MicroModelica::IR::EvalAnnotation::foldTraverseElement
AnnotationValue foldTraverseElement(AST_Expression) override
Definition: annotation.cpp:782
MicroModelica::IR::ModelAnnotation::LHSDSCMatrix
IR::MATRIX::UserDefMatrixExps LHSDSCMatrix()
Definition: annotation.cpp:714
MicroModelica::IR::ModelAnnotation::IntAnnotValMap
std::map< IntegerAnnotations, int > IntAnnotValMap
Definition: annotation.hpp:220
MicroModelica::IR::ModelAnnotation::type::HD_MATRIX
@ HD_MATRIX
MicroModelica::IR::ModelAnnotation::type::BDF_PARTITION_DEPTH
@ BDF_PARTITION_DEPTH
MicroModelica::IR::ModelAnnotation::BDFPartitionDepth
int BDFPartitionDepth()
Definition: annotation.cpp:696
MicroModelica::IR::ModelAnnotation::type::SD_MATRIX
@ SD_MATRIX
MicroModelica::IR::IntegerAnnotations
IntegerAnnotations
Definition: annotation.hpp:119
MicroModelica::IR::FunctionAnnotation::_libraryDirectory
std::string _libraryDirectory
Definition: annotation.hpp:116
MicroModelica::IR::ModelAnnotation::_patohSettings
list< string > _patohSettings
Definition: annotation.hpp:259
MicroModelica::IR::ModelAnnotation::processArgument
void processArgument(AST_Argument_Modification arg)
Definition: annotation.cpp:252
MicroModelica::IR::AnnotationType
boost::variant< ModelAnnotation, FunctionAnnotation > AnnotationType
Definition: annotation.hpp:280
MicroModelica::IR::ModelAnnotation::type::LHS_ST_MATRIX
@ LHS_ST_MATRIX
MicroModelica::IR::AnnotationValue::real
double real()
Definition: annotation.cpp:730
MicroModelica::IR::ModelAnnotation::metisSettings
list< string > metisSettings()
Definition: annotation.cpp:692
MicroModelica::IR::ModelAnnotation::type::LPS
@ LPS
MicroModelica::IR::EvalAnnotation::setBoolean
void setBoolean(bool condition, AnnotationValue *e)
Definition: annotation.cpp:834
ast_util.hpp
MicroModelica::IR::AnnotationValue
Definition: annotation.hpp:282
MicroModelica::IR::ModelAnnotation::solver
Solver solver()
Definition: annotation.cpp:644
MicroModelica::IR::AnnotationValue::setStr
void setStr(string s)
Definition: annotation.cpp:736
MicroModelica::IR::ModelAnnotation::minStep
double minStep()
Definition: annotation.cpp:656
MicroModelica::IR::ModelAnnotation::initialize
void initialize()
Definition: annotation.cpp:183
MicroModelica::IR::IntegerAnnotations::RandomSeed
@ RandomSeed
MicroModelica::IR::FunctionAnnotation::hasIncludeDirectory
bool hasIncludeDirectory()
Definition: annotation.cpp:71
MicroModelica::IR::ModelAnnotation::processAnnotation
void processAnnotation(string annot, AST_Modification_Equal x)
Definition: annotation.cpp:473
MicroModelica::IR::ModelAnnotation::type::DQMIN
@ DQMIN
MicroModelica::IR::ModelAnnotation::type::LHS_DSC_MATRIX
@ LHS_DSC_MATRIX
MicroModelica::IR::Solver::CVODE_AM
@ CVODE_AM
MicroModelica::IR::FunctionAnnotation::hasInclude
bool hasInclude()
Definition: annotation.cpp:69
MicroModelica::IR::ModelAnnotation::_lhs_dsc_matrix
IR::MATRIX::UserDefMatrixExps _lhs_dsc_matrix
Definition: annotation.hpp:271
MicroModelica::IR::MATRIX::UserDefMatrixExps
std::map< int,AST_ExpressionList > UserDefMatrixExps
Definition: model_matrix_gen.hpp:90
MicroModelica::IR::ModelAnnotation::_output
list< AST_Expression > _output
Definition: annotation.hpp:249
MicroModelica::IR::FunctionAnnotation::hasLibraryDirectory
bool hasLibraryDirectory()
Definition: annotation.cpp:75
MicroModelica::IR::Solver::QSS3
@ QSS3
MicroModelica::IR::ModelAnnotation::type::CV_ODE_MAX_ORDER
@ CV_ODE_MAX_ORDER
MicroModelica::IR::ModelAnnotation::_finalTime
double _finalTime
Definition: annotation.hpp:251
MicroModelica::IR::ModelAnnotation::desc
string desc()
Definition: annotation.cpp:632
MicroModelica::IR::Solver::LIQSS_BDF
@ LIQSS_BDF
MicroModelica::IR::ModelAnnotation::nodeSize
int nodeSize()
Definition: annotation.cpp:674
MicroModelica::IR::ModelAnnotation::_solverString
string _solverString
Definition: annotation.hpp:233
MicroModelica::IR::AnnotationValue::_str
string _str
Definition: annotation.hpp:298
MicroModelica::IR::ModelAnnotation::type::NODE_SIZE
@ NODE_SIZE
MicroModelica::IR::ModelAnnotation::dtSynch
DT_Synch dtSynch()
Definition: annotation.cpp:648
MicroModelica::IR::ModelAnnotation::type::WEIGHT
@ WEIGHT
MicroModelica::IR::ModelAnnotation::type::PARTITION_METHOD
@ PARTITION_METHOD
MicroModelica::IR::ModelAnnotation::SZMatrix
IR::MATRIX::UserDefMatrixExps SZMatrix()
Definition: annotation.cpp:720
MicroModelica::IR::ModelAnnotation::_minStep
double _minStep
Definition: annotation.hpp:236
MicroModelica::IR::ModelAnnotation::_nodeSize
int _nodeSize
Definition: annotation.hpp:239
MicroModelica::IR::ModelAnnotation::isClassic
bool isClassic()
Definition: annotation.cpp:666
MicroModelica::IR::ModelAnnotation::_current_exp_id
int _current_exp_id
Definition: annotation.hpp:275
MicroModelica::IR::ModelAnnotation::_solver
Solver _solver
Definition: annotation.hpp:232
MicroModelica::IR::Solver::IDA
@ IDA
MicroModelica::IR::ModelAnnotation::patohSettings
list< string > patohSettings()
Definition: annotation.cpp:688
MicroModelica::IR::ModelAnnotation::type::STEP_SIZE
@ STEP_SIZE
MicroModelica::IR::FunctionAnnotation::_include
std::string _include
Definition: annotation.hpp:113
MicroModelica::IR::ModelAnnotation::HHMatrix
IR::MATRIX::UserDefMatrixExps HHMatrix()
Definition: annotation.cpp:710
MicroModelica::IR::ModelAnnotation::weight
double weight()
Definition: annotation.cpp:640
MicroModelica::IR::ModelAnnotation::type::BDF_PARTITION
@ BDF_PARTITION
MicroModelica::IR::ModelAnnotation::polyCoeffs
int polyCoeffs()
Definition: annotation.cpp:702
MicroModelica::IR::ModelAnnotation::_hd_matrix
IR::MATRIX::UserDefMatrixExps _hd_matrix
Definition: annotation.hpp:266
MicroModelica::IR::ModelAnnotation::_rhs_st_matrix
IR::MATRIX::UserDefMatrixExps _rhs_st_matrix
Definition: annotation.hpp:270
MicroModelica::IR::ModelAnnotation::type::JACOBIAN
@ JACOBIAN
MicroModelica::IR::DT_Synch::DT_Fixed
@ DT_Fixed
MicroModelica::IR::ModelAnnotation::type::DESC
@ DESC
MicroModelica::IR::ModelAnnotation::_sd_matrix
IR::MATRIX::UserDefMatrixExps _sd_matrix
Definition: annotation.hpp:272
MicroModelica::IR::ModelAnnotation::_scheduler
string _scheduler
Definition: annotation.hpp:242
MicroModelica::IR::ModelAnnotation::_desc
string _desc
Definition: annotation.hpp:258
MicroModelica::IR::AnnotationValue::setReal
void setReal(double d)
Definition: annotation.cpp:732
MicroModelica::IR::ModelAnnotation::symDiff
bool symDiff()
Definition: annotation.cpp:682
model_matrix_gen.hpp
util_types.hpp
MicroModelica::IR::ModelAnnotation::type::HZ_MATRIX
@ HZ_MATRIX
MicroModelica::IR::FunctionAnnotation::type::DERIVATIVE
@ DERIVATIVE
MicroModelica::IR::ModelAnnotation::_BDFPartition
AST_ExpressionList _BDFPartition
Definition: annotation.hpp:263
MicroModelica::IR::ModelAnnotation::_weight
double _weight
Definition: annotation.hpp:247
MicroModelica::IR::FunctionAnnotation::libraries
Util::SymbolTable libraries() const
Definition: annotation.cpp:133
MicroModelica::IR::ModelAnnotation::type::EXPERIMENT
@ EXPERIMENT
MicroModelica::IR::ModelAnnotation::_annotations
map< string, ModelAnnotation::type > _annotations
Definition: annotation.hpp:244
MicroModelica::IR::ModelAnnotation::_storeData
string _storeData
Definition: annotation.hpp:243
MicroModelica::IR::ModelAnnotation::dqrel
list< double > dqrel()
Definition: annotation.cpp:638
MicroModelica::IR::ModelAnnotation::sample
list< double > sample()
Definition: annotation.cpp:678
MicroModelica::IR::ModelAnnotation::hasAnnotation
bool hasAnnotation(IntegerAnnotations annot) const
Definition: annotation.cpp:627
MicroModelica::IR::ModelAnnotation::type::SZ_MATRIX
@ SZ_MATRIX
MicroModelica::IR::ModelAnnotation::_partition_method_string
string _partition_method_string
Definition: annotation.hpp:252
MicroModelica::IR::Solver::DOPRI
@ DOPRI
MicroModelica::IR::AnnotationValue::~AnnotationValue
~AnnotationValue()=default
MicroModelica::IR::ModelAnnotation::_lhs_st_matrix
IR::MATRIX::UserDefMatrixExps _lhs_st_matrix
Definition: annotation.hpp:269
MicroModelica::IR::ModelAnnotation::_hh_matrix
IR::MATRIX::UserDefMatrixExps _hh_matrix
Definition: annotation.hpp:268
MicroModelica::IR::ModelAnnotation::type::MIN_STEP
@ MIN_STEP
MicroModelica::IR::DT_Synch
DT_Synch
Definition: annotation.hpp:88
MicroModelica::IR::AnnotationValue::setInteger
void setInteger(int i)
Definition: annotation.cpp:728
MicroModelica::IR::ModelAnnotation::dqmin
list< double > dqmin()
Definition: annotation.cpp:634
MicroModelica::IR::FunctionAnnotation::type::INCLUDE_DIRECTORY
@ INCLUDE_DIRECTORY
MicroModelica::IR::ModelAnnotation::type::RANDOM_SEED
@ RANDOM_SEED
MicroModelica::IR::ModelAnnotation::derDelta
double derDelta()
Definition: annotation.cpp:660
MicroModelica::IR::ModelAnnotation::type::SCHEDULER
@ SCHEDULER
MicroModelica::IR::ModelAnnotation::type
type
Definition: annotation.hpp:175
MicroModelica::IR::ModelAnnotation::type::EVENT_ID
@ EVENT_ID
MicroModelica::IR::ModelAnnotation::type::COMM_INTERVAL
@ COMM_INTERVAL
MicroModelica::IR::ModelAnnotation::output
list< AST_Expression > output()
Definition: annotation.cpp:686
MicroModelica::IR::ModelAnnotation::EventId
string EventId()
Definition: annotation.cpp:704
MicroModelica::IR::ModelAnnotation::type::DER_DELTA
@ DER_DELTA
MicroModelica::IR::Solver::CQSS
@ CQSS
MicroModelica::IR::ModelAnnotation::type::SCOTCH_SETTINGS
@ SCOTCH_SETTINGS
MicroModelica::IR::Solver::LIQSS
@ LIQSS
MicroModelica::IR::ModelAnnotation::getAnnotation
int getAnnotation(IntegerAnnotations annot) const
Definition: annotation.cpp:619
MicroModelica::IR::FunctionAnnotation::_derivative
std::string _derivative
Definition: annotation.hpp:112
MicroModelica::IR::ModelAnnotation::type::PATOH_SETTINGS
@ PATOH_SETTINGS
MicroModelica::IR::ModelAnnotation::type::OUTPUT
@ OUTPUT
MicroModelica::IR::ModelAnnotation::setNodeSize
void setNodeSize(int ns)
MicroModelica::IR::ModelAnnotation::finalTime
double finalTime()
Definition: annotation.cpp:654
MicroModelica::IR::ModelAnnotation::_integer_annotations_val
IntAnnotValMap _integer_annotations_val
Definition: annotation.hpp:277
MicroModelica::IR::ModelAnnotation::lps
int lps()
Definition: annotation.cpp:672
MicroModelica::IR::ModelAnnotation::commInterval
string commInterval()
Definition: annotation.cpp:676
MicroModelica::IR::ModelAnnotation::_dt
double _dt
Definition: annotation.hpp:254
MicroModelica::IR::ModelAnnotation::_derDelta
double _derDelta
Definition: annotation.hpp:238
MicroModelica::IR::ModelAnnotation::expComment
void expComment(AST_Comment x, int id)
Definition: annotation.cpp:235
MicroModelica::IR::ModelAnnotation::order
int order()
Definition: annotation.cpp:684
MicroModelica::IR::FunctionAnnotation::~FunctionAnnotation
~FunctionAnnotation()=default
MicroModelica::IR::Solver::mLIQSS
@ mLIQSS
MicroModelica::IR::FunctionAnnotation::include
string include()
Definition: annotation.cpp:129
MicroModelica::IR::AnnotationValue::_integer
int _integer
Definition: annotation.hpp:296
MicroModelica::IR::ModelAnnotation::type::METIS_SETTINGS
@ METIS_SETTINGS
MicroModelica::IR::ModelAnnotation::processList
void processList(AST_Expression x, list< double > *l)
Definition: annotation.cpp:313
MicroModelica::IR::ModelAnnotation::_ZCHyst
double _ZCHyst
Definition: annotation.hpp:240
MicroModelica::IR::ModelAnnotation::type::PARALLEL
@ PARALLEL
MicroModelica::IR::ModelAnnotation::type::STORE_DATA
@ STORE_DATA
MicroModelica::IR::IntegerAnnotations::XOutput
@ XOutput
MicroModelica::IR::ModelAnnotation::processExpressionList
void processExpressionList(AST_Expression x, AST_ExpressionList exps)
Definition: annotation.cpp:374
MicroModelica::IR::ModelAnnotation::partitionMethodString
string partitionMethodString()
Definition: annotation.cpp:646
MicroModelica::IR::ModelAnnotation::_event_ids
string _event_ids
Definition: annotation.hpp:274
MicroModelica::IR::ModelAnnotation::jacobian
int jacobian()
Definition: annotation.cpp:664
MicroModelica::IR::ModelAnnotation::_integer_annotations_map
map< string, IntegerAnnotations > _integer_annotations_map
Definition: annotation.hpp:276
MicroModelica::IR::ModelAnnotation::getDtSynch
DT_Synch getDtSynch(string s)
Definition: annotation.cpp:386
MicroModelica::IR::ModelAnnotation::_DQRel
list< double > _DQRel
Definition: annotation.hpp:246
MicroModelica::IR::FunctionAnnotation::FunctionAnnotation
FunctionAnnotation()
Definition: annotation.cpp:54
MicroModelica::IR::ModelAnnotation::_jacobian
int _jacobian
Definition: annotation.hpp:262
MicroModelica
Definition: files.cpp:45
MicroModelica::IR::FunctionAnnotation::_annotations
map< std::string, FunctionAnnotation::type > _annotations
Definition: annotation.hpp:111
MicroModelica::IR::ModelAnnotation::_BDFMaxStep
double _BDFMaxStep
Definition: annotation.hpp:265
MicroModelica::IR::ModelAnnotation::_polyCoeffs
int _polyCoeffs
Definition: annotation.hpp:255
MicroModelica::IR::ModelAnnotation::SDMatrix
IR::MATRIX::UserDefMatrixExps SDMatrix()
Definition: annotation.cpp:718
MicroModelica::IR::ModelAnnotation::_order
int _order
Definition: annotation.hpp:241
MicroModelica::IR::FunctionAnnotation::type::LIBRARY
@ LIBRARY
MicroModelica::IR::EvalAnnotation
Definition: annotation.hpp:302
MicroModelica::IR::Solver::DASSL
@ DASSL
MicroModelica::IR::ModelAnnotation::type::DELTAT
@ DELTAT
MicroModelica::IR::ModelAnnotation::storeData
string storeData()
Definition: annotation.cpp:662
MicroModelica::IR::EvalAnnotation::foldTraverseElementUMinus
AnnotationValue foldTraverseElementUMinus(AST_Expression) override
Definition: annotation.cpp:897
MicroModelica::IR::Solver
Solver
Definition: annotation.hpp:69
MicroModelica::IR::ModelAnnotation::RHSSTMatrix
IR::MATRIX::UserDefMatrixExps RHSSTMatrix()
Definition: annotation.cpp:716
MicroModelica::IR::FunctionAnnotation::hasDerivative
bool hasDerivative()
Definition: annotation.cpp:67
MicroModelica::IR::ModelAnnotation::_dtSynchString
string _dtSynchString
Definition: annotation.hpp:257
MicroModelica::IR::FunctionAnnotation::libraryDirectory
string libraryDirectory()
Definition: annotation.cpp:135
ast_types.hpp
MicroModelica::IR::FunctionAnnotation::type::INCLUDE
@ INCLUDE
MicroModelica::IR::ModelAnnotation::~ModelAnnotation
~ModelAnnotation()=default
MicroModelica::IR::AnnotationValue::str
string str()
Definition: annotation.cpp:734
MicroModelica::IR::AnnotationValue::plainStr
string plainStr()
Definition: annotation.cpp:738
MicroModelica::IR::Solver::mLIQSS2
@ mLIQSS2
MicroModelica::IR::ModelAnnotation::parallel
bool parallel()
Definition: annotation.cpp:700
MicroModelica::IR::Solver::QSS
@ QSS
MicroModelica::IR::ModelAnnotation::LHSSTMatrix
IR::MATRIX::UserDefMatrixExps LHSSTMatrix()
Definition: annotation.cpp:712
MicroModelica::IR::ModelAnnotation::type::FINAL_TIME
@ FINAL_TIME
MicroModelica::IR::ModelAnnotation::DT
double DT()
Definition: annotation.cpp:636
MicroModelica::IR::Solver::QSS4
@ QSS4
MicroModelica::IR::ModelAnnotation::getSolver
Solver getSolver(string s)
Definition: annotation.cpp:396
MicroModelica::IR::EvalAnnotation::EvalAnnotation
EvalAnnotation()
Definition: annotation.cpp:744
BinOpType
BinOpType
Definition: ast_types.hpp:137
MicroModelica::IR::ModelAnnotation::_initialTime
double _initialTime
Definition: annotation.hpp:250
MicroModelica::IR::ModelAnnotation::_symDiff
bool _symDiff
Definition: annotation.hpp:235
MicroModelica::IR::ModelAnnotation::type::DQREL
@ DQREL
MicroModelica::IR::FunctionAnnotation::_includeDirectory
std::string _includeDirectory
Definition: annotation.hpp:114
MicroModelica::IR::ModelAnnotation::scotchSettings
list< string > scotchSettings()
Definition: annotation.cpp:690
MicroModelica::IR::ModelAnnotation::scheduler
string scheduler()
Definition: annotation.cpp:680
MicroModelica::IR::ModelAnnotation::type::INITIAL_TIME
@ INITIAL_TIME
MicroModelica::IR::AnnotationValue::integer
int integer()
Definition: annotation.cpp:726
MicroModelica::IR::Solver::QSS2
@ QSS2
MicroModelica::IR::Solver::CVODE_BDF
@ CVODE_BDF
MicroModelica::IR::ModelAnnotation::_scotchSettings
list< string > _scotchSettings
Definition: annotation.hpp:260
MicroModelica::IR::FunctionAnnotation::hasLibraries
bool hasLibraries()
Definition: annotation.cpp:73
MicroModelica::IR::ModelAnnotation::type::SOLVER
@ SOLVER
MicroModelica::IR::FunctionAnnotation::insert
bool insert(AST_Argument_Modification x)
Definition: annotation.cpp:77
MicroModelica::IR::AnnotationValue::_plain_str
string _plain_str
Definition: annotation.hpp:299
MicroModelica::IR::ModelAnnotation::solverString
string solverString()
Definition: annotation.cpp:642
MicroModelica::IR::ModelAnnotation::_metisSettings
list< string > _metisSettings
Definition: annotation.hpp:261
MicroModelica::IR::ModelAnnotation::HDMatrix
IR::MATRIX::UserDefMatrixExps HDMatrix()
Definition: annotation.cpp:706
MicroModelica::IR::ModelAnnotation::_hz_matrix
IR::MATRIX::UserDefMatrixExps _hz_matrix
Definition: annotation.hpp:267
MicroModelica::IR::FunctionAnnotation::derivative
string derivative()
Definition: annotation.cpp:127
MicroModelica::IR::EvalAnnotation::_tokens
std::vector< string > _tokens
Definition: annotation.hpp:312
MicroModelica::IR::ModelAnnotation::BDFMaxStep
double BDFMaxStep()
Definition: annotation.cpp:698
MicroModelica::IR::ModelAnnotation::type::ZCHYST
@ ZCHYST
MicroModelica::IR::ModelAnnotation::dtSynchString
string dtSynchString()
Definition: annotation.cpp:650
MicroModelica::IR::ModelAnnotation::_sample
list< double > _sample
Definition: annotation.hpp:248