#include <Model.h>

Public Member Functions | |
Model (Libpf::User::Defaults defaults, uint32_t id, Persistency *persistency, Persistent *parent, Persistent *root) | |
bool | isPristine (void) const |
void | unSetInput (void) |
wipes out all tags marked as inputs More... | |
void | reportMessages (void) |
recursively collect status of all sub-objects and report to parent More... | |
void | resetErrors (void) |
void | setWarning (std::string s) |
send new warning message to local queue More... | |
void | setError (std::string s) |
send new error message to local queue More... | |
void | reportWarning (std::string s) |
propagate warning message from sub-object to local queue More... | |
void | reportError (std::string s) |
propagate error message from sub-object to local queue More... | |
void | setCalculated (void) |
increments nCalculations counter and unsets pristinity More... | |
void | setPristineRecursive (void) |
force next calculation to restart as if the model had never been calculated during this runtime session, also for all contained objects More... | |
void | setPristine (void) |
force next calculation to restart as if the model had never been calculated during this runtime session More... | |
void | setRunTime (double t) |
set the run time More... | |
void | stash (void) const |
void | applyStash (void) |
void | clearStash (void) const |
clear the store cache More... | |
virtual Category | category (void) const =0 |
return model Category More... | |
virtual void | calculate (int level=0)=0 |
virtual void | setup (void)=0 |
performs initializations required immediately before solution More... | |
virtual int | maximumIterations (void) |
returns default maximum iterations for main computation; defaults to 200 More... | |
virtual void | initializeNonPersistents (void)=0 |
estimates hidden, non-persistent unknowns from the current results More... | |
virtual ObjectiveNleAd * | objectiveFunction (void)=0 |
returns a pointer to the model's objective function More... | |
std::ostream & | print (std::ostream &os, bool strings, bool quantities, bool integers, bool recursive) const |
std::ostream & | printFull (std::ostream &) const |
print the model quantities, including derivative info, in text format to os More... | |
void | printHtml (const char *dir) const |
virtual void | printSvg (const char *fileName, bool tiny, bool raster, int offset) |
void | printSvgAll (const char *dir, bool tiny, bool raster, int offset, std::vector< std::string > &list) |
Recursively output the model and all descendants in SVG format as separate id.SVG files in the directory dir. More... | |
virtual void | printXml (const char *dir, Model *precedingSibling, Model *followingSibling) const |
void | printXmlToc (std::ofstream &toc, int indent) const |
void | printOds (std::ofstream &ods) const |
![]() | |
Object (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr) | |
Libpf::User::Defaults | defaults (void) const |
void | readVariables (Persistency *persistency) |
reads Q, QV and QM from persistency More... | |
void | readParameters (Persistency *persistency) |
reads I, IV, S and SV from persistency More... | |
Node & | operator= (const Node &) |
copy assignment operator More... | |
Node & | operator= (Node &&other) |
move assignment More... | |
~Object (void) | |
const std::string & | type (void) const |
Object & | at (const std::string &fullRelativeTag) |
const Object & | at (const std::string &fullRelativeTag) const |
Object & | at (const std::string &fullRelativeTag, int index) |
const Value & | Q (const std::string &tag) const |
const Value & | Q (const std::string &tag, int index) const |
const Value & | Q (const std::string &tag, int row, int column) const |
Value & | Q (const std::string &tag) |
Value & | Q (const std::string &tag, int index) |
Value & | Q (const std::string &tag, int row, int column) |
const Value & | Q (const std::string &tag, std::string componentName) const |
Value & | Q (const std::string &tag, std::string componentName) |
const Value & | Q (const std::string &tag, int index, std::string componentName) const |
Value & | Q (const std::string &tag, int index, std::string componentName) |
const int & | I (const std::string &tag) const |
const int & | I (const std::string &tag, int index) const |
int & | I (const std::string &tag) |
int & | I (const std::string &tag, int index) |
const std::string & | S (const std::string &tag) const |
const std::string & | S (const std::string &tag, int index) const |
std::string & | S (const std::string &tag) |
std::string & | S (const std::string &tag, int index) |
bool | operator!= (const Object &rhs) const |
bool | operator== (const Object &rhs) const |
bool | compareParameters (const Object &rhs) const |
bool | existsI (const std::string &tag) const |
bool | existsS (const std::string &tag) const |
bool | existsQ (const std::string &tag) const |
const RangeQuantities | quantities (void) |
const ConstRangeQuantities | quantities (void) const |
![]() | |
Node (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr) | |
Node (const Node &other) | |
copy constructor More... | |
Node (Node &&other) | |
move constructor More... | |
virtual std::unique_ptr< Node > | clone (void) const |
~Node () | |
int | insert (Persistency *persistency) const |
int | update (Persistency *persistency) const |
void | restore (Persistency *persistency) |
void | remove (Persistency *persistency) const |
uint32_t | rootId (void) const |
uint32_t | range (void) const |
uint32_t | getId (void) |
returns the next available id and increments the internal counter More... | |
Node & | addChild (std::string type, uint32_t id, Persistency *persistency) |
Node & | addChild (std::string type, Libpf::User::Defaults defaults) |
Node & | addChild (const Node &child) |
Node & | addChild (std::unique_ptr< Node > child) |
std::unique_ptr< Node > | prune (const std::string &tag) |
const Node & | child (const std::string &tag) const |
Node & | at (const std::string &fullRelativeTag) |
const Node & | at (const std::string &fullRelativeTag) const |
uint32_t | descendants (void) const |
Persistent * | root (void) const |
void | renameChild (const std::string &oldName, const std::string &newName) |
bool | existsChild (std::string tag) const |
bool | exists (uint32_t id) |
Node & | search (uint32_t id) |
bool | operator!= (const Node &rhs) const |
bool | operator== (const Node &rhs) const |
bool | isRestored (void) const |
return whether the Node has just been retrieved from persistent storage More... | |
void | setIcon (std::string icon, double width, double height) |
bool | hasIcon (void) const |
std::string | iconName (bool raster) const |
double | iconWidth (void) const |
double | iconHeight (void) const |
const Range | children (void) |
const ConstRange | children (void) const |
![]() | |
Persistent (const std::string &tag, const std::string &description, Persistent *parent, uint32_t id) | |
main constructor More... | |
Persistent (const Persistent &) | |
copy constructor More... | |
Persistent & | operator= (const Persistent &) |
copy assignment More... | |
Persistent (Persistent &&other) | |
move constructor More... | |
Persistent & | operator= (Persistent &&other) |
move assignment More... | |
~Persistent (void) | |
uint32_t | id (void) const |
std::string | uuid (void) const |
uint32_t | parentId (void) const |
double | created_at (void) const |
double | updated_at (void) const |
void | updated_at (double u) const |
![]() | |
Item (const Item &other) | |
copy constructor copies all elements but parent which is set to nullptr More... | |
Item & | operator= (const Item &other) |
copy assignment operator copies all elements but parent which is set to nullptr More... | |
Item (const std::string &tag, const std::string &description, Persistent *parent) | |
Item (Item &&other) | |
move constructor More... | |
Item & | operator= (Item &&other) |
move assignment operator More... | |
virtual | ~Item (void) |
const std::string & | tag (void) const |
const std::string & | description (void) const |
std::string | fullTag (void) const |
const Persistent * | parent (void) const |
void | setTag (const std::string &tag) |
void | setDescription (const std::string &description) |
void | setWideTag (const std::wstring &tag) |
wide-character variant, More... | |
void | setWideDescription (const std::wstring &description) |
wide-character variant, More... | |
bool | operator!= (const Item &rhs) const |
bool | operator== (const Item &rhs) const |
![]() | |
Diagnostic (void) | |
void | setVerbosity (int verbosity) |
sets the verbosity level for this instance More... | |
int | verbosity (void) const |
Public Attributes | |
Integer | nCalculations |
number of times the model has been calculated More... | |
StringVector | errors |
errors from the last computation More... | |
StringVector | warnings |
warnings from the last computation More... | |
Protected Member Functions | |
void | printSvgXlink (std::ostream &svg, const std::string &link, double width, double height) |
void | addComponentVectorVariable (std::vector< Quantity > &variable, const std::string &tag, const std::string &description, Quantity::ValueType value) |
template<typename T > | |
void | addSubObjects (int verbosityFile, Libpf::User::Defaults defaults, Persistency *persistency, int count, const std::string &optionKey, const std::string &typeKey, const std::string &tagKey, const std::string &description, std::vector< T * > &vector) |
![]() | |
int | retrieveInteger (const Libpf::User::Defaults &defaults, uint32_t id, Persistency *persistency, std::string tag, int min, int max, int def=-1) |
std::string | retrieveString (const Libpf::User::Defaults &defaults, uint32_t id, Persistency *persistency, std::string tag, const std::string def) |
template<class T > | |
void | addVariable (T &variable) |
template<class T > | |
void | addVectorVariable (std::vector< T > &variable, const std::string &tag, const std::string &description, uint32_t size, typename T::ValueType value) |
Object (const Object &other) | |
copy constructor More... | |
Object (Object &&other) | |
move constructor More... | |
Object & | operator= (const Object &) |
copy assignment operator More... | |
Object & | operator= (Object &&other) |
move assignment operator More... | |
![]() | |
int | offset (void) const |
Additional Inherited Members | |
![]() | |
std::map< std::string, Integer * > | integers_ |
collection of integer variables More... | |
std::map< std::string, IntegerVector * > | integerVectors_ |
collection of integer variable vectors More... | |
std::map< std::string, Quantity * > | quantities_ |
collection of real variables More... | |
std::map< std::string, QuantityVector * > | quantityVectors_ |
collection of real variable vectors More... | |
std::map< std::string, QuantityMatrix * > | quantityMatrices_ |
collection of real variable matrices More... | |
std::map< std::string, String * > | strings_ |
collection of string variables More... | |
std::map< std::string, StringVector * > | stringVectors_ |
collection of string variable vectors More... | |
![]() | |
std::map< std::string, std::unique_ptr< Node > > | children_ |
the collection of direct descendants More... | |
![]() | |
Persistent * | parent_ |
pointer to the parent Persistent; set to this by the constructor if Item is self-standing or a root Persistent of a tree More... | |
![]() | |
int | verbosityInstance |
Detailed Description
extends Object to provide:
- output (printXml, printSvg...)
- calculation (calculate...) facilities
Constructor & Destructor Documentation
Model::Model | ( | Libpf::User::Defaults | defaults, |
uint32_t | id, | ||
Persistency * | persistency, | ||
Persistent * | parent, | ||
Persistent * | root | ||
) |
Member Function Documentation
|
protected |
populates a vector variable indexed by components and inserts the references in the collections of variables
- Parameters
-
variable the vector variable tag the tag of the vector variable description the description of the vector variable value the initialization value for the elements of the vector variable
|
protected |
populates a vector of sub-objects and registers them as children of the Node
- Exceptions
-
ErrorRunTime if the sub-object type is unspecified
- Parameters
-
[in] verbosityFile the file-level verbosity [in] defaults default informations to build and configure the sub-objects [in] persistency database connection [in] count number of sub-objects [in] optionKey base string to find the sub-object types in the default data structure [in] typeKey base string to recognize the sub-object types [in] tagKey base string to generate the tags [in] description UTF-8 encoded description [out] vector the sub-object pointers will be placed in here; the vector will be resized if necessary
void Model::applyStash | ( | void | ) |
restore status from the last-in-first-out queue recursively for all sub-objects
|
pure virtual |
calculates the model; implementations must call setCalculated
- Parameters
-
level used for indenting, defaults to 0
Implemented in HtuNtu, Stream, Exchanger, PhaseM, PhaseMN, MultiExchanger, Separator, RatingColumnTraySieve, Compressor, FlowSheet, Divider, FlashSplitter, FlashDegasser, MultiReaction< N >, MultiReaction< 2 >, Pump, ReactionYield, Mixer, RatingHeat, Splitter, FlashDrum, Terminator, Selector, Degasser, MultiReactionTransfer, and Multiplier.
|
pure virtual |
return model Category
Implemented in PhaseM, FlowSheet, Reaction, VertexBase, MultiReaction< N >, MultiReaction< 2 >, EdgeBase, RatingHeat, and RatingColumn.
void Model::clearStash | ( | void | ) | const |
clear the store cache
|
pure virtual |
estimates hidden, non-persistent unknowns from the current results
Implemented in HtuNtu, Stream, Exchanger, MultiExchanger, FlowSheet, RatingColumnTraySieve, Separator, Compressor, FlashSplitter, PhaseGerg2004< U >, FlashDegasser, Divider, PhasePcsaft< U >, Reaction, RatingHeat, MultiReaction< N >, MultiReaction< 2 >, FlashDrum, PhaseIapws< U >, PhaseIapws< PhaseType::vapor >, PhaseIapws< PhaseType::liquid >, PhaseTotal, Mixer, PhaseEos< U >, PhaseIdeal< T >, Splitter, PhaseActivity< E >, PhaseSimpleTotal, Terminator, PhaseSimple< T >, Degasser, Selector, and Multiplier.
bool Model::isPristine | ( | void | ) | const |
- Returns
- true if the model has not yet been calculated during this runtime session
|
virtual |
returns default maximum iterations for main computation; defaults to 200
|
pure virtual |
returns a pointer to the model's objective function
Implemented in HtuNtu, Exchanger, PhaseM, MultiExchanger, FlowSheet, StreamSimple< NV, NL, NS >, RatingColumnTraySieve, FlashDrumBase, Separator, StreamTwo< F >, StreamTwo< FlashVl >, Compressor, StreamOne, StreamThree< F >, StreamTwoSolid< F >, StreamOneSolid, Divider, Reaction, RatingHeat, StreamIapwsLiquidVapor, MultiReaction< N >, MultiReaction< 2 >, Mixer, Splitter, Terminator, Degasser, Selector, and Multiplier.
std::ostream& Model::print | ( | std::ostream & | os, |
bool | strings, | ||
bool | quantities, | ||
bool | integers, | ||
bool | recursive | ||
) | const |
print the model in text format to os
- Parameters
-
os the output stream string turn on output of string variables quantities turn on output of quantity variables integers turn on output of integer variables recursive recursively print sub-models
std::ostream& Model::printFull | ( | std::ostream & | ) | const |
print the model quantities, including derivative info, in text format to os
void Model::printHtml | ( | const char * | dir | ) | const |
recursively print the model and all its sub-models as id.html in the directory dir recursively print all nodes as id.html in the directory dir
- Parameters
-
dir the directory where the HTML files will be saved
void Model::printOds | ( | std::ofstream & | ods | ) | const |
Output the streams structure in Open Document Format for Office Applications (OpenDocument) v1.1, Spreadsheet document
- Parameters
-
ods file name to write to
|
virtual |
Output the model in SVG format
- Parameters
-
fileName SVG file name (optional full path + file name and .svg extension) tiny if true, print to SVG Tiny 1.1 format, else to Full SVG 1.1 format raster if true, the xlinks in the image elements will point to raster (png) icons, else they will be vector (svg) icons offset offset to apply to the ids
- Remarks
- any flowsheet will be modified afterwards because all cut streams will be reattached and reverted make this const
Reimplemented in FlowSheet, and VertexBase.
void Model::printSvgAll | ( | const char * | dir, |
bool | tiny, | ||
bool | raster, | ||
int | offset, | ||
std::vector< std::string > & | list | ||
) |
Recursively output the model and all descendants in SVG format as separate id.SVG files in the directory dir.
- Parameters
-
dir the directory where the SVG files will be saved, without trailing [back]slash tiny if true, print to SVG Tiny 1.1 format, else to Full SVG 1.1 format raster if true, the xlinks in the image elements will point to raster (png) icons, else they will be vector (svg) icons offset offset to apply to the ids [out] list the list of filenames will be appended to this list
- Remarks
- any flowsheet will be modified afterwards because all cut streams will be reattached and reverted
|
protected |
utility function for printSvg, writes to the supplied out svg stream a short SVG file which contains an xlink to the supplied link
- Parameters
-
svg the stream where the SVG should be written to link the filename of the SVG file to link, complete with the SVG extension width the width of the image height the width of the image
|
virtual |
recursively print the model and all its sub-models as id.xml in the directory dir
- Parameters
-
dir the directory where the XML files will be saved, without trailing [back]slash precedingSibling if first sibling NULL else a pointer to the preceding sibling followingSibling if last sibling NULL else a pointer to the following sibling
void Model::printXmlToc | ( | std::ofstream & | toc, |
int | indent | ||
) | const |
prints the table of content as a single xml file
- Parameters
-
toc file name to write to indent number of spaces to indent
void Model::reportError | ( | std::string | s | ) |
propagate error message from sub-object to local queue
void Model::reportMessages | ( | void | ) |
recursively collect status of all sub-objects and report to parent
Delete all error and warning messages and reset to 0 nErrors and nWarnings
void Model::reportWarning | ( | std::string | s | ) |
propagate warning message from sub-object to local queue
void Model::resetErrors | ( | void | ) |
void Model::setCalculated | ( | void | ) |
increments nCalculations counter and unsets pristinity
void Model::setError | ( | std::string | s | ) |
send new error message to local queue
void Model::setPristine | ( | void | ) |
force next calculation to restart as if the model had never been calculated during this runtime session
void Model::setPristineRecursive | ( | void | ) |
force next calculation to restart as if the model had never been calculated during this runtime session, also for all contained objects
void Model::setRunTime | ( | double | t | ) |
set the run time
|
pure virtual |
performs initializations required immediately before solution
Implemented in ReactionOxidationNaphthalene, ReactionOxidationPhenol, ReactionOxidationC2H4, ReactionOxidationNH3, ReactionOxidationC2H6, ReactionOxidationEquilibriumN2, ReactionOxidationN2, ReactionSynthesisEquilibriumNH3, ReactionSynthesisNH3, ReactionReformingEquilibriumMeOH, ReactionReformingMeOH, ReactionOxidationMeOH, ReactionReformingEquilibriumC3H8, ReactionReformingC3H8, ReactionReformingEquilibriumCH4, ReactionReformingCH4, ReactionOxidationH2, ReactionWaterGasC, ReactionOxidationC, HtuNtu, ReactionOxidationCO, Column, ReactionOxidationEquilibriumCH4, Exchanger, PhaseM, ReactionOxidationCH4, MultiExchanger, FlowSheet, ReactionWaterGasShiftEquilibrium, Pipe, MultiStage, FlashDrumBase, HeatTransfer, Separator, RatingColumnTraySieve, Stream, MultiCompressorIntercooled< N >, Compressor, ReboilerCrossFlow, FallingFilm, Pump, MultiStageOneTwo, Divider, ReactionWaterGasShift, ColumnSection, MultiStage2D, MultiReaction< N >, MultiReaction< 2 >, ShellAndTube, TubesBoiling, RatingHeat, Mixer, Decanter, PipeBase, Splitter, FlashDrum, Terminator, LiquidRingVacuumPump, TubesSensible, ReactionYield, Selector, Degasser, TubesFallingFilmBoiling, Zone, ElectricalConsumption, RatingHeatShellAndTubeFallingFilmReboiler, RatingHeatShellAndTubeHeater, RatingHeatShellAndTubeThermosiphon, CompressionStage, ShellCondensing, Multiplier, and PressureSwingAbsorption.
void Model::setWarning | ( | std::string | s | ) |
send new warning message to local queue
void Model::stash | ( | void | ) | const |
store current status in a last-in-first-out queue recursively for all sub-objects
void Model::unSetInput | ( | void | ) |
wipes out all tags marked as inputs
Member Data Documentation
|
mutable |
errors from the last computation
|
mutable |
number of times the model has been calculated
|
mutable |
warnings from the last computation
The documentation for this class was generated from the following file: