private void button1_Click(object sender, EventArgs e) { bool[] BC_CONVECTION = new bool[4]; bool[] BC_CONST_T = new bool[4]; bool[] BC_ADIABATIC = new bool[4]; // 0 - TOP // 1 - LEFT // 2 - SOUTH // 3 - RIGHT BC_CONST_T[0] = false; BC_CONST_T[1] = false; BC_CONST_T[2] = true; BC_CONST_T[3] = false; BC_CONVECTION[0] = true; BC_CONVECTION[1] = false; BC_CONVECTION[2] = false; BC_CONVECTION[3] = false; BC_ADIABATIC[0] = false; BC_ADIABATIC[1] = true; BC_ADIABATIC[2] = false; BC_ADIABATIC[3] = true; float[] h_Coefficient = new float[4]; float[] T_Constant = new float[4]; float[] T_infinity = new float[4]; h_Coefficient[0] = 15.0f; h_Coefficient[1] = 0.0f; h_Coefficient[2] = 0.0f; h_Coefficient[3] = 0.0f; T_Constant[0] = 0.0f; T_Constant[1] = 0.0f; T_Constant[2] = 275.0f; T_Constant[3] = 0.0f; T_infinity[0] = 288.0f; T_infinity[1] = 0.0f; T_infinity[2] = 0.0f; T_infinity[3] = 0.0f; MaterialManager myManager = new MaterialManager(myError); TEMGeometry myGeometry = new TEMGeometry(myError); Mesh myMesh = new Mesh(myError, myGeometry.Layer_List); NodeInitializer myInitializer = new NodeInitializer(myMesh.NodeArray, myError, myManager, myGeometry.Layer_List, 0.5f, 5.0f, false); BoundaryConditions myBC = new BoundaryConditions(myMesh.NodeArray, myError, BC_CONVECTION, BC_CONST_T, BC_ADIABATIC, h_Coefficient, T_infinity, T_Constant); CSVWriter myCSV = new CSVWriter(myMesh.NodeArray); //Solver mySolver = new Solver(myError, myMesh.NodeArray); //mySolver.Solve_2D(0.005f); }
/// <summary> /// Constructor of the NodeInitializer Class. /// </summary> /// <param name="Nodes">Node Array of Numeric Model</param> /// <param name="local_ErrorHandler">Error Handler for Message Passing</param> /// <param name="Materials">Material Manager which holds all the material properties</param> /// <param name="Layers">List of Layers holding material information for each node inside of it</param> public NodeInitializer(Node[][] Nodes, ErrorHandler local_ErrorHandler, MaterialManager Materials, List<Layer> Layers, float dt, float Amps, bool is_Warming_Top) { this.dt = dt; this.Amps = Amps; this.is_Warming_Top = is_Warming_Top; x_Max_DX = 0.0f; y_Max_DY = 0.0f; max_X = 0.0f; max_Y = 0.0f; foreach (Node[] node_array in Nodes) { foreach (Node node in node_array) { if (node.x_pos > x_Max_DX) x_Max_DX = node.x_pos; if (node.y_pos > y_Max_DY) y_Max_DY = node.y_pos; } } foreach (Layer layer in Layers) { if (layer.Layer_xf > max_X) max_X = layer.Layer_xf; if (layer.Layer_y0 > max_Y) max_Y = layer.Layer_y0; } LayerList = Layers; NodeArray = Nodes; Node_I_ErrorHandler = local_ErrorHandler; Mat_Manager = Materials; x_MinpDX = Nodes[0][0].x_pos; y_MinpDY = Nodes[0][0].y_pos; Assign_Materials(); Calculate_DxDy(); Initialize_Heat_Generation(Amps, is_Warming_Top); // Passed in 5.0f value represents an initialization current... this needs to be fed in Initialize_Influence_Coefficients(Nodes); // Must come after heat generation initialization }