private void BuildSolver() { SolutionInput input = BuildInput(); Filter P = input.Filter; Solver newSolver; string errorElem = ""; try { int n = P.Size; errorElem = "D"; double D = double.Parse(input.D); errorElem = "A0"; Complex A0 = ComplexUtils.Parse(input.A_0); errorElem = "K"; double K = double.Parse(input.K); errorElem = "T"; double T = double.Parse(input.T); errorElem = "M"; int M = int.Parse(input.t_count); errorElem = "N"; int N = int.Parse(input.x_count); double chi = Solver.GetChi(K, P[n, n], A0); Dependencies.Set(MathAliases.ConvertName("chi"), chi); errorElem = "u0"; IExpression expr = MainParser.Parse(input.u_0); textBlock_u0.Text = "u0 = " + expr.AsString(); string[] deps = MainParser.GetDependencies(expr); double[] u0 = MainParser.EvalArrayD(expr, Dependencies, deps, "x", 2 * Math.PI, N); errorElem = "solver"; newSolver = new Solver(P, T, N, M); ModelParams param = new ModelParams(A0, K, u0, D); newSolver.SetParams(param); curSolver = newSolver; } catch (Exception ex) { Logger.Write(errorElem + ": " + ex.Message); return; } }