private void Chage_GraphicsAreas_Values(Node_ND[] Side_Nodes, int[] NNPE_Side, int Resolution, ref Side TheSide)
        {
            ParametricInterpolation_ND_Square Node_Interpolator = new ParametricInterpolation_ND_Square(NNPE_Side[0], NNPE_Side[1]);
            int Res_NNPE_l = Resolution * (NNPE_Side[0] - 1) + 1;
            int Res_NNPE_m = Resolution * (NNPE_Side[1] - 1) + 1;
            ParametricInterpolation_ND_Square Resolution_Interpolaor = new ParametricInterpolation_ND_Square(Res_NNPE_l, Res_NNPE_m);
            Vector Area_DisplayValues = Calculate_Area_DisplayValues(Side_Nodes, Node_Interpolator, Resolution_Interpolaor);
            int    NA = Resolution * (NNPE_Side[0] - 1) * Resolution * (NNPE_Side[1] - 1);

            TheSide.AreaValues = new Vector[NA];
            int index_1 = 0;
            int index_2 = NNPE_Side[0];
            int index   = 0;

            for (int j = 0; j < Res_NNPE_m - 1; j++)
            {
                for (int i = 0; i < Res_NNPE_l - 1; i++)
                {
                    TheSide.AreaValues[index]           = new Vector(4);
                    TheSide.AreaValues[index].Values[0] = Area_DisplayValues.Values[index_1 + i];
                    TheSide.AreaValues[index].Values[1] = Area_DisplayValues.Values[index_1 + i + 1];
                    TheSide.AreaValues[index].Values[2] = Area_DisplayValues.Values[index_2 + i + 1];
                    TheSide.AreaValues[index].Values[3] = Area_DisplayValues.Values[index_2 + i];
                    //TheSide.AreaValues[index].Values[4] = TheSide.AreaValues[index].Values[0];
                    index++;
                }
                index_1  = index_2;
                index_2 += NNPE_Side[0];
            }
        }
        private void Chage_GraphicsAreas_Values(Node_ND[] Side_Nodes, int[] NNPE_Side, ref Side TheSide)
        {
            Vector Node_DisplayValues = Get_Nodal_DisplayValues(Side_Nodes);
            int    NA = (NNPE_Side[0] - 1) * (NNPE_Side[1] - 1);

            TheSide.AreaValues = new Vector[NA];
            int index_1 = 0;
            int index_2 = NNPE_Side[0];
            int index   = 0;

            for (int j = 0; j < NNPE_Side[1] - 1; j++)
            {
                for (int i = 0; i < NNPE_Side[0] - 1; i++)
                {
                    TheSide.AreaValues[index]           = new Vector(4);
                    TheSide.AreaValues[index].Values[0] = Node_DisplayValues.Values[index_1 + i];
                    TheSide.AreaValues[index].Values[1] = Node_DisplayValues.Values[index_1 + i + 1];
                    TheSide.AreaValues[index].Values[2] = Node_DisplayValues.Values[index_2 + i + 1];
                    TheSide.AreaValues[index].Values[3] = Node_DisplayValues.Values[index_2 + i];
                    //TheSide.AreaValues[index].Values[4] = TheSide.AreaValues[index].Values[0];
                    index++;
                }
                index_1  = index_2;
                index_2 += NNPE_Side[0];
            }
        }
 public void Make_GraphicsAreasForSide_local(Node_ND[] Side_Nodes, int[] NNPE_Side, int Resolution, ref Side TheSide)
 {
     if (Resolution == 1)
     {
         Make_GraphicsAreas(Side_Nodes, NNPE_Side, ref TheSide);
     }
     else
     {
         Make_GraphicsAreas(Side_Nodes, NNPE_Side, Resolution, ref TheSide);
     }
 }
 private void Change_GraphicsSurfaces_Values_local(Node_ND[] Side_Nodes, int[] NNPE_Side, int Resolution, ref Side TheSide)
 {
     if (Resolution == 1)
     {
         Chage_GraphicsAreas_Values(Side_Nodes, NNPE_Side, ref TheSide);
     }
     else
     {
         Chage_GraphicsAreas_Values(Side_Nodes, NNPE_Side, Resolution, ref TheSide);
     }
 }
 private void Make_Side(Node_ND[] Side_Nodes, int[] NNPE_Side, int Resolution, out Side TheSide)
 {
     TheSide = new Side();
     TheSide.NodeLocations = Get_ElementNodal_X(Side_Nodes);
     TheSide.MeshLines     = new Vector[4][];
     TheSide.MeshLines[0]  = new Vector[NNPE_Side[0]];
     TheSide.MeshLines[1]  = new Vector[NNPE_Side[1]];
     TheSide.MeshLines[2]  = new Vector[NNPE_Side[0]];
     TheSide.MeshLines[3]  = new Vector[NNPE_Side[1]];
     for (int i = 0; i < NNPE_Side[0]; i++)
     {
         TheSide.MeshLines[0][i] = TheSide.NodeLocations[i];
         TheSide.MeshLines[2][i] = TheSide.NodeLocations[NNPE_Side[0] * NNPE_Side[1] - 1];
     }
     for (int i = 0; i < NNPE_Side[1]; i++)
     {
         TheSide.MeshLines[1][i] = TheSide.NodeLocations[NNPE_Side[0] * i - 1];
         TheSide.MeshLines[3][i] = TheSide.NodeLocations[NNPE_Side[0] * (NNPE_Side[1] - 1) - NNPE_Side[0] * i];
     }
     Make_GraphicsAreasForSide_local(Side_Nodes, NNPE_Side, Resolution, ref TheSide);
 }
        private void Chage_GraphicsAreas_Values(Node_ND[] Side_Nodes, int Resolution, ref Side TheSide)
        {
            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);
            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;
            }
        }
 public override void Change_GraphicsSurfaces_Values(Node_ND[] Side_Nodes, int Resolution, ref Side TheSide)
 {
     if (Resolution == 1)
     {
         Chage_GraphicsAreas_Values(Side_Nodes, ref TheSide);
     }
     else
     {
         Chage_GraphicsAreas_Values(Side_Nodes, Resolution, ref TheSide);
     }
 }
 public override void Make_GraphicsAreasForSide(Node_ND[] Side_Nodes, int Resolution, ref Side TheSide)
 {
     if (Resolution == 1)
     {
         Make_GraphicsAreas(Side_Nodes, ref TheSide);
     }
     else
     {
         Make_GraphicsAreas(Side_Nodes, ref TheSide, Resolution);
     }
 }
        private void Make_Side(Node_ND[] Side_Nodes, Vector[] Side_NodeLocations_X, Vector[] Side_NodeLocations_Xi, int Resolution, out Side TheSide)
        {
            TheSide = new Side();
            TheSide.NodeLocations = Side_NodeLocations_X;
            TheSide.MeshLines     = new Vector[3][];
            TheSide.MeshLines[0]  = new Vector[NNPE_m];
            TheSide.MeshLines[1]  = new Vector[NNPE_m];
            TheSide.MeshLines[2]  = new Vector[NNPE_m];
            int index_1 = 0;

            for (int i = 0; i < NNPE_m; i++)
            {
                TheSide.MeshLines[0][i] = TheSide.NodeLocations[i];
                TheSide.MeshLines[1][i] = TheSide.NodeLocations[index_1 + NNPE_m - 1];
                TheSide.MeshLines[2][NNPE_m - 1 - i] = TheSide.NodeLocations[index_1];
                index_1 += NNPE_m - i;
            }
            Make_GraphicsAreasForSide(Side_Nodes, Resolution, ref TheSide);
        }