/// <summary> /// Gets Differential Equation Solver from object /// </summary> /// <param name="obj"></param> /// <returns></returns> public override IDifferentialEquationSolver GetDifferentialEquationSolver(object obj) { if (obj is IAssociatedObject) { IAssociatedObject ao = obj as IAssociatedObject; AggregableWrapper agg = ao.GetObject <AggregableWrapper>(); if (agg != null) { if (agg.Aggregate.Parent == null) { return(GetEquation(agg)); } } } if (obj is DataPerformer.Portable.MeasurementsWrapper) { DataPerformer.Portable.MeasurementsWrapper m = obj as DataPerformer.Portable.MeasurementsWrapper; for (int i = 0; i < m.Count; i++) { if (m[i] is AggregableWrapper) { AggregableWrapper agg = m[i] as AggregableWrapper; if (agg.Aggregate.Parent == null) { return(GetEquation(agg)); } } } } return(null); }
private MechanicalAggregateEquation GetEquation(AggregableWrapper agg) { if (mechanicalEquationsNew.ContainsKey(agg)) { MechanicalAggregateEquation equ = mechanicalEquationsNew[agg]; return(equ); } if (mechanicalEquationsOld.ContainsKey(agg)) { MechanicalAggregateEquation equ = mechanicalEquationsOld[agg]; mechanicalEquationsNew[agg] = equ; return(equ); } MechanicalAggregateEquation eq = MechanicalAggregateEquation.CreateAggregateEquation(agg); mechanicalEquationsNew[agg] = eq; return(eq); }