Base class for 'flow devices' (valves, pressure regulators, etc.) connecting reactors. More...
#include <FlowDevice.h>
Base class for 'flow devices' (valves, pressure regulators, etc.) connecting reactors.
Definition at line 23 of file FlowDevice.h.
Public Member Functions | |
FlowDevice (const string &name="(none)") | |
FlowDevice (const FlowDevice &)=delete | |
FlowDevice & | operator= (const FlowDevice &)=delete |
virtual string | type () const |
String indicating the flow device implemented. | |
string | name () const |
Retrieve flow device name. | |
void | setName (const string &name) |
Set flow device name. | |
bool | setDefaultName (map< string, int > &counts) |
Set the default name of a flow device. Returns false if it was previously set. | |
double | massFlowRate () |
Mass flow rate (kg/s). | |
virtual void | updateMassFlowRate (double time) |
Update the mass flow rate at time 'time'. | |
double | outletSpeciesMassFlowRate (size_t k) |
Mass flow rate (kg/s) of outlet species k. | |
double | enthalpy_mass () |
specific enthalpy | |
bool | install (ReactorBase &in, ReactorBase &out) |
Install a flow device between two reactors. | |
virtual bool | ready () |
ReactorBase & | in () const |
Return a reference to the upstream reactor. | |
const ReactorBase & | out () const |
Return a const reference to the downstream reactor. | |
ReactorBase & | out () |
Return a mutable reference to the downstream reactor. | |
double | evalPressureFunction () |
Return current value of the pressure function. | |
virtual void | setPressureFunction (Func1 *f) |
Set a function of pressure that is used in determining the mass flow rate through the device. | |
double | evalTimeFunction () |
Return current value of the time function. | |
virtual void | setTimeFunction (Func1 *g) |
Set a function of time that is used in determining the mass flow rate through the device. | |
void | setSimTime (double time) |
Set current reactor network time. | |
Protected Attributes | |
string | m_name |
Flow device name. | |
bool | m_defaultNameSet = false |
true if default name has been previously set. | |
double | m_mdot = Undef |
Func1 * | m_pfunc = nullptr |
Function set by setPressureFunction; used by updateMassFlowRate. | |
Func1 * | m_tfunc = nullptr |
Function set by setTimeFunction; used by updateMassFlowRate. | |
double | m_coeff = 1.0 |
Coefficient set by derived classes; used by updateMassFlowRate. | |
double | m_time = 0. |
Current reactor network time. | |
Private Attributes | |
size_t | m_nspin = 0 |
size_t | m_nspout = 0 |
ReactorBase * | m_in = nullptr |
ReactorBase * | m_out = nullptr |
vector< size_t > | m_in2out |
vector< size_t > | m_out2in |
|
inline |
Definition at line 26 of file FlowDevice.h.
|
inlinevirtual |
String indicating the flow device implemented.
Usually corresponds to the name of the derived class.
Reimplemented in MassFlowController, PressureController, and Valve.
Definition at line 34 of file FlowDevice.h.
|
inline |
Retrieve flow device name.
Definition at line 39 of file FlowDevice.h.
|
inline |
Set flow device name.
Definition at line 44 of file FlowDevice.h.
bool setDefaultName | ( | map< string, int > & | counts | ) |
Set the default name of a flow device. Returns false
if it was previously set.
Definition at line 14 of file FlowDevice.cpp.
|
inline |
Mass flow rate (kg/s).
Definition at line 52 of file FlowDevice.h.
|
inlinevirtual |
Update the mass flow rate at time 'time'.
This must be overloaded in subclasses to update m_mdot.
Reimplemented in MassFlowController, PressureController, and Valve.
Definition at line 63 of file FlowDevice.h.
double outletSpeciesMassFlowRate | ( | size_t | k | ) |
Mass flow rate (kg/s) of outlet species k.
Returns zero if this species is not present in the upstream mixture.
Definition at line 86 of file FlowDevice.cpp.
double enthalpy_mass | ( | ) |
specific enthalpy
Definition at line 98 of file FlowDevice.cpp.
bool install | ( | ReactorBase & | in, |
ReactorBase & | out | ||
) |
Install a flow device between two reactors.
in | Upstream reactor. |
out | Downstream reactor. |
Definition at line 28 of file FlowDevice.cpp.
|
inlinevirtual |
Definition at line 79 of file FlowDevice.h.
|
inline |
Return a reference to the upstream reactor.
Definition at line 84 of file FlowDevice.h.
|
inline |
Return a const reference to the downstream reactor.
Definition at line 89 of file FlowDevice.h.
|
inline |
Return a mutable reference to the downstream reactor.
Definition at line 94 of file FlowDevice.h.
double evalPressureFunction | ( | ) |
Return current value of the pressure function.
The mass flow rate [kg/s] is calculated given the pressure drop [Pa] and a coefficient set by a flow device specific function; unless a user-defined pressure function is set, this is the pressure difference across the device. The calculation of mass flow rate depends to the flow device.
Definition at line 64 of file FlowDevice.cpp.
|
virtual |
Set a function of pressure that is used in determining the mass flow rate through the device.
The evaluation of mass flow depends on the derived flow device class.
Reimplemented in MassFlowController.
Definition at line 59 of file FlowDevice.cpp.
double evalTimeFunction | ( | ) |
Return current value of the time function.
The mass flow rate [kg/s] is calculated for a Flow device, and multiplied by a function of time, which returns 1.0 unless a user-defined function is provided. The calculation of mass flow rate depends on the flow device.
Definition at line 78 of file FlowDevice.cpp.
|
virtual |
Set a function of time that is used in determining the mass flow rate through the device.
The evaluation of mass flow depends on the derived flow device class.
Reimplemented in PressureController.
Definition at line 73 of file FlowDevice.cpp.
|
inline |
Set current reactor network time.
Definition at line 131 of file FlowDevice.h.
|
protected |
Flow device name.
Definition at line 136 of file FlowDevice.h.
|
protected |
true
if default name has been previously set.
Definition at line 137 of file FlowDevice.h.
|
protected |
Definition at line 139 of file FlowDevice.h.
|
protected |
Function set by setPressureFunction; used by updateMassFlowRate.
Definition at line 142 of file FlowDevice.h.
|
protected |
Function set by setTimeFunction; used by updateMassFlowRate.
Definition at line 145 of file FlowDevice.h.
|
protected |
Coefficient set by derived classes; used by updateMassFlowRate.
Definition at line 148 of file FlowDevice.h.
|
protected |
Current reactor network time.
Definition at line 151 of file FlowDevice.h.
|
private |
Definition at line 154 of file FlowDevice.h.
|
private |
Definition at line 155 of file FlowDevice.h.
|
private |
Definition at line 156 of file FlowDevice.h.
|
private |
Definition at line 157 of file FlowDevice.h.
|
private |
Definition at line 158 of file FlowDevice.h.
|
private |
Definition at line 158 of file FlowDevice.h.