This information is part of the Modelica Standard Library maintained by the Modelica Association.
Version 1.1, 2009-06-21
The Modelica_Fluid library (revisionId = r2625) was included as Modelica.Fluid in the
Modelica Standard Library 3.1.
Version 1.0, 2009-01-28
Modelica_Fluid was refactored and finalized for the release:
- Refactoring of the code
This became necessary as the previous release Modelica.Fluid Streams Beta3
still reflected the long development history, while the basic concepts had been crystallized.
Please consult the subversion control (SVN) logs for individual changes.
- Device oriented package names
The former sub-packages Junctions and PressureLosses have been combined into the new subpackage Fittings.
The former Pumps and Volumes.SweptVolume have become the initial version of fluid Machines.
The former Volumes package is now called Vessels.
- Complete implementation of one-dimensional fluid flow
The balance equations as documented in
are now completely implemented. The implementations with generic boundary flow and source terms find in:
Specific models combine the balances and define the boundary flow and source terms as appropriate.
All non-trivial mass and energy balances of Vessels, Machines and Fittings have been replaced with PartialLumpedVolume.
The mass and energy balances of Pipes are based on PartialDistributedVolume.
for an example utilizing the complete balance equations.
- New approach for the connection of distributed flow models
The staggered grid approach offers different choices for the connection approach. So far the preferred modeling was to put full mass balances
into the pipes and expose half momentum balances through the ports (ModelStructure a_v_b).
This resulted in nonlinear equation systems for pressure/flow correlations in connection sets.
A new default ModelStructure av_vb has been introduced putting full momentum balances into the models and
exposing half mass balances through the ports (av_vb replaces the former avb). This way the nonlinear equation systems are avoided.
High-index DAEs need to be treated instead in connection sets.
Alternatively a Fitting like SuddenExpansion can be introduced to account for different cross flow areas of connected flow models.
- New Vessels.BaseClasses.PartialLumpedVessel treating the ports, including hydraulic resistances, for ClosedVolume, SimpleTank and SweptVolume.
- Clarification of modeling assumptions
The documentation has been extended to better explain the modeling assumptions made. In particular the section
now makes clear that the ports represent the thermodynamic enthalpy, as opposed to stagnation enthalpy,
and thermodynamic or static pressure, as opposed to total pressure. An new package Explanatory has been added to the
examples to show the difference between static pressure and total pressure and possible implications. See
- System (former Ambient)
The use of the global System object has been extended towards common default values for
modeling assumptions, initialization, and advanced settings that are different for each application of the library
but should nevertheless provide default values for reasons of convenience.
In particular steady-state initialization and complete steady-state simulation can now be specified system-wide.
A new Types.Init.Dynamics has been introduced, combining steady-state and initial conditions.
The former Types.Init has become obsolete.
- Extension of pumps for better consideration of zero flow and heat transfer with environment
The simplified mass and energy balances have been replaced with a rigorous formulation.
Moreover an optional heat transfer model can be configured for heat exchanged with the environment or the housing.
- Refinement of valves for flow reversal
All valves now use upstream discretization for reversing flow conditions.
- Finalization of trace substances
Modelica.Fluid now provides a sound implementation for trace substances,
which can easily be added to existing Media models, in order to study their evolution in a fluid system.
- Vectorized ports for volumes
The ports of models that typically have large volumes, like Vessels and Sources,
have been vectorized. Formerly the connection of multiple flow models to the same port
of such volume models resulted in unintended mixing equations for stream variables
in connection sets outside the volumes. The mixing takes place inside the volumes
when using multiple ports. Moreover a
has been introduced. It can be attached to components like pipes,
which do not have vectorized ports on their own.
- Inverse parameterization of flow models with nominal operational conditions
Flow models have been added or extended to support the parameterization with nominal values
(Machines.ControlledPump, Orifices.SimpleGenericOrifice, Pipes.BaseClasses.FlowModels.NominalTurbulentFlow).
They are intended for early phases of system modeling, if geometries and flow characteristics
are of secondary interest. As these models use the same interfaces, base classes and naming conventions,
they can easily be replaced with more detailed models
as more information shall be taken into account later on.
- Replaceable HeatTransfer models
The Vessels and the Machines now have replaceable HeatTransfer models,
besides the Pipes. All HeatTransfer models are optional.
The heat transfer models are parameterized with the Medium and the ThermodynamicState
of involved flow segments.
- All examples are working now (using Dymola 7.1).
The number of examples has been extended with the former critical test cases
HeatingSystem and IncompressibleFluidNetwork. Moreover the HeatExchangers have been
moved into Examples.
Version 1.0 Streams Beta 3, 2008-10-12
Modelica.Fluid was further improved:
- Volumes, tanks, junctions
Added asserts to require that ports are connected at most once.
If a user would perform more than one connection, ideal mixing
takes place for the connected components and this is nearly never
what the user would like to have
Renamed Ambient to System, including adaptation of models.
Introduced default values system.flowDirection and
as a comment system.initType. system.flowDirection is used in
two port components as default.
Corrected specification of flowDirection.
Added a HeatPort.
- PartialDistributedFlow models
Adapted determination of velocities to usage of
upstream properties at ports.
Corrected and unified initialization of p_start[*] values.
- DistributedPipe models
Changed treatment of port densities and viscosities
to the treatment of the lumped pipe model. This way events are
avoided if the mass flow rate crosses or approaches zero.
Correct determination of Reynolds numbers.
Added test model DistributedPipeClosingValve.
Changed flowCharacteristic into valveCharacteristic
Removed parameter Kv and added dp_nom, m_flow_nom from linear
and discrete valve interfaces. Added test cases.
Adapted Examples to new LinearValve and DiscreteValve,
using nominal values instead of Kv.
Changed default flow coefficient selection to OpPoint
- Fixed units for Kv and Cv in control valve models.
- Updated tests for valves.
- Bug in Modelica.Fluid.Test.TestComponents.Pumps.TestWaterPump2 corrected
(complicated redeclaration issue).
- Adapted AST_BatchPlant so that "Check" is successful.
Simulation fails after 600 s.
density_pTX(Medium.p_default, Medium.T_default, Medium.X_default)
as default value for nominal densities (previously it was a literal
such as 1000).
Updated energy balance equations for pumps (no division by zero anymore,
fixed several bugs related to Np).
Added two more test cases for pumps.
Fixed pump initialization options.
Explanation for the energy balanced added as comment
"h=0" replaced by "h=Medium.h_default" since otherwise an assert is triggered
if "h=0" is not in the medium range.
Fluid ports positioned in the middle line
and using the same size as for all other components.
Resized input connector, so that it has the same size as the
standard input connectors.
Changed icon text to input connector to "N_in [rpm]".
Added unit rev/min to the external and internal input connector.
fillcolor=white added to icon
made line Thickness = Single,
since icon does not look nice sometimes
- All components
Changed %name color from black to blue
(is a conversion bug, since Modelica 2 has blue as default
color whereas Modelica 3 has black and Dymola is not
taking care off this).
Made icon elements invisible, if corresponding input is disabled.
- Valves, Pipes, PressureLosses, HeatExchangers, two port senors
Added an arrow in the icon for the "design flow direction" from
port_a to port_b.
- Moved default initialization in "System" in to a comment, since no effect yet
- Added the explanation from Francesco for Kv, Cv for valves in the
User's Guide and added links in the corresponding valves to this description
"Check" for the library is successful. "Check with Simulation"
(i.e., simulating all test models in the library) is successful
with the exceptions:
Need to be fixed in a later release (requires quite a lot of work).
These are test cases where too much initial conditions are given.
The goal is to work on methods how this can be handled.
So, this is a principal problem that these models do not simulate.
Version 1.0 Streams Beta 2, 2008-10-08
Modelica.Fluid was transformed to Modelica 3 and to Modelica Standard
library 3.0 (by automatic conversion). Further changes:
- Emulated enumerations changed to real enumerations.
- Improved ControlValves code
- Introduced stream connectors with stream keyword (was previously an annotation)
- Introduced inStream() instead of inflow()
- Introduced m_flow*actualStream(h_outflow) instead of
streamFlow() or semiLinear(m_flow, inStream(h_outflow), medium.h)
- Removed Modelica.Fluid.Media and all references to it (since now available
in Modelica.Media of MSL3.0).
- Fixed PartialLumpedVolume for media with multiple substances
- New function "Utilities.RegFun3" for regularization with static head
- Fix density in static head models with the new RegFun3 functions
- Minor bug in MixingVolume corrected:
V_lumped and Wb_flow have been set as modifiers when extending from PartialLumpedVolume,
although they are not declared as input. This is not allowed in Modelica 3.
Fixed by replacing the modifiers by equations.
Introduced p_default, T_default, h_default as default values, since
otherwise warnings will always be printed because parameter value is missing.
Changed default values of parameters reference_p, reference_T to
p_default, T_default (some have been xx_default, some reference_xx,
it seems best to always use the same approach)
Added default value for parameter "rho_nominal" =
Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default)
in order to avoid unnecessary warning messages.
Should be replaced by "Medium.rho_default", once available.
Added default value for parameter "mu_nominal"
(computed with default values of p,T,X from dynamicViscosity(..))
Replaced default value "rho_nominal=0.01" by
Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default)
Corrected icons of ports (wrongly sized by automatic conversion from
Modelica 2 to Modelica 3).
Parameters dp_nom, m_flow_nom are not defined in junction components.
No default or start values for "parameter LossFactorData data"
Changed the model to "partial model" to avoid warning messages
Version 1.0 Streams Beta 1, 2008-05-02
Changed connectors to stream connectors and adapted the following sublibraries:
- Test and Examples (most of the examples and tests are simulating)
- Introduced HeatPorts with vectorized icon in Modelica.Fluid.Interfaces
- Deleted Modelica.Fluid.WorkInProgress since it seems to be too much work
to convert it to stream connectors
- Added Modelica.Fluid.Media (contains ConstantLiquidWater
medium because functions are missing in Modelica.Media)
- Added two additional test cases with LumpedPipes
(to identify problems with hierarchically connected stream connectors).
- Deleted TestPortVolumes since PortVolumes can no longer be implemented with
- Leakage flow introduced for valves
- DrumBoiler Example corrected
- Regularization for sensors (T,h,...), in order that no discontinuity
for bi-directional flow
- Density computation in static head corrected
- New functions Utilities.regUnitStep, regStep
- New components (TestComponents.Sensors.TestOnePortSensors1/.TestOnePortSensors2l,
- Introduced port_a.T, port_b.T (for plotting)
- Removed initialization menu
- Introduced dp_start, m_flow_start
- Removed previous start values of PartialTwoPortTransport in all models
- PartialPump: Removed p_nom, since no longer needed (only dp_nom)
- Made "%name" in the icons of all components unified (and better looking)
- Changed default value of leakage flow of valves to zero.
- Fixed Modelica.Fluid.Junctions.MassFlowRatio so that it compiles
(inflow(..) currently only supported for scalars, not for vectors)
- Added script libraryinfo.mos, in order that Modelica.Fluid appears in the
Dymola library window automatically (provided library is in MODELICAPATH)
- Replaced semiLinear(..) by streamFlow(..) (not yet at all places)
- Introduced check-boxes in parameter menu of Sources (is more convenient to use)
Computation of V_flow and optionally port_a_T, port_b_T.
Error in temperature calculation corrected
Default of bottom pipe diameter changed from 0 to 0.1, since
otherwise a division by zero (if not connected and not changed).
Due to changes in PartialTwoPortTransport, port_a_T_inflow does no longer exist
and the usage to it is removed.
Due to changes in PartialTwoPortTransport,
p_start does no longer exist and the usage to it is removed.
- VersionBuild introduced, as well as automatic update of
Version 1.0 Beta 4, 2008-04-26
Changes according to the Modelica Design Meetings since the
last beta version. This version is used to "freeze" the current
development, in order to change to a version with a new
connector design using stream variables.
Version 1.0 Beta 3, 2007-06-05
Changes according to the Modelica Design Meetings since the
Modelica'2006 conference, especially, improved initialization,
changed Source components (input connectors must be enabled),
improved tank component, moved test models from Examples to
new package Test, many more test models, etc.
This version is slightly non-backward compatible to version 1.0 Beta 2.
Version 1.0 Beta 2, 2006-08-28
Package considerably restructured and some new components added.
New examples (ControlledTankSystem, AST_BatchPlant).
Version 0.96, 2006-01-08
- New package Modelica.Fluid.PressureLosses.
- New package Modelica.Fluid.WorkInProgress.
- New components in Modelica.Fluid.Components:
ShortPipe, OpenTank, ValveDiscrete, StaticHead.
- New components in Modelica.Fluid.Examples.
- Improved users guide.
Version 0.910, 2005-10-25
- Changes as decided on 41th-45th Modelica Design Meetings
(details, see minutes).
Version 0.900, 2004-10-18
- Changes as decided on 40th Modelica Design Meeting in Dresden
(see also minutes)
Version 0.794, 2004-05-31
- Sensors.mo, Examples/DrumBoiler.mo: extend sensors with user choice
for measurement unit.
- Components.mo, Types.mo: moved components and types to
- Moved Examples from file Modelica.Fluid/package.mo to
Modelica.Media/Examples subdirectory and created separate
file per sub-package. This shall simplify the maintenance of
examples by different authors
- Moved Interfaces from file Modelica.Fluid/package.mo to
Version 0.793, 2004-05-18
- Removed "semiLinear" function since available as
Modelica 2.1 built-in operator in Dymola.
- Minor bug in "Components.ShortPipe" corrected.
- Bug in "Components.Orifice" corrected
(dp was previously calculated in
but this was removed and not updated in Orifice).
Version 0.792, 2003-11-07
This is the first consolidated version made up from
several changes for Modelica'2003.
Modelica.Fluid is still quite far away
from a library that could be included in the Modelica
- Oct., 2003
by Martin Otter: Adapted to latest design of the Modelica.Media
by Rüdiger Franke: Included sensor components and
- Sept., 2003
by Martin Otter: Changes according to the decisions of the
Modelica design meeting in Dearborn, Sept. 2-4, 2003.
Fluid library split into two packages: Modelica.Media
that contains the media models and Modelica.Fluid that
contains fluid flow components. Modelica.Media is
independent of Modelica.Fluid and my be used also from
other packages that may have a different design as
- Aug., 2003
by Martin Otter: Improved documentation, PortVicinity (now called semiLinear)
manually expanded, two different volume types,
replaced number of massFractions from n to n-1 in order
that usage of model for single substances is easier
and in order that no special cases have to be treated
in the equations (previously the massFraction equations had to
be removed for single substance flow; now they are removed
automatically, since the dimensions are zero, and not one
as previously), included asserts to check the validity of
the medium models, included the dynamic viscosity in the
medium models, adapted the examples and medium models to the
changes in Interfaces, improved menus according to the new
features in Dymola 5.1. Added "Components.ShortPipe" that
contains a detailed model of the frictional losses in pipes
over a very wide range.
- Feb., 2003
by Martin Otter: Included several elementary components and
a model for moist air. Some elementary components, such as
FixedAmbient, are adapted versions from the SimpleFlow fluid library
of Anton Haumer.
- Dec., 2002
by Hubertus Tummescheit:
Improved version of the high precision water model
(Copy from ThermoFluid library, code reorganization,
enhanced documentation, additional functions).
- Nov. 30, 2002
by Martin Otter: Improved the design from the design meeting:
Adapted to Modelica standard library 1.5,
added "choicesAllMatching=true" annotation,
added short documentation to "Interfaces",
added packages "Examples" and "Media" (previously called "Properties")
from previous versions and adapted them to the updated
- Nov. 20-21, 2002
by Hilding Elmqvist, Mike Tiller, Allan Watson, John Batteh, Chuck Newman,
Jonas Eborn: Improved at the 32nd Modelica Design Meeting.
- Nov. 11, 2002
by Hilding Elmqvist, Martin Otter: improved version.
- Nov. 6, 2002
by Hilding Elmqvist: first version of the basic design.