Changeset 1942

Show
Ignore:
Timestamp:
12/04/2008 07:22:31 AM (5 weeks ago)
Author:
rfranke
Message:

Pipes:

  • go back to vectorized version of BaseClasses.HeatTransfer
  • new Pipes.BaseClasses.PressureDrop, providing a generic interface PartialPipePressureDrop and
  • PartialWallFrictionAndGravity, a vectorized version of PressureLosses.WallFrictionAndGravity
  • adapt StaticPipe to new PressureDrop interface
Location:
Modelica_Fluid/branches/StreamConnector/Modelica_Fluid
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/AST_BatchPlant.mo

    r1940 r1942  
    391391                   annotation (Placement(transformation(extent={{10,230},{-10, 
    392392              250}}, rotation=0))); 
    393     Pipes.StaticPipe pipeB1B3( 
     393    Modelica_Fluid.PressureLosses.WallFrictionAndGravity pipeB1B3( 
    394394      redeclare package Medium = BatchMedium, 
    395395      length=1, 
     
    401401      annotation (Placement(transformation(extent={{-42,134},{-62,154}}, 
    402402            rotation=0))); 
    403     Pipes.StaticPipe pipeB2B3( 
     403    Modelica_Fluid.PressureLosses.WallFrictionAndGravity pipeB2B3( 
    404404      redeclare package Medium = BatchMedium, 
    405405      length=1, 
     
    411411      annotation (Placement(transformation(extent={{36,134},{56,154}}, rotation= 
    412412             0))); 
    413     Pipes.StaticPipe pipeB1B1( 
     413    Modelica_Fluid.PressureLosses.WallFrictionAndGravity pipeB1B1( 
    414414      redeclare package Medium = BatchMedium, 
    415415      length=1, 
     
    423423          extent={{-10,10},{10,-10}}, 
    424424          rotation=90))); 
    425     Pipes.StaticPipe pipeB6Pump( 
     425    Modelica_Fluid.PressureLosses.WallFrictionAndGravity pipeB6Pump( 
    426426      redeclare package Medium = BatchMedium, 
    427427      from_dp=true, 
     
    435435          extent={{-10,10},{10,-10}}, 
    436436          rotation=90))); 
    437     Pipes.StaticPipe pipeB7Pump( 
     437    Modelica_Fluid.PressureLosses.WallFrictionAndGravity pipeB7Pump( 
    438438      redeclare package Medium = BatchMedium, 
    439439      length=1, 
     
    12911291              fillColor={85,170,255}, 
    12921292              fillPattern=FillPattern.Solid), 
    1293             Line(points={{-200,100},{-200,-100},{0,-100},{0,100}}, color={0,0,0}), 
     1293            Line(points={{-200,100},{-200,-100},{0,-100},{0,100}}, color={0,0,0}),  
     1294 
    12941295            Text( 
    12951296              extent={{-198,74},{0,38}}, 
     
    20512052              lineColor={0,0,0}, 
    20522053              textString=DynamicSelect(" ", realString( 
    2053                     level, 
    2054                     1, 
     2054                    level,  
     2055                    1,  
    20552056                    3))), 
    20562057            Line( 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/BranchingDistributedPipes.mo

    r1927 r1942  
    1010    use_T_start=true, 
    1111    from_dp=true, 
    12     T_start=280, 
    13     diameter=0.01, 
    14     nNodes=5, 
    15     redeclare package WallFriction =  
    16         Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
    17     m_flow_start=0.1, 
    18     p_b_start=1.0e5, 
     12    diameter=0.01, 
     13    nNodes=5, 
     14    redeclare package WallFriction =  
     15        Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     16    m_flow_start=0.1, 
    1917    length=2, 
    2018    use_approxPortProperties=true, 
    21     heatTransfer(each alpha0=500), 
    22     initType=Modelica_Fluid.Types.Init.NoInit, 
    23     p_a_start=100000)  
     19    initType=Modelica_Fluid.Types.Init.NoInit, 
     20    heatTransfer(alpha0=500), 
     21    p_a_start=100000, 
     22    p_b_start=100000, 
     23    T_start=280)  
    2424            annotation (Placement(transformation(extent={{-34,38},{-14,58}}, 
    2525          rotation=0))); 
     
    110110    m_flow_start=0.1, 
    111111    p_b_start=1.0e5, 
    112     heatTransfer(each alpha0=1000), 
     112    heatTransfer(alpha0=1000), 
    113113    use_approxPortProperties=true, 
    114114    initType=Modelica_Fluid.Types.Init.NoInit, 
     
    128128    use_T_start=true, 
    129129    from_dp=true, 
     130    diameter=0.01, 
     131    nNodes=5, 
     132    initType=Modelica_Fluid.Types.Init.NoInit, 
     133    redeclare package WallFriction =  
     134        Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     135    m_flow_start=0.1, 
     136    length=2, 
     137    use_approxPortProperties=true, 
     138    p_a_start=100000, 
     139    p_b_start=100000, 
    130140    T_start=280, 
    131     diameter=0.01, 
    132     nNodes=5, 
    133     initType=Modelica_Fluid.Types.Init.NoInit, 
    134     redeclare package WallFriction =  
    135         Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
    136     m_flow_start=0.1, 
    137     p_b_start=1.0e5, 
    138     length=2, 
    139     use_approxPortProperties=true, 
    140     heatTransfer(each alpha0=500), 
    141     p_a_start=100000)  
     141    heatTransfer(alpha0=500))  
    142142            annotation (Placement(transformation(extent={{-28,-50},{-8,-30}}, 
    143143          rotation=0))); 
     
    208208    m_flow_start=0.1, 
    209209    p_b_start=1.0e5, 
    210     heatTransfer(each alpha0=1000), 
     210    heatTransfer(alpha0=1000), 
    211211    use_approxPortProperties=true, 
    212212    p_a_start=100000)  
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/ControlledTankSystem.mo

    r1702 r1942  
    484484          graphics={Rectangle( 
    485485              extent={{-100,-100},{100,100}}, 
    486               fillColor=DynamicSelect({192,192,192}, if on > 0.5 then {0,255,0} else  
    487                        {192,192,192}), 
    488               fillPattern=DynamicSelect(FillPattern.Solid, if on > 0.5 then  
     486              fillColor=DynamicSelect({192,192,192}, if on > 0.5 then {0,255,0} 
     487                   else {192,192,192}), 
     488              fillPattern=DynamicSelect(FillPattern.Solid, if on > 0.5 then 
    489489                  FillPattern.Solid else FillPattern.Solid), 
    490490              lineColor={128,128,128}, 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/PumpingSystem.mo

    r1927 r1942  
    1717    diameter=1, 
    1818    length=100, 
    19     redeclare package WallFriction =  
    20         Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.QuadraticTurbulent, 
     19    redeclare model PressureDrop =  
     20        Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulent, 
    2121    height_ab=50)  
    2222    annotation (Placement(transformation( 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Examples/Tanks.mo

    r1927 r1942  
    4646      annotation (Placement(transformation(extent={{-54,-20},{-34,0}}, rotation= 
    4747             0))); 
    48     Pipes.StaticPipe pipe( 
    49       redeclare package Medium =  
    50           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    51       redeclare package WallFriction =  
    52           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     48    Modelica_Fluid.Pipes.StaticPipe pipe( 
     49      redeclare package Medium =  
     50          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     51      redeclare model PressureDrop =  
     52        Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    5353      length=1, 
    5454      diameter=0.1, 
     
    105105          diameter=0.1, portLevel=0)})  
    106106      annotation (Placement(transformation(extent={{0,0},{40,40}}, rotation=0))); 
    107     Pipes.StaticPipe pipe( 
    108       redeclare package Medium =  
    109           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    110       redeclare package WallFriction =  
    111           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     107    Modelica_Fluid.Pipes.StaticPipe pipe( 
     108      redeclare package Medium =  
     109          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     110      redeclare model PressureDrop =  
     111        Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    112112      length=1, 
    113113      diameter=0.1)  annotation (Placement(transformation(extent={{-30,-30},{ 
     
    177177      annotation (Placement(transformation(extent={{-40,-20},{0,20}}, rotation= 
    178178              0))); 
    179     Pipes.StaticPipe pipe( 
    180       redeclare package Medium =  
    181           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    182       redeclare package WallFriction =  
    183           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     179    Modelica_Fluid.Pipes.StaticPipe pipe( 
     180      redeclare package Medium =  
     181          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     182      redeclare model PressureDrop =  
     183          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    184184      length=1, 
    185185      diameter=0.1, 
     
    239239      annotation (Placement(transformation(extent={{-40,-20},{0,20}}, rotation= 
    240240              0))); 
    241     Pipes.StaticPipe pipe1( 
    242       redeclare package Medium =  
    243           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    244       redeclare package WallFriction =  
    245           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     241    Modelica_Fluid.Pipes.StaticPipe pipe1( 
     242      redeclare package Medium =  
     243          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     244      redeclare model PressureDrop =  
     245          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    246246      length=1, 
    247247      diameter=0.1, 
     
    251251          rotation=90))); 
    252252 
    253     Pipes.StaticPipe pipe2( 
    254       redeclare package Medium =  
    255           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    256       redeclare package WallFriction =  
    257           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     253    Modelica_Fluid.Pipes.StaticPipe pipe2( 
     254      redeclare package Medium =  
     255          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     256      redeclare model PressureDrop =  
     257          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    258258      length=1, 
    259259      diameter=0.1, 
     
    319319      annotation (Placement(transformation(extent={{-80,0},{-40,40}}, rotation= 
    320320              0))); 
    321     Pipes.StaticPipe pipe1( 
    322       redeclare package Medium =  
    323           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    324       redeclare package WallFriction =  
    325           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     321    Modelica_Fluid.Pipes.StaticPipe pipe1( 
     322      redeclare package Medium =  
     323          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     324      redeclare model PressureDrop =  
     325          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    326326      length=1, 
    327327      diameter=0.1, 
     
    331331          rotation=90))); 
    332332 
    333     Pipes.StaticPipe pipe2( 
    334       redeclare package Medium =  
    335           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    336       redeclare package WallFriction =  
    337           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     333    Modelica_Fluid.Pipes.StaticPipe pipe2( 
     334      redeclare package Medium =  
     335          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     336      redeclare model PressureDrop =  
     337          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    338338      length=1, 
    339339      diameter=0.1, 
     
    362362      stiffCharacteristicForEmptyPort=true)  
    363363      annotation (Placement(transformation(extent={{20,0},{60,40}}, rotation=0))); 
    364     Pipes.StaticPipe pipe3( 
    365       redeclare package Medium =  
    366           Modelica.Media.Water.ConstantPropertyLiquidWater, 
    367       redeclare package WallFriction =  
    368           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.Detailed, 
     364    Modelica_Fluid.Pipes.StaticPipe pipe3( 
     365      redeclare package Medium =  
     366          Modelica.Media.Water.ConstantPropertyLiquidWater, 
     367      redeclare model PressureDrop =  
     368          Modelica_Fluid.Pipes.BaseClasses.PressureDrop.Detailed, 
    369369      length=1, 
    370370      diameter=0.1, 
     
    626626      redeclare package Medium =  
    627627          Modelica.Media.Water.ConstantPropertyLiquidWater, 
    628       redeclare package WallFriction =  
    629           Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.LaminarAndQuadraticTurbulent, 
     628      redeclare model PressureDrop =  
     629        Modelica_Fluid.Pipes.BaseClasses.PressureDrop.LaminarAndQuadraticTurbulent, 
    630630      length=1, 
    631631      diameter=0.1, 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/HeatExchangers.mo

    r1706 r1942  
    363363      dynamicsType=dynamicsType, 
    364364      length=length, 
    365       area_h=area_h_1, 
    366       redeclare model HeatTransfer = HeatTransfer_1, 
     365      redeclare model HeatTransfer = HeatTransfer_1(area=area_h_1), 
    367366      initType=initType, 
    368367      use_T_start=use_T_start, 
     
    388387      isCircular=false, 
    389388      diameter=0, 
    390       redeclare model HeatTransfer = HeatTransfer_2, 
     389      redeclare model HeatTransfer = HeatTransfer_2(area=area_h_2), 
    391390      use_T_start=use_T_start, 
    392391      T_start=T_start_2, 
     
    397396      perimeter=perimeter_2, 
    398397      crossArea=crossArea_2, 
    399       area_h=area_h_2, 
    400398      p_a_start=p_a_start1, 
    401399      p_b_start=p_b_start2, 
  • Modelica_Fluid/branches/StreamConnector/Modelica_Fluid/Pipes.mo

    r1941 r1942  
    44 
    55  model StaticPipe "Basic pipe flow model without storage of mass or energy" 
    6     extends Modelica_Fluid.Pipes.BaseClasses.PartialTwoPortFlow( 
    7                                            redeclare model HeatTransfer =  
    8           BaseClasses.HeatTransfer.PipeHT_ideal,                                                               final 
    9         area_h =                                                                                                    0); 
     6    extends Modelica_Fluid.Pipes.BaseClasses.PartialPipe( 
     7          redeclare model HeatTransfer=BaseClasses.HeatTransfer.PipeHT_ideal); 
     8 
     9    replaceable PressureDrop pressureDrop( 
     10            redeclare final package Medium = Medium, 
     11            final n=1, 
     12            state={Medium.setState_phX(port_a.p, inStream(port_a.h_outflow), inStream(port_a.Xi_outflow)), 
     13                   Medium.setState_phX(port_b.p, inStream(port_b.h_outflow), inStream(port_b.Xi_outflow))}, 
     14            final allowFlowReversal=allowFlowReversal, 
     15            final p_a_start=p_a_start, 
     16            final p_b_start=p_b_start, 
     17            final m_flow_start=m_flow_start, 
     18            final roughness=roughness, 
     19            diameter=4*crossArea/perimeter, 
     20            final length=length, 
     21            final height_ab=height_ab, 
     22            final g=system.g) "Edit pressure drop parameters"  
     23       annotation (editButton=true,Placement(transformation(extent={{-10,-10},{10,10}}, 
     24            rotation=0))); 
     25  equation 
     26    port_a.m_flow = pressureDrop.m_flow[1]; 
     27    0 = port_a.m_flow + port_b.m_flow; 
     28    port_a.h_outflow = inStream(port_b.h_outflow); 
     29    port_b.h_outflow = inStream(port_a.h_outflow); 
     30    port_a.Xi_outflow = inStream(port_b.Xi_outflow); 
     31    port_b.Xi_outflow = inStream(port_a.Xi_outflow); 
     32    port_a.C_outflow = inStream(port_b.C_outflow); 
     33    port_b.C_outflow = inStream(port_a.C_outflow); 
     34    annotation (defaultComponentName="pipe", Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100, 
     35              -100},{100,100}}),      graphics)); 
     36  end StaticPipe; 
     37 
     38  model StaticPipe_Old 
     39    "Basic pipe flow model without storage of mass or energy" 
     40    extends Modelica_Fluid.Pipes.BaseClasses.PartialPipe_Old( 
     41       redeclare model HeatTransfer=BaseClasses.HeatTransfer.PipeHT_ideal); 
    1042    PressureLosses.WallFrictionAndGravity wallFriction( 
    1143      redeclare package Medium = Medium, 
     
    4072    annotation (defaultComponentName="pipe", Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-100, 
    4173              -100},{100,100}}),      graphics)); 
    42   end StaticPipe; 
     74  end StaticPipe_Old; 
    4375 
    4476  model LumpedPipe 
     
    5385 
    5486    // Extend here to get right ordering in parameter box 
    55     extends Modelica_Fluid.Pipes.BaseClasses.PartialTwoPortFlow; 
     87    extends Modelica_Fluid.Pipes.BaseClasses.PartialPipe_Old; 
    5688 
    5789     //Initialization 
     
    74106      annotation (Dialog(tab="Initialization", enable=Medium.nXi > 0)); 
    75107 
    76     HeatTransfer heatTransfer( 
     108    replaceable HeatTransfer heatTransfer( 
    77109      redeclare final package Medium = Medium, 
    78       final diameter_h=diameter_h, 
    79       final area_h=area_h, 
     110      final n=1, 
     111      diameter=4*crossArea/perimeter, 
     112      area=perimeter*length, 
    80113      final crossArea=crossArea, 
    81114      final length=length, 
    82       state=volume.medium.state, 
    83       m_flow = 0.5*(port_a.m_flow - port_b.m_flow), 
    84       final useFluidHeatPort=true)  
    85       annotation (Placement(transformation(extent={{-20,0},{20,40}},   rotation=0))); 
     115      state={volume.medium.state}, 
     116      m_flow = {0.5*(port_a.m_flow - port_b.m_flow)}, 
     117      final useFluidHeatPort=true) "Edit heat transfer parameters"  
     118      annotation (editButton=true, Placement(transformation(extent={{-20,0},{20,40}},   rotation=0))); 
    86119 
    87120    Modelica_Fluid.PressureLosses.WallFrictionAndGravity wallFriction1( 
     
    152185      annotation (Line(points={{60,-20},{80,-20},{80,0},{100,0}}, 
    153186                                                color={0,127,255})); 
    154     connect(heatPort, heatTransfer.wallHeatPort) annotation (Line( 
     187    connect(heatPort, heatTransfer.wallHeatPort[1]) annotation (Line( 
    155188        points={{0,54},{0,34}}, 
    156189        color={191,0,0}, 
    157190        smooth=Smooth.None)); 
    158     connect(heatTransfer.fluidHeatPort, volume.heatPort) annotation (Line( 
     191    connect(heatTransfer.fluidHeatPort[1], volume.heatPort) annotation (Line( 
    159192        points={{0,8},{0,-10.2}}, 
    160193        color={191,0,0}, 
     
    215248       diameter) if                                                                                              show_Re 
    216249      "Reynolds number of pipe flow"; 
    217    HeatTransfer[n] heatTransfer( 
    218      redeclare each final package Medium = Medium, 
    219      each final diameter_h=diameter_h, 
    220      each final area_h=area_h/n, 
    221      each final crossArea=crossArea, 
    222      each final length=length/n, 
     250   HeatTransfer heatTransfer( 
     251     redeclare final package Medium = Medium, 
     252     final n=nNodes, 
     253     diameter=4*crossArea/perimeter, 
     254     area=perimeter*length, 
     255     final crossArea=crossArea, 
     256     final length=length, 
    223257     state=medium.state, 
    224      m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])) "Convective heat transfer"  
     258     m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])) "Edit heat transfer parameters"  
    225259             annotation (Placement(transformation(extent={{-20,-5},{20,35}},  rotation=0))); 
    226260 
     
    412446    diameter) if                                                                                               show_Re 
    413447      "Reynolds number of pipe flow"; 
    414   HeatTransfer[n] heatTransfer( 
     448  replaceable HeatTransfer heatTransfer( 
    415449    redeclare each final package Medium = Medium, 
    416     each final diameter_h=diameter_h, 
    417     each final area_h=area_h/n, 
    418     each final crossArea=crossArea, 
    419     each final length=length/n, 
     450    final n=n, 
     451    diameter=4*crossArea/perimeter, 
     452    area=perimeter*length, 
     453    final crossArea=crossArea, 
     454    final length=length, 
    420455    state=medium.state, 
    421     m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])) "Convective heat transfer"  
    422               annotation (Placement(transformation(extent={{-20,-5},{20,35}},  rotation=0))); 
     456    m_flow = 0.5*(m_flow[1:n]+m_flow[2:n+1])) "Edit heat transfer parameters"  
     457              annotation (editButton=true, Placement(transformation(extent={{-20,-5},{20,35}},  rotation=0))); 
    423458 
    424459  SI.Length[n+1] dlength "discretized length for pressure drop"; 
     
    718753    extends Modelica_Fluid.Icons.BaseClassLibrary; 
    719754 
    720     partial model PartialTwoPortFlow 
    721       "Base class for one dimensional flow models" 
     755    partial model PartialPipe "Base class for pipe models" 
    722756      extends Modelica_Fluid.Interfaces.PartialTwoPort; 
    723757 
     
    752786                                                                     annotation(Dialog(group="Static head"), Evaluate=true); 
    753787 
    754       // Pressure loss 
    755       replaceable package WallFriction =  
    756         Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.QuadraticTurbulent 
    757         constrainedby 
    758         Modelica_Fluid.PressureLosses.BaseClasses.WallFriction.PartialWallFriction 
    759         "Characteristic of wall friction"  annotation(Dialog(group="Pressure loss"), choicesAllMatching=true); 
    760        parameter SI.Diameter diameter_h=4*crossArea/perimeter 
    761         "Hydraulic diameter"                                       annotation(Dialog(tab="General", group="Pressure loss")); 
    762       parameter Boolean use_eta_nominal = false 
    763         "= true, if eta_nominal is used, otherwise computed from medium"  
    764              annotation(Dialog(tab="Advanced", group="Pressure loss"),Evaluate=true); 
    765       parameter SI.DynamicViscosity eta_nominal=Medium.dynamicViscosity(Medium.setState_pTX(Medium.p_default, Medium.T_default, Medium.X_default)) 
    766         "Nominal dynamic viscosity (e.g. eta_liquidWater = 1e-3, eta_air = 1.8e-5)" 
    767           annotation(Dialog(tab="Advanced", group="Pressure loss",enable=use_eta_nominal)); 
    768       parameter Boolean use_d_nominal=false 
    769         "= true, if d_nominal is used, otherwise computed from medium"                                annotation(Dialog(tab="Advanced", group="Pressure loss"),Evaluate=true); 
    770       parameter SI.Density d_nominal = Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default) 
    771         "Nominal density (e.g. d_liquidWater = 995, d_air = 1.2)"  
    772          annotation(Dialog(tab="Advanced", group="Pressure loss",enable=use_d_nominal)); 
     788      // Pressure drop 
     789      replaceable model PressureDrop =  
     790        Modelica_Fluid.Pipes.BaseClasses.PressureDrop.QuadraticTurbulent  
     791        constrainedby BaseClasses.PressureDrop.PartialPipePressureDrop 
     792        "Characteristics of wall friction and gravity"  
     793          annotation(Dialog(group="Pressure drop"), editButton=false, choicesAllMatching=true); 
    773794 
    774795      // Heat transfer 
     
    777798        constrainedby 
    778799        Modelica_Fluid.Pipes.BaseClasses.HeatTransfer.PartialPipeHeatTransfer 
    779         "Convective heat transfer"  
     800        "Wall heat transfer model"  
    780801        annotation (Dialog(group="Heat transfer"),editButton=true,choicesAllMatching=true); 
    781       parameter SI.Area area_h=perimeter*length "Heat transfer area"  
    782                                                                annotation(Dialog(tab="General", group="Heat transfer")); 
    783  
    784       parameter Boolean show_Re = false 
    785         "= true, if Reynolds number is included for plotting"  
    786          annotation (Evaluate=true, Dialog(tab="Advanced")); 
    787       parameter Boolean from_dp=true 
    788         " = true, use m_flow = f(dp), otherwise dp = f(m_flow)"  
    789         annotation (Evaluate=true, Dialog(tab="Advanced", group="Pressure loss")); 
    790       parameter SI.AbsolutePressure dp_small = 1 
    791         "Within regularization if |dp| < dp_small (may be wider for large discontinuities in static head)" 
    792         annotation(Dialog(tab="Advanced", group="Pressure loss", enable=from_dp and WallFriction.use_dp_small)); 
    793       parameter SI.MassFlowRate m_flow_small = 0.01 
    794         "Within regularizatio if |m_flow| < m_flow_small (may be wider for large discontinuities in static head)" 
    795         annotation(Dialog(tab="Advanced", group="Pressure loss", enable=not from_dp and WallFriction.use_m_flow_small)); 
    796802 
    797803      annotation (defaultComponentName="pipe",Icon(coordinateSystem( 
     
    824830            grid={1,1}), graphics)); 
    825831 
    826     end PartialTwoPortFlow; 
     832    end PartialPipe; 
     833 
     834    partial model PartialPipe_Old "Base class for pipe models" 
     835      extends Modelica_Fluid.Interfaces.PartialTwoPort; 
     836 
     837       //Initialization 
     838      parameter Medium.AbsolutePressure p_a_start=system.p_start 
     839        "Start value of pressure at port a"  
     840        annotation(Dialog(tab = "Initialization")); 
     841      parameter Medium.AbsolutePressure p_b_start=p_a_start 
     842        "Start value of pressure at port b"  
     843        annotation(Dialog(tab = "Initialization")); 
     844      parameter Medium.MassFlowRate m_flow_start = system.m_flow_start 
     845        "Start value for mass flow rate"  
     846         annotation(Evaluate=true, Dialog(tab = "Initialization")); 
     847 
     848      //Geometry 
     849      parameter SI.Length length "Length"   annotation(Dialog(tab="General", group="Geometry")); 
     850      parameter SI.Diameter diameter "Diameter of circular pipe"      annotation(Dialog(group="Geometry", enable=isCircula