public bool ApliciratiJednacinuStanja() { if (MozeApliciratiJednacinuStanja) { var jednacine = GetJednacineStanja(); var trebaNaci = Stanje.First(x => !x.Value.HasValue); var konkretnaJednacina = new Expression(jednacine[trebaNaci.Key]); Stanje.Where(x => x.Value != null).ToList().ForEach(s => { konkretnaJednacina.addConstants(new Constant(s.Key, s.Value.Value)); }); konkretnaJednacina.addConstants(new Constant("R", this.R)); var rezultat = konkretnaJednacina.calculate(); if (!double.IsNaN(rezultat)) { this.Stanje[trebaNaci.Key] = rezultat; } return(true); } return(false); }
public bool ProveriSledeceStanje() { if (this.ProcesKojiVodiDalje == TipProcesa.Izoenotropski) { var sveJednacine = GetIzenotropskeJednacine(); foreach (var jednacine in sveJednacine) { var vrednostiKojeTrebaNaci = Stanje.Where(x => !x.Value.HasValue || double.IsNaN(x.Value.Value)).ToList(); foreach (var vrednostKojuTrebaNaci in vrednostiKojeTrebaNaci) { if (!jednacine.Keys.Contains(vrednostKojuTrebaNaci.Key + "1")) { continue; } var konkretnaJednacina = new Expression(jednacine[vrednostKojuTrebaNaci.Key + "1"]); Stanje.Where(x => x.Value != null).ToList().ForEach(s => { konkretnaJednacina.addConstants(new Constant(s.Key + "1", s.Value.Value)); }); Sledeca.Stanje.Where(x => x.Value != null).ToList().ForEach(s => { konkretnaJednacina.addConstants(new Constant(s.Key + "2", s.Value.Value)); }); DodajKonstante(konkretnaJednacina); var rezultat = konkretnaJednacina.calculate(); if (!double.IsNaN(rezultat)) { this.Stanje[vrednostKojuTrebaNaci.Key] = rezultat; } } } } if (this.ProcesKojiVodiDalje == TipProcesa.Izotermski) { var vrednostiKojeTrebaNaci = Stanje.Where(x => !x.Value.HasValue).ToList(); foreach (var trebaNaci in vrednostiKojeTrebaNaci) { if ((new string[] { "p", "v" }).Contains(trebaNaci.Key)) { var jednacine = GetIzotermskeJednacine(); var konkretnaJednacina = new Expression(jednacine[trebaNaci.Key]); Stanje.Where(x => x.Value != null).ToList().ForEach(s => { konkretnaJednacina.addConstants(new Constant(s.Key + "1", s.Value.Value)); }); Sledeca.Stanje.Where(x => x.Value != null).ToList().ForEach(s => { konkretnaJednacina.addConstants(new Constant(s.Key + "2", s.Value.Value)); }); DodajKonstante(konkretnaJednacina); var rezultat = konkretnaJednacina.calculate(); if (!double.IsNaN(rezultat)) { this.Stanje[trebaNaci.Key] = rezultat; } } } } return(false); }