Vertex model to represent countercurrent multicomponent mass transfer of dilute components in an absorber or a stripper. More...

#include <HtuNtu.h>

Inheritance diagram for HtuNtu:

Public Member Functions

 QUANTITY (duty, "Heat duty", 0, "W")
 
 QUANTITY (deltaP, "Vapor phase pressure drop across unit", 0, "Pa")
 
 QUANTITY (D, "Column internal diameter", 1, "m")
 
 QUANTITY (H, "Packing height", 10, "m")
 
 QUANTITY (ap, "Specific packing surface area", 260, "1/m")
 
 QUANTITY (epsilon, "Porosity", 0.68, "")
 
 QUANTITY (CL, "Coefficient for calculation of mass trasfer in the liquid phase", 0, "")
 
 QUANTITY (CG, "Coefficient for calculation of mass trasfer in the gas phase", 0, "")
 
 QUANTITY (CS, "Coefficient for loading point calculation", 0, "")
 
 QUANTITY (CFl, "Coefficient for flooding point calculation", 0, "")
 
 QUANTITY (CP0, "Coefficient for pressure drop calculation", 0, "")
 
 QUANTITY (V, "Molar flow of gas", 0, "kmol/s")
 
 QUANTITY (L, "Molar flow of liquid", 0, "kmol/s")
 
 QUANTITY (T, "Temperature", 0, "K")
 
 QUANTITY (P, "Pressure", 0, "Pa")
 
 QUANTITY (rhov, "Density of gas", 0, "kg/m3")
 
 QUANTITY (rhol, "Density of liquid", 0, "kg/m3")
 
 QUANTITY (muv, "Viscosity of gas", 0, "Pa*s")
 
 QUANTITY (mul, "Viscosity of liquid", 0, "Pa*s")
 
 QUANTITY (psiS, "Resistance coefficient at the loading point", 0, "m/s2")
 
 QUANTITY (psiFl, "Resistance coefficient at the flooding point", 0, "m/s2")
 
 QUANTITY (Ac, "Column internal cross-sectional area", 0, "m2")
 
 QUANTITY (uV, "Gas superficial velocity", 0, "m/s")
 
 QUANTITY (uVS, "Gas superficial velocity at the loading point", 0, "m/s")
 
 QUANTITY (uVFl, "Gas superficial velocity at the flooding point", 0, "m/s")
 
 QUANTITY (uVzero, "Reference gas superficial velocity", 0, "m/s")
 
 QUANTITY (uL, "Liquid superficial velocity", 0, "m/s")
 
 QUANTITY (uLS, "Liquid superficial velocity at the loading point", 0, "m/s")
 
 QUANTITY (uLFl, "Liquid superficial velocity at the flooding point", 0, "m/s")
 
 QUANTITY (fractloadL, "Liquid load relative to loading point load", 0, "")
 
 QUANTITY (fractloadV, "Gas load relative to loading point load", 0, "")
 
 QUANTITY (fractfloodL, "Liquid load relative to flooding point load", 0, "")
 
 QUANTITY (fractfloodV, "Gas load relative to flooding point load", 0, "")
 
 QUANTITY (hL, "Volumetric column liquid hold-up", 0, "")
 
 QUANTITY (hLFl, "Volumetric column liquid hold-up at the flooding point", 0, "")
 
 QUANTITY (dh, "Hydraulic diameter of the dumped packing", 0, "m")
 
 QUANTITY (ReG, "Adimensional Reynolds number in the gas phase", 0, "")
 
 QUANTITY (ReL, "Adimensional Reynolds number in the liquid phase", 0, "")
 
 QUANTITY (FrL, "Adimensional Froude number in the liquid phase", 0, "")
 
 QUANTITY (WeL, "Adimensional Weber number in the liquid phase", 0, "")
 
 QUANTITY (ae, "Volumetric specific interface area between the phases", 0, "1/m")
 
 QUANTITY (K, "Pressure drop wall factor", 0, "")
 
 QUANTITY (ReGdp, "Adimensional Reynolds number in the gas phase for pressure drop calculation", 0, "")
 
 QUANTITY (psi0, "Resistance coefficient for dry pressure drop calculation", 0, "")
 
 QUANTITY (Fv2, "Square of flow factor", 0, "Pa")
 
 QUANTITY (dp, "Particle diameter", 0, "m")
 
 QUANTITY (deltaP0, "Pressure drop dry", 0, "Pa")
 
 QUANTITY (FrLdp, "Adimensional Froude number in the liquid phase for pressure drop calculation", 0, "")
 
 QUANTITY (psiL, "Resistance coefficient for irrigated pressure drop calculation", 0, "")
 
 QUANTITY (hLS, "Volumetric column liquid hold-up at the loading point", 0, "")
 
 INTEGER (NITER_load, "Number of iterations for loading point calculation", 0)
 
 INTEGER (NITER_flood, "Number of iterations for flooding point calculation", 0)
 
 INTEGER (startID, "First component to be separated", 3)
 
 STRING (packing, "Packing type", "Ceramic BerlSaddle 25")
 Packing type. More...
 
 STRING (hydraulics_calc, "Hydraulic calculation mode", "Rating")
 Hydraulic calculation mode. More...
 
 STRING (masstransfer_calc, "Mass trasfer calculation mode", "Rating")
 Mass trasfer calculation mode. More...
 
 HtuNtu (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 ~HtuNtu (void)
 
ObjectiveNleAdobjectiveFunction (void) override
 returns a pointer to the model's objective function More...
 
void initializeNonPersistents (void) override
 estimates hidden, non-persistent unknowns from the current results More...
 
void calculate (int level=0) override
 
void setup (void) override
 performs initializations required immediately before solution More...
 
void go (Calculatable::SolutionMode solutionMode, int level) override
 
const std::string & type (void) const override
 
bool converged (void) const
 returns true if the unit has been solved successfully, More...
 
VertexBase::PortLocation locationFromPort (std::string port) const override
 
- Public Member Functions inherited from Connectivity
 Connectivity (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 ~Connectivity (void)
 
 INTEGER (nIn, "Number of connected inlet EdgeBases", 0)
 should not be set directly: use attach instead More...
 
 INTEGER (nOut, "Number of connected outlet EdgeBases", 0)
 should not be set directly: use attach instead More...
 
 INTEGER (maxNIn, "Maximum number of connected inlet EdgeBases or -1 for unlimited", -1)
 
 INTEGER (maxNOut, "Maximum number of connected outlet EdgeBases or -1 for unlimited", -1)
 
 STRING (constraints, "Used internally to persist connectivity constraints", "")
 
void attach (EdgeBase &edge, std::string &port) override final
 
void detach (std::string port) override final
 Detaches the edge from the port with name "port". More...
 
bool check (void) override
 
void calculateBalance (void) override
 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 (unsigned int i) const
 
bool isOutletConnected (unsigned int i) const
 
EdgeBaseinlet (unsigned int i)
 
EdgeBaseoutlet (unsigned int i)
 
EdgeBaseedgeFromPort (const std::string &port)
 
void printConnectivity (void) const
 diagnostic print More...
 
- Public Member Functions inherited from VertexBase
 VertexBase (Libpf::Persistency::Defaults defaults, uint32_t id=0, Persistency *persistency=nullptr, Persistent *parent=nullptr, Persistent *root=nullptr)
 
 QUANTITY (cmdot, "Cumulative mass flow inlet minus outlet", one, "kg/s")
 
 QUANTITY (mdotin, "inlet mass flow", one, "kg/s")
 
 QUANTITY (mdotout, "outlet mass flow", one, "kg/s")
 
 QUANTITY (cduty, "Cumulative enthalpy flow inlet minus outlet", one, "W")
 
virtual void attach (EdgeBase &edge, std::string &port)
 
virtual void detach (std::string port)
 Detaches the edge from the port with name "port". More...
 
virtual bool check (void)=0
 Checks the connectivity for this instance of VertexBase and returns true if something is out of order. More...
 
void translate (std::string &s)
 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...
 
virtual void calculateBalance (void)=0
 calculate cmdot, mdotin, mdotout, mdotcomps[] and cduty based on inlet/outlet streams More...
 
virtual Value massBalance (void) const
 return should-be net mass balance of unit (inlet-outlet), defaults to zero and must be overridden if required More...
 
virtual Value energyBalance (void) const
 return should-be net energy balance of unit (inlet-outlet), defaults to zero and must be overridden if required More...
 
Libpf::Utility::Category category (void) const override
 return model Category More...
 
void printSvg (const char *fileName, bool tiny, bool raster, int offset) override
 
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::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 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...
 
virtual void go (SolutionMode solutionMode, int level)=0
 

Public Attributes

Streamin1VL_
 
Streamin2VL_
 
std::vector< QuantityKVL
 Vector of KVL volatilities. More...
 
std::vector< QuantityHcomps
 Packing height for component. More...
 
std::vector< QuantityoutSplit [2]
 Split to vapor and liquid outlet for each component. More...
 
- Public Attributes inherited from VertexBase
std::vector< Quantitymdotcomps
 Cumulative mass flow of each component, inlet - outlet. More...
 
- Public Attributes inherited from Task
int weight
 for backTrack_ and findCycles 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 Connectivity
void inletRequired (unsigned int i)
 
- Protected Member Functions inherited from VertexBase
void registerSynonym (std::string synonym, 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::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 Attributes inherited from Connectivity
std::vector< EdgeBase * > inlets_
 inlet EdgeBase pointer vector More...
 
std::vector< EdgeBase * > outlets_
 outlet EdgeBase pointer vector 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
 

Detailed Description

Vertex model to represent countercurrent multicomponent mass transfer of dilute components in an absorber or a stripper.

Modeling assumptions:

  • gas phase is mosty air
  • The HTU/NTU model is used for the computation
  • Isothermal conditions hold along the column
  • linear Vapor/liquid behavior of all trasferrable components (Herly law or constant KVL)
  • neglects variation of liquid and gas molar flows along the packing (CMO constant molar overflow)
  • neglects effect on bulk properties of solvent due to disoolved components
  • the mass each trasfer of each component is independent on the trasfer of the others
  • no Reaction with solvent

List of ports:

  • in1 [vapin] inlet of vapor streamVL to HtuNtu
  • out1 [vapout] outlet of vapor streamVL from HtuNtu
  • in2 [liqin] inlet of liquid streamVL to HtuNtu
  • out2 [liqout] outlet of liquid streamVL from HtuNtu

#include <libpf/units/HtuNtu.h>

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

Constructor & Destructor Documentation

◆ HtuNtu()

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

◆ ~HtuNtu()

HtuNtu::~HtuNtu ( void  )

Member Function Documentation

◆ calculate()

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

calculates the model; implementations must call setCalculated

Parameters
levelused for indenting, defaults to 0

Implements Model.

◆ converged()

bool HtuNtu::converged ( void  ) const

returns true if the unit has been solved successfully,

See also
SolverNleInterface::nonConverged

◆ go()

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

Calculate the Model

Parameters
solutionModesolution mode to use
levelused for indenting

Implements Calculatable.

◆ initializeNonPersistents()

void HtuNtu::initializeNonPersistents ( void  )
inlineoverridevirtual

estimates hidden, non-persistent unknowns from the current results

Implements Model.

◆ INTEGER() [1/3]

HtuNtu::INTEGER ( NITER_flood  ,
"Number of iterations for flooding point calculation"  ,
 
)

◆ INTEGER() [2/3]

HtuNtu::INTEGER ( NITER_load  ,
"Number of iterations for loading point calculation"  ,
 
)

◆ INTEGER() [3/3]

HtuNtu::INTEGER ( startID  ,
"First component to be separated"  ,
 
)

◆ locationFromPort()

VertexBase::PortLocation HtuNtu::locationFromPort ( std::string  port) const
overridevirtual
Returns
the port location for the SVG icon; can be overriden by deroved classes as required; the default implementation always returns west for inlets and east for outlets
Parameters
portthe name of the port (i.e. in1, out ...)
Remarks
this is independent from whether an edge is attached
See also
Layout

Reimplemented from VertexBase.

◆ objectiveFunction()

ObjectiveNleAd * HtuNtu::objectiveFunction ( void  )
inlineoverridevirtual

returns a pointer to the model's objective function

Implements Model.

◆ QUANTITY() [1/50]

HtuNtu::QUANTITY ( Ac  ,
"Column internal cross-sectional area"  ,
,
"m2"   
)

◆ QUANTITY() [2/50]

HtuNtu::QUANTITY ( ae  ,
"Volumetric specific interface area between the phases"  ,
,
"1/m"   
)

◆ QUANTITY() [3/50]

HtuNtu::QUANTITY ( ap  ,
"Specific packing surface area"  ,
260  ,
"1/m"   
)

◆ QUANTITY() [4/50]

HtuNtu::QUANTITY ( CFl  ,
"Coefficient for flooding point calculation"  ,
,
""   
)

◆ QUANTITY() [5/50]

HtuNtu::QUANTITY ( CG  ,
"Coefficient for calculation of mass trasfer in the gas phase"  ,
,
""   
)

◆ QUANTITY() [6/50]

HtuNtu::QUANTITY ( CL  ,
"Coefficient for calculation of mass trasfer in the liquid phase"  ,
,
""   
)

◆ QUANTITY() [7/50]

HtuNtu::QUANTITY ( CP0  ,
"Coefficient for pressure drop calculation"  ,
,
""   
)

◆ QUANTITY() [8/50]

HtuNtu::QUANTITY ( CS  ,
"Coefficient for loading point calculation"  ,
,
""   
)

◆ QUANTITY() [9/50]

HtuNtu::QUANTITY ( ,
"Column internal diameter"  ,
,
"m"   
)

◆ QUANTITY() [10/50]

HtuNtu::QUANTITY ( deltaP  ,
"Vapor phase pressure drop across unit"  ,
,
"Pa"   
)

◆ QUANTITY() [11/50]

HtuNtu::QUANTITY ( deltaP0  ,
"Pressure drop dry"  ,
,
"Pa"   
)

◆ QUANTITY() [12/50]

HtuNtu::QUANTITY ( dh  ,
"Hydraulic diameter of the dumped packing"  ,
,
"m"   
)

◆ QUANTITY() [13/50]

HtuNtu::QUANTITY ( dp  ,
"Particle diameter"  ,
,
"m"   
)

◆ QUANTITY() [14/50]

HtuNtu::QUANTITY ( duty  ,
"Heat duty"  ,
,
"W"   
)

◆ QUANTITY() [15/50]

HtuNtu::QUANTITY ( epsilon  ,
"Porosity"  ,
0.  68,
""   
)

◆ QUANTITY() [16/50]

HtuNtu::QUANTITY ( fractfloodL  ,
"Liquid load relative to flooding point load"  ,
,
""   
)

◆ QUANTITY() [17/50]

HtuNtu::QUANTITY ( fractfloodV  ,
"Gas load relative to flooding point load"  ,
,
""   
)

◆ QUANTITY() [18/50]

HtuNtu::QUANTITY ( fractloadL  ,
"Liquid load relative to loading point load"  ,
,
""   
)

◆ QUANTITY() [19/50]

HtuNtu::QUANTITY ( fractloadV  ,
"Gas load relative to loading point load"  ,
,
""   
)

◆ QUANTITY() [20/50]

HtuNtu::QUANTITY ( FrL  ,
"Adimensional Froude number in the liquid phase"  ,
,
""   
)

◆ QUANTITY() [21/50]

HtuNtu::QUANTITY ( FrLdp  ,
"Adimensional Froude number in the liquid phase for pressure drop calculation"  ,
,
""   
)

◆ QUANTITY() [22/50]

HtuNtu::QUANTITY ( Fv2  ,
"Square of flow factor"  ,
,
"Pa"   
)

◆ QUANTITY() [23/50]

HtuNtu::QUANTITY ( ,
"Packing height"  ,
10  ,
"m"   
)

◆ QUANTITY() [24/50]

HtuNtu::QUANTITY ( hL  ,
"Volumetric column liquid hold-up"  ,
,
""   
)

◆ QUANTITY() [25/50]

HtuNtu::QUANTITY ( hLFl  ,
"Volumetric column liquid hold-up at the flooding point"  ,
,
""   
)

◆ QUANTITY() [26/50]

HtuNtu::QUANTITY ( hLS  ,
"Volumetric column liquid hold-up at the loading point"  ,
,
""   
)

◆ QUANTITY() [27/50]

HtuNtu::QUANTITY ( ,
"Pressure drop wall factor"  ,
,
""   
)

◆ QUANTITY() [28/50]

HtuNtu::QUANTITY ( ,
"Molar flow of liquid"  ,
,
"kmol/s"   
)

◆ QUANTITY() [29/50]

HtuNtu::QUANTITY ( mul  ,
"Viscosity of liquid"  ,
,
"Pa*s"   
)

◆ QUANTITY() [30/50]

HtuNtu::QUANTITY ( muv  ,
"Viscosity of gas"  ,
,
"Pa*s"   
)

◆ QUANTITY() [31/50]

HtuNtu::QUANTITY ( ,
"Pressure"  ,
,
"Pa"   
)

◆ QUANTITY() [32/50]

HtuNtu::QUANTITY ( psi0  ,
"Resistance coefficient for dry pressure drop calculation"  ,
,
""   
)

◆ QUANTITY() [33/50]

HtuNtu::QUANTITY ( psiFl  ,
"Resistance coefficient at the flooding point"  ,
,
"m/s2"   
)

◆ QUANTITY() [34/50]

HtuNtu::QUANTITY ( psiL  ,
"Resistance coefficient for irrigated pressure drop calculation"  ,
,
""   
)

◆ QUANTITY() [35/50]

HtuNtu::QUANTITY ( psiS  ,
"Resistance coefficient at the loading point"  ,
,
"m/s2"   
)

◆ QUANTITY() [36/50]

HtuNtu::QUANTITY ( ReG  ,
"Adimensional Reynolds number in the gas phase"  ,
,
""   
)

◆ QUANTITY() [37/50]

HtuNtu::QUANTITY ( ReGdp  ,
"Adimensional Reynolds number in the gas phase for pressure drop calculation"  ,
,
""   
)

◆ QUANTITY() [38/50]

HtuNtu::QUANTITY ( ReL  ,
"Adimensional Reynolds number in the liquid phase"  ,
,
""   
)

◆ QUANTITY() [39/50]

HtuNtu::QUANTITY ( rhol  ,
"Density of liquid"  ,
,
"kg/m3"   
)

◆ QUANTITY() [40/50]

HtuNtu::QUANTITY ( rhov  ,
"Density of gas"  ,
,
"kg/m3"   
)

◆ QUANTITY() [41/50]

HtuNtu::QUANTITY ( ,
"Temperature"  ,
,
"K"   
)

◆ QUANTITY() [42/50]

HtuNtu::QUANTITY ( uL  ,
"Liquid superficial velocity"  ,
,
"m/s"   
)

◆ QUANTITY() [43/50]

HtuNtu::QUANTITY ( uLFl  ,
"Liquid superficial velocity at the flooding point"  ,
,
"m/s"   
)

◆ QUANTITY() [44/50]

HtuNtu::QUANTITY ( uLS  ,
"Liquid superficial velocity at the loading point"  ,
,
"m/s"   
)

◆ QUANTITY() [45/50]

HtuNtu::QUANTITY ( uV  ,
"Gas superficial velocity"  ,
,
"m/s"   
)

◆ QUANTITY() [46/50]

HtuNtu::QUANTITY ( uVFl  ,
"Gas superficial velocity at the flooding point"  ,
,
"m/s"   
)

◆ QUANTITY() [47/50]

HtuNtu::QUANTITY ( uVS  ,
"Gas superficial velocity at the loading point"  ,
,
"m/s"   
)

◆ QUANTITY() [48/50]

HtuNtu::QUANTITY ( uVzero  ,
"Reference gas superficial velocity"  ,
,
"m/s"   
)

◆ QUANTITY() [49/50]

HtuNtu::QUANTITY ( ,
"Molar flow of gas"  ,
,
"kmol/s"   
)

◆ QUANTITY() [50/50]

HtuNtu::QUANTITY ( WeL  ,
"Adimensional Weber number in the liquid phase"  ,
,
""   
)

◆ setup()

void HtuNtu::setup ( void  )
inlineoverridevirtual

performs initializations required immediately before solution

Implements Model.

◆ STRING() [1/3]

HtuNtu::STRING ( hydraulics_calc  ,
"Hydraulic calculation mode"  ,
"Rating"   
)

Hydraulic calculation mode.

Valid hydraulic calculation modes:

  • Design
  • Rating

◆ STRING() [2/3]

HtuNtu::STRING ( masstransfer_calc  ,
"Mass trasfer calculation mode"  ,
"Rating"   
)

Mass trasfer calculation mode.

Valid mass transfer calculation modes:

  • Design
  • Rating

◆ STRING() [3/3]

HtuNtu::STRING ( packing  ,
"Packing type ,
"Ceramic BerlSaddle 25"   
)

Packing type.

Valid packing types:

  • Ceramic BerlSaddle 25 <– default
  • Ceramic BerlSaddle 13
  • Ceramic RaschigRing 50
  • Ceramic RaschigRing 25
  • Plastic PallRing 50
  • Plastic PallRing 35
  • Plastic PallRing 25

◆ type()

const std::string & HtuNtu::type ( void  ) const
inlineoverridevirtual
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

Reimplemented from Object.

Member Data Documentation

◆ Hcomps

std::vector<Quantity> HtuNtu::Hcomps

Packing height for component.

◆ in1VL_

Stream* HtuNtu::in1VL_

◆ in2VL_

Stream * HtuNtu::in2VL_

◆ KVL

std::vector<Quantity> HtuNtu::KVL

Vector of KVL volatilities.

◆ outSplit

std::vector<Quantity> HtuNtu::outSplit[2]

Split to vapor and liquid outlet for each component.

◆ type_

const std::string HtuNtu::type_
static

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