| 1 | class Model2Unit1 = TestLibrary.Containers.Container1.SubContainer1.Unit1(redeclare TestLibrary.Models.ModelContainer2.Model2.SubModel1 sm1, redeclare TestLibrary.Models.ModelContainer2.Model2.SubModel3 sm3, redeclare TestLibrary.Models.ModelContainer2.Model2.SubModel4 sm4, redeclare TestLibrary.Models.ModelContainer2.Model2.SubModel5 sm5);
|
|---|
| 2 | class Model2Unit2 = TestLibrary.Containers.Container1.SubContainer1.Unit2(redeclare TestLibrary.Models.ModelContainer2.Model2.SubModel5 sm5);
|
|---|
| 3 |
|
|---|
| 4 | model Model2Test
|
|---|
| 5 | Model2Unit1 i;
|
|---|
| 6 | Model2Unit2 e;
|
|---|
| 7 | equation
|
|---|
| 8 | connect(i.sm5, e.sm5);
|
|---|
| 9 | end Model2Test;
|
|---|
| 10 |
|
|---|
| 11 | package TestLibrary "Test library"
|
|---|
| 12 | package Models
|
|---|
| 13 | package ModelContainer2
|
|---|
| 14 | package Model2
|
|---|
| 15 | encapsulated type States = enumeration(S1, X1, S2, S3, S4, S5, X2, S6, X3, X4, X5, X6, S7, X7, S8, S9, S10);
|
|---|
| 16 | encapsulated type Composites = enumeration(C1, C2);
|
|---|
| 17 | encapsulated type Species = enumeration(SP1, SP2, SP3, SP4, SP5, SP6, SP7, SP8, SP9, SP10);
|
|---|
| 18 |
|
|---|
| 19 | class SubModel1
|
|---|
| 20 | Real[States] states;
|
|---|
| 21 | parameter Real S1 = 2.0;
|
|---|
| 22 | parameter Real X1 = 150.0;
|
|---|
| 23 | parameter Real S2 = 50.0;
|
|---|
| 24 | parameter Real S3 = 0.0;
|
|---|
| 25 | parameter Real S4 = 25.0;
|
|---|
| 26 | parameter Real S5 = 30.0;
|
|---|
| 27 | parameter Real X2 = 10.0;
|
|---|
| 28 | parameter Real S6 = 0.0;
|
|---|
| 29 | parameter Real X3 = 10.0;
|
|---|
| 30 | parameter Real X4 = 160.0;
|
|---|
| 31 | parameter Real X5 = 20.0;
|
|---|
| 32 | parameter Real X6 = 0.0;
|
|---|
| 33 | parameter Real S7 = 16.0;
|
|---|
| 34 | parameter Real X7 = 50.0;
|
|---|
| 35 | parameter Real S8 = 0.005;
|
|---|
| 36 | parameter Real S9 = 0.005;
|
|---|
| 37 | parameter Real S10 = 0.005;
|
|---|
| 38 | equation
|
|---|
| 39 | states[States.S1] = S1;
|
|---|
| 40 | states[States.X1] = X1;
|
|---|
| 41 | states[States.S2] = S2;
|
|---|
| 42 | states[States.S3] = S3;
|
|---|
| 43 | states[States.S4] = S4;
|
|---|
| 44 | states[States.S5] = S5;
|
|---|
| 45 | states[States.X2] = X2;
|
|---|
| 46 | states[States.S6] = S6;
|
|---|
| 47 | states[States.X3] = X3;
|
|---|
| 48 | states[States.X4] = X4;
|
|---|
| 49 | states[States.X5] = X5;
|
|---|
| 50 | states[States.X6] = X6;
|
|---|
| 51 | states[States.S7] = S7;
|
|---|
| 52 | states[States.X7] = X7;
|
|---|
| 53 | states[States.S8] = S8;
|
|---|
| 54 | states[States.S9] = S9;
|
|---|
| 55 | states[States.S10] = S10;
|
|---|
| 56 | end SubModel1;
|
|---|
| 57 |
|
|---|
| 58 | class Parameters
|
|---|
| 59 | parameter Real pa1 = 3;
|
|---|
| 60 | parameter Real pa2 = 0.03;
|
|---|
| 61 | parameter Real pa3 = 0.4;
|
|---|
| 62 | parameter Real pa4 = 6;
|
|---|
| 63 | parameter Real pa5 = 0.8;
|
|---|
| 64 | parameter Real pa6 = 20;
|
|---|
| 65 | parameter Real pa7 = 0.62;
|
|---|
| 66 | parameter Real pa8 = 0.2;
|
|---|
| 67 | parameter Real pa9 = 0.5;
|
|---|
| 68 | parameter Real pa10 = 0.05;
|
|---|
| 69 | parameter Real pa11 = 0.8;
|
|---|
| 70 | parameter Real pa12 = 0.15;
|
|---|
| 71 | parameter Real pa13 = 0.08;
|
|---|
| 72 | parameter Real pa14 = 0.4;
|
|---|
| 73 | parameter Real pa15 = 1;
|
|---|
| 74 | parameter Real pa16 = 0.67;
|
|---|
| 75 | parameter Real pa17 = 0.08;
|
|---|
| 76 | parameter Real pa18 = 0.24;
|
|---|
| 77 | parameter Real pa19 = 0.086;
|
|---|
| 78 | parameter Real pa20 = 0.06;
|
|---|
| 79 | parameter Real pa21 = 2.85714285714;
|
|---|
| 80 | parameter Real pa22 = -4.57142857143;
|
|---|
| 81 | parameter Real pa23 = -1.71428571429;
|
|---|
| 82 | parameter Real pa24 = 0.0714285714286;
|
|---|
| 83 | parameter Real pa25 = -0.0714285714286;
|
|---|
| 84 | parameter Real pa26 = 1.48;
|
|---|
| 85 | parameter Real T = 20.0;
|
|---|
| 86 | end Parameters;
|
|---|
| 87 |
|
|---|
| 88 | class SubModel3
|
|---|
| 89 | Parameters parameters;
|
|---|
| 90 | Real[States] states;
|
|---|
| 91 | Real[Composites] composites;
|
|---|
| 92 | constant States X1 = States.X1;
|
|---|
| 93 | constant States S2 = States.S2;
|
|---|
| 94 | constant States S5 = States.S5;
|
|---|
| 95 | constant States X2 = States.X2;
|
|---|
| 96 | constant States X4 = States.X4;
|
|---|
| 97 | constant States X5 = States.X5;
|
|---|
| 98 | constant States X6 = States.X6;
|
|---|
| 99 | constant Composites C1 = Composites.C1;
|
|---|
| 100 | constant Composites C2 = Composites.C2;
|
|---|
| 101 | equation
|
|---|
| 102 | composites[C1] = states[X1] + states[S2] + states[S5] + states[X2] + states[X4] + states[X5] + states[X6];
|
|---|
| 103 | composites[C2] = states[S2] + states[X2] + states[X4] + states[X5];
|
|---|
| 104 | end SubModel3;
|
|---|
| 105 |
|
|---|
| 106 | class SubModel4
|
|---|
| 107 | Parameters parameters;
|
|---|
| 108 | Real[States] states;
|
|---|
| 109 | Real[Species] species;
|
|---|
| 110 | Real var68;
|
|---|
| 111 | Real var74;
|
|---|
| 112 | Real var50;
|
|---|
| 113 | Real var51;
|
|---|
| 114 | Real var69;
|
|---|
| 115 | Real var70;
|
|---|
| 116 | Real var52;
|
|---|
| 117 | Real var53;
|
|---|
| 118 | Real var54;
|
|---|
| 119 | Real var55;
|
|---|
| 120 | Real var56;
|
|---|
| 121 | Real var57;
|
|---|
| 122 | Real var58;
|
|---|
| 123 | Real var59;
|
|---|
| 124 | Real var60;
|
|---|
| 125 | Real var61;
|
|---|
| 126 | Real var72;
|
|---|
| 127 | Real var71;
|
|---|
| 128 | Real var76;
|
|---|
| 129 | Real var75;
|
|---|
| 130 | Real var73;
|
|---|
| 131 | Real var62;
|
|---|
| 132 | constant Species SP1 = Species.SP1;
|
|---|
| 133 | constant Species SP2 = Species.SP2;
|
|---|
| 134 | constant Species SP3 = Species.SP3;
|
|---|
| 135 | constant Species SP4 = Species.SP4;
|
|---|
| 136 | constant Species SP5 = Species.SP5;
|
|---|
| 137 | constant Species SP6 = Species.SP6;
|
|---|
| 138 | constant Species SP7 = Species.SP7;
|
|---|
| 139 | constant Species SP8 = Species.SP8;
|
|---|
| 140 | constant Species SP9 = Species.SP9;
|
|---|
| 141 | constant Species SP10 = Species.SP10;
|
|---|
| 142 | constant States S3 = States.S3;
|
|---|
| 143 | constant States S4 = States.S4;
|
|---|
| 144 | constant States S8 = States.S8;
|
|---|
| 145 | constant States S9 = States.S9;
|
|---|
| 146 | constant States S10 = States.S10;
|
|---|
| 147 | constant Real var63 = 6.867e-15;
|
|---|
| 148 | constant Real var65 = -285.84;
|
|---|
| 149 | constant Real var66 = -229.994;
|
|---|
| 150 | constant Real var67 = -286.93308;
|
|---|
| 151 | constant Real var64 = 298.15;
|
|---|
| 152 | constant Real R = 8.314;
|
|---|
| 153 | equation
|
|---|
| 154 | var68 = -log10(species[SP1]);
|
|---|
| 155 | species[SP2] = var74 / species[SP1];
|
|---|
| 156 | species[SP3] = states[S4] / 14000 * var51 / (species[SP1] + var51);
|
|---|
| 157 | species[SP4] = states[S4] / 14000 * species[SP1] / (species[SP1] + var51);
|
|---|
| 158 | species[SP5] = states[S3] / 14000;
|
|---|
| 159 | species[SP6] = states[S8] * species[SP1] ^ 2 / (species[SP1] ^ 2 + species[SP1] * var69 + var69 * var70);
|
|---|
| 160 | species[SP7] = species[SP1] * var69 * states[S8] / (species[SP1] ^ 2 + species[SP1] * var69 + var69 * var70);
|
|---|
| 161 | species[SP8] = var70 * var69 * states[S8] / (species[SP1] ^ 2 + species[SP1] * var69 + var69 * var70);
|
|---|
| 162 | species[SP9] = states[S9];
|
|---|
| 163 | species[SP10] = states[S10];
|
|---|
| 164 | var61 = min(var72, 0.3);
|
|---|
| 165 | var72 = 0.5 * ((+1) ^ 2 * species[SP1] + (-1) ^ 2 * species[SP2] + 0 ^ 2 * species[SP3] + (+1) ^ 2 * species[SP4] + (-1) ^ 2 * species[SP5] + 0 ^ 2 * species[SP6] + (-1) ^ 2 * species[SP7] + (-2) ^ 2 * species[SP8] + (+1) ^ 2 * species[SP9] + (-1) ^ 2 * species[SP10]);
|
|---|
| 166 | var71 = var75 - var76;
|
|---|
| 167 | var75 = (+1) * species[SP1] + (+1) * species[SP4] + (+1) * species[SP9];
|
|---|
| 168 | var76 = (-1) * species[SP2] + (-1) * species[SP5] + (-1) * species[SP7] + (-2) * species[SP8] + (-1) * species[SP10];
|
|---|
| 169 | var76 = var75;
|
|---|
| 170 | var55 = 10 ^ (-var58 * 1 ^ 2 * (var61 ^ 0.5 / (1 + 1.5 * var61 ^ 0.5) - 0.3 * var61));
|
|---|
| 171 | var56 = 10 ^ (-var58 * 2 ^ 2 * (var61 ^ 0.5 / (1 + 1.5 * var61 ^ 0.5) - 0.3 * var61));
|
|---|
| 172 | var57 = 10 ^ (-var58 * 3 ^ 2 * (var61 ^ 0.5 / (1 + 1.5 * var61 ^ 0.5) - 0.3 * var61));
|
|---|
| 173 | var58 = 1.82483 * 10 ^ 6 * var59 ^ 0.5 * (var60 * var73) ^ (-1.5);
|
|---|
| 174 | var60 = 2727.586 + 0.6224107 * var73 - 466.9151 * log(var73) - 52000.87 / var73;
|
|---|
| 175 | var73 = parameters.T + 273.16;
|
|---|
| 176 | var59 = 1 - (parameters.T - 3.9863) ^ 2 * (parameters.T + 288.9414) / (508929.2 * (parameters.T + 68.12963)) + 0.011445 * exp(-374.3 / parameters.T);
|
|---|
| 177 | var74 = var50 / var55 ^ 2;
|
|---|
| 178 | var50 = var63 * exp(var54 / R * (1 / var64 - 1 / var73));
|
|---|
| 179 | var54 = var66 + var65 - 2 * var67;
|
|---|
| 180 | var69 = var52 / var55 ^ 2;
|
|---|
| 181 | var70 = var53 / var56;
|
|---|
| 182 | var52 = 10 ^ (-(3404.7 / var73 - 14.8435 + var73 * 0.03279));
|
|---|
| 183 | var53 = 10 ^ (-(2902.4 / var73 - 6.498 + var73 * 0.02379));
|
|---|
| 184 | var51 = 10 ^ (-(2835.8 / var73 - 0.6322 + 0.00123 * var73));
|
|---|
| 185 | var62 = species[SP2] + species[SP3] + species[SP7] + 2 * species[SP8] - species[SP1];
|
|---|
| 186 | end SubModel4;
|
|---|
| 187 |
|
|---|
| 188 | connector SubModel5
|
|---|
| 189 | flow Real Q;
|
|---|
| 190 | Real[States] states;
|
|---|
| 191 | Real[Composites] composites;
|
|---|
| 192 | Real[Species] species;
|
|---|
| 193 | end SubModel5;
|
|---|
| 194 | end Model2;
|
|---|
| 195 | end ModelContainer2;
|
|---|
| 196 |
|
|---|
| 197 | package ModelContainer1
|
|---|
| 198 | package Model1
|
|---|
| 199 | encapsulated type States = enumeration(S1, X1, S2);
|
|---|
| 200 | encapsulated type Composites = enumeration(C1, C2);
|
|---|
| 201 | encapsulated type Species = enumeration(SP1);
|
|---|
| 202 |
|
|---|
| 203 | class SubModel1 "SubModel1"
|
|---|
| 204 | Real[States] states "State variable concentrations";
|
|---|
| 205 | parameter Real S2 = 0.0;
|
|---|
| 206 | parameter Real S1 = 120.0;
|
|---|
| 207 | parameter Real X1 = 40.0;
|
|---|
| 208 | equation
|
|---|
| 209 | states[States.S2] = S2;
|
|---|
| 210 | states[States.S1] = S1;
|
|---|
| 211 | states[States.X1] = X1;
|
|---|
| 212 | end SubModel1;
|
|---|
| 213 |
|
|---|
| 214 | class Parameters
|
|---|
| 215 | parameter Real p1 = 6.0;
|
|---|
| 216 | parameter Real p2 = 0.62;
|
|---|
| 217 | parameter Real K_S1 = 20.0;
|
|---|
| 218 | parameter Real K_S2 = 0.2;
|
|---|
| 219 | parameter Real p3 = 0.67;
|
|---|
| 220 | end Parameters;
|
|---|
| 221 |
|
|---|
| 222 | class SubModel3
|
|---|
| 223 | Parameters parameters;
|
|---|
| 224 | Real[States] states;
|
|---|
| 225 | Real[Composites] composites;
|
|---|
| 226 | constant States S1 = States.S1;
|
|---|
| 227 | constant States X1 = States.X1;
|
|---|
| 228 | constant Composites C1 = Composites.C1;
|
|---|
| 229 | constant Composites C2 = Composites.C2;
|
|---|
| 230 | equation
|
|---|
| 231 | composites[C1] = states[S1] + states[X1];
|
|---|
| 232 | composites[C2] = states[S1] + states[X1];
|
|---|
| 233 | end SubModel3;
|
|---|
| 234 |
|
|---|
| 235 | class SubModel4
|
|---|
| 236 | Parameters parameters;
|
|---|
| 237 | Real[States] states;
|
|---|
| 238 | Real[Species] species;
|
|---|
| 239 | constant Species SP1 = Species.SP1;
|
|---|
| 240 | equation
|
|---|
| 241 | species[SP1] = 7.0;
|
|---|
| 242 | end SubModel4;
|
|---|
| 243 |
|
|---|
| 244 | connector SubModel5
|
|---|
| 245 | flow Real Q;
|
|---|
| 246 | Real[States] states "State variable concentrations";
|
|---|
| 247 | Real[Composites] composites "Composite variable concentrations";
|
|---|
| 248 | Real[Species] species "Ionic species";
|
|---|
| 249 | end SubModel5;
|
|---|
| 250 | end Model1;
|
|---|
| 251 | end ModelContainer1;
|
|---|
| 252 | end Models;
|
|---|
| 253 |
|
|---|
| 254 | package Containers
|
|---|
| 255 | package Container1
|
|---|
| 256 | package SubContainer1
|
|---|
| 257 | class Unit2 "Unit2"
|
|---|
| 258 | replaceable TestLibrary.Models.ModelContainer1.Model1.SubModel5 sm5;
|
|---|
| 259 | end Unit2;
|
|---|
| 260 |
|
|---|
| 261 | class Unit1 "Unit1"
|
|---|
| 262 | replaceable TestLibrary.Models.ModelContainer1.Model1.SubModel5 sm5;
|
|---|
| 263 | replaceable TestLibrary.Models.ModelContainer1.Model1.SubModel1 sm1;
|
|---|
| 264 | replaceable TestLibrary.Models.ModelContainer1.Model1.SubModel3 sm3;
|
|---|
| 265 | replaceable TestLibrary.Models.ModelContainer1.Model1.SubModel4 sm4;
|
|---|
| 266 | parameter Real Q = 10000;
|
|---|
| 267 | equation
|
|---|
| 268 | sm3.states = sm1.states;
|
|---|
| 269 | sm4.states = sm1.states;
|
|---|
| 270 | sm5.Q = -Q;
|
|---|
| 271 | sm5.states = sm1.states;
|
|---|
| 272 | sm5.composites = sm3.composites;
|
|---|
| 273 | sm5.species = sm4.species;
|
|---|
| 274 | end Unit1;
|
|---|
| 275 | end SubContainer1;
|
|---|
| 276 | end Container1;
|
|---|
| 277 | end Containers;
|
|---|
| 278 | end TestLibrary;
|
|---|
| 279 |
|
|---|
| 280 | model Model2Test_total
|
|---|
| 281 | extends Model2Test;
|
|---|
| 282 | end Model2Test_total;
|
|---|