Edge model for the mass and energy balance of a generic stream semi-abstract class Contains P, T and one Phase subobject: total phase. More...

#include <Stream.h>

Inheritance diagram for Stream:

Public Member Functions

 Stream (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 GENERATE_COPY_MOVE_BASE (Stream)
 
virtual ~Stream (void)
 
 QUANTITY (T, "Temperature", 298.15, "K")
 
 QUANTITY (P, "Pressure", 101325, "Pa")
 
 INTEGER (NITER_NLEFlash, "Number of iterations for Flash", -1)
 
 STRING (flowoption, "Feed stream flow configuration", "Nx")
 
 STRING (flashoption, "Feed stream Flash configuration", "PT")
 
virtual Libpf::Utility::MassBalanceMode representation (void) const =0
 return default flow base More...
 
void setup (void) override
 performs initializations required immediately before solution More...
 
Streamoperator+= (const Stream &)
 
Streamoperator*= (const Value &factor)
 
Streamoperator/= (const Value &factor)
 
Phase::MassfindPhase (const Libpf::Utility::PhaseIndex &pid)
 find phase identified by pid or return the nullptr More...
 
int findPhaseIndex (const Libpf::Utility::PhaseIndex &pid) const
 find index of the phase identified by pid in the phases vector or return -1 More...
 
void setphase (const Libpf::Utility::PhaseIndex &p)
 Sets the actual phase, copies current Tphase in the appropriate phases[?]. More...
 
Libpf::Utility::PhaseType phaseType (int i) const
 return phase type of phase i More...
 
Libpf::Utility::PhaseIndex phaseIndex (int i) const
 return phase id of phase i More...
 
int nphases (void) const
 return number of phases More...
 
int numberOfPhases (Libpf::Utility::PhaseType pt) const
 return number of phases of Libpf::Utility::PhaseType pt More...
 
void scale (const Value &factor=One)
 multiply the Stream extensive properties by factor More...
 
void setEquimolar ()
 
void setEquimass ()
 
void setPure (int i)
 
void setImpure (int i, double eps)
 
void setEquimolarNoKey (int i)
 
void setEquimassNoKey (int i)
 
void setSymmetrical (double eps)
 
void setAsymmetrical (bool increasing, double eps)
 
void clearComposition (void)
 
virtual void setFlash (Libpf::Utility::FlashMode fm=Libpf::Utility::FlashMode::Null)
 
virtual void estimateFlash (void)
 
virtual void updateFlash (void)
 
void calculate (int level=0) override
 
void initializeNonPersistents (void) override
 initialize Flash unknowns More...
 
void go (Calculatable::SolutionMode solutionMode, int level) override
 
void prepare_residuals (void) override
 call only if there is no iterative algorithm than changes the phases' compositions (such as FlashVl::x_ and y_ More...
 
int calculateResidualsEos (std::vector< Value > &y, uint32_t offset) override
 
void estimateEos (const Value &Pres, const Value &Temp) override
 estimate eos roots-related unknowns More...
 
void calculateX (const Libpf::Utility::MassBalanceMode &mb)
 
void calculateXnoFlash (const Libpf::Utility::MassBalanceMode &mb)
 
const ValuecalculateTotalP (const Value &rho) const override
 
const ValuecalculateTotalRho (void) const override
 calculates total molar density for all phases in kmol/m3 More...
 
const ValuecalculateTotalH (void) const override
 calculates molar enthalpy for all phases in J/kmol based on current values of the hidden unknowns More...
 
const ValuecalculateTotalS (void) const override
 calculates molar entropy for all phases in J/kmol/K based on current values of the hidden unknowns More...
 
Value dhvl (const Value &T) const
 molar heat of vaporization as linear molar fraction based average of the pure routes.heats of vaporization More...
 
void setMaximumIterations (int m)
 
const std::vector< Phase::Mass * > & phases (void) const override
 
const Valuephase_fraction (Phase::Mass *phase) const override
 
- Public Member Functions inherited from EdgeBase
 EdgeBase (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 STRING (fromTAG, "Tag of source Vertex", "source")
 
 STRING (toTAG, "Tag of destination Vertex", "sink")
 
 STRING (fromPort, "Tag of port description for source", "out")
 
 STRING (toPort, "Tag of port description for destination", "in")
 
 STRING (cutsource, "TAG of source of cut stream", "")
 
 STRING (cutdest, "TAG of dest of cut stream", "")
 
Libpf::Utility::Category category (void) const override
 return model Category More...
 
virtual std::string svgColor (void) const
 
virtual double svgWidth (void) const
 
- Public Member Functions inherited from Model
 Model (Libpf::Persistency::Defaults defaults, uint32_t id, Persistency *persistency, Persistent *parent, Persistent *root)
 
 INTEGER (nCalculations, "Number of times the model has been calculated", 0)
 
 STRINGVECTOR (errors, "Errors from the last computation", 0, "")
 
 STRINGVECTOR (warnings, "Warnings from the last computation", 0, "")
 
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...
 
virtual Libpf::Utility::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 ObjectiveNleAdobjectiveFunction (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
 
- Public Member Functions inherited from Object
 Object (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
Libpf::Persistency::Defaults defaults (void) const
 
std::ostream & printJson (std::ostream &os, int level=0) const override
 print Node in JSON format More...
 
void readVariables (Persistency *persistency) override
 reads Q, QV and QM from persistency More...
 
void readParameters (Persistency *persistency) override
 reads I, IV, S and SV from persistency More...
 
Nodeoperator= (const Node &) override
 copy assignment operator More...
 
Nodeoperator= (Node &&other) override
 move assignment More...
 
 ~Object (void)
 
const std::string & type (void) const override
 
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
 
void push (void) const
 store the current status of the object and all its sub-objects in the last-in-first-out queue of real variables values More...
 
void pop (void)
 restore the status of the object and all its sub-objects from the last-in-first-out queue of real variables values More...
 
void clear (void) const
 clear the last-in-first-out queue of real variables values used for storing and retrieving the status More...
 
const RangeQuantities quantities (void)
 
const ConstRangeQuantities quantities (void) const
 
- Public Member Functions inherited from Node
 Node (Libpf::Persistency::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
 
virtual Nodeoperator= (const Node &other)
 copy assignment operator copies all elements but root which is set to nullptr More...
 
virtual Nodeoperator= (Node &&other)
 move assignment More...
 
 ~Node ()
 
int insert (Persistency *persistency) const override
 
int update (Persistency *persistency) const override
 
void restore (Persistency *persistency) override
 
void remove (Persistency *persistency) const override
 
uint32_t rootId (void) const override
 
uint32_t range (void) const override
 
uint32_t getId (void) override
 returns the next available id and increments the internal counter More...
 
const std::string & type (void) const override
 
virtual std::ostream & printJson (std::ostream &os, int level=0) const
 print Node in JSON format More...
 
NodeaddChild (std::string type, uint32_t id, Persistency *persistency)
 
NodeaddChild (std::string type, Libpf::Persistency::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
 
virtual void readVariables (Persistency *)
 reads Q, QV and QM from persistency More...
 
virtual void readParameters (Persistency *)
 reads I, IV, S and SV from persistency More...
 
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
 
virtual uint32_t rootId (void) const =0
 
virtual uint32_t range (void) const =0
 
virtual uint32_t getId (void)=0
 returns the next available id and increments the internal counter More...
 
double created_at (void) const
 
double updated_at (void) const
 
void updated_at (double u) const
 
virtual int insert (Persistency *persistency) const =0
 
virtual int update (Persistency *persistency) const =0
 
virtual void restore (Persistency *persistency)=0
 
virtual void remove (Persistency *persistency) const =0
 
- 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 ()
 
const std::string & tag () const
 
const std::string & description () const
 
std::string fullTag () const
 
const Persistentparent () const
 
virtual const std::string & type () const =0
 
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 Precedence
 Precedence (void)
 
 ~Precedence (void)
 
void initLock (void)
 invoke while in parallel section More...
 
void set (void)
 
void unSet (void)
 
void destroy (void)
 
virtual void go (SolutionMode solutionMode, int level)=0
 
- Public Member Functions inherited from FlashBase
 FlashBase (void)
 
void setIdeal (bool i)
 
bool isIdeal (void)
 
virtual SolverNleInterfacesolver (void)=0
 
virtual int niter (void) const =0
 return Flash iterations More...
 
virtual void estimate (const Value &Pres, const Value &Temp)=0
 
const ValueTemperature (void) const
 
const ValuePressure (void) const
 
virtual const ValueFraction (Libpf::Utility::PhaseIndex p, bool clip=false) const =0
 during Flash iterations use this function to get the actual estimate of the fraction of phase p More...
 
virtual Vector X (Libpf::Utility::PhaseIndex p) const =0
 
virtual const ValueSumx (Libpf::Utility::PhaseIndex p) const =0
 
virtual bool converged (void) const =0
 returns true if the flash has been solved successfully, More...
 
virtual const std::vector< Phase::Mass * > & phases (void) const =0
 
virtual const Valuephase_fraction (Phase::Mass *phase) const =0
 

Public Attributes

Phase::MassTphase
 
std::vector< Phase::Mass * > phases_
 vector of phases to hold internal values for the phase fractions and molar compositions More...
 
- Public Attributes inherited from Precedence
int weight
 for backTrack_ and findCycles More...
 

Protected Member Functions

void addVariables (void)
 
Phase::MassaddPhase (std::string type, std::string tag, std::string description, unsigned int index, Persistency *persistency)
 
void postconstruct_ (int cid)
 
virtual void precompute_isIdeal (void)
 
- 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::Persistency::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::Persistency::Defaults &defaults, uint32_t id, Persistency *persistency, std::string tag, int min, int max, int def=-1)
 
std::string retrieveString (const Libpf::Persistency::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 Diagnostic
virtual ~Diagnostic ()=default
 
- Protected Member Functions inherited from Calculatable
virtual ~Calculatable ()=default
 
- Protected Member Functions inherited from FlashBase
virtual ~FlashBase ()=default
 
virtual const ValuecalculateTotalP (const Value &rho) const =0
 
virtual const ValuecalculateTotalRho (void) const =0
 calculates total molar density for all phases in kmol/m3 More...
 
virtual const ValuecalculateTotalH (void) const =0
 calculates molar enthalpy for all phases in J/kmol based on current values of the hidden unknowns More...
 
virtual const ValuecalculateTotalS (void) const =0
 calculates molar entropy for all phases in J/kmol/K based on current values of the hidden unknowns More...
 
virtual void prepare_residuals (void)=0
 
virtual void prepare_Flash_residuals (void)=0
 
virtual int calculateResidualsEos (std::vector< Value > &y, uint32_t offset)=0
 
virtual void estimateEos (const Value &Pres, const Value &Temp)=0
 estimate eos roots-related unknowns More...
 
virtual int calculateResidualsEquilibrium (std::vector< Value > &y, uint32_t offset)=0
 
virtual void estimateEquilibrium (const Value &Pres, const Value &Temp)=0
 estimate equilibrium-related unknowns More...
 
virtual void setFlash_ (const Libpf::Utility::FlashMode &fm, const Value &x, const Value &y, bool strict=true)=0
 Set the stream's state variables and the Flash. More...
 
virtual int solveFlash (bool simultaneous, bool skip)=0
 
virtual std::string message (int code)=0
 
virtual void setup_ (std::vector< Value * > pbeta_, std::vector< const double * > pbetamin_, std::vector< const double * > pbetamax_)=0
 
- Protected Member Functions inherited from StreamInterface
virtual ~StreamInterface ()=default
 

Protected Attributes

int vphases_
 number of vapor phases More...
 
int lphases_
 number of liquid phases More...
 
int sphases_
 number of solid phases 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 FlashBase
Libpf::Utility::FlashMode fm_
 
bool zero_residuals_
 used to skip Flash residuals calculations if stream is empty More...
 
Value T_
 Temperature, unknown. More...
 
Value P_
 Pressure, unknown. More...
 
Value Pset_
 specified pressure, Pa More...
 
Value Tset_
 specified temperature, K More...
 
Value Hset_
 specified molar enthalpy, J/kmol More...
 
Value Sset_
 specified molar entropy, J/(kmol*K) More...
 
Value rhoset_
 specified molar density, kmol/m3 More...
 

Static Protected Attributes

static double minFlow_
 

Friends

class PhaseTotal
 

Additional Inherited Members

- Public Types inherited from Calculatable
enum  SolutionMode { Null = 0 , sequential , simultaneous , singlePassSimultaneous }
 

Detailed Description

Edge model for the mass and energy balance of a generic stream semi-abstract class Contains P, T and one Phase subobject: total phase.

#include <libpf/streams/Stream.h>

Remarks
Warning
Requires the list of components to be populated before the construction
Thread safe:
Extendable:
Platform dependencies:

Constructor & Destructor Documentation

◆ Stream()

Stream::Stream ( Libpf::Persistency::Defaults  defaults,
uint32_t  id = 0,
Persistency persistency = nullptr,
Persistent parent = nullptr,
Persistent root = nullptr 
)

◆ ~Stream()

virtual Stream::~Stream ( void  )
inlinevirtual

Member Function Documentation

◆ addPhase()

Phase::Mass * Stream::addPhase ( std::string  type,
std::string  tag,
std::string  description,
unsigned int  index,
Persistency persistency 
)
protected

adds a new Phase of supplied type, creating a new node

Parameters
typeshould be a concrete type derived from Phase::Mass
tagtag of subobject
descriptiondescription of subobject
indexlocation for the phase pointer in the phases vector; use -1 for total phase in non-single-phase streams
persistencydatabase connection

◆ addVariables()

void Stream::addVariables ( void  )
protected

◆ calculate()

void Stream::calculate ( int  level = 0)
overridevirtual

calculates the model; implementations must call setCalculated

Parameters
levelused for indenting, defaults to 0

Implements Model.

◆ calculateResidualsEos()

int Stream::calculateResidualsEos ( std::vector< Value > &  y,
uint32_t  offset 
)
overridevirtual

fill in residuals for the calculation of {vapor, liquid} eos roots as required returns the number of eos roots that are computed

Implements FlashBase.

◆ calculateTotalH()

const Value & Stream::calculateTotalH ( void  ) const
overridevirtual

calculates molar enthalpy for all phases in J/kmol based on current values of the hidden unknowns

Implements FlashBase.

◆ calculateTotalP()

const Value & Stream::calculateTotalP ( const Value rho) const
overridevirtual

return total pressure for all phases

Parameters
rhomolar density

Implements FlashBase.

◆ calculateTotalRho()

const Value & Stream::calculateTotalRho ( void  ) const
overridevirtual

calculates total molar density for all phases in kmol/m3

Implements FlashBase.

◆ calculateTotalS()

const Value & Stream::calculateTotalS ( void  ) const
overridevirtual

calculates molar entropy for all phases in J/kmol/K based on current values of the hidden unknowns

Implements FlashBase.

◆ calculateX()

void Stream::calculateX ( const Libpf::Utility::MassBalanceMode mb)

◆ calculateXnoFlash()

void Stream::calculateXnoFlash ( const Libpf::Utility::MassBalanceMode mb)

◆ clearComposition()

void Stream::clearComposition ( void  )

set to zero the composition of each component in Tphase based on the current flow option

Note
does not recalculate the stream

◆ dhvl()

Value Stream::dhvl ( const Value T) const

molar heat of vaporization as linear molar fraction based average of the pure routes.heats of vaporization

◆ estimateEos()

void Stream::estimateEos ( const Value Pres,
const Value Temp 
)
overridevirtual

estimate eos roots-related unknowns

Implements FlashBase.

◆ estimateFlash()

virtual void Stream::estimateFlash ( void  )
inlinevirtual

estimate hidden Flash unknowns from current stream variables must be overridden when more unknowns are present

Reimplemented in StreamIapwsLiquidVapor, StreamTwo< F >, StreamTwo< FlashVl >, and StreamTwoSolid< F >.

◆ findPhase()

Phase::Mass * Stream::findPhase ( const Libpf::Utility::PhaseIndex pid)

find phase identified by pid or return the nullptr

◆ findPhaseIndex()

int Stream::findPhaseIndex ( const Libpf::Utility::PhaseIndex pid) const

find index of the phase identified by pid in the phases vector or return -1

◆ GENERATE_COPY_MOVE_BASE()

Stream::GENERATE_COPY_MOVE_BASE ( Stream  )

◆ go()

void Stream::go ( Calculatable::SolutionMode  solutionMode,
int  level 
)
overridevirtual

Calculate the Model

Parameters
solutionModesolution mode to use
levelused for indenting

Implements Calculatable.

◆ initializeNonPersistents()

void Stream::initializeNonPersistents ( void  )
overridevirtual

initialize Flash unknowns

Implements Model.

Reimplemented in StreamIapwsLiquidVapor, StreamTwo< F >, StreamTwo< FlashVl >, and StreamTwoSolid< F >.

◆ INTEGER()

Stream::INTEGER ( NITER_NLEFlash  ,
"Number of iterations for Flash ,
1 
)

◆ nphases()

int Stream::nphases ( void  ) const

return number of phases

◆ numberOfPhases()

int Stream::numberOfPhases ( Libpf::Utility::PhaseType  pt) const

return number of phases of Libpf::Utility::PhaseType pt

◆ operator*=()

Stream & Stream::operator*= ( const Value factor)

◆ operator+=()

Stream & Stream::operator+= ( const Stream )

◆ operator/=()

Stream & Stream::operator/= ( const Value factor)

◆ phase_fraction()

const Value & Stream::phase_fraction ( Phase::Mass phase) const
overridevirtual
Returns
the current estimate of the phase fraction during Flash iterations for the supplied phase, clipped within zero and one

Implements StreamInterface.

◆ phaseIndex()

Libpf::Utility::PhaseIndex Stream::phaseIndex ( int  i) const

return phase id of phase i

◆ phases()

const std::vector< Phase::Mass * > & Stream::phases ( void  ) const
overridevirtual

Implements StreamInterface.

◆ phaseType()

Libpf::Utility::PhaseType Stream::phaseType ( int  i) const

return phase type of phase i

◆ postconstruct_()

void Stream::postconstruct_ ( int  cid)
protected

◆ precompute_isIdeal()

virtual void Stream::precompute_isIdeal ( void  )
inlineprotectedvirtual

◆ prepare_residuals()

void Stream::prepare_residuals ( void  )
inlineoverridevirtual

call only if there is no iterative algorithm than changes the phases' compositions (such as FlashVl::x_ and y_

Implements FlashBase.

Reimplemented in StreamOne, StreamOneSolid, StreamTwo< F >, StreamTwo< FlashVl >, and StreamTwoSolid< F >.

◆ QUANTITY() [1/2]

Stream::QUANTITY ( ,
"Pressure"  ,
101325  ,
"Pa"   
)

◆ QUANTITY() [2/2]

Stream::QUANTITY ( ,
"Temperature"  ,
298.  15,
"K"   
)

◆ representation()

virtual Libpf::Utility::MassBalanceMode Stream::representation ( void  ) const
pure virtual

◆ scale()

void Stream::scale ( const Value factor = One)

multiply the Stream extensive properties by factor

◆ setAsymmetrical()

void Stream::setAsymmetrical ( bool  increasing,
double  eps 
)

sets phase composition to an asymmetrical distribution, based on the current flow option;

Parameters
[in]increasingif true, the distribution will be increasing, if false it will be decreasing
[in]epsno component will be present in an amount less than eps
See also
Phase::Mass::setAsymmetrical and Phase::MassMolar::setAsymmetrical
Note
does not recalculate the phase
only molar or mass fractions are supported

◆ setEquimass()

void Stream::setEquimass ( )

sets equimass composition, based on the current flow option

See also
Phase::Mass::setEquimass and Phase::MassMolar::setEquimass
Note
does not recalculate the phase

◆ setEquimassNoKey()

void Stream::setEquimassNoKey ( int  i)

sets equimass composition except for component i, based on the current flow option

Parameters
icomponent index of the absent component
See also
Phase::Mass::setEquimassNoKey and Phase::MassMolar::setEquimassNoKey
Note
does not recalculate the phase

◆ setEquimolar()

void Stream::setEquimolar ( )

sets equimolar composition, based on the current flow option

See also
Phase::Mass::setEquimolar and Phase::MassMolar::setEquimolar
Note
does not recalculate the phase

◆ setEquimolarNoKey()

void Stream::setEquimolarNoKey ( int  i)

sets equimolar composition except for component i, based on the current flow option

Parameters
icomponent index of the absent component
See also
Phase::Mass::setEquimolarNoKey and Phase::MassMolar::setEquimolarNoKey
Note
does not recalculate the phase

◆ setFlash()

virtual void Stream::setFlash ( Libpf::Utility::FlashMode  fm = Libpf::Utility::FlashMode::Null)
virtual

Set the Flash according to its own specifications

Parameters
fmif this FlashMode is specified, it will override the current spec

The FlashMode is two separate options, but not all combinations are supported:

  • A assumes the vapor fraction (variable Vphase.fraction) is fixed; can be used with {P, S}
  • H assumes the molar enthalpy (variable Tphase.H) is fixed; can be used with {P, R}
  • P assumes the pressure (variable P) is fixed; can be used with {A, H, S, T}
  • R assumes the molar volume (variable Tphase.v) is fixed; can be used with {H, T}
  • S assumes the molar entropy (variable Tphase.S) is fixed; can be used with {P, A}
  • T assumes the temperature (variable T) is fixed; can be used with {P, R}

Reimplemented in StreamIapwsLiquidVapor, StreamTwo< F >, StreamTwo< FlashVl >, and StreamTwoSolid< F >.

◆ setImpure()

void Stream::setImpure ( int  i,
double  eps 
)

sets phase composition to almost pure, based on the current flow option

Parameters
icomponent index of the mostly present component
epsmolar fraction of the other components
See also
Phase::Mass::setImpure and Phase::MassMolar::setImpure
Note
does not recalculate the phase

◆ setMaximumIterations()

void Stream::setMaximumIterations ( int  m)

sets the maximum number of iterations, overriding the default (500)

Note
to use as a class-level override (for "hard" flashes) call it in the stream constructors
after the call to Stream::postconstruct_

◆ setphase()

void Stream::setphase ( const Libpf::Utility::PhaseIndex p)

Sets the actual phase, copies current Tphase in the appropriate phases[?].

◆ setPure()

void Stream::setPure ( int  i)

sets phase composition to pure in component i, based on the current flow option

Parameters
icomponent index of the present component
See also
Phase::Mass::setPure and Phase::MassMolar::setPure
Note
does not recalculate the phase

◆ setSymmetrical()

void Stream::setSymmetrical ( double  eps)

sets phase composition to a symmetrical distribution, based on the current flow option;

Parameters
[in]epsno component will be present in an amount less than eps
See also
Phase::Mass::setSymmetrical and Phase::MassMolar::setSymmetrical
Note
does not recalculate the phase
only molar or mass fractions are supported

◆ setup()

void Stream::setup ( void  )
inlineoverridevirtual

performs initializations required immediately before solution

Implements Model.

◆ STRING() [1/2]

Stream::STRING ( flashoption  ,
"Feed stream Flash configuration"  ,
"PT"   
)

Feed stream Flash configuration

See also
FlashMode pt [default]

◆ STRING() [2/2]

Stream::STRING ( flowoption  ,
"Feed stream flow configuration"  ,
"Nx"   
)

Feed stream flow configuration

See also
MassBalanceMode Nx [default] Supported MassBalnceMode:
  • Nx total mole flow and molar composition of each component are fixed
  • Mx total mass flow and molar composition of each component are fixed
  • Nw total mole flow and mass composition of each component are fixed
  • Mw total mass flow and mass composition of each component are fixed
  • N mole flow of each component are fixed
  • M mass flow of each component

◆ updateFlash()

virtual void Stream::updateFlash ( void  )
virtual

update stream variables with hidden Flash unknowns must be overridden when more unknowns are present

Reimplemented in StreamIapwsLiquidVapor, StreamBaseSimple, StreamTwo< F >, StreamTwo< FlashVl >, and StreamTwoSolid< F >.

Friends And Related Function Documentation

◆ PhaseTotal

friend class PhaseTotal
friend

Member Data Documentation

◆ lphases_

int Stream::lphases_
protected

number of liquid phases

◆ minFlow_

double Stream::minFlow_
staticprotected

flash calculations will be bypassed when the absolte of the total flow in the total phase is lower than this threshold default value: DBL_EPSILON*100.0

◆ phases_

std::vector<Phase::Mass *> Stream::phases_

vector of phases to hold internal values for the phase fractions and molar compositions

◆ sphases_

int Stream::sphases_
protected

number of solid phases

◆ Tphase

Phase::Mass* Stream::Tphase

Total phase of stream

◆ vphases_

int Stream::vphases_
protected

number of vapor phases


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