Facebook
From Morose Hog, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 232
  1. using System;
  2. namespace MES_1
  3. {
  4.     public struct Element
  5.     {
  6.         public int[] ID;
  7.         public double[,] LH;
  8.         public double[] LP;
  9.         public double S;
  10.         public double K;
  11.     }
  12. }
  13.  
  14.  
  15.  
  16. using System;
  17. using System.Collections.Generic;
  18.  
  19. namespace MES_1
  20. {
  21.     public class Grid
  22.     {
  23.         public int mh, me;
  24.         public Node[] N;
  25.         public Element[] E;
  26.  
  27.         public Grid(GlobalData data)
  28.         {
  29.             this.mh = data.mh;
  30.             this.me = data.me;
  31.  
  32.         }
  33.  
  34.         public void Generate_Grid()
  35.         {
  36.             N = new Node[mh];
  37.             E = new Element[me];
  38.  
  39.         }
  40.  
  41.  
  42.  
  43.         public void Generate_Node(GlobalData data)
  44.         {
  45.             double dx = 0;
  46.             for (int i = 0; i < mh; i++)
  47.             {
  48.                 N[i].x = dx;
  49.                 dx = dx + data.l / me;
  50.                 N[i].status = 0;
  51.  
  52.                 if (i == 0)
  53.                 {
  54.                     N[i].status = 1;
  55.                 }
  56.                 if (i == mh - 1)
  57.                 {
  58.                     N[i].status = 2;
  59.                 }
  60.  
  61.             }
  62.             for (int i = 0; i < me; i++)
  63.             {
  64.  
  65.                 E[i].S = data.s;
  66.                 E[i].K = data.k;
  67.                 E[i].LP[0] = 0;                                                 //tu wypierdala system.null.reference
  68.                 E[i].LP[1] = 0;                                                 // jak patrze na wartosci zmiennych to te tablice
  69.                 E[i].ID[0] = i;                                                 // wartosc maja null
  70.                 E[i].ID[1] = i + 1;                                             //cos z inicjalizacja tablic
  71.             }
  72.  
  73.         }
  74.  
  75.         public void Generate_LH(GlobalData data)
  76.         {
  77.             double c;
  78.             for (int i = 0; i < me; i++)
  79.             {
  80.                 c = (E[i].S * E[i].K) / (N[E[i].ID[1]].x - N[E[i].ID[0]].x);
  81.                 E[i].LH[0,0] = c;
  82.                 E[i].LH[0,1] = -c;
  83.                 E[i].LH[1,0] = -c;
  84.                 E[i].LH[1,1] = c;
  85.  
  86.                 if (N[E[i].ID[0]].status == 2){
  87.                     E[i].LH[0,0] += data.alpha * E[i].S;
  88.                 }
  89.                 if (N[E[i].ID[1]].status == 2)
  90.                 {
  91.                     E[i].LH[1,1] += data.alpha * E[i].S;
  92.                 }
  93.             }
  94.         }
  95.  
  96.         public void Generate_LP(GlobalData data)
  97.         {
  98.  
  99.             for (int i = 0; i < me; i++)
  100.             {
  101.                 if(N[E[i].ID[0]].status ==1)
  102.                 {
  103.                     E[i].LP[0] = data.q * E[i].S;
  104.                 }
  105.                 if (N[E[i].ID[1]].status == 1)
  106.                 {
  107.                     E[i].LP[1] = data.q * E[i].S;
  108.                 }
  109.                 if (N[E[i].ID[0]].status == 2)
  110.                 {
  111.                     E[i].LP[0] = -data.alpha * data.t_alpha * E[i].S;
  112.                 }
  113.                 if (N[E[i].ID[1]].status == 1)
  114.                 {
  115.                     E[i].LP[1] = -data.alpha * data.t_alpha * E[i].S;
  116.                 }
  117.             }
  118.         }
  119.     }
  120. }