Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
        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);
        }