/// <summary> /// Sets the initial parameters of the DifferentialEquationSystem class. /// </summary> /// <param name="expressions">List of expressions</param> /// <param name="leftVariables">List of left variables</param> /// <param name="constants">List of constants</param> /// <param name="timeVariable">Start time (presents in the expressions)</param> /// <param name="tEnd">End time</param> /// <param name="tau">Calculation step</param> public DifferentialEquationSystem(List <string> expressions, List <DEVariable> leftVariables, List <DEVariable> constants, DEVariable timeVariable, double tEnd, double tau) { // Setting up of variables and constants if (leftVariables != null) { this.LeftVariables = DifferentialEquationSystemHelpers.ConvertDEVariablesToVariables(leftVariables); } if (constants != null) { this.Constants = DifferentialEquationSystemHelpers.ConvertDEVariablesToVariables(constants); } if (timeVariable != null) { this.TimeVariable = timeVariable; } // Setting up of all variables List <Variable> allVariables = new List <Variable>(); if (this.LeftVariables != null) { allVariables.AddRange(this.LeftVariables); } if (this.Constants != null && this.Constants.Count > 0) { allVariables.AddRange(this.Constants); } if (this.TimeVariable != null) { allVariables.Add(this.TimeVariable); } // Setting up of all expressions if (expressions == null || expressions.Count == 0) { throw new ArgumentException("Container 'expressions' of the constructor cannot be null or empty! Nothing in the differential equation system."); } else { this.Expressions = expressions; List <Expression> expressionSystem = new List <Expression>(); foreach (string expression in expressions) { expressionSystem.Add(new Expression(expression, allVariables)); } this.ExpressionSystem = expressionSystem; } this.TEnd = tEnd; this.Tau = tau; DifferentialEquationSystemHelpers.CheckVariables(this.ExpressionSystem, this.LeftVariables, this.TimeVariable, this.Tau, this.TEnd); }
/// <summary> /// Initializes a new instance of the <see cref="DEVariable" /> class. /// </summary> /// <param name="initVariable">Initial variable which is supposed to be copied to the current one</param> public DEVariable(DEVariable initVariable) { this.Name = initVariable.Name; this.Value = initVariable.Value; }