私は有限要素法について自分自身に教えようとしています。
私のコードはすべて、次のリンクページ 16-20 から改作されています http://homepages.cae.wisc.edu/~suresh/ME964Website/M964Notes/Notes/introfem.pdf
単一の 8 ノード キューブ要素に対して有限要素解析を実行するために、Matlab でプログラミングしています。ローカル軸 xi、eta、zeta を定義したので (これは今のところ x、y、z と考えることができます)、次の形状関数が得られます。
%%shape functions
zeta = 0:.01:1;
eta = 0:.01:1;
xi = 0:.01:1;
N1 = 1/8*(1-xi).*(1-eta).*(1-zeta);
N2 = 1/8*(1+xi).*(1-eta).*(1-zeta);
N3 = 1/8*(1+xi).*(1+eta).*(1-zeta);
N4 = 1/8*(1-xi).*(1+eta).*(1-zeta);
N5 = 1/8*(1-xi).*(1-eta).*(1+zeta);
N6 = 1/8*(1+xi).*(1-eta).*(1+zeta);
N7 = 1/8*(1+xi).*(1+eta).*(1+zeta);
N8 = 1/8*(1-xi).*(1+eta).*(1+zeta);
マトリックスは、[N]
私が読んでいるテキストに従って次のように配置されます。
%N Matrix
N= [N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8 0 0;
0 N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8 0;
0 0 N1 0 0 N2 0 0 N3 0 0 N4 0 0 N5 0 0 N6 0 0 N7 0 0 N8];
マトリックスを見つけるには、次のマトリックス[B]
を使用する必要があります。[D]
%%Del Matrix for node i
%[ d/dx 0 0
% 0 d/dy 0
% 0 0 d/dz . . .
% d/dy d/dx 0
% 0 d/dz d/dy
% d/dz 0 d/dx ]
これは続行する演算子[N]
です。( B=DN
)
後で、テキストが示すように、[B]
この要素の体積に対するこの行列の積分を含む計算を行います。
したがって、私の質問は、これらの多項式形状関数を行列に格納し、微分して操作し、数値的に統合するにはどうすればよいかということです。関数をある間隔でベクトルとして定義し、これらのベクトルを行列[0,1]
に格納したため、これが機能しないことがわかります。[N]
次に、diff()
関数を使用して適切に微分し、[B]
行列を見つけます。しかし、 の行列要素[B]
は現在、ある間隔でベクトルに[0,1]
なっているため、問題が発生すると思います。上記の教科書に記載されているこれらの計算をどのように行いますか?