// TODO Add documentation, clean up, remove commented out code, etc. public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { float Resistanc = 0; if (Indata == null) { return(Resistanc); } bool goingToExists = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo); bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom); if (goingToExists && comingFromExists) { HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(comingFrom.ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.ExceptWith(ResistanceSourtoreove); float Toadd = 0; float ToRemove = 0; foreach (var Resistance in ResistanceSour) { if (goingTo.ResistanceSources.Contains(Resistance)) { Toadd = 1 / Resistance.Resistance(); } //else { // ToRemove = 1 / Resistance.Resistance(); //} } if (Toadd != 0) { Toadd = 1 / Toadd; } Resistanc = Toadd - ToRemove; } else { if (comingFromExists) { Resistanc = comingFrom.Resistance(); } else if (goingToExists) { Resistanc = goingTo.Resistance(); } } return(Resistanc); }
// TODO Add documentation, clean up, remove commented out code, etc. public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { float Resistanc = 0; if (Indata != null && ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) && ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.ExceptWith(ResistanceSourtoreove); float Toadd = 0; float ToRemove = 0; foreach (var Resistance in ResistanceSour) { if (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources.Contains(Resistance)) { Toadd = 1 / Resistance.Resistance(); } //else { // ToRemove = 1 / Resistance.Resistance(); //} } if (Toadd != 0) { Toadd = 1 / Toadd; } Resistanc = Toadd - ToRemove; } else { if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance(); } else if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance(); } } //Logger.Log((1 / ResistanceXAll)+ "< Return"); return(Resistanc); }
public static void FlushResistanceAndUp(IntrinsicElectronicData Object, ElectricalOIinheritance SourceInstance = null) { if (SourceInstance == null) { bool pass = false; foreach (var Supply in Object.Data.SupplyDependent) { if (Supply.Value.ResistanceComingFrom.Count > 0) { pass = true; break; } } if (pass) { foreach (var Supply in Object.Data.SupplyDependent) { Pool(Supply.Value.ResistanceComingFrom); Pool(Supply.Value.ResistanceGoingTo); Pool(Supply.Value.CurrentGoingTo); Pool(Supply.Value.CurrentComingFrom); Supply.Value.SourceVoltage = 0; } foreach (IntrinsicElectronicData JumpTo in Object.Data.connections) { JumpTo.FlushResistanceAndUp(); } Object.Data.CurrentInWire = 0; Object.Data.ActualVoltage = 0; } } else { ElectronicSupplyData supplyDep = Object.Data.SupplyDependent[SourceInstance]; if (supplyDep.ResistanceComingFrom.Count > 0 || supplyDep.ResistanceGoingTo.Count > 0) { Pool(supplyDep.ResistanceComingFrom); Pool(supplyDep.ResistanceGoingTo); foreach (IntrinsicElectronicData JumpTo in Object.Data.connections) { JumpTo.FlushResistanceAndUp(SourceInstance); } Pool(supplyDep.CurrentGoingTo); Pool(supplyDep.CurrentComingFrom); supplyDep.SourceVoltage = 0; Object.Data.CurrentInWire = new float(); Object.Data.ActualVoltage = new float(); } } }
public static int SplitNumber(ElectronicSupplyData ResistanceSources, ResistanceWrap InitialWrap) { int Total = 0; foreach (var ResistanceSource in ResistanceSources.ResistanceGoingTo) { foreach (var Resistance in ResistanceSource.Value.ResistanceSources) { if (Resistance != InitialWrap && InitialWrap.resistance == Resistance.resistance) { Total = Total + 1; } } } return(Total); }
// TODO Add documentation, clean up, remove commented out code, fix spelling, etc. public static float WorkOutResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { //Worked out per source float Resistanc = 0; bool goingToExists = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo); bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom); if (goingToExists && comingFromExists) { //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap> (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); ////HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); ////ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); ////ResistanceSour.ExceptWith(ResistanceSourtoreove); //float Toadd = 0; //float ToRemove = 0; //foreach (var Resistance in ResistanceSour) { // if (ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources.Contains(Resistance)) // { // Toadd = 1 / Resistance.Resistance(); // } // else { // ToRemove = 1 / Resistance.Resistance(); // } //} //if (Toadd != 0) { // Toadd = 1 / Toadd; //} //if (ToRemove != 0) //{ // ToRemove= 1 / ToRemove; //} //Resistanc = Toadd - ToRemove; //if (Resistancxall != 0) //{ // Resistanc = (1 / Resistancxall); //} //else { // Resistanc = 0; //} //ResistanceSources Resistanc = goingTo.Resistance(); Resistanc = Resistanc > comingFrom.Resistance() ? Resistanc - comingFrom.Resistance() : comingFrom.Resistance() - Resistanc; } else if (goingToExists) { Resistanc = goingTo.Resistance(); } else if (comingFromExists) { Resistanc = comingFrom.Resistance(); } //Logger.Log((1 / ResistanceXAll)+ "< Return"); return(Resistanc); }
// TODO Add documentation, clean up, remove commented out code, fix spelling, etc. public static float WorkOutResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata) { //Worked out per source float Resistanc = 0; if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) && ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap> (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources); ////HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); ////ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources); ////ResistanceSour.ExceptWith(ResistanceSourtoreove); //float Toadd = 0; //float ToRemove = 0; //foreach (var Resistance in ResistanceSour) { // if (ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources.Contains(Resistance)) // { // Toadd = 1 / Resistance.Resistance(); // } // else { // ToRemove = 1 / Resistance.Resistance(); // } //} //if (Toadd != 0) { // Toadd = 1 / Toadd; //} //if (ToRemove != 0) //{ // ToRemove= 1 / ToRemove; //} //Resistanc = Toadd - ToRemove; //if (Resistancxall != 0) //{ // Resistanc = (1 / Resistancxall); //} //else { // Resistanc = 0; //} //ResistanceSources Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance(); if (Resistanc > ResistanceSources.ResistanceComingFrom[Indata].Resistance()) { Resistanc = Resistanc - ResistanceSources.ResistanceComingFrom[Indata].Resistance(); } else { Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance() - Resistanc; } } else { if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance(); } else if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata)) { Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance(); } else { Resistanc = 0; } } //Logger.Log((1 / ResistanceXAll)+ "< Return"); return(Resistanc); }