Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This file is autogenerated by TAIRSC : Trainz Air Scheme Compiler
- // DO NOT RELY ON ANY CONTENTS OF THIS FILE
- // Created 12/05/2012 17:41:02
- // Scheme statistics:
- // node count: 12
- // link count: 23
- // unique: 20
- // to atm: 5
- // with name: 19
- // matrix non-zeros: 32
- // matrix density: 0.2222222222222222222222222222
- // object count: 1
- include "spairschemespec.gs"
- include "Freight483M.instance.gs"
- include "SPAirDistributor483M.gs"
- static class SPAirSchemeSpec_CurrentObjectNameHelper
- {
- public string currentObjectName;
- };
- final class Freight483MSpec isclass SPAirSchemeSpec
- {
- public SPIntMap nodeIds;
- public SPIntMap linkIds;
- public SPIntMap objectIds;
- public float[] linkNominalFlowRate;
- public int[] linkSrc;
- public int[] linkDst;
- public float[] alinkNominalFlowRate;
- public int[] alinkSrc;
- float _a00_00, _a00_03;
- float _a01_01, _a01_04;
- float _a02_02, _a02_05;
- float _a03_03, _a03_05, _a03_08;
- float _a04_04, _a04_05, _a04_10;
- float _a05_05, _a05_08, _a05_10;
- float _a06_06, _a06_07, _a06_11;
- float _a07_07, _a07_08, _a07_09, _a07_11;
- float _a08_08, _a08_09, _a08_10, _a08_11;
- float _a09_09, _a09_10, _a09_11;
- float _a10_10, _a10_11;
- float _a11_11;
- final string GetCurrentObjectName()
- {
- return SPAirSchemeSpec_CurrentObjectNameHelper.currentObjectName;
- }
- final void SetCurrentObjectName(string name)
- {
- SPAirSchemeSpec_CurrentObjectNameHelper.currentObjectName = name;
- }
- public int GetSubNode(string name)
- {
- string objName = GetCurrentObjectName();
- if (objName) {
- if (name != ".")
- return nodeIds.Get(objName + name, SPAirScheme.InvalidNodeId);
- return nodeIds.Get(objName, SPAirScheme.InvalidNodeId);
- }
- return SPAirScheme.InvalidNodeId;
- }
- public int GetSubLink(string name)
- {
- string objName = GetCurrentObjectName();
- if (objName) {
- if (name != ".")
- return linkIds.Get(objName + name, SPAirScheme.InvalidLinkId);
- return linkIds.Get(objName, SPAirScheme.InvalidLinkId);
- }
- return SPAirScheme.InvalidLinkId;
- }
- public SPAirObject GetSubObject(string name)
- {
- string objName = GetCurrentObjectName();
- if (objName and objectIds.TryGet(objName + name))
- return objects[objectIds.LastValue];
- return null;
- }
- Freight483M CreateInstanceInternal(SPVehicle owner)
- {
- Freight483MSpec scheme = new Freight483MSpec();
- scheme.spec = me;
- scheme.owner = owner;
- float[] nodePressure = new float[12];
- float[] nodeVolume = new float[12];
- scheme.nodePressure = nodePressure;
- scheme.nodeVolume = nodeVolume;
- nodePressure[0] = 0;
- nodeVolume[0] = 20;
- nodePressure[1] = 0;
- nodeVolume[1] = 20;
- nodePressure[2] = 0;
- nodeVolume[2] = 78;
- nodePressure[3] = 0;
- nodeVolume[3] = 0.1;
- nodePressure[4] = 0;
- nodeVolume[4] = 0.1;
- nodePressure[5] = 0;
- nodeVolume[5] = 0.1;
- nodePressure[6] = 0;
- nodeVolume[6] = 6;
- nodePressure[7] = 0;
- nodeVolume[7] = 6;
- nodePressure[8] = 0;
- nodeVolume[8] = 0.5;
- nodePressure[9] = 0;
- nodeVolume[9] = 0.1;
- nodePressure[10] = 0;
- nodeVolume[10] = 0.1;
- nodePressure[11] = 0;
- nodeVolume[11] = 0.01;
- float[] linkFlowRate = new float[3];
- scheme.linkFlowRate = linkFlowRate;
- linkFlowRate[0] = 21.2243061;
- linkFlowRate[1] = 0;
- linkFlowRate[2] = 0;
- float[] alinkFlowRate = new float[3];
- scheme.alinkFlowRate = alinkFlowRate
- alinkFlowRate[0] = 21.2243061;
- alinkFlowRate[1] = 0;
- alinkFlowRate[2] = 0;
- SPAirObject[] objects = new SPAirObject[1];
- scheme.objects = objects;
- objects[0] = new SPAirDistributor483M();
- }
- public SPAirScheme CreateInstance(SPVehicle owner)
- {
- return CreateInstanceInternal(owner);
- }
- void InitInstanceObjectsInternal(Freight483M scheme)
- {
- SetCurrentObjectName(vr);
- objects[0].Init(me);
- SetCurrentObjectName(null);
- }
- public void InitInstanceObjects(SPAirScheme scheme)
- {
- Freight483M myScheme = cast<Freight483M> scheme;
- if (!myScheme) {
- Exception("InitInstanceObjects: invalid scheme");
- return;
- }
- InitInstanceObjectsInternal(myScheme);
- }
- public void UpdateInstance(Freight483M scheme, float dt)
- {
- SPAirObject[] objects = scheme.objects;
- objects[0].Update(me, dt);
- float[] nodePressure = scheme.nodePressure;
- float[] nodeVolume = scheme.nodeVolume;
- float[] linkFlowRate = scheme.linkFlowRate;
- float[] alinkFlowRate = scheme.alinkFlowRate;
- _a05_08 = 0.0f; _a05_10 = 0.0f;
- _a08_10 = 0.0f; _a08_11 = 0.0f;
- _a10_11 = 0.0f;
- float delta, deltaAbs, flow;
- delta = nodePressure[3] - nodePressure[0];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[0]);
- _a00_00 = _a00_00 + flow; _a00_03 = -flow; _a03_03 = _a03_03 + flow;
- }
- else
- _a00_03 = 0.0;
- delta = nodePressure[1] - nodePressure[4];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (1448.38831);
- _a04_04 = _a04_04 + flow; _a04_01 = -flow; _a01_01 = _a01_01 + flow;
- }
- else
- _a04_01 = 0.0;
- delta = nodePressure[2] - nodePressure[5];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (1448.38831);
- _a05_05 = _a05_05 + flow; _a05_02 = -flow; _a02_02 = _a02_02 + flow;
- }
- else
- _a05_02 = 0.0;
- delta = nodePressure[5] - nodePressure[3];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[1]);
- _a03_03 = _a03_03 + flow; _a03_05 = -flow; _a05_05 = _a05_05 + flow;
- }
- else
- _a03_05 = 0.0;
- delta = nodePressure[8] - nodePressure[3];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (577.7505);
- _a03_03 = _a03_03 + flow; _a03_08 = -flow; _a08_08 = _a08_08 + flow;
- }
- else
- _a03_08 = 0.0;
- delta = nodePressure[4] - nodePressure[5];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[2]);
- _a05_05 = _a05_05 + flow; _a05_04 = -flow; _a04_04 = _a04_04 + flow;
- }
- else
- _a05_04 = 0.0;
- delta = nodePressure[4] - nodePressure[10];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[12]);
- _a10_10 = _a10_10 + flow; _a10_04 = -flow; _a04_04 = _a04_04 + flow;
- }
- else
- _a10_04 = 0.0;
- delta = nodePressure[7] - nodePressure[6];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[4]);
- _a06_06 = _a06_06 + flow; _a06_07 = -flow; _a07_07 = _a07_07 + flow;
- }
- else
- _a06_07 = 0.0;
- delta = nodePressure[11] - nodePressure[6];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[3]);
- _a06_06 = _a06_06 + flow; _a06_11 = -flow; _a11_11 = _a11_11 + flow;
- }
- else
- _a06_11 = 0.0;
- delta = nodePressure[7] - nodePressure[8];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[6]);
- _a08_08 = _a08_08 + flow; _a08_07 = -flow; _a07_07 = _a07_07 + flow;
- }
- else
- _a08_07 = 0.0;
- delta = nodePressure[7] - nodePressure[9];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[8] + linkFlowRate[9]);
- _a09_09 = _a09_09 + flow; _a09_07 = -flow; _a07_07 = _a07_07 + flow;
- }
- else
- _a09_07 = 0.0;
- delta = nodePressure[7] - nodePressure[11];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[13]);
- _a11_11 = _a11_11 + flow; _a11_07 = -flow; _a07_07 = _a07_07 + flow;
- }
- else
- _a11_07 = 0.0;
- delta = nodePressure[9] - nodePressure[8];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[5] + linkFlowRate[7] + 0.361094028);
- _a08_08 = _a08_08 + flow; _a08_09 = -flow; _a09_09 = _a09_09 + flow;
- }
- else
- _a08_09 = 0.0;
- delta = nodePressure[10] - nodePressure[9];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[10]);
- _a09_09 = _a09_09 + flow; _a09_10 = -flow; _a10_10 = _a10_10 + flow;
- }
- else
- _a09_10 = 0.0;
- delta = nodePressure[11] - nodePressure[9];
- deltaAbs = delta; if (delta < 0.0) deltaAbs = -delta;
- if (deltaAbs > 0.000001) {
- flow = Math.Sqrt(deltaAbs) / deltaAbs * dt * (linkFlowRate[11]);
- _a09_09 = _a09_09 + flow; _a09_11 = -flow; _a11_11 = _a11_11 + flow;
- }
- else
- _a09_11 = 0.0;
- float volume, pressure;
- pressure = nodePressure[0]; volume = nodeVolume[0]; _a00_00 = volume; nodePressure[_a00_00] = volume * pressure;
- if(pressure > 0.000001)
- _a00_00 = _a00_00 + (Math.Sqrt(pressure) / pressure * dt) * (1);
- pressure = nodePressure[1]; volume = nodeVolume[1]; _a01_01 = volume; nodePressure[_a01_01] = volume * pressure;
- pressure = nodePressure[2]; volume = nodeVolume[2]; _a02_02 = volume; nodePressure[_a02_02] = volume * pressure;
- if(pressure > 0.000001)
- _a02_02 = _a02_02 + (Math.Sqrt(pressure) / pressure * dt) * (1);
- pressure = nodePressure[3]; volume = nodeVolume[3]; _a03_03 = volume; nodePressure[_a03_03] = volume * pressure;
- pressure = nodePressure[4]; volume = nodeVolume[4]; _a04_04 = volume; nodePressure[_a04_04] = volume * pressure;
- if(pressure > 0.000001)
- _a04_04 = _a04_04 + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[0]);
- pressure = nodePressure[5]; volume = nodeVolume[5]; _a05_05 = volume; nodePressure[_a05_05] = volume * pressure;
- pressure = nodePressure[6]; volume = nodeVolume[6]; _a06_06 = volume; nodePressure[_a06_06] = volume * pressure;
- if(pressure > 0.000001)
- _a06_06 = _a06_06 + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[1]);
- pressure = nodePressure[7]; volume = nodeVolume[7]; _a07_07 = volume; nodePressure[_a07_07] = volume * pressure;
- pressure = nodePressure[8]; volume = nodeVolume[8]; _a08_08 = volume; nodePressure[_a08_08] = volume * pressure;
- pressure = nodePressure[9]; volume = nodeVolume[9]; _a09_09 = volume; nodePressure[_a09_09] = volume * pressure;
- pressure = nodePressure[10]; volume = nodeVolume[10]; _a10_10 = volume; nodePressure[_a10_10] = volume * pressure;
- if(pressure > 0.000001)
- _a10_10 = _a10_10 + (Math.Sqrt(pressure) / pressure * dt) * (alinkFlowRate[2]);
- pressure = nodePressure[11]; volume = nodeVolume[11]; _a11_11 = volume; nodePressure[_a11_11] = volume * pressure;
- float basePivot, m;
- basePivot = _a00_00; // base row 0
- m = _a03_03 / basePivot; // current row 3
- _a03_03 = _a03_03 - _a00_03 * m;
- nodePressure[3] = nodePressure[3] - nodePressure[0] * m;
- basePivot = _a01_01; // base row 1
- m = _a04_04 / basePivot; // current row 4
- _a04_04 = _a04_04 - _a01_04 * m;
- nodePressure[4] = nodePressure[4] - nodePressure[1] * m;
- basePivot = _a02_02; // base row 2
- m = _a05_05 / basePivot; // current row 5
- _a05_05 = _a05_05 - _a02_05 * m;
- nodePressure[5] = nodePressure[5] - nodePressure[2] * m;
- basePivot = _a03_03; // base row 3
- m = _a05_05 / basePivot; // current row 5
- _a05_05 = _a05_05 - _a03_05 * m;
- _a05_08 = _a05_08 - _a03_08 * m;
- nodePressure[5] = nodePressure[5] - nodePressure[3] * m;
- m = _a08_08 / basePivot; // current row 8
- _a08_08 = _a08_08 - _a03_08 * m;
- nodePressure[8] = nodePressure[8] - nodePressure[3] * m;
- basePivot = _a04_04; // base row 4
- m = _a05_05 / basePivot; // current row 5
- _a05_05 = _a05_05 - _a04_05 * m;
- _a05_10 = _a05_10 - _a04_10 * m;
- nodePressure[5] = nodePressure[5] - nodePressure[4] * m;
- m = _a10_10 / basePivot; // current row 10
- _a10_10 = _a10_10 - _a04_10 * m;
- nodePressure[10] = nodePressure[10] - nodePressure[4] * m;
- basePivot = _a05_05; // base row 5
- m = _a08_08 / basePivot; // current row 8
- _a08_08 = _a08_08 - _a05_08 * m;
- _a08_10 = _a08_10 - _a05_10 * m;
- nodePressure[8] = nodePressure[8] - nodePressure[5] * m;
- m = _a10_10 / basePivot; // current row 10
- _a10_10 = _a10_10 - _a05_10 * m;
- nodePressure[10] = nodePressure[10] - nodePressure[5] * m;
- basePivot = _a06_06; // base row 6
- m = _a07_07 / basePivot; // current row 7
- _a07_07 = _a07_07 - _a06_07 * m;
- _a07_11 = _a07_11 - _a06_11 * m;
- nodePressure[7] = nodePressure[7] - nodePressure[6] * m;
- m = _a11_11 / basePivot; // current row 11
- _a11_11 = _a11_11 - _a06_11 * m;
- nodePressure[11] = nodePressure[11] - nodePressure[6] * m;
- basePivot = _a07_07; // base row 7
- m = _a08_08 / basePivot; // current row 8
- _a08_08 = _a08_08 - _a07_08 * m;
- _a08_09 = _a08_09 - _a07_09 * m;
- _a08_11 = _a08_11 - _a07_11 * m;
- nodePressure[8] = nodePressure[8] - nodePressure[7] * m;
- m = _a09_09 / basePivot; // current row 9
- _a09_09 = _a09_09 - _a07_09 * m;
- _a09_11 = _a09_11 - _a07_11 * m;
- nodePressure[9] = nodePressure[9] - nodePressure[7] * m;
- m = _a11_11 / basePivot; // current row 11
- _a11_11 = _a11_11 - _a07_11 * m;
- nodePressure[11] = nodePressure[11] - nodePressure[7] * m;
- basePivot = _a08_08; // base row 8
- m = _a09_09 / basePivot; // current row 9
- _a09_09 = _a09_09 - _a08_09 * m;
- _a09_10 = _a09_10 - _a08_10 * m;
- _a09_11 = _a09_11 - _a08_11 * m;
- nodePressure[9] = nodePressure[9] - nodePressure[8] * m;
- m = _a10_10 / basePivot; // current row 10
- _a10_10 = _a10_10 - _a08_10 * m;
- _a10_11 = _a10_11 - _a08_11 * m;
- nodePressure[10] = nodePressure[10] - nodePressure[8] * m;
- m = _a11_11 / basePivot; // current row 11
- _a11_11 = _a11_11 - _a08_11 * m;
- nodePressure[11] = nodePressure[11] - nodePressure[8] * m;
- basePivot = _a09_09; // base row 9
- m = _a10_10 / basePivot; // current row 10
- _a10_10 = _a10_10 - _a09_10 * m;
- _a10_11 = _a10_11 - _a09_11 * m;
- nodePressure[10] = nodePressure[10] - nodePressure[9] * m;
- m = _a11_11 / basePivot; // current row 11
- _a11_11 = _a11_11 - _a09_11 * m;
- nodePressure[11] = nodePressure[11] - nodePressure[9] * m;
- basePivot = _a10_10; // base row 10
- m = _a11_11 / basePivot; // current row 11
- _a11_11 = _a11_11 - _a10_11 * m;
- nodePressure[11] = nodePressure[11] - nodePressure[10] * m;
- nodePressure[11] = nodePressure[11] / _a11_11;
- nodePressure[10] = (nodePressure[10] - nodePressure[11] * _a10_11) / _a10_10;
- nodePressure[9] = (nodePressure[9] - nodePressure[10] * _a09_10 - nodePressure[11] * _a09_11) / _a09_09;
- nodePressure[8] = (nodePressure[8] - nodePressure[9] * _a08_09 - nodePressure[10] * _a08_10 - nodePressure[11] * _a08_11) / _a08_08;
- nodePressure[7] = (nodePressure[7] - nodePressure[8] * _a07_08 - nodePressure[9] * _a07_09 - nodePressure[11] * _a07_11) / _a07_07;
- nodePressure[6] = (nodePressure[6] - nodePressure[7] * _a06_07 - nodePressure[11] * _a06_11) / _a06_06;
- nodePressure[5] = (nodePressure[5] - nodePressure[8] * _a05_08 - nodePressure[10] * _a05_10) / _a05_05;
- nodePressure[4] = (nodePressure[4] - nodePressure[5] * _a04_05 - nodePressure[10] * _a04_10) / _a04_04;
- nodePressure[3] = (nodePressure[3] - nodePressure[5] * _a03_05 - nodePressure[8] * _a03_08) / _a03_03;
- nodePressure[2] = (nodePressure[2] - nodePressure[5] * _a02_05) / _a02_02;
- nodePressure[1] = (nodePressure[1] - nodePressure[4] * _a01_04) / _a01_01;
- nodePressure[0] = (nodePressure[0] - nodePressure[3] * _a00_03) / _a00_00;
- }
- void InitSpec()
- {
- nodeIds = new SPIntMap(); nodeIds.Reserve(12);
- nodeIds.Set("tm", 0);
- nodeIds.Set("tc", 1);
- nodeIds.Set("zr", 2);
- nodeIds.Set("vr.tm", 3);
- nodeIds.Set("vr.tc", 4);
- nodeIds.Set("vr.zr", 5);
- nodeIds.Set("vr.rk", 6);
- nodeIds.Set("vr.zk", 7);
- nodeIds.Set("vr.mk", 8);
- nodeIds.Set("vr.s1", 9);
- nodeIds.Set("vr.kdr", 10);
- nodeIds.Set("vr.k", 11);
- linkIds = new SPIntMap(); linkIds.Reserve(19);
- linkIds.Set("l_tm", -4);
- linkIds.Set("rzk", 0);
- linkIds.Set("l_zr", -5);
- linkIds.Set("vr.tm_zr", 1);
- linkIds.Set("vr.tc_at", -1);
- linkIds.Set("vr.zr_tc", 2);
- linkIds.Set("vr.rd", 3);
- linkIds.Set("vr.rk_zk", 4);
- linkIds.Set("vr.vk", -2);
- linkIds.Set("vr.mk_s1_p", 5);
- linkIds.Set("vr.km", 6);
- linkIds.Set("vr.chm", 7);
- linkIds.Set("vr.kp", 8);
- linkIds.Set("vr.s1_zk_p", 9);
- linkIds.Set("vr.dr", 10);
- linkIds.Set("vr.s1_k_p", 11);
- linkIds.Set("vr.kdr_tc", 12);
- linkIds.Set("vr.ak", -3);
- linkIds.Set("vr.k_zk_p", 13);
- objectIds = new SPIntMap(); objectIds.Reserve(1);
- objectIds.Set("vr", 0);
- linkNominalFlowRate = new float[14];
- linkSrc = new int[14];
- linkDst = new int[14];
- linkNominalFlowRate[0] = 1448.38831; linkSrc[0] = 0; linkDst[0] = 3;
- linkNominalFlowRate[1] = 0; linkSrc[1] = 3; linkDst[1] = 5;
- linkNominalFlowRate[2] = 0; linkSrc[2] = 5; linkDst[2] = 4;
- linkNominalFlowRate[3] = 0; linkSrc[3] = 6; linkDst[3] = 11;
- linkNominalFlowRate[4] = 1.003039; linkSrc[4] = 6; linkDst[4] = 7;
- linkNominalFlowRate[5] = 0; linkSrc[5] = 8; linkDst[5] = 9;
- linkNominalFlowRate[6] = 0; linkSrc[6] = 8; linkDst[6] = 7;
- linkNominalFlowRate[7] = 0; linkSrc[7] = 8; linkDst[7] = 9;
- linkNominalFlowRate[8] = 0; linkSrc[8] = 9; linkDst[8] = 7;
- linkNominalFlowRate[9] = 0; linkSrc[9] = 9; linkDst[9] = 7;
- linkNominalFlowRate[10] = 0; linkSrc[10] = 9; linkDst[10] = 10;
- linkNominalFlowRate[11] = 0; linkSrc[11] = 9; linkDst[11] = 11;
- linkNominalFlowRate[12] = 577.7505; linkSrc[12] = 10; linkDst[12] = 4;
- linkNominalFlowRate[13] = 0; linkSrc[13] = 11; linkDst[13] = 7;
- alinkNominalFlowRate = new float[5];
- alinkSrc = new int[5];
- alinkNominalFlowRate[3] = 1; alinkSrc[3] = 0;
- alinkNominalFlowRate[4] = 1; alinkSrc[4] = 2;
- alinkNominalFlowRate[0] = 21.2243061; alinkSrc[0] = 4;
- alinkNominalFlowRate[1] = 0; alinkSrc[1] = 6;
- alinkNominalFlowRate[2] = 0; alinkSrc[2] = 10;
- }
- public Soup GetSchemePropertiesInternal(Freight483M scheme)
- {
- Soup pressureSoup = Constructors.NewSoup();
- pressureSoup.SetNamedTag("tm", scheme.nodePressure[0]);
- pressureSoup.SetNamedTag("tc", scheme.nodePressure[1]);
- pressureSoup.SetNamedTag("zr", scheme.nodePressure[2]);
- pressureSoup.SetNamedTag("vr.tm", scheme.nodePressure[3]);
- pressureSoup.SetNamedTag("vr.tc", scheme.nodePressure[4]);
- pressureSoup.SetNamedTag("vr.zr", scheme.nodePressure[5]);
- pressureSoup.SetNamedTag("vr.rk", scheme.nodePressure[6]);
- pressureSoup.SetNamedTag("vr.zk", scheme.nodePressure[7]);
- pressureSoup.SetNamedTag("vr.mk", scheme.nodePressure[8]);
- pressureSoup.SetNamedTag("vr.s1", scheme.nodePressure[9]);
- pressureSoup.SetNamedTag("vr.kdr", scheme.nodePressure[10]);
- pressureSoup.SetNamedTag("vr.k", scheme.nodePressure[11]);
- Soup volumeSoup = Constructors.NewSoup();
- volumeSoup.SetNamedTag("tm", scheme.nodeVolume[0]);
- volumeSoup.SetNamedTag("tc", scheme.nodeVolume[1]);
- volumeSoup.SetNamedTag("zr", scheme.nodeVolume[2]);
- volumeSoup.SetNamedTag("vr.tm", scheme.nodeVolume[3]);
- volumeSoup.SetNamedTag("vr.tc", scheme.nodeVolume[4]);
- volumeSoup.SetNamedTag("vr.zr", scheme.nodeVolume[5]);
- volumeSoup.SetNamedTag("vr.rk", scheme.nodeVolume[6]);
- volumeSoup.SetNamedTag("vr.zk", scheme.nodeVolume[7]);
- volumeSoup.SetNamedTag("vr.mk", scheme.nodeVolume[8]);
- volumeSoup.SetNamedTag("vr.s1", scheme.nodeVolume[9]);
- volumeSoup.SetNamedTag("vr.kdr", scheme.nodeVolume[10]);
- volumeSoup.SetNamedTag("vr.k", scheme.nodeVolume[11]);
- Soup flowrateSoup = Constructors.NewSoup();
- flowrateSoup.SetNamedTag("rzk", scheme.linkFlowRate[0]);
- flowrateSoup.SetNamedTag("vr.tm_zr", scheme.linkFlowRate[1]);
- flowrateSoup.SetNamedTag("vr.tc_at", scheme.alinkFlowRate[0]);
- flowrateSoup.SetNamedTag("vr.zr_tc", scheme.linkFlowRate[2]);
- flowrateSoup.SetNamedTag("vr.rd", scheme.linkFlowRate[3]);
- flowrateSoup.SetNamedTag("vr.rk_zk", scheme.linkFlowRate[4]);
- flowrateSoup.SetNamedTag("vr.vk", scheme.alinkFlowRate[1]);
- flowrateSoup.SetNamedTag("vr.mk_s1_p", scheme.linkFlowRate[5]);
- flowrateSoup.SetNamedTag("vr.km", scheme.linkFlowRate[6]);
- flowrateSoup.SetNamedTag("vr.chm", scheme.linkFlowRate[7]);
- flowrateSoup.SetNamedTag("vr.kp", scheme.linkFlowRate[8]);
- flowrateSoup.SetNamedTag("vr.s1_zk_p", scheme.linkFlowRate[9]);
- flowrateSoup.SetNamedTag("vr.dr", scheme.linkFlowRate[10]);
- flowrateSoup.SetNamedTag("vr.s1_k_p", scheme.linkFlowRate[11]);
- flowrateSoup.SetNamedTag("vr.kdr_tc", scheme.linkFlowRate[12]);
- flowrateSoup.SetNamedTag("vr.ak", scheme.alinkFlowRate[2]);
- flowrateSoup.SetNamedTag("vr.k_zk_p", scheme.linkFlowRate[13]);
- Soup objectsSoup = Constructors.NewSoup();
- objectsSoup.SetNamedSoup("vr", scheme.objects[0].GetProperties());
- Soup ret = Constructors.NewSoup();
- ret.SetNamedSoup("pressure", pressureSoup);
- ret.SetNamedSoup("volume", volumeSoup);
- ret.SetNamedSoup("flowrate", flowrateSoup);
- ret.SetNamedSoup("objects", objectsSoup);
- return ret;
- }
- public void SetSchemePropertiesInternal(Soup sp, Freight483M scheme)
- {
- Soup pressureSoup = sp.GetNamedSoup("pressure");
- float[] p = scheme.nodePressure;
- p[0] = SPHelper.GetFloatEx(pressureSoup, "tm", p[0]);
- p[1] = SPHelper.GetFloatEx(pressureSoup, "tc", p[1]);
- p[2] = SPHelper.GetFloatEx(pressureSoup, "zr", p[2]);
- p[3] = SPHelper.GetFloatEx(pressureSoup, "vr.tm", p[3]);
- p[4] = SPHelper.GetFloatEx(pressureSoup, "vr.tc", p[4]);
- p[5] = SPHelper.GetFloatEx(pressureSoup, "vr.zr", p[5]);
- p[6] = SPHelper.GetFloatEx(pressureSoup, "vr.rk", p[6]);
- p[7] = SPHelper.GetFloatEx(pressureSoup, "vr.zk", p[7]);
- p[8] = SPHelper.GetFloatEx(pressureSoup, "vr.mk", p[8]);
- p[9] = SPHelper.GetFloatEx(pressureSoup, "vr.s1", p[9]);
- p[10] = SPHelper.GetFloatEx(pressureSoup, "vr.kdr", p[10]);
- p[11] = SPHelper.GetFloatEx(pressureSoup, "vr.k", p[11]);
- Soup volumeSoup = sp.GetNamedSoup("volume");
- float[] v = scheme.nodeVolume;
- v[0] = SPHelper.GetFloatEx(volumeSoup, "tm", v[0]);
- v[1] = SPHelper.GetFloatEx(volumeSoup, "tc", v[1]);
- v[2] = SPHelper.GetFloatEx(volumeSoup, "zr", v[2]);
- v[3] = SPHelper.GetFloatEx(volumeSoup, "vr.tm", v[3]);
- v[4] = SPHelper.GetFloatEx(volumeSoup, "vr.tc", v[4]);
- v[5] = SPHelper.GetFloatEx(volumeSoup, "vr.zr", v[5]);
- v[6] = SPHelper.GetFloatEx(volumeSoup, "vr.rk", v[6]);
- v[7] = SPHelper.GetFloatEx(volumeSoup, "vr.zk", v[7]);
- v[8] = SPHelper.GetFloatEx(volumeSoup, "vr.mk", v[8]);
- v[9] = SPHelper.GetFloatEx(volumeSoup, "vr.s1", v[9]);
- v[10] = SPHelper.GetFloatEx(volumeSoup, "vr.kdr", v[10]);
- v[11] = SPHelper.GetFloatEx(volumeSoup, "vr.k", v[11]);
- Soup flowrateSoup = sp.GetNamedSoup("flowrate");
- float[] afr = scheme.alinkFlowRate;
- float[] fr = scheme.linkFlowRate;
- fr[0] = SPHelper.GetFloatEx(flowrateSoup, "rzk", fr[0]);
- fr[1] = SPHelper.GetFloatEx(flowrateSoup, "vr.tm_zr", fr[1]);
- afr[0] = SPHelper.GetFloatEx(flowrateSoup, "vr.tc_at", afr[0]);
- fr[2] = SPHelper.GetFloatEx(flowrateSoup, "vr.zr_tc", fr[2]);
- fr[3] = SPHelper.GetFloatEx(flowrateSoup, "vr.rd", fr[3]);
- fr[4] = SPHelper.GetFloatEx(flowrateSoup, "vr.rk_zk", fr[4]);
- afr[1] = SPHelper.GetFloatEx(flowrateSoup, "vr.vk", afr[1]);
- fr[5] = SPHelper.GetFloatEx(flowrateSoup, "vr.mk_s1_p", fr[5]);
- fr[6] = SPHelper.GetFloatEx(flowrateSoup, "vr.km", fr[6]);
- fr[7] = SPHelper.GetFloatEx(flowrateSoup, "vr.chm", fr[7]);
- fr[8] = SPHelper.GetFloatEx(flowrateSoup, "vr.kp", fr[8]);
- fr[9] = SPHelper.GetFloatEx(flowrateSoup, "vr.s1_zk_p", fr[9]);
- fr[10] = SPHelper.GetFloatEx(flowrateSoup, "vr.dr", fr[10]);
- fr[11] = SPHelper.GetFloatEx(flowrateSoup, "vr.s1_k_p", fr[11]);
- fr[12] = SPHelper.GetFloatEx(flowrateSoup, "vr.kdr_tc", fr[12]);
- afr[2] = SPHelper.GetFloatEx(flowrateSoup, "vr.ak", afr[2]);
- fr[13] = SPHelper.GetFloatEx(flowrateSoup, "vr.k_zk_p", fr[13]);
- Soup objectsSoup = sp.GetNamedSoup("objects");
- scheme.objects[0].SetProperties(objectsSoup.GetNamedSoup("vr"));
- }
- public Soup GetProperties()
- {
- return inherited(sp);
- }
- public void SetProperties(Soup sp)
- {
- inherited(sp)
- }
- public void Init(Asset asset)
- {
- inherited(asset);
- InitSpec();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement