private void Make_GraphicsAreas(Node_ND[] Side_Nodes, ref Side TheSide, int Resolution) { ParametricInterpolation_ND_Triangle Node_Interpolator = new ParametricInterpolation_ND_Triangle(NNPE_m); int Res_NNPE_m = Resolution * (NNPE_m - 1) + 1; ParametricInterpolation_ND_Triangle Resolution_Interpolaor = new ParametricInterpolation_ND_Triangle(Res_NNPE_m); Vector Area_DisplayValues = Calculate_Area_DisplayValues(Side_Nodes, Node_Interpolator, Resolution_Interpolaor); Vector[] Area_X = Calculate_Area_Locations(Side_Nodes, Node_Interpolator, Resolution_Interpolaor); int NA = Resolution * (NNPE_m - 1) * Resolution * (NNPE_m - 1); TheSide.Areas = new Vector[NA][]; TheSide.AreaValues = new Vector[NA]; int index_1 = 0; int index_2 = Resolution * (NNPE_m - 1) + 1; int index = 0; for (int i = 0; i < Resolution * (NNPE_m - 1); i++) { int N = Resolution * (NNPE_m - 1) + 1 - i; for (int j = 0; j < N - 2; j++) { TheSide.Areas[index] = new Vector[3]; TheSide.AreaValues[index] = new Vector(3); TheSide.Areas[index][0] = Area_X[index_1 + j]; TheSide.Areas[index][1] = Area_X[index_1 + j + 1]; TheSide.Areas[index][2] = Area_X[index_2 + j]; //TheSide.Areas[index][3] = TheSide.Areas[index][0]; TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + j]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + j + 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + j]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; TheSide.Areas[index] = new Vector[3]; TheSide.AreaValues[index] = new Vector(3); TheSide.Areas[index][0] = Area_X[index_1 + j + 1]; TheSide.Areas[index][1] = Area_X[index_2 + j + 1]; TheSide.Areas[index][2] = Area_X[index_2 + j]; //TheSide.Areas[index][3] = TheSide.Areas[index][0]; TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + j + 1]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_2 + j + 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + j]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; } TheSide.Areas[index] = new Vector[3]; TheSide.AreaValues[index] = new Vector(3); TheSide.Areas[index][0] = Area_X[index_1 + N - 2]; TheSide.Areas[index][1] = Area_X[index_1 + N - 1]; TheSide.Areas[index][2] = Area_X[index_2 + N - 2]; //TheSide.Areas[index][3] = TheSide.Areas[index][0]; TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + N - 2]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + N - 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + N - 2]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; index_1 = index_2; index_2 += N - 1; } }
private Vector[] Calculate_Area_Locations(Node_ND[] ElementNodes, ParametricInterpolation_ND_Triangle TheResInterpolation) { int NNPE = TheResInterpolation.NNPE; Vector[] X = new Vector[NNPE]; Vector[] Nodal_X = Get_ElementNodal_X(ElementNodes); for (int i = 0; i < NNPE; i++) { X[i] = Interpolate_Variable(TheResInterpolation.NodeXi[i], Nodal_X); } return(X); }
private Vector Calculate_Area_DisplayValues(Node_ND[] ElementNodes, ParametricInterpolation_ND_Triangle TheResInterpolation) { int NNPE = TheResInterpolation.NNPE; Vector DisplayValues = new Vector(NNPE); Vector NodalDisplayValues = Get_Nodal_DisplayValues(ElementNodes); for (int i = 0; i < NNPE; i++) { DisplayValues.Values[i] = Interpolate_Variable(TheResInterpolation.NodeXi[i], NodalDisplayValues.Values); } return(DisplayValues); }
private void Chage_GraphicsAreas_Values(Node_ND[] ElementNodes, ref Side TheSide, int Resolution) { int Res_NNPE_m = Resolution * (NNPE_m - 1) + 1; ParametricInterpolation_ND_Triangle TempInter = new ParametricInterpolation_ND_Triangle(Res_NNPE_m); Vector Area_DisplayValues = Calculate_Area_DisplayValues(ElementNodes, TempInter); int NA = Resolution * (NNPE_m - 1) * Resolution * (NNPE_m - 1); TheSide.AreaValues = new Vector[NA]; int index_1 = 0; int index_2 = Resolution * (NNPE_m - 1) + 1; int index = 0; for (int i = 0; i < Resolution * (NNPE_m - 1); i++) { int N = Resolution * (NNPE_m - 1) + 1 - i; for (int j = 0; j < N - 2; j++) { TheSide.AreaValues[index] = new Vector(3); TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + j]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + j + 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + j]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; TheSide.AreaValues[index] = new Vector(3); TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + j + 1]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_2 + j + 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + j]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; } TheSide.AreaValues[index] = new Vector(3); TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + N - 2]; TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + N - 1]; TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + N - 2]; //TheSide.AreaValues[index].Values[3] = TheSide.AreaValues[index].Values[0]; index++; index_1 = index_2; index_2 += N - 1; } }