Cantera  4.0.0a1
Loading...
Searching...
No Matches

Supply a mass flow rate that is a function of the pressure drop across the valve. More...

#include <flowControllers.h>

Inheritance diagram for Valve:
[legend]

Detailed Description

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 146 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.
 
double massFlowRate_ddP () const override
 Derivative of mass flow rate with respect to pressure difference.
 
 FlowDevice (shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name="(none)")
 
- Public Member Functions inherited from FlowDevice
 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.
 
virtual double massFlowRate_ddP () const
 Derivative of mass flow rate with respect to pressure difference.
 
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.
 
virtual void addMassFlowRateJacobian (SparseTriplets &trips, size_t row, double coeff, bool includePressureSpecies=true)
 Add Jacobian terms proportional to derivatives of the mass flow rate.
 
void addOutletSpeciesMassFlowRateJacobian (SparseTriplets &trips, size_t row, size_t k, double coeff, bool includeComposition=true, bool includePressureSpecies=true)
 Add Jacobian terms proportional to derivatives of outletSpeciesMassFlowRate(k).
 
void addInletEnthalpyJacobian (SparseTriplets &trips, size_t row, double coeff, bool includeComposition=true)
 Add Jacobian terms for the inlet enthalpy dependence on upstream state.
 
double enthalpy_mass ()
 specific enthalpy
 
virtual bool ready ()
 
ReactorBasein () const
 Return a reference to the upstream reactor.
 
const ReactorBaseout () const
 Return a const reference to the downstream reactor.
 
ReactorBaseout ()
 Return a mutable reference to the downstream reactor.
 
double evalPressureFunction ()
 Return current value of the pressure function.
 
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 (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
 
- Public Member Functions inherited from ConnectorNode
 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
 
ConnectorNodeoperator= (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

- Protected Member Functions inherited from FlowDevice
double pressureFunction_ddP (double deltaP) const
 Return the derivative of the pressure function at deltaP.
 
- Protected Attributes inherited from FlowDevice
double m_mdot = Undef
 
shared_ptr< Func1m_pfunc
 Function set by setPressureFunction; used by updateMassFlowRate.
 
shared_ptr< Func1m_tfunc
 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.
 
- Protected Attributes inherited from ConnectorNode
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.
 

Member Function Documentation

◆ type()

string type ( ) const
inlineoverridevirtual

String indicating the connector implemented.

Usually corresponds to the name of the derived class.

Reimplemented from FlowDevice.

Definition at line 151 of file flowControllers.h.

◆ setValveCoeff()

void setValveCoeff ( double  c)
inline

Set the proportionality constant between pressure drop and mass flow rate.

Definition at line 156 of file flowControllers.h.

◆ getValveCoeff()

double getValveCoeff ( )
inline

Get the valve coefficient.

Definition at line 161 of file flowControllers.h.

◆ updateMassFlowRate()

void updateMassFlowRate ( double  time)
overridevirtual

Compute the current mass flow rate, based on the pressure difference.

Reimplemented from FlowDevice.

Definition at line 79 of file flowControllers.cpp.

◆ massFlowRate_ddP()

double massFlowRate_ddP ( ) const
overridevirtual

Derivative of mass flow rate with respect to pressure difference.

Returns d(mdot)/d(P_in - P_out) for the current state. A return value of zero indicates that pressure coupling does not contribute Jacobian entries.

Since
New in Cantera 4.0.

Reimplemented from FlowDevice.

Definition at line 98 of file flowControllers.cpp.

◆ FlowDevice()

FlowDevice ( shared_ptr< ReactorBase r0,
shared_ptr< ReactorBase r1,
const string &  name = "(none)" 
)

Definition at line 28 of file FlowDevice.cpp.


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