29 lines
1.3 KiB
Mathematica
29 lines
1.3 KiB
Mathematica
|
|
%%%%%%%%%%% һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵥Ԫ<EFBFBD>βγ<EFBFBD><EFBFBD><EFBFBD> %%%%%%%%%%%
|
|||
|
|
% N<EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% NDerivative<EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% JacobiDET<EFBFBD>ſɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
|
% GaussPoint<EFBFBD><EFBFBD>˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
% ElementNodeCoordinate<EFBFBD><EFBFBD>Ԫ<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣨8*3<EFBFBD><EFBFBD>ÿһ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|||
|
|
function [N,NDerivative,JacobiDET] = ShapeFunction(GaussPoint,ElementNodeCoordinate)
|
|||
|
|
%<EFBFBD>Ȳ<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ÿһ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ParentNodes=[-1 1 1 -1 -1 1 1 -1;
|
|||
|
|
-1 -1 1 1 -1 -1 1 1;
|
|||
|
|
-1 -1 -1 -1 1 1 1 1];
|
|||
|
|
N=zeros(8,1); %<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8*1
|
|||
|
|
ParentNDerivative=zeros(3,8);%<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3*8
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>굼<EFBFBD><EFBFBD>
|
|||
|
|
for I=1:8
|
|||
|
|
XPoint = ParentNodes(1,I);
|
|||
|
|
YPoint = ParentNodes(2,I);
|
|||
|
|
ZPoint = ParentNodes(3,I);
|
|||
|
|
ShapePart = [1+GaussPoint(1)*XPoint 1+GaussPoint(2)*YPoint 1+GaussPoint(3)*ZPoint]; %<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
N(I) = 0.125*ShapePart(1)*ShapePart(2)*ShapePart(3);%1*8
|
|||
|
|
ParentNDerivative(1,I) = 0.125*XPoint*ShapePart(2)*ShapePart(3);
|
|||
|
|
ParentNDerivative(2,I) = 0.125*YPoint*ShapePart(1)*ShapePart(3);
|
|||
|
|
ParentNDerivative(3,I) = 0.125*ZPoint*ShapePart(1)*ShapePart(2);
|
|||
|
|
end
|
|||
|
|
Jacobi = ParentNDerivative*ElementNodeCoordinate;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſɱȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
JacobiDET = det(Jacobi);%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
|
JacobiINV=inv(Jacobi);%<EFBFBD><EFBFBD><EFBFBD>ſɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
NDerivative=JacobiINV*ParentNDerivative;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խṹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>3*8
|
|||
|
|
end
|