From d3aabd826f7c2e5b44ccecb3978b63573cce1a49 Mon Sep 17 00:00:00 2001 From: HOS Date: Tue, 12 Aug 2025 12:00:15 +0200 Subject: [PATCH] WarningInsteadOfPrint --- Modelica/Electrical/Polyphase/Basic/MutualInductor.mo | 4 +--- .../Electrical/QuasiStatic/Polyphase/Basic/MultiDelta.mo | 6 ++---- .../QuasiStatic/Polyphase/Basic/MutualInductor.mo | 4 +--- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Modelica/Electrical/Polyphase/Basic/MutualInductor.mo b/Modelica/Electrical/Polyphase/Basic/MutualInductor.mo index b4a4ecb65d..9a95b863cc 100644 --- a/Modelica/Electrical/Polyphase/Basic/MutualInductor.mo +++ b/Modelica/Electrical/Polyphase/Basic/MutualInductor.mo @@ -4,9 +4,7 @@ model MutualInductor "Linear mutual inductor" parameter Real epsilon=1e-9 "Relative accuracy tolerance of matrix symmetry"; parameter SI.Inductance L[m, m] "Mutual inductance matrix"; initial equation - if abs(Modelica.Math.Matrices.det(L)) < epsilon then - Modelica.Utilities.Streams.print("Warning: mutual inductance matrix singular!"); - end if; + assert(abs(Modelica.Math.Matrices.det(L)) >= epsilon, "Mutual inductance matrix singular!", AssertionLevel.warning); equation assert(sum(abs(L - transpose(L))) < epsilon*sum(abs(L)),"Mutual inductance matrix is not symmetric"); for j in 1:m loop diff --git a/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MultiDelta.mo b/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MultiDelta.mo index 8145f75292..e192161cd2 100644 --- a/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MultiDelta.mo +++ b/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MultiDelta.mo @@ -16,12 +16,10 @@ model MultiDelta QuasiStatic.Polyphase.Basic.PlugToPins_n plugToPins_n(final m=m) annotation (Placement(transformation(extent={{80,-10},{60,10}}))); protected - parameter Integer kP=if (mBasic<=2 or kPolygon<1 or kPolygon>integer(mBasic - 1)/2) then 1 else kPolygon; + final parameter Integer kP=if (mBasic<=2 or kPolygon<1 or kPolygon>integer(mBasic - 1)/2) then 1 else kPolygon; equation when initial() then - if (mBasic<=2 or kPolygon<1 or kPolygon>integer(mBasic - 1)/2) then - print("MultiDelta: replaced erroneous kPolygon = "+String(kPolygon)+" by kPolygon = 1"); - end if; + assert(kP==kPolygon, "MultiDelta: replaced erroneous kPolygon = "+String(kPolygon)+" by kPolygon = 1", AssertionLevel.warning); end when; for k in 1:mSystems loop for j in 1:(mBasic - kP) loop diff --git a/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MutualInductor.mo b/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MutualInductor.mo index 60f5aa27b8..1de431415f 100644 --- a/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MutualInductor.mo +++ b/Modelica/Electrical/QuasiStatic/Polyphase/Basic/MutualInductor.mo @@ -5,9 +5,7 @@ model MutualInductor "Linear mutual inductor" parameter Real epsilon=1e-9 "Relative accuracy tolerance of matrix symmetry"; parameter SI.Inductance L[m, m] "Mutual inductance matrix"; initial equation - if abs(Modelica.Math.Matrices.det(L)) < epsilon then - Modelica.Utilities.Streams.print("Warning: mutual inductance matrix singular!"); - end if; + assert(Modelica.Math.Matrices.det(L) >= epsilon, "Mutual inductance matrix singular!", AssertionLevel.warning); equation assert(sum(abs(L - transpose(L))) < epsilon*sum(abs(L)),"Mutual inductance matrix is not symmetric"); for l in 1:m loop