Vertex model to represent a generic multi-stage countercurrent unit. More...

#include <MultiStage.h>

Inheritance diagram for MultiStage:

Public Member Functions

 MultiStage (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 ~MultiStage (void)
 
virtual const std::string & type (void) const
 
std::string stagename (int i)
 
std::string streamname (int j, int i)
 
std::string cutstreamname (int j, int i)
 
void pre (Calculatable::SolutionMode solutionMode, int level)
 
void post (Calculatable::SolutionMode solutionMode, int level)
 
void makeUserEquations (std::list< Assignment * >::iterator &)
 user will code here "specification" equation list for sequential calculation More...
 
void setup (void)
 performs initializations required immediately before solution More...
 
int sequential (void)
 
- Public Member Functions inherited from FlowSheet
 FlowSheet (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 ~FlowSheet (void)
 
void addCut (std::string s)
 makes the stream with tag s a cut stream, allocates a new stream with tag s+"bis" with same type as s, reconnects More...
 
void removeCut (std::string s)
 deletes the cut stream with tag s+"bis" and reconnects stream s as required More...
 
void restoreCuts (void)
 recursively restore cut streams More...
 
void calculate (int level=0)
 
void go (Calculatable::SolutionMode solutionMode, int level) final
 
void addUnit (const std::string &type, Libpf::User::Defaults defaults)
 
void addStream (const std::string &type, Libpf::User::Defaults defaults, const std::string &from, const std::string &port_from, const std::string &to, const std::string &port_to)
 non-template variant, see #236 More...
 
void makeSequentialAssembly (std::list< Assignment * >::iterator &p)
 build equations associated with sequential mode solution (cut streams) More...
 
bool isAssignmentActive (std::list< Assignment * >::iterator &q) const
 will be implemented in Model-aware derived class More...
 
void setMinSequential (int minSequential)
 
virtual bool supportsSimultaneous (void)
 returns true if flowsheet can be solved in simultaneous mode; defaults to true More...
 
ObjectiveNleAdobjectiveFunction (void)
 returns a pointer to the model's objective function More...
 
SolverNleInterfacesolver (void)
 
int calculateResidualsLocal (void)
 compute residuals and store into local vector y_; must be provided by implementations More...
 
void setup_of (void)
 set up problem size, pick up objective functions, assemble unknowns, residuals and scalers list More...
 
void initializeNonPersistents (void)
 estimates hidden, non-persistent unknowns from the current results More...
 
void check_inout (void)
 Check flowsheet-level in- and out-flows. More...
 
bool check (void)
 Check connections in Edges and Vertexes. More...
 
Category category (void) const
 return model Category More...
 
void printSvg (const char *fileName, bool tiny, bool raster, int offset)
 
Value massBalance (void) const
 
Value energyBalance (void) const
 
void printPluggable (void) const
 diagnostic print More...
 
int inletIdFromPort (const std::string &port) const
 
const std::string & inletTag (int i) const
 
int inletConnection (const std::string &tag) const
 
bool isInletConnection (const std::string &tag) const
 
int outletIdFromPort (const std::string &port) const
 
const std::string & outletTag (int i) const
 
int outletConnection (const std::string &tag) const
 
bool isOutletConnection (const std::string &tag) const
 
bool isDag (void) const
 Returns true if the graph is a Directed Acyclic Graph (DAG) More...
 
void printDot (const char *s, int id=0) const
 
void printGraph (std::ostream &os) const
 print Vertex and Edge lists to os More...
 
- Public Member Functions inherited from VertexBase
 VertexBase (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
void translate (std::string &port)
 translates port name from user-friendly synonyms into the canonical form, or leaves unchanged More...
 
virtual void checkBalance (void)
 call calculateBalance, then issue error/warning if required More...
 
Category category (void) const
 return model Category More...
 
void printSvg (const char *fileName, bool tiny, bool raster, int offset)
 
virtual PortLocation locationFromPort (std::string port) const
 
PortLocation locationFromEdge (std::string edgeTag) const
 
const std::string & edgeFromPort (const std::string &port) const
 
const std::string & portFromEdge (const std::string &edgeTag) const
 
- Public Member Functions inherited from Model
 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 int maximumIterations (void)
 returns default maximum iterations for main computation; defaults to 200 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
 
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
 
- Public Member Functions inherited from Object
 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...
 
Nodeoperator= (const Node &)
 copy assignment operator More...
 
Nodeoperator= (Node &&other)
 move assignment More...
 
 ~Object (void)
 
const std::string & type (void) const
 
Objectat (const std::string &fullRelativeTag)
 
const Objectat (const std::string &fullRelativeTag) const
 
Objectat (const std::string &fullRelativeTag, int index)
 
const ValueQ (const std::string &tag) const
 
const ValueQ (const std::string &tag, int index) const
 
const ValueQ (const std::string &tag, int row, int column) const
 
ValueQ (const std::string &tag)
 
ValueQ (const std::string &tag, int index)
 
ValueQ (const std::string &tag, int row, int column)
 
const ValueQ (const std::string &tag, std::string componentName) const
 
ValueQ (const std::string &tag, std::string componentName)
 
const ValueQ (const std::string &tag, int index, std::string componentName) const
 
ValueQ (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
 
- Public Member Functions inherited from Node
 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< Nodeclone (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...
 
NodeaddChild (std::string type, uint32_t id, Persistency *persistency)
 
NodeaddChild (std::string type, Libpf::User::Defaults defaults)
 
NodeaddChild (const Node &child)
 
NodeaddChild (std::unique_ptr< Node > child)
 
std::unique_ptr< Nodeprune (const std::string &tag)
 
const Nodechild (const std::string &tag) const
 
Nodeat (const std::string &fullRelativeTag)
 
const Nodeat (const std::string &fullRelativeTag) const
 
uint32_t descendants (void) const
 
Persistentroot (void) const
 
void renameChild (const std::string &oldName, const std::string &newName)
 
bool existsChild (std::string tag) const
 
bool exists (uint32_t id)
 
Nodesearch (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
 
- Public Member Functions inherited from Persistent
 Persistent (const std::string &tag, const std::string &description, Persistent *parent, uint32_t id)
 main constructor More...
 
 Persistent (const Persistent &)
 copy constructor More...
 
Persistentoperator= (const Persistent &)
 copy assignment More...
 
 Persistent (Persistent &&other)
 move constructor More...
 
Persistentoperator= (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
 
- Public Member Functions inherited from Item
 Item (const Item &other)
 copy constructor copies all elements but parent which is set to nullptr More...
 
Itemoperator= (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...
 
Itemoperator= (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 Persistentparent (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
 
- Public Member Functions inherited from Diagnostic
 Diagnostic (void)
 
void setVerbosity (int verbosity)
 sets the verbosity level for this instance More...
 
int verbosity (void) const
 
- Public Member Functions inherited from Task
 Task (void)
 
 ~Task (void)
 
double cost (void) const
 
int level (void) const
 
int core (void) const
 get the core where this task is scheduled or -1 if not yet scheduled More...
 
double startTime (void) const
 return forecast start time More...
 
double endTime (void) const
 return forecast end time More...
 
void setLevel (int l)
 
void setCore (int c)
 
double setStartTime (double t)
 sets the start time and returns the end time More...
 
- Public Member Functions inherited from SequentialAssembly
 SequentialAssembly (void)
 Lifecycle. More...
 
 ~SequentialAssembly (void)
 
double deltaseq (void) const
 
int neqs (void) const
 returns the number of Assignments More...
 
void wegsteinstep (void)
 Substitutes RHS into *LHSP for all Assignments. More...
 
void directstep (void)
 Updates *LHSP with RHS using Wegstein accelerated direct substitution for all Assignments. More...
 
void makeAssignment (std::list< Assignment * >::iterator &p, Value &lhs, Value rhs, std::string tag, std::string rhsstring, int i, ScalingMode sm=ScalingMode::noscaling, double xmin=0.0, double xmax=1.0, Value factor=One)
 
void addCut (std::string name, Stream *in, Stream *out)
 
void removeCut (std::string tag)
 
Assignmentoperator<< (Assignment *ep)
 includes a new Assignment to the corresponding collection More...
 
void print (void) const
 
void purgeAss (void)
 delete all equations More...
 
void setDamping (double d)
 set damping coefficient for direct substitution More...
 
double damping (void) const
 returns current value of the damping coefficient for direct substitution More...
 
void setMaxChange (double c)
 set maximum relative step change for direct substitution More...
 
double maxChange (void) const
 returns current value of maximum relative step change for direct substitution More...
 
- Public Member Functions inherited from ObjectiveNleAdFlowsheet
 ObjectiveNleAdFlowsheet (std::string t)
 constructor More...
 
 ~ObjectiveNleAdFlowsheet (void)
 
- Public Member Functions inherited from ObjectiveNleAdVertex
 ObjectiveNleAdVertex (std::string t)
 constructor More...
 
void unscalex (double *x)
 transforms back the vector of scaled variables x by applying the unscaling More...
 
int calculateResiduals (std::vector< Value > &y, uint32_t offset)
 
void operator() (double *, double *, Jacobian *)
 implements the () operator by calling calculateResidualsLocal and calculateResiduals; overrides ObjectiveNleAd::operator() More...
 
- Public Member Functions inherited from ObjectiveNleAd
 ObjectiveNleAd (std::string t)
 constructor More...
 
double xmin (unsigned int i)
 return the lower bound on unknown i More...
 
double xmax (unsigned int i)
 return the upper bound on unknown i More...
 
unsigned int size (void) const
 returns the current size of the problem More...
 
void scalex (double *x)
 transforms the vector of "real" variables x by applying the scaling More...
 
void addUnknown (Value *x, Scaler scaler, const std::string &tag)
 
void changeUnknown (unsigned int i, Value *x, Scaler scaler, const std::string &tag)
 change the i-th unknown More...
 
void addObjectiveFunction (ObjectiveNleAd &of)
 append the remote objective function More...
 
- Public Member Functions inherited from ObjectiveNleAuto
 ObjectiveNleAuto (std::string t)
 constructor More...
 
bool init (double *x)
 
void setValue (unsigned int i, double x)
 copies the value for the i-th unknown from x in the Value pointed to, without altering the derivatives More...
 
void copyresults (double *x)
 copies the unknown values from the x vector into the Values pointed to More...
 
void inactivate (void)
 inactivates all unknowns More...
 
void clearderivatives (void)
 clears the derivative information for all unknowns without setting to inactive More...
 
void setActive (unsigned int i)
 activates the i-th unknown More...
 
void operator() (double *, double *, Jacobian *J)
 implements the () operator by calling calculateResiduals; derived class may override it More...
 
void setx (unsigned int i, Value &x)
 sets the i-th unknown to x More...
 
const Valueunknown (unsigned int i) const
 returns a reference to the i-th unknown More...
 
const std::string & unknownTag (unsigned int i) const
 returns a reference to the tag of the i-th unknown More...
 
double xmin (unsigned int i)
 return the lower bound on unknown i More...
 
double xmax (unsigned int i)
 return the upper bound on unknown i More...
 
void print (void) const
 lists unknowns More...
 
const std::string & tagof (void) const
 returns the tag of the instance More...
 
void settagof (std::string t)
 sets the tag of the instance More...
 
void appendtagof (const std::string &t)
 appends to the tag of the instance More...
 
int zero_residuals (std::vector< Value > &y, uint32_t offset)
 
void addUnknown (Value *x, const std::string &tag)
 
void changeUnknown (unsigned int i, Value *x, const std::string &tag)
 change the i-th unknown More...
 
- Public Member Functions inherited from ObjectiveNleInterface
 ObjectiveNleInterface (void)
 
- Public Member Functions inherited from Connectivity
 Connectivity (Libpf::User::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 ~Connectivity (void)
 
void attach (EdgeBase &edge, std::string &port) final
 
void detach (std::string port) final
 Detaches the edge from the port with name "port". More...
 
bool check (void)
 
void calculateBalance (void)
 calculate cmdot, mdotin, mdotout, mdotcomps[] and cduty based on inlet/outlet streams More...
 
std::string portInlet (int i) const
 
std::string portOutlet (int i) const
 
bool isInletConnected (int i) const
 
bool isOutletConnected (int i) const
 
EdgeBaseinlet (int i)
 
EdgeBaseoutlet (int i)
 
EdgeBaseedgeFromPort (const std::string &port)
 
void printConnectivity (void) const
 diagnostic print More...
 

Public Attributes

std::vector< QuantitydeltaP
 Pressure drop in the sense of each stream flow; if pressureoption==equilibrium only deltaP[0] is used and that is Pbottom - Ptop. More...
 
Integer nStage
 Number of stages. More...
 
Integer nStreams
 Number of stream couples connected. More...
 
Integer referenceStream
 reference stream will not be cut More...
 
std::vector< Stringoption
 
String pressureoption
 equilibrium or separate; if set to equilibrium all streams exiting a stage will have same pressure More...
 
String typeT
 the type of the model which sits on the Vertexes More...
 
String typeU
 the type of the model which sits on the top bottom Edges More...
 
String typeV
 the type of the model which sits on the bottom top Edges More...
 
- Public Attributes inherited from FlowSheet
CutsSolution mode
 Mode used for solving the cuts in the flowsheet. More...
 
IntegerVector enableAssignment
 Enable Assignment. More...
 
Integer NITER
 Number of iterations for flowsheet cuts convergence. More...
 
Quantity seqTol
 Tolerance for sequential modular mode. More...
 
Quantity seqErr
 Current error for sequential modular mode. More...
 
- Public Attributes inherited from VertexBase
Quantity cmdot
 Cumulative mass flow, inlet - outlet. More...
 
Quantity mdotin
 inlet mass flow More...
 
Quantity mdotout
 outlet mass flow More...
 
std::vector< Quantitymdotcomps
 Cumulative mass flow of each component, inlet - outlet. More...
 
Quantity cduty
 Cumulative enthalpy flow, inlet - outlet. More...
 
- Public Attributes inherited from Model
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...
 
- Public Attributes inherited from Task
int weight
 for backTrack_ and findCycles More...
 
- Public Attributes inherited from SequentialAssembly
std::map< std::string, Cut * > cuts_
 collection of cut streams to automatically generate the Assignments converging them More...
 
std::list< Assignment * > ass_
 collection of Assignments, containing the assembly of explicit equations More...
 
std::vector< Scaler * > scalers_
 collection of optional scalers for the unknowns More...
 
- Public Attributes inherited from ObjectiveNleInterface
int verbosityLocal
 
- Public Attributes inherited from Connectivity
Integer nIn
 Number of connected inlet EdgeBases (non-persistent); should not be set directly: use attach instead. More...
 
Integer nOut
 Number of connected outlet EdgeBases (non-persistent); should not be set directly: use attach instead. More...
 
Integer maxNIn
 Maximum number of connected inlet EdgeBases. More...
 
Integer maxNOut
 Maximum number of connected outlet EdgeBases. More...
 
String constraints
 Used internally to persist connectivity constraints. More...
 

Static Public Attributes

static const std::string type_
 

Additional Inherited Members

- Public Types inherited from VertexBase
enum  PortLocation { north, south, east, west }
 
- Public Types inherited from Calculatable
enum  SolutionMode { Null = 0, sequential, simultaneous, singlePassSimultaneous }
 
- Protected Member Functions inherited from FlowSheet
void setInputConnection (std::string port, std::string internalStream)
 
void setOutputConnection (std::string port, std::string internalStream)
 
- Protected Member Functions inherited from VertexBase
void registerSynonym (std::string alias, std::string port)
 
void clearBalance (void)
 used in calculateBalance, zeroes out the required variables More...
 
- Protected Member Functions inherited from Model
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)
 
- Protected Member Functions inherited from Object
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...
 
Objectoperator= (const Object &)
 copy assignment operator More...
 
Objectoperator= (Object &&other)
 move assignment operator More...
 
- Protected Member Functions inherited from Node
int offset (void) const
 
- Protected Member Functions inherited from ObjectiveNleAd
void prepare_ (double *x, Jacobian *J)
 uscales x (unknowns) values from calling function and puts them in x_ Quantities More...
 
void packResults_ (double *x, double *y, Jacobian *J)
 
 ~ObjectiveNleAd ()
 
- Protected Member Functions inherited from ObjectiveNleAuto
 ~ObjectiveNleAuto ()
 
- Protected Member Functions inherited from ObjectiveNleInterface
 ~ObjectiveNleInterface ()
 
- Protected Member Functions inherited from Connectivity
void inletRequired (int i)
 
- Protected Attributes inherited from FlowSheet
ObjectiveNleAdmyof_
 derived classes can supply their own additional equations and set this pointer in the constructor More...
 
- Protected Attributes inherited from Object
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...
 
- Protected Attributes inherited from Node
std::map< std::string,
std::unique_ptr< Node > > 
children_
 the collection of direct descendants More...
 
- Protected Attributes inherited from Item
Persistentparent_
 pointer to the parent Persistent; set to this by the constructor if Item is self-standing or a root Persistent of a tree More...
 
- Protected Attributes inherited from Diagnostic
int verbosityInstance
 
- Protected Attributes inherited from ObjectiveNleAdVertex
bool set_
 true if setup_of has already been called More...
 
- Protected Attributes inherited from ObjectiveNleAd
std::vector< Scalerscaler_
 provide scaling and unscaling More...
 
- Protected Attributes inherited from ObjectiveNleAuto
std::vector< Valueresiduals
 Residuals. More...
 
- Protected Attributes inherited from Connectivity
std::vector< EdgeBase * > inlets_
 inlet EdgeBase pointer vector More...
 
std::vector< EdgeBase * > outlets_
 outlet EdgeBase pointer vector More...
 

Detailed Description

Vertex model to represent a generic multi-stage countercurrent unit.

Vertex numbering from 0 to nStage-1, increasing in the Direction of the "liquid" flow

List of ports:

Options:

  • nStage Number of stages, valid range 0..INT_MAX, defaults to 1
  • nStreams Number of stream couples connected, valid range 0..18, defaults to 2
  • referenceStream reference stream that will not be cut, valid range 0..INT_MAX, defaults to 0
  • typeT the type of the model which sits on the Vertexes; default: FlashDegasser<StreamIdealLiquidVapor>
  • typeU the type of the model which sits on the top-bottom Edges; default: StreamIdealLiquidVapor
  • typeV the type of the model which sits on the bottom-top Edges; default: StreamLiquid

#include <libpf/MultiStage.h>

Remarks
Warning
Thread safe:
Extendable:
Platform dependencies:

Constructor & Destructor Documentation

MultiStage::MultiStage ( Libpf::User::Defaults  defaults,
uint32_t  id = 0,
Persistency persistency = nullptr,
Persistent parent = nullptr,
Persistent root = nullptr 
)
MultiStage::~MultiStage ( void  )

Member Function Documentation

std::string MultiStage::cutstreamname ( int  j,
int  i 
)

return complete name of cut stream j outlet from stage i

Parameters
jstream number
istage number
void MultiStage::makeUserEquations ( std::list< Assignment * >::iterator &  p)
virtual

user will code here "specification" equation list for sequential calculation

Implements FlowSheet.

void MultiStage::post ( Calculatable::SolutionMode  solutionMode,
int  level 
)
virtual

flowsheet post-computations; to be implemented by any concrete FlowSheet-derived class

Remarks
will be executed after each sequential or simultaneous iteration

Implements FlowSheet.

void MultiStage::pre ( Calculatable::SolutionMode  solutionMode,
int  level 
)
virtual

flowsheet pre-computations; to be implemented by any concrete FlowSheet-derived class

Remarks
will be executed before each sequential or simultaneous iteration

Implements FlowSheet.

int MultiStage::sequential ( void  )
virtual
Returns
the maximum number of iterations for sequential computation defaults to 5; to increase it in complex flowsheets that contain sub-flowsheets, override this function; to decrease it for testing purposes, invoke setMinSequential in the constructor.

Reimplemented from FlowSheet.

void MultiStage::setup ( void  )
virtual

performs initializations required immediately before solution

Reimplemented from FlowSheet.

std::string MultiStage::stagename ( int  i)

return complete name of stage i

Parameters
istage number
std::string MultiStage::streamname ( int  j,
int  i 
)

return complete name of stream j outlet from stage i

Parameters
jstream number
istage number
virtual const std::string& MultiStage::type ( void  ) const
inlinevirtual
Returns
the C++ name of the class the instance belongs to
Note
it is the responsibility of the caller to not access this reference after the lifecycle of the Item

Implements Item.

Reimplemented in ColumnSection.

Member Data Documentation

std::vector<Quantity> MultiStage::deltaP

Pressure drop in the sense of each stream flow; if pressureoption==equilibrium only deltaP[0] is used and that is Pbottom - Ptop.

Integer MultiStage::nStage

Number of stages.

Integer MultiStage::nStreams

Number of stream couples connected.

std::vector<String> MultiStage::option

Contains the way stages are connected Possible value are:

  • topbottom (default value): feed enters from stage 0 and middle streams go from stage i to stage i+1
  • bottomtop: feed enters from stage N and middle streams go from stage i+1 to stage i

For a 2-stream stage if both stream are topbottom or bottomtop, the stage is cocurrent if one stream is topbottom and the other is bottomtop, the stage is countercurrent

String MultiStage::pressureoption

equilibrium or separate; if set to equilibrium all streams exiting a stage will have same pressure

Integer MultiStage::referenceStream

reference stream will not be cut

const std::string MultiStage::type_
static
String MultiStage::typeT

the type of the model which sits on the Vertexes

String MultiStage::typeU

the type of the model which sits on the top bottom Edges

String MultiStage::typeV

the type of the model which sits on the bottom top Edges


The documentation for this class was generated from the following file: