private static EquationLibrary CreateFavoritesLibrary() { IList <EquationDetails> equationDetails = new List <EquationDetails>(); EquationLibrary equationLibrary = new EquationLibrary() { Name = "Favorites", Description = "", }; SectionNode[] sn = new SectionNode[10]; SectionNode eqnSn; // --------------------- sn[0] = new SectionNode(null, "Favorites"); equationLibrary.TopSectionNodes.Add(sn[0]); eqnSn = sn[0]; equationDetails.Clear(); //Equation b33: Area of an annulus equationDetails.Add(new EquationDetails("Area of an annulus", "A = (PI/4)*(D^2-d^2)", new List <VarInfo>() { new VarInfo("A", "A", _contentManager.ParamTypes["area"]), new VarInfo("D", "D", _contentManager.ParamTypes["length"]), new VarInfo("d", "d", _contentManager.ParamTypes["length"]), })); //Equation c43: ungula equationDetails.Add(new EquationDetails("c43: ungula", "A0 = Am + (PI/2)*r^2 + (PI/2)*r*Sqrt(r^2+h^2)", null)); equationDetails.Add(new EquationDetails("Heat duty from Area", "Q = U*A*DTLM", null)); equationDetails.Add(new EquationDetails("Log mean temperature difference", "DTLM = (DT1-DT2)/LOG(DT1/DT2)", null)); equationDetails.Add(new EquationDetails("Einstein's famous equation", "E = m*c^2", new List <VarInfo>() { new VarInfo("E", "Energy available from converting mass to pure energy", _contentManager.ParamTypes["energy"]), new VarInfo("m", "mass", _contentManager.ParamTypes["mass"]), })); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // --------------------- return(equationLibrary); }
private void InitData() { try { _topNode.NumDescendantEquations = 0; _topNode.Expanded = true; // Recursively build the tree information from the libraries foreach (var item in _vmEquations.ContentManager.EquationLibraries) { EquationLibrary eqbLib = item.Value; EquationLibraryContentNode libTn = new EquationLibraryContentNode(_topNode, eqbLib.Name, null); libTn.NumDescendantEquations = 0; foreach (var sn in eqbLib.TopSectionNodes) { EquationLibraryContentNode tn = new EquationLibraryContentNode(libTn, sn.Name, sn); AddChildNodes(sn, tn); libTn.NumDescendantEquations += tn.NumDescendantEquations; } _topNode.NumDescendantEquations += libTn.NumDescendantEquations; } RefreshEquationLibraryDisplayTree(); if (EquationLibraryDisplayTree?.Count > 0) { ExpandTreeLevel(EquationLibraryDisplayTree[0]); } } catch (Exception ex) { Logging.LogException(ex); throw; } }
//private static EquationLibrary CreateTestGeickLibrary() //{ // IList<EquationDetails> equationDetails = new List<EquationDetails>(); // EquationLibrary equationLibrary = new EquationLibrary() // { // Name = "Test: Gieck Engineering Formulas", // Description = "", // }; // SectionNode[] sn = new SectionNode[10]; // SectionNode eqnSn; // // --------------------- // //sn[0] = new SectionNode(null, "A) Units"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "B) Areas"); equationLibrary.TopSectionNodes.Add(sn[0]); // sn[1] = new SectionNode(sn[0], "Page B1"); // sn[2] = new SectionNode(sn[1], "Square"); // eqnSn = sn[2]; // equationDetails.Clear(); // equationDetails.Add(new EquationDetails("Equation: b 1", "A = a^2", // new List<VarInfo>() // { // new VarInfo("A", "A", _contentManager.ParamTypes["area"]), // new VarInfo("a", "a", _contentManager.ParamTypes["length"]), // })); // equationDetails.Add(new EquationDetails("Equation: b 2", "a = Sqrt(A)", // new List<VarInfo>() // { // new VarInfo("A", "A", _contentManager.ParamTypes["area"]), // new VarInfo("a", "a", _contentManager.ParamTypes["length"]), // })); // equationDetails.Add(new EquationDetails("Equation: b 3", "d = a*Sqrt(2)", // new List<VarInfo>() // { // new VarInfo("a", "a", _contentManager.ParamTypes["length"]), // new VarInfo("d", "d", _contentManager.ParamTypes["length"]), // })); // EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // // --------------------- // sn[1] = new SectionNode(sn[0], "Page B3"); // sn[2] = new SectionNode(sn[1], "Annulus"); // eqnSn = sn[2]; // equationDetails.Clear(); // //Equation b33: Area of an annulus // equationDetails.Add(new EquationDetails("Area of an annulus", "A = (PI/4)*(D^2-d^2)", // new List<VarInfo>() // { // new VarInfo("A", "A", _contentManager.ParamTypes["area"]), // new VarInfo("D", "D", _contentManager.ParamTypes["length"]), // new VarInfo("d", "d", _contentManager.ParamTypes["length"]), // })); // EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // // --------------------- // sn[0] = new SectionNode(null, "C) Solid Bodies"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "D) Arithmetic"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "E) Functions of a circle"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "F) Analytical Geometry"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "G) Statistics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "H) Differential Calculus"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "I) Integral Calculus"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "J) Differential Equations"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "K) Statics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "L) Kinematics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "M) Dynamics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "N) Hydraulics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "O) Heat"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "P) Strength"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "Q) Machine Parts"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "R) Production Engineering"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "S) Electrical Engineering"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "T) Control Engineering"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "U) Chemistry"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // sn[0] = new SectionNode(null, "V) Radiation Physics"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // //sn[0] = new SectionNode(null, "Z) Tables"); equationLibrary.TopSectionNodes.Add(sn[0]); // // --------------------- // return equationLibrary; //} private static EquationLibrary CreateTestMiscellaneousLibrary() { IList <EquationDetails> equationDetails = new List <EquationDetails>(); EquationLibrary equationLibrary = new EquationLibrary() { Name = "Miscellaneous", Description = "", }; SectionNode[] sn = new SectionNode[10]; SectionNode eqnSn; // --------------------- sn[0] = new SectionNode(null, "Geometry"); equationLibrary.TopSectionNodes.Add(sn[0]); // ---------------- sn[1] = new SectionNode(sn[0], "Areas"); // ------------ sn[2] = new SectionNode(sn[1], "Annulus"); eqnSn = sn[2]; equationDetails.Clear(); //Equation b33: Area of an annulus equationDetails.Add(new EquationDetails("Area of an annulus", "A = (PI/4)*(D^2-d^2)", new List <VarInfo>() { new VarInfo("A", "A", _contentManager.ParamTypes["area"]), new VarInfo("D", "D", _contentManager.ParamTypes["length"]), new VarInfo("d", "d", _contentManager.ParamTypes["length"]), })); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // ------------ sn[2] = new SectionNode(sn[1], "Triangle"); eqnSn = sn[2]; equationDetails.Clear(); //Equation b14: Area of an equilateral triangle equationDetails.Add(new EquationDetails("Area of an equilateral triangle", "A = (a^2/4)*Sqrt(3)", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // ---------------- sn[1] = new SectionNode(sn[0], "Solid Bodies"); // ------------ sn[2] = new SectionNode(sn[1], "Cylinder"); eqnSn = sn[2]; equationDetails.Clear(); equationDetails.Add(new EquationDetails("Cylinder eq1", "V = PI*r^2*h", null)); equationDetails.Add(new EquationDetails("Cylinder eq2", "Am = 2*PI*r*h", null)); equationDetails.Add(new EquationDetails("Cylinder eq3", "A0 = 2*PI*r*(r+h)", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // ------------ sn[2] = new SectionNode(sn[1], "Sphere"); eqnSn = sn[2]; equationDetails.Clear(); // Geometry: Solid Bodies: Sphere with cylindrical boring equationDetails.Add(new EquationDetails("Sphere with cylindrical boring", "A0 = 4*PI*Sqrt(((R+r)^3)*(R-r))", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // ------------ sn[2] = new SectionNode(sn[1], "Cone"); eqnSn = sn[2]; equationDetails.Clear(); //Equation c22: Frustrum of a cone, length of a side equationDetails.Add(new EquationDetails("Frustrum of a cone, length of a side", "m = Sqrt( ((D-d)/2)^2 + h^2 )", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // ------------ sn[2] = new SectionNode(sn[1], "Ungula"); eqnSn = sn[2]; equationDetails.Clear(); //Equation c43: ungula equationDetails.Add(new EquationDetails("c43: ungula", "A0 = Am + (PI/2)*r^2 + (PI/2)*r*Sqrt(r^2+h^2)", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // --------------------- sn[0] = new SectionNode(null, "Lines and polynomials"); equationLibrary.TopSectionNodes.Add(sn[0]); eqnSn = sn[0]; equationDetails.Clear(); equationDetails.Add(new EquationDetails("Gradient of a straight line", "m=(y2-y1)/(x2-x1)", null)); equationDetails.Add(new EquationDetails("Straight line", "y=m*x+c", null)); equationDetails.Add(new EquationDetails("Positive root of a quadratic equation", "x=(-b+Sqrt(b^2-4*a*c))/(2*a)", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // --------------------- sn[0] = new SectionNode(null, "Silly"); equationLibrary.TopSectionNodes.Add(sn[0]); eqnSn = sn[0]; equationDetails.Clear(); equationDetails.Add(new EquationDetails("Silly long one", "m=((y2-y1)/(x2-x1)) + ((-b+Sqrt(b^2-4*a*c))/(2*a+z)) + Sqrt( ((D-d)/2)^2 + h^2 ) + ((f2-f1)/(g2-g1))", null)); equationDetails.Add(new EquationDetails("Silly division", "m=((y2-y1)/(x2-x1)) / ((f2-f1)/(g2-g1))", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // --------------------- sn[0] = new SectionNode(null, "Heat Exchangers"); equationLibrary.TopSectionNodes.Add(sn[0]); eqnSn = sn[0]; equationDetails.Clear(); equationDetails.Add(new EquationDetails("Heat duty from temperature difference", "Q = m*cp*(T1-T2)", null)); equationDetails.Add(new EquationDetails("Heat duty from Area", "Q = U*A*DTLM", null)); equationDetails.Add(new EquationDetails("Log mean temperature difference", "DTLM = (DT1-DT2)/LOG(DT1/DT2)", null)); equationDetails.Add(new EquationDetails("Log mean temperature difference", "DTLM = ((Thi-Tco)-(Tho-Tci))/LOG((Thi-Tco)/(Tho-Tci))", null)); EquationLibrary.AddEquationsToSectionNode(_contentManager, eqnSn, equationDetails); // --------------------- return(equationLibrary); }