Guest User

Untitled

a guest
Jan 4th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. public class ShapeFunction {
  2.  
  3. private int liczba_punktow_calkowania;
  4. private GlobalData globalData; // tworzenie siatki
  5.  
  6.  
  7. public double dNdKsi [][] ={
  8. {-0.39425, 0.39425, 0.10575, -0.10575},
  9. {-0.39425, 0.39425, 0.10575, -0.10575},
  10. {-0.10575, 0.10575, 0.39425, -0.39425},
  11. {-0.10575, 0.10575, 0.39425, -0.39425}
  12. };
  13.  
  14. public double dNdEta [][] = {
  15. {-0.39425, -0.10575, 0.10575, 0.39425},
  16. {-0.10575, -0.39425, 0.39425, 0.10575},
  17. {-0.10575, -0.39425, 0.39425, 0.10575},
  18. {-0.39425, -0.10575, 0.10575, 0.39425}};
  19.  
  20. public ShapeFunction(GlobalData gd)
  21. {
  22. this.liczba_punktow_calkowania=2;
  23. this.globalData=gd;
  24. }
  25.  
  26. public double N1(double e,double n){ return 1/4*(1-e)*(1-n);} // funkcje ksztaltu
  27. public double N2(double e,double n){ return 1/4*(1+e)*(1-n);}
  28. public double N3(double e,double n){ return 1/4*(1+e)*(1+n);}
  29. public double N4(double e,double n){ return 1/4*(1-e)*(1+n);}
  30.  
  31. public double dN1dKsi(double n){return -(1/4)*(1-n);}
  32. public double dN2dKsi(double n){return (1/4)*(1-n);}
  33. public double dN3dKsi(double n){return (1/4)*(1+n);}
  34. public double dN4dKsi(double n){return -(1/4)*(1+n);}
  35.  
  36. public double dN1dEta(double e){return -(1/4)*(1-e);}
  37. public double dN2dEta(double e){return -(1/4)*(1+e);}
  38. public double dN3dEta(double e){return (1/4)*(1+e);}
  39. public double dN4dEta(double e){return (1/4)*(1-e);}
  40.  
  41. public double dxdKsi(double n,double x1, double x2, double x3, double x4){ // E
  42. return ( dN1dKsi(n) * x1 + dN2dKsi(n) * x2 + dN3dKsi(n) * x3 + dN4dKsi(n)*x4 ) ;
  43. }
  44. public double dxdEta(double e,double x1, double x2, double x3, double x4){ // N
  45. return ( dN1dEta(e) * x1 + dN2dEta(e) * x2 + dN3dEta(e) * x3 + dN4dEta(e) * x4 ) ;
  46. }
  47. public double dydKsi(double n,double y1, double y2, double y3, double y4){
  48. return ( dN1dKsi(n) * y1 + dN2dKsi(n) * y2 + dN3dKsi(n) * y3 + dN4dKsi(n)*y4);
  49. }
  50. public double dydEta(double e,double y1, double y2, double y3, double y4){
  51. return ( dN1dEta(e) * y1 + dN2dEta(e) * y2 + dN3dEta(e) * y3 + dN4dEta(e) * y4 ) ;
  52. }
  53.  
  54.  
  55. public double tworz_jakobian(Element element,double n,double e) //tworzy jacobian i zwraca jej wyznacznik
  56. {
  57. double Jacobian[][]=new double [2][2];
  58.  
  59. Jacobian[0][0]=dxdKsi(n,element.X[0],element.X[1],element.X[2],element.X[3]);
  60. Jacobian[0][1]=dydKsi(e,element.Y[0],element.Y[1],element.Y[2],element.Y[3]);
  61. Jacobian[1][0]=dxdEta(n,element.X[0],element.X[1],element.X[2],element.X[3]);
  62. Jacobian[1][1]=dydEta(e,element.Y[0],element.Y[1],element.Y[2],element.Y[3]);
  63.  
  64. return (Jacobian[0][0]*Jacobian[1][1] - Jacobian[0][1]*Jacobian[1][0]) ;
  65. }
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment