model System "System properties and default values (ambient, flow direction, initialization)"
package Medium = Modelica.Media.Interfaces.PartialMedium "Medium model for default start values";
parameter Modelica.SIunits.AbsolutePressure p_ambient = 101325 "Default ambient pressure"
annotation (Dialog(group = "Environment"));
parameter Modelica.SIunits.Temperature T_ambient = 293.15 "Default ambient temperature"
annotation (Dialog(group = "Environment"));
parameter Modelica.SIunits.Acceleration g = Modelica.Constants.g_n "Constant gravity acceleration"
annotation (Dialog(group = "Environment"));
parameter Boolean allowFlowReversal = true "= false to restrict to design flow direction (port_a -> port_b)"
annotation (
Dialog(tab = "Assumptions"),
Evaluate = true);
parameter Modelica.Fluid.Types.Dynamics energyDynamics = Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Default formulation of energy balances"
annotation (
Evaluate = true,
Dialog(
tab = "Assumptions",
group = "Dynamics"));
parameter Modelica.Fluid.Types.Dynamics massDynamics = energyDynamics "Default formulation of mass balances"
annotation (
Evaluate = true,
Dialog(
tab = "Assumptions",
group = "Dynamics"));
final parameter Modelica.Fluid.Types.Dynamics substanceDynamics = massDynamics "Default formulation of substance balances"
annotation (
Evaluate = true,
Dialog(
tab = "Assumptions",
group = "Dynamics"));
final parameter Modelica.Fluid.Types.Dynamics traceDynamics = massDynamics "Default formulation of trace substance balances"
annotation (
Evaluate = true,
Dialog(
tab = "Assumptions",
group = "Dynamics"));
parameter Modelica.Fluid.Types.Dynamics momentumDynamics = Modelica.Fluid.Types.Dynamics.SteadyState "Default formulation of momentum balances, if options available"
annotation (
Evaluate = true,
Dialog(
tab = "Assumptions",
group = "Dynamics"));
parameter Modelica.SIunits.MassFlowRate m_flow_start = 0 "Default start value for mass flow rates"
annotation (Dialog(tab = "Initialization"));
parameter Modelica.SIunits.AbsolutePressure p_start = p_ambient "Default start value for pressures"
annotation (Dialog(tab = "Initialization"));
parameter Modelica.SIunits.Temperature T_start = T_ambient "Default start value for temperatures"
annotation (Dialog(tab = "Initialization"));
parameter Boolean use_eps_Re = false "= true to determine turbulent region automatically using Reynolds number"
annotation (
Evaluate = true,
Dialog(tab = "Advanced"));
parameter Modelica.SIunits.MassFlowRate m_flow_nominal = if use_eps_Re then 1 else 100 * m_flow_small "Default nominal mass flow rate"
annotation (Dialog(
tab = "Advanced",
enable = use_eps_Re));
parameter Real eps_m_flow(min = 0) = 1e-4 "Regularization of zero flow for |m_flow| < eps_m_flow*m_flow_nominal"
annotation (Dialog(
tab = "Advanced",
enable = use_eps_Re));
parameter Modelica.SIunits.AbsolutePressure dp_small(min = 0) = 1 "Default small pressure drop for regularization of laminar and zero flow"
annotation (Dialog(
tab = "Advanced",
group = "Classic",
enable = not use_eps_Re));
parameter Modelica.SIunits.MassFlowRate m_flow_small(min = 0) = 0.01 "Default small mass flow rate for regularization of laminar and zero flow"
annotation (Dialog(
tab = "Advanced",
group = "Classic",
enable = not use_eps_Re));
annotation (
defaultComponentName = "system",
defaultComponentPrefixes = "inner",
missingInnerMessage = "\nYour model is using an outer \"system\" component but\nan inner \"system\" component is not defined.\nFor simulation drag Modelica.Fluid.System into your model\nto specify system properties.",
Icon(
coordinateSystem(
preserveAspectRatio = false,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(
extent = {
{-100, 100},
{100, -100}},
lineColor = {0, 0, 255},
fillColor = {255, 255, 255},
fillPattern = FillPattern.Solid),
Text(
extent = {
{-150, 150},
{150, 110}},
lineColor = {0, 0, 255},
textString = "%name"),
Line(points = {
{-86, -30},
{82, -30}}),
Line(points = {
{-82, -68},
{-52, -30}}),
Line(points = {
{-48, -68},
{-18, -30}}),
Line(points = {
{-14, -68},
{16, -30}}),
Line(points = {
{22, -68},
{52, -30}}),
Line(points = {
{74, 84},
{74, 14}}),
Polygon(
points = {
{60, 14},
{88, 14},
{74, -18},
{60, 14}},
fillPattern = FillPattern.Solid),
Text(
extent = {
{16, 20},
{60, -18}},
textString = "g"),
Text(
extent = {
{-90, 82},
{74, 50}},
textString = "defaults"),
Line(
points = {
{-82, 14},
{-42, -20},
{2, 30}},
thickness = 0.5),
Ellipse(
extent = {
{-10, 40},
{12, 18}},
pattern = LinePattern.None,
fillColor = {255, 0, 0},
fillPattern = FillPattern.Solid)}),
Documentation(info = "<html>\n<p>\n A system component is needed in each fluid model to provide system-wide settings, such as ambient conditions and overall modeling assumptions.\n The system settings are propagated to the fluid models using the inner/outer mechanism.\n</p>\n<p>\n A model should never directly use system parameters.\n Instead a local parameter should be declared, which uses the global setting as default.\n The only exceptions are:</p>\n <ul>\n <li>the gravity system.g,</li>\n <li>the global system.eps_m_flow, which is used to define a local m_flow_small for the local m_flow_nominal:\n <pre>m_flow_small = system.eps_m_flow*m_flow_nominal</pre>\n </li>\n </ul>\n<p>\n The global system.m_flow_small and system.dp_small are classic parameters.\n They do not distinguish between laminar flow and regularization of zero flow.\n Absolute small values are error prone for models with local nominal values.\n Moreover dp_small can generally be obtained automatically.\n Consider using the new system.use_eps_Re = true (see Advanced tab).\n</p>\n</html>"));
end System;