Skip to content

Commit

Permalink
add more resolveLoops tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vwaurich authored and OpenModelica-Hudson committed Jan 23, 2017
1 parent c18b634 commit d7d530d
Show file tree
Hide file tree
Showing 9 changed files with 345 additions and 0 deletions.
18 changes: 18 additions & 0 deletions simulation/modelica/resolveLoops/Circuit1x.mo
@@ -0,0 +1,18 @@
model Circuit1x
Modelica.Electrical.Analog.Basic.Ground Ground annotation(Placement(visible = true, transformation(origin = {-56, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Basic.Ground Ground annotation(Placement(visible = true, transformation(origin = {-56, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Basic.Capacitor Cgd(C = 1) annotation(Placement(visible = true, transformation(origin = {-14, 42}, extent = {{-10, 10}, {10, -10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Capacitor Cds(C = 1) annotation(Placement(visible = true, transformation(origin = {16, 42}, extent = {{10, 10}, {-10, -10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Resistor R_Load(R = 1) annotation(Placement(visible = true, transformation(origin = {16, 0}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
Modelica.Electrical.Analog.Sources.ConstantVoltage Voltage_Source(V = 2) annotation(Placement(visible = true, transformation(origin = {-56, 4}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Resistor R_Source(R = 1) annotation(Placement(visible = true, transformation(origin = {-56, 42}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
equation
connect(R_Load.n, Ground.p) annotation(Line(points = {{16, -10}, {16, -20}, {-56, -20}}, color = {0, 0, 255}));
connect(Cds.n, R_Load.p) annotation(Line(points = {{16, 32}, {16, 10}}, color = {0, 0, 255}));
connect(Cgd.n, Cds.p) annotation(Line(points = {{-14, 52}, {-14, 52}, {-14, 60}, {16, 60}, {16, 52}, {16, 52}, {16, 52}}, color = {0, 0, 255}));
connect(R_Source.p, Cds.p) annotation(Line(points = {{-56, 52}, {-56, 52}, {-56, 60}, {16, 60}, {16, 52}, {16, 52}}, color = {0, 0, 255}));
connect(Ground.p, Voltage_Source.n) annotation(Line(points = {{-56, -20}, {-56, -20}, {-56, -6}, {-56, -6}}, color = {0, 0, 255}));
connect(Voltage_Source.p, R_Source.n) annotation(Line(points = {{-56, 14}, {-56, 14}, {-56, 32}, {-56, 32}}, color = {0, 0, 255}));
connect(Cgd.p, Cds.n) annotation(Line(points = {{-14, 32}, {-14, 32}, {-14, 22}, {16, 22}, {16, 32}, {16, 32}}, color = {0, 0, 255}));
annotation(Icon, Diagram, experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.001));
end Circuit1x;
66 changes: 66 additions & 0 deletions simulation/modelica/resolveLoops/Circuit1x.mos
@@ -0,0 +1,66 @@
// name: Circuit1x
// keywords: resolveLoops
// status: correct
//

loadModel(Modelica, {"3.2.1"}); getErrorString();

loadFile("Circuit1x.mo"); getErrorString();
setDebugFlags("backenddaeinfo,stateselection"); getErrorString();
simulate(Circuit1x); getErrorString();
// Result:
// true
// ""
// true
// ""
// true
// ""
// record SimulationResult
// resultFile = "Circuit1x_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 10.0, numberOfIntervals = 10000, tolerance = 1e-006, method = 'dassl', fileNamePrefix = 'Circuit1x', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// "Notification: Model statistics after passing the front-end and creating the data structures used by the back-end:
// * Number of equations: 38
// * Number of variables: 38
// Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->OMCFlags, in OMNotebook call setCommandLineOptions("-d=initialization").
// Notification: Model statistics after passing the back-end for initialization:
// * Number of independent subsystems: 3
// * Number of states: 0 ()
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for initialization (10):
// * Single equations (assignments): 8
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 3,(1,100.0%) 4}
// * Non-linear torn systems: 0
// Notification: Model statistics after passing the back-end for simulation:
// * Number of independent subsystems: 3
// * Number of states: 1 (Cds.v)
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for simulation (7):
// * Single equations (assignments): 5
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 3,(1,100.0%) 3}
// * Non-linear torn systems: 0
// "
// endResult
17 changes: 17 additions & 0 deletions simulation/modelica/resolveLoops/Circuit2x.mo
@@ -0,0 +1,17 @@
model Circuit2x
Modelica.Electrical.Analog.Basic.Ground Ground annotation(Placement(visible = true, transformation(origin = {-58, -34.4017}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Basic.Capacitor Cds(C = 1) annotation(Placement(visible = true, transformation(origin = {15.1747,44.8253}, extent = {{10,-10},{-10,10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Capacitor Cgd(C = 1) annotation(Placement(visible = true, transformation(origin = {-18.5502, 44.4759}, extent = {{-10, -10}, {10, 10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Resistor R_Load(R = 1) annotation(Placement(visible = true, transformation(origin = {4.99587, -0.84732}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Resistor R_Source(R = 1) annotation(Placement(visible = true, transformation(origin = {-58, 42.5502}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
Modelica.Electrical.Analog.Sources.ConstantVoltage Voltage_Source(V = 2) annotation(Placement(visible = true, transformation(origin = {-57.1747, 5.92572}, extent = {{-10, 10}, {10, -10}}, rotation = -90)));
equation
connect(R_Source.p, Cds.p) annotation(Line(points = {{-58, 52}, {-58, 52}, {-58, 64}, {16, 64}, {16, 54}, {16, 54}}, color = {0, 0, 255}));
connect(Cds.p, Cgd.n) annotation(Line(points = {{16, 54}, {16, 54}, {16, 64}, {-18, 64}, {-18, 56}, {-18, 56}, {-18, 54}}, color = {0, 0, 255}));
connect(Cgd.p, R_Load.p) annotation(Line(points = {{-18, 34}, {-18, 10}, {5, 10}, {5, 9}}, color = {0, 0, 255}));
connect(Cds.n, R_Load.p) annotation(Line(points = {{16, 34}, {16, 10}, {5, 10}, {5, 9}}, color = {0, 0, 255}));
connect(Ground.p, R_Load.n) annotation(Line(points = {{-58, -24}, {6, -24}, {6, -11}, {5, -11}}, color = {0, 0, 255}));
connect(Voltage_Source.n, Ground.p) annotation(Line(points = {{-58, -4}, {-58, -4}, {-58, -24}, {-58, -24}}, color = {0, 0, 255}));
connect(R_Source.n, Voltage_Source.p) annotation(Line(points = {{-58, 32}, {-56, 32}, {-56, 16}, {-58, 16}}, color = {0, 0, 255}));
annotation(Icon, Diagram, experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.001));
end Circuit2x;
66 changes: 66 additions & 0 deletions simulation/modelica/resolveLoops/Circuit2x.mos
@@ -0,0 +1,66 @@
// name: Circuit2x
// keywords: resolveLoops
// status: correct
//

loadModel(Modelica, {"3.2.1"}); getErrorString();

loadFile("Circuit2x.mo"); getErrorString();
setDebugFlags("backenddaeinfo,stateselection"); getErrorString();
simulate(Circuit2x); getErrorString();
// Result:
// true
// ""
// true
// ""
// true
// ""
// record SimulationResult
// resultFile = "Circuit2x_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 10.0, numberOfIntervals = 10000, tolerance = 1e-006, method = 'dassl', fileNamePrefix = 'Circuit2x', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// "Notification: Model statistics after passing the front-end and creating the data structures used by the back-end:
// * Number of equations: 38
// * Number of variables: 38
// Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->OMCFlags, in OMNotebook call setCommandLineOptions("-d=initialization").
// Notification: Model statistics after passing the back-end for initialization:
// * Number of independent subsystems: 3
// * Number of states: 0 ()
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for initialization (10):
// * Single equations (assignments): 8
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 3,(1,100.0%) 4}
// * Non-linear torn systems: 0
// Notification: Model statistics after passing the back-end for simulation:
// * Number of independent subsystems: 3
// * Number of states: 1 (Cgd.v)
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for simulation (7):
// * Single equations (assignments): 5
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 3,(1,100.0%) 3}
// * Non-linear torn systems: 0
// "
// endResult
20 changes: 20 additions & 0 deletions simulation/modelica/resolveLoops/Circuit3x.mo
@@ -0,0 +1,20 @@
model Circuit3x
Modelica.Electrical.Analog.Sources.ConstantVoltage Voltage_Source(V = 2) annotation(Placement(visible = true, transformation(origin = {-56, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Capacitor Cgd(C = 1) annotation(Placement(visible = true, transformation(origin = {-20, 68}, extent = {{10, -10}, {-10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Resistor R_Load(R = 1) annotation(Placement(visible = true, transformation(origin = {18, 0}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Resistor R_Source(R = 1) annotation(Placement(visible = true, transformation(origin = {-56, 42}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Ground Ground annotation(Placement(visible = true, transformation(origin = {-56, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Basic.Capacitor Cds(C = 1) annotation(Placement(visible = true, transformation(origin = {18, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Capacitor Cgs(C = 1) annotation(Placement(visible = true, transformation(origin = {-20, 36}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Ground ground1 annotation(Placement(visible = true, transformation(origin = {18, -28}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(R_Load.n, ground1.p) annotation(Line(points = {{18, -10}, {18, -10}, {18, -18}, {18, -18}}, color = {0, 0, 255}));
connect(R_Load.p, Cds.n) annotation(Line(points = {{18, 10}, {18, 42}}, color = {0, 0, 255}));
connect(R_Source.p, Cds.p) annotation(Line(points = {{-56, 52}, {-56, 88}, {18, 88}, {18, 62}}, color = {0, 0, 255}));
connect(Cgd.n, Cds.p) annotation(Line(points = {{-20, 78}, {-20, 88}, {18, 88}, {18, 62}}, color = {0, 0, 255}));
connect(Cgs.n, Cds.n) annotation(Line(points = {{-20, 26}, {-20, 16}, {18, 16}, {18, 42}}, color = {0, 0, 255}));
connect(Cgd.p, Cgs.p) annotation(Line(points = {{-20, 58}, {-20, 46}}, color = {0, 0, 255}));
connect(Voltage_Source.p, R_Source.n) annotation(Line(points = {{-56, 16}, {-56, 32}}, color = {0, 0, 255}));
connect(Ground.p, Voltage_Source.n) annotation(Line(points = {{-56, -20}, {-56, -20}, {-56, -4}, {-56, -4}}, color = {0, 0, 255}));
annotation(Icon, Diagram, experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.001), uses(Modelica(version = "3.2.1")));
end Circuit3x;
66 changes: 66 additions & 0 deletions simulation/modelica/resolveLoops/Circuit3x.mos
@@ -0,0 +1,66 @@
// name: Circuit3x
// keywords: resolveLoops
// status: correct
//

loadModel(Modelica, {"3.2.1"}); getErrorString();

loadFile("Circuit3x.mo"); getErrorString();
setDebugFlags("backenddaeinfo,stateselection"); getErrorString();
simulate(Circuit3x); getErrorString();
// Result:
// true
// ""
// true
// ""
// true
// ""
// record SimulationResult
// resultFile = "Circuit3x_res.mat",
// simulationOptions = "startTime = 0.0, stopTime = 10.0, numberOfIntervals = 10000, tolerance = 1e-006, method = 'dassl', fileNamePrefix = 'Circuit3x', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
// messages = ""
// end SimulationResult;
// "Notification: Model statistics after passing the front-end and creating the data structures used by the back-end:
// * Number of equations: 46
// * Number of variables: 46
// Warning: The initial conditions are not fully specified. For more information set -d=initialization. In OMEdit Tools->Options->Simulation->OMCFlags, in OMNotebook call setCommandLineOptions("-d=initialization").
// Notification: Model statistics after passing the back-end for initialization:
// * Number of independent subsystems: 3
// * Number of states: 0 ()
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for initialization (11):
// * Single equations (assignments): 9
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 4,(1,100.0%) 5}
// * Non-linear torn systems: 0
// Notification: Model statistics after passing the back-end for simulation:
// * Number of independent subsystems: 1
// * Number of states: 2 (Cds.v,Cgs.v)
// * Number of discrete variables: 0 ('-d=discreteinfo' for list of discrete vars)
// * Number of discrete states: 0 ('-d=discreteinfo' for list of discrete states)
// * Top-level inputs: 0
// Notification: Strong component statistics for simulation (6):
// * Single equations (assignments): 4
// * Array equations: 0
// * Algorithm blocks: 0
// * Record equations: 0
// * When equations: 0
// * If-equations: 0
// * Equation systems (linear and non-linear blocks): 0
// * Torn equation systems: 2
// * Mixed (continuous/discrete) equation systems: 0
// Notification: Torn system details for strict tearing set:
// * Linear torn systems: 2 {(1,100.0%) 4,(1,100.0%) 4}
// * Non-linear torn systems: 0
// "
// endResult
22 changes: 22 additions & 0 deletions simulation/modelica/resolveLoops/Circuit4x.mo
@@ -0,0 +1,22 @@
model Circuit4x
Modelica.Electrical.Analog.Sources.ConstantVoltage Voltage_Source(V = 2) annotation(Placement(visible = true, transformation(origin = {-56, 6}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Capacitor Cgd(C = 1) annotation(Placement(visible = true, transformation(origin = {-4, 68}, extent = {{10, -10}, {-10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Resistor R_Load(R = 1) annotation(Placement(visible = true, transformation(origin = {34, 0}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Resistor R_Source(R = 1) annotation(Placement(visible = true, transformation(origin = {-56, 42}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
Modelica.Electrical.Analog.Basic.Ground Ground annotation(Placement(visible = true, transformation(origin = {-56, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Basic.Capacitor Cds(C = 1) annotation(Placement(visible = true, transformation(origin = {34, 52}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Capacitor Cgs(C = 1) annotation(Placement(visible = true, transformation(origin = {-4, 36}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
Modelica.Electrical.Analog.Basic.Resistor R_Gate(R = 1) annotation(Placement(visible = true, transformation(origin = {-30, 26}, extent = {{10, -10}, {-10, 10}}, rotation = 90)));
equation
connect(R_Load.n, Ground.p) annotation(Line(points = {{34, -10}, {-56, -10}, {-56, -20}, {-56, -20}}, color = {0, 0, 255}));
connect(R_Load.p, R_Gate.n) annotation(Line(points = {{34, 10}, {34, 16}, {-30, 16}}, color = {0, 0, 255}));
connect(Cgs.p, R_Gate.p) annotation(Line(points = {{-4, 46}, {-30, 46}, {-30, 36}}, color = {0, 0, 255}));
connect(Cgd.p, Cgs.p) annotation(Line(points = {{-4, 58}, {-4, 46}}, color = {0, 0, 255}));
connect(Cgs.n, Cds.n) annotation(Line(points = {{-4, 26}, {-4, 16}, {34, 16}, {34, 42}}, color = {0, 0, 255}));
connect(Cgd.n, Cds.p) annotation(Line(points = {{-4, 78}, {-4, 88}, {34, 88}, {34, 75}, {34, 75}, {34, 62}}, color = {0, 0, 255}));
connect(R_Source.p, Cds.p) annotation(Line(points = {{-56, 52}, {-56, 88}, {34, 88}, {34, 62}}, color = {0, 0, 255}));
connect(R_Load.p, Cds.n) annotation(Line(points = {{34, 10}, {34, 42}}, color = {0, 0, 255}));
connect(Voltage_Source.p, R_Source.n) annotation(Line(points = {{-56, 16}, {-56, 32}}, color = {0, 0, 255}));
connect(Ground.p, Voltage_Source.n) annotation(Line(points = {{-56, -20}, {-56, -20}, {-56, -4}, {-56, -4}}, color = {0, 0, 255}));
annotation(Icon, Diagram, experiment(StartTime = 0, StopTime = 10, Tolerance = 1e-06, Interval = 0.001), uses(Modelica(version = "3.2.1")));
end Circuit4x;

0 comments on commit d7d530d

Please sign in to comment.