Supply a mass flow rate that is a function of the pressure drop across the valve. More...
#include <flowControllers.h>
Supply a mass flow rate that is a function of the pressure drop across the valve.
The default behavior is a linearly proportional to the pressure difference. Note that real valves do not have this behavior, so this class does not model real, physical valves.
The device coefficient c sets the proportionality constant between pressure drop and mass flow rate and has units of kg/s/Pa. The mass flow rate is computed as:
\[\dot{m} = c g(t) f(\Delta P) \]
where g and f are functions of time and pressure drop that are set by setTimeFunction
and setPressureFunction
, respectively. If no functions are specified, the mass flow rate defaults to:
\[\dot{m} = c \Delta P \]
Definition at line 151 of file flowControllers.h.
Public Member Functions | |
string | type () const override |
String indicating the connector implemented. | |
void | setValveCoeff (double c) |
Set the proportionality constant between pressure drop and mass flow rate. | |
double | getValveCoeff () |
Get the valve coefficient. | |
void | updateMassFlowRate (double time) override |
Compute the current mass flow rate, based on the pressure difference. | |
FlowDevice (shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name="(none)") | |
![]() | |
FlowDevice (shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name="(none)") | |
string | type () const override |
String indicating the connector implemented. | |
double | massFlowRate () |
Mass flow rate (kg/s). | |
virtual void | updateMassFlowRate (double time) |
Update the mass flow rate at time 'time'. | |
virtual void | setMassFlowRate (double mdot) |
Set the fixed mass flow rate (kg/s) through a flow device. | |
double | deviceCoefficient () const |
Get the device coefficient (defined by derived class). | |
void | setDeviceCoefficient (double c) |
Set the device coefficient (defined by derived class). | |
virtual void | setPrimary (shared_ptr< ConnectorNode > primary) |
Set the primary mass flow controller. | |
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. | |
virtual void | setPressureFunction (shared_ptr< Func1 > f) |
Set a function of pressure to modify the pressure response. | |
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. | |
virtual void | setTimeFunction (shared_ptr< Func1 > g) |
Set a function of time to modulate the mass flow rate. | |
void | setSimTime (double time) |
Set current reactor network time. | |
ConnectorNode (const string &name="(none)") | |
Transitional constructor. | |
ConnectorNode (shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name="(none)") | |
Instantiate a ConnectorNode object with associated ReactorBase objects. | |
ConnectorNode (const ConnectorNode &)=delete | |
![]() | |
ConnectorNode (const string &name="(none)") | |
Transitional constructor. | |
ConnectorNode (shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name="(none)") | |
Instantiate a ConnectorNode object with associated ReactorBase objects. | |
ConnectorNode (const ConnectorNode &)=delete | |
ConnectorNode & | operator= (const ConnectorNode &)=delete |
virtual string | type () const |
String indicating the connector implemented. | |
string | name () const |
Retrieve connector name. | |
void | setName (const string &name) |
Set connector name. | |
void | setDefaultName (map< string, int > &counts) |
Set the default name of a connector. Returns false if it was previously set. | |
Additional Inherited Members | |
![]() | |
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. | |
![]() | |
pair< shared_ptr< ReactorBase >, shared_ptr< ReactorBase > > | m_nodes |
Pair of reactors forming end points of the connector. | |
string | m_name |
ConnectorNode name. | |
bool | m_defaultNameSet = false |
true if default name has been previously set. | |
|
inlineoverridevirtual |
String indicating the connector implemented.
Usually corresponds to the name of the derived class.
Reimplemented from FlowDevice.
Definition at line 156 of file flowControllers.h.
|
inline |
Set the proportionality constant between pressure drop and mass flow rate.
Definition at line 161 of file flowControllers.h.
|
inline |
Get the valve coefficient.
Definition at line 166 of file flowControllers.h.
|
overridevirtual |
Compute the current mass flow rate, based on the pressure difference.
Reimplemented from FlowDevice.
Definition at line 63 of file flowControllers.cpp.
FlowDevice | ( | shared_ptr< ReactorBase > | r0, |
shared_ptr< ReactorBase > | r1, | ||
const string & | name = "(none)" |
||
) |
Definition at line 27 of file FlowDevice.cpp.