Orifice Plate¶
![]()
Represents an orifice plate flow-measurement device modelled using the ISO 5167 standard. Calculates the pressure drop across the orifice for a given mass flow rate and fluid properties, supporting single-phase liquid or gas service and two-phase homogeneous or slip flow models.
DWSIM.UnitOperations.UnitOperations.OrificePlate
Assembly DWSIM.UnitOperations.dll · Object ← BaseClass ← UnitOpBaseClass ← OrificePlate
At a glance¶

| Port | Index | Connected in the example |
|---|---|---|
| Inlet, material | 0 |
Water-in |
| Outlet, material | 0 |
Water-out |
Example¶
This code runs on every build of this site, and the output below is what it printed.
fs = (Flowsheet.Create("OrificePlateExample")
.WithCompound("Water")
.WithPropertyPackage(PropertyPackages.SteamTables))
water_in = (fs.AddMaterialStream("Water-in")
.At(Q.Celsius(25.0), Q.Bar(5.0))
.WithMassFlow(Q.KgPerSecond(20.0)))
water_out = fs.AddMaterialStream("Water-out")
orifice = (fs.AddOrificePlate("FE-1")
.ConnectFeed(water_in)
.ConnectProduct(water_out))
fe1 = orifice.Object
fe1.OrifType = OrificePlate.OrificeType.FlangeTaps
fe1.InternalPipeDiameter = 0.10226 # m, 4 inch schedule 40
fe1.OrificeDiameter = 0.060 # m
fe1.Beta = fe1.OrificeDiameter / fe1.InternalPipeDiameter # not updated by the two setters above
fs.AutoLayout()
fs.Solve()
print(f"Beta (d/D) = {fe1.Beta:.4f}")
print(f"Orifice pressure drop = {fe1.OrificePressureDrop / 1e3:.2f} kPa")
print(f"Permanent pressure drop = {fe1.OverallPressureDrop / 1e3:.2f} kPa")
print(f"Outlet P = {water_out.PressurePa / 1e5:.4f} bar")
print(f"Temperature change = {fe1.DeltaT:.4f} K")
Output
Beta (d/D) = 0.5867
Orifice pressure drop = 60.34 kPa
Permanent pressure drop = 38.78 kPa
Outlet P = 4.6122 bar
Temperature change = 0.0086 K
DWSIM 10.2.11.0, generated 2026-10-08.
Properties¶
IDs accepted by GetPropertyValue, SetPropertyValue, the sensitivity analysis, the optimizer, the Adjust block and dynamic events. Units are SI; pass another unit system to GetPropertyValue to get them converted.
| ID | Name | Unit (SI) | Input |
|---|---|---|---|
PROP_OP_0 |
Pressure Tappings | yes | |
PROP_OP_1 |
Orifice Diameter | m | yes |
PROP_OP_2 |
Internal Pipe Diameter | m | yes |
PROP_OP_3 |
Correction Factor | yes | |
PROP_OP_4 |
Beta (d/D) | result | |
PROP_OP_5 |
Overall Pressure Drop | Pa | result |
PROP_OP_6 |
Orifice Pressure Drop | Pa | result |
PROP_OP_7 |
Temperature Difference | K (difference) | result |
Learn more¶
-
User guide
-
FluentAPI
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
OrificePlate(): Initializes a new default instance of the OrificePlate class.
Initializes a new default instance of the OrificePlate class.
OrificePlate(string, string): Initializes a new instance of the OrificePlate class with a name and description.
Initializes a new instance of the OrificePlate class with a name and description.
| Parameter | Type | Description |
|---|---|---|
name |
String |
The display name of the orifice plate. |
description |
String |
A brief description of the orifice plate. |
Properties¶
Beta: Gets the diameter ratio β = d/D (orifice diameter / pipe internal diameter).
Gets the diameter ratio β = d/D (orifice diameter / pipe internal diameter). It follows the two diameters when both are set; the stored value is used only when they are not.
CalculationMethod: Gets or sets the two-phase flow calculation method used when both phases are present.
Gets or sets the two-phase flow calculation method used when both phases are present.
CorrectionFactor: Gets or sets a dimensionless correction factor applied to the calculated discharge coefficient.
Gets or sets a dimensionless correction factor applied to the calculated discharge coefficient.
DeltaT: Gets or sets the calculated temperature change (K) across the orifice plate.
Gets or sets the calculated temperature change (K) across the orifice plate.
HasPropertiesForDynamicMode: Gets a value indicating whether this unit operation exposes dedicated properties for dynamic mode.
Gets a value indicating whether this unit operation exposes dedicated properties for dynamic mode.
InternalPipeDiameter: Gets or sets the internal pipe bore diameter (m) upstream of the orifice.
Gets or sets the internal pipe bore diameter (m) upstream of the orifice.
MobileCompatible: Gets a value indicating whether this unit operation is compatible with mobile interfaces.
Gets a value indicating whether this unit operation is compatible with mobile interfaces.
ObjectClass: Gets or sets the simulation object class category for this orifice plate (PressureChangers).
Gets or sets the simulation object class category for this orifice plate (PressureChangers).
OrificeDiameter: Gets or sets the orifice bore diameter (m).
Gets or sets the orifice bore diameter (m).
OrificePressureDrop: Gets or sets the differential pressure (Pa) measured directly across the orifice throat.
Gets or sets the differential pressure (Pa) measured directly across the orifice throat.
OrifType: Gets or sets the pressure tap configuration of this orifice plate.
Gets or sets the pressure tap configuration of this orifice plate.
OverallPressureDrop: Gets or sets the total pressure drop (Pa) across the orifice plate including flow recovery losses.
Gets or sets the total pressure drop (Pa) across the orifice plate including flow recovery losses.
SupportsDynamicMode: Gets a value indicating whether this unit operation supports dynamic simulation mode.
Gets a value indicating whether this unit operation supports dynamic simulation mode.
Methods¶
Calculate(object): Performs the ISO 5167 orifice plate calculation: determines the downstream pressure and temperature given the inlet...
Performs the ISO 5167 orifice plate calculation: determines the downstream pressure and temperature given the inlet stream conditions and the configured orifice geometry.
| Parameter | Type | Description |
|---|---|---|
args |
Object |
Optional calculation arguments (not used). |
CloneXML(): Creates a deep copy of this orifice plate via XML serialization.
Creates a deep copy of this orifice plate via XML serialization.
CloseEditForm(): Closes and disposes the editing form.
Closes and disposes the editing form.
DeCalculate(): Clears all calculated results.
Clears all calculated results.
DisplayEditForm(): Opens or activates the editing form.
Opens or activates the editing form.
GetDisplayDescription(): Returns the localised display description.
Returns the localised display description.
GetDisplayName(): Returns the localised display name.
Returns the localised display name.
GetIconBitmapBytes(): Returns the icon bitmap as a byte array.
Returns the icon bitmap as a byte array.
GetProperties(PropertyType): Returns an array of property identifiers for the specified property type.
Returns an array of property identifiers for the specified property type.
| Parameter | Type | Description |
|---|---|---|
proptype |
PropertyType |
GetPropertyUnit(string, IUnitsOfMeasure): Returns the unit string for the specified property.
Returns the unit string for the specified property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
|
su |
IUnitsOfMeasure |
GetPropertyValue(string, IUnitsOfMeasure): Returns the value of the specified property.
Returns the value of the specified property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
|
su |
IUnitsOfMeasure |
GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text report of the orifice plate results.
Generates a plain-text report of the orifice plate results.
| Parameter | Type | Description |
|---|---|---|
su |
IUnitsOfMeasure |
|
ci |
CultureInfo |
|
numberformat |
String |
RunDynamicModel(): Executes a single dynamic model step by delegating to the steady-state Calculate routine.
Executes a single dynamic model step by delegating to the steady-state Calculate routine.
SetPropertyValue(string, object, IUnitsOfMeasure): Sets the value of the specified property.
Sets the value of the specified property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
|
propval |
Object |
|
su |
IUnitsOfMeasure |
UpdateEditForm(): Refreshes the editing form with updated data.
Refreshes the editing form with updated data.
Fields¶