class Version_3_0_1 "Version 3.0.1 (Jan. 27, 2009)"
    extends Modelica.Icons.ReleaseNotes;

    annotation (Documentation(info = "<html>\n\n<p>\nThis Modelica package is provided under the Modelica License 2\nand no longer under Modelica License 1.1. There are the following reasons\nwhy the Modelica Association changes from Modelica License 1.1 to this\nnew license text (note, the text below is not a legal interpretation of the\nModelica License 2. In case of a conflict, the language of the license shall prevail):\n</p>\n\n<ol>\n<li> The rights of licensor and licensee are much more clearly defined. For example:\n         <ul>\n         <li> The licensed work (Original Work) can be used in unmodified form in\n                  open source and commercial software (the licensee cannot change the\n                  license and the work must be provided without fees)</li>\n         <li> If a model component is copied out of a Modelica package under\n                  Modelica License 2 and is modified in order to adapt it to the needs\n                  of the modeler, then the result can be licensed under any license\n                  (including a commercial license).</li>\n         <li> It is practically not possible to change the license of a\n                  Modelica package under Modelica License 2 to another license, i.e., a\n                  licensee cannot change the license by adding material or changing classes,\n                  so the work must remain under Modelica License 2 (to be more precise,\n                  if the licensee makes modifications to the Original Work \"which represents,\n                  as a whole, an original work of authorship\", he/she can change the license\n                  to another license. However, for a Modelica package this would\n                  require a lot of changes which is usually unrealistic).</li>\n         <li> If an executable is constructed using a Modelica package under\n                  Modelica License 2, then this executable can be licensed under any\n                  license (including a commercial license).</li>\n         </ul>\n         We hope that this compromise between open source contributors, commercial\n         Modelica environments and Modelica users will motivate even more people to\n         provide their Modelica packages freely under the Modelica License 2.<br><br></li>\n<li> There are several new provisions that shall make law suites against licensors and licensees more unlikely (so the small risk is further reduced).</li>\n</ol>\n\n<p><br>\nThe following <font color=\"blue\"><strong>new components</strong></font> have been added\nto <font color=\"blue\"><strong>existing</strong></font> libraries:\n</p>\n\n<table border=\"1\" cellspacing=0 cellpadding=2 style=\"border-collapse:collapse;\">\n<tr><td colspan=\"2\"><strong>Electrical.Analog.Basic.</strong></td></tr>\n<tr><td>M_Transformer</td>\n          <td> Transformer, with the possibility to\n        choose the number of inductors. The inductances and the coupled inductances\n        can be chosen arbitrarily.</td></tr>\n\n<tr><td colspan=\"2\"><strong>Electrical.Analog.Lines.</strong></td></tr>\n<tr><td>M_OLine</td>\n          <td> Segmented line model that enables the use of\n        multiple lines, that means, the number of segments and the number of\n        single lines can be chosen by the user. The model allows to investigate\n        phenomena at multiple lines like mutual magnetic or capacitive influence.</td></tr>\n<tr><td colspan=\"2\"><strong>Mechanics.Translational.Components.Examples.</strong></td></tr>\n<tr><td>Brake</td>\n          <td> Demonstrates the usage of the translational brake component.</td></tr>\n<tr><td colspan=\"2\"><strong>Media.Interfaces.PartialMedium.</strong></td></tr>\n<tr><td>ThermoStates</td>\n          <td> Enumeration type for independent variables to identify the independent\n                                                variables of the medium (pT, ph, phX, pTX, dTX).<br>\n                                                An implementation of this enumeration is provided for every medium.\n                                                (This is useful for fluid libraries that do not use the\n                                                PartialMedium.BaseProperties model).</td></tr>\n<tr><td>setSmoothState</td>\n          <td> Function that returns the thermodynamic state which smoothly approximates:\n                                                if x > 0 then state_a else state_b.<br>\n                                                (This is useful for pressure drop components in fluid libraries\n                                                 where the upstream density and/or viscosity has to be computed\n                                                 and these properties should be smooth a zero mass flow rate)<br>\n                                                An implementation of this function is provided for every medium.</td></tr>\n<tr><td colspan=\"2\"><strong>Media.Common.</strong></td></tr>\n<tr><td>smoothStep</td>\n          <td> Approximation of a general step, such that the characteristic\n                                                is continuous and differentiable.</td></tr>\n<tr><td colspan=\"2\"><strong>Media.UsersGuide.</strong></td></tr>\n<tr><td>Future</td>\n          <td> Short description of goals and changes of upcoming release of Modelica.Media.</td></tr>\n<tr><td colspan=\"2\"><strong>Media.Media.Air.MoistAir.</strong></td></tr>\n<tr><td>isentropicExponent</td>\n          <td> Implemented Missing Function from interface.</td></tr>\n<tr><td>isentropicEnthalpyApproximation</td>\n<td> Implemented function that approximates the isentropic enthalpy change.\nThis is only correct as long as there is no liquid in the stream.</td></tr>\n</table>\n\n<p><br>\nThe following <font color=\"blue\"><strong>existing components</strong></font>\nhave been <font color=\"blue\"><strong>changed</strong></font> (in a\n<font color=\"blue\"><strong>backward compatible</strong></font> way):\n</p>\n\n<table border=\"1\" cellspacing=0 cellpadding=2 style=\"border-collapse:collapse;\">\n<tr><td colspan=\"2\"><strong>Mechanics.Rotational.Interfaces.</strong></td></tr>\n<tr><td> PartialFriction </td>\n          <td> Improvement of friction model so that in certain situations\n                                                the number of iterations is much smaller.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Mechanics.Translational.Components.Examples.</strong></td></tr>\n<tr><td> Friction </td>\n          <td> Added a third variant, where friction is modelled with\n                                                the SupportFriction component.</td></tr>\n\n<tr><td colspan=\"2\"><strong>Mechanics.Translational.Components.</strong></td></tr>\n<tr><td> MassWithStopAndFriction </td>\n          <td> Improvement of friction model so that in certain situations\n                                                the number of iterations is much smaller.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Mechanics.Translational.Interfaces.</strong></td></tr>\n<tr><td> PartialFriction </td>\n          <td> Improvement of friction model so that in certain situations\n                                                the number of iterations is much smaller.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Media.Examples.</strong></td></tr>\n<tr><td> SimpleLiquidWater<br>\n                                                IdealGasH20<br>\n                                                WaterIF97<br>\n                                                MixtureGases<br>\n                                                MoistAir </td>\n          <td> Added equations to test the new setSmoothState(..) functions\n                                                including the analytic derivatives of these functions.</td></tr>\n\n<tr><td colspan=\"2\"><strong>Media.Interfaces.PartialLinearFluid.</strong></td></tr>\n<tr><td> setState_pTX<br>\n                                                setState_phX<br>\n                                                setState_psX<br>\n                                                setState_dTX </td>\n          <td> Rewritten function in one statement so that it is usually inlined.</td></tr>\n\n<tr><td colspan=\"2\"><strong>Media.Interfaces.PartialLinearFluid.</strong></td></tr>\n<tr><td> consistent use of reference_d instead of density(state </td>\n          <td> Change was done to achieve consistency with analytic inverse functions.</td></tr>\n\n<tr><td colspan=\"2\"><strong>Media.Air.MoistAir.</strong></td></tr>\n<tr><td> T_phX </td>\n          <td> Interval of nonlinear solver to compute T from p,h,X changed\n                                                from 200..6000 to 240 ..400 K.</td></tr>\n\n</table>\n\n<p><br>\nThe following <font color=\"red\"><strong>critical errors</strong></font> have been fixed (i.e., errors\nthat can lead to wrong simulation results):\n</p>\n\n<table border=\"1\" cellspacing=0 cellpadding=2 style=\"border-collapse:collapse;\">\n<tr><td colspan=\"2\"><strong>Mechanics.MultiBody.Forces</strong></td></tr>\n<tr><td> WorldTorque </td>\n          <td> Parameter \"ResolveInFrame\" was not propagated and therefore\n                                                always the default (resolved in world frame) was used, independently\n                                                of the setting of this parameter.</td>\n</tr>\n<tr><td> WorldForceAndTorque </td>\n          <td> Parameter \"ResolveInFrame\" was not propagated and therefore\n                                                always the default (resolved in world frame) was used, independently\n                                                of the setting of this parameter.<br>\n                                                Furthermore, internally WorldTorque was used instead of\n                                                Internal.BasicWorldTorque and therefore the visualization of\n                                                worldTorque was performed twice.</td>\n</tr>\n<tr><td colspan=\"2\"><strong>Mechanics.MultiBody.Sensors</strong></td></tr>\n<tr><td> AbsoluteSensor </td>\n          <td> Velocity, acceleration and angular acceleration were computed\n                                                  by differentiating in the resolveInFrame frame. This has been corrected, by\n                                                  first transforming the vectors in to the world frame, differentiating here\n                                                  and then transforming into resolveInFrame. The parameter in the Advanced menu\n                                                  resolveInFrameAfterDifferentiation is then superfluous and was removed .</td>\n</tr>\n<tr><td> AbsoluteVelocity </td>\n          <td> The velocity was computed\n                                                  by differentiating in the resolveInFrame frame. This has been corrected, by\n                                                  first transforming the velocity in to the world frame, differentiating here\n                                                  and then transforming into resolveInFrame </td>\n</tr>\n<tr><td> RelativeSensor </td>\n          <td> If resolveInFrame &lt;&gt; frame_resolve and\n                                                   resolveInFrameAfterDifferentiation = frame_resolve, a translation\n                                                error occurred, since frame_resolve was not enabled in this situation.\n                                                This has been corrected.</td>\n</tr>\n<tr><td> RelativeVelocity </td>\n          <td> The velocity has have been computed\n                                                  by differentiating in the resolveInFrame frame. This has been corrected, by\n                                                  first transforming the relative position in to frame_a, differentiating here\n                                                  and then transforming into resolveInFrame </td>\n</tr>\n<tr><td> TransformRelativeVector </td>\n          <td> The transformation was wrong, since the parameters frame_r_in and frame_r_out\n                                                have not been propagated to the submodel that performs the transformation.\n                                                This has been corrected.</td>\n</tr>\n<tr><td colspan=\"2\"><strong>Mechanics.Translational.Components.</strong></td></tr>\n<tr><td> SupportFriction<br>\n                                                Brake </td>\n          <td> The sign of the friction force was wrong and therefore friction accelerated\n                                                instead of decelerated. This was fixed.</td>\n</tr>\n<tr><td> SupportFriction</td>\n          <td> The component was only correct for fixed support.\n                                                This was corrected.</td>\n</tr>\n<tr><td colspan=\"2\"><strong>Media.Interfaces.</strong></td></tr>\n<tr><td> PartialSimpleMedium<br>\n                                                PartialSimpleIdealGasMedium </td>\n          <td> BaseProperties.p was not defined as preferred state and BaseProperties.T was\n                                                always defined as preferred state. This has been fixed by\n                                                Defining p,T as preferred state if parameter preferredMediumState = true.\n                                                This error had the effect that mass m is selected as state instead of p\n                                                and if default initialization is used then m=0 could give not the expected\n                                                behavior. This means, simulation is not wrong but the numerics is not as good\n                                                and if a model relies on default initial values, the result could be not\n                                                as expected.</td>\n</tr>\n\n</table>\n\n<p><br>\nThe following <font color=\"red\"><strong>uncritical errors</strong></font> have been fixed (i.e., errors\nthat do <font color=\"red\"><strong>not</strong></font> lead to wrong simulation results, but, e.g.,\nunits are wrong or errors in documentation):\n</p>\n\n<table border=\"1\" cellspacing=0 cellpadding=2 style=\"border-collapse:collapse;\">\n<tr><td colspan=\"2\"><strong>Blocks.Math.</strong></td></tr>\n<tr><td> InverseBlockConstraint </td>\n          <td> Changed annotation preserveAspectRatio from true to false.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Blocks.Sources.</strong></td></tr>\n<tr><td> RealExpression<br>\n                                                IntegerExpression<br>\n                                                BooleanExpression </td>\n          <td> Changed annotation preserveAspectRatio from true to false.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Electrical.Analog.Basic.</strong></td></tr>\n<tr><td> SaturatingInductor</td>\n          <td> Replaced non-standard \"arctan\" by \"atan\" function.</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Modelica.Electrical.Digital.</strong></td></tr>\n<tr><td> UsersGuide</td>\n          <td> Removed empty documentation placeholders and added the missing\n                                                  release comment for version 1.0.7</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Modelica.Mechanics.Translational.Components.</strong></td></tr>\n<tr><td> MassWithStopAndFriction </td>\n          <td> Changed usage of reinit(..), in order that it appears\n                                                only once for one variable according to the language specification\n                                                (if a tool could simulate the model, there is no difference).</td>\n</tr>\n\n<tr><td colspan=\"2\"><strong>Media.Interfaces.PartialSimpleMedium</strong></td></tr>\n<tr><td> pressure<br>\n                                                temperature<br>\n                                                density<br>\n                                                specificEnthalpy </td>\n          <td> Missing functions added.</td>\n</tr>\n\n</table>\n\n</html>"));
end Version_3_0_1;