31 geo = fem.geometry.Cube20Node;
33 this =
this@fem.BaseFEM(geo);
38 Nx = [(1-x(1,:)).*(1-x(2,:)).*(1-x(3,:)).*(-x(1,:)-x(2,:)-x(3,:)-2)/8;...
40 (1-x(1,:).^2).*(1-x(2,:)).*(1-x(3,:))/4;...
42 (1+x(1,:)).*(1-x(2,:)).*(1-x(3,:)).*(x(1,:)-x(2,:)-x(3,:)-2)/8;...
44 (1-x(2,:).^2).*(1-x(1,:)).*(1-x(3,:))/4;...
46 (1-x(2,:).^2).*(1+x(1,:)).*(1-x(3,:))/4;...
48 (1-x(1,:)).*(1+x(2,:)).*(1-x(3,:)).*(-x(1,:)+x(2,:)-x(3,:)-2)/8;...
50 (1-x(1,:).^2).*(1+x(2,:)).*(1-x(3,:))/4;...
52 (1+x(1,:)).*(1+x(2,:)).*(1-x(3,:)).*(x(1,:)+x(2,:)-x(3,:)-2)/8;...
54 (1-x(3,:).^2).*(1-x(1,:)).*(1-x(2,:))/4;...
56 (1-x(3,:).^2).*(1+x(1,:)).*(1-x(2,:))/4;...
58 (1-x(3,:).^2).*(1-x(1,:)).*(1+x(2,:))/4;...
60 (1-x(3,:).^2).*(1+x(1,:)).*(1+x(2,:))/4;...
62 (1-x(1,:)).*(1-x(2,:)).*(1+x(3,:)).*(-x(1,:)-x(2,:)+x(3,:)-2)/8;...
64 (1-x(1,:).^2).*(1-x(2,:)).*(1+x(3,:))/4;...
66 (1+x(1,:)).*(1-x(2,:)).*(1+x(3,:)).*(x(1,:)-x(2,:)+x(3,:)-2)/8;...
68 (1-x(2,:).^2).*(1-x(1,:)).*(1+x(3,:))/4;...
70 (1-x(2,:).^2).*(1+x(1,:)).*(1+x(3,:))/4;...
72 (1-x(1,:)).*(1+x(2,:)).*(1+x(3,:)).*(-x(1,:)+x(2,:)+x(3,:)-2)/8;...
74 (1-x(1,:).^2).*(1+x(2,:)).*(1+x(3,:))/4;...
76 (1+x(1,:)).*(1+x(2,:)).*(1+x(3,:)).*(x(1,:)+x(2,:)+x(3,:)-2)/8];
96 dNx = [[-(1-x(2,:)).*(1-x(3,:)).*(-x(1,:)-x(2,:)-x(3,:)-2)-(1-x(1,:)).*(1-x(2,:)).*(1-x(3,:)) -(1-x(1,:)).*(1-x(3,:)).*(-x(1,:)-x(2,:)-x(3,:)-2)-(1-x(1,:)).*(1-x(2,:)).*(1-x(3,:)) -(1-x(1,:)).*(1-x(2,:)).*(-x(1,:)-x(2,:)-x(3,:)-2)-(1-x(1,:)).*(1-x(2,:)).*(1-x(3,:))]/8;...
98 [-2*x(1,:).*(1-x(2,:)).*(1-x(3,:)) -(1-x(1,:).^2).*(1-x(3,:)) -(1-x(1,:).^2).*(1-x(2,:))]/4;...
99 [(1-x(2,:)).*(1-x(3,:)).*(x(1,:)-x(2,:)-x(3,:)-2)+(1+x(1,:)).*(1-x(2,:)).*(1-x(3,:)) -(1+x(1,:)).*(1-x(3,:)).*(x(1,:)-x(2,:)-x(3,:)-2)-(1+x(1,:)).*(1-x(2,:)).*(1-x(3,:)) -(1+x(1,:)).*(1-x(2,:)).*(x(1,:)-x(2,:)-x(3,:)-2)-(1+x(1,:)).*(1-x(2,:)).*(1-x(3,:))]/8;...
100 [-(1-x(2,:).^2).*(1-x(3,:)) -2*x(2,:).*(1-x(1,:)).*(1-x(3,:)) -(1-x(2,:).^2).*(1-x(1,:))]/4;...
101 [(1-x(2,:).^2).*(1-x(3,:)) -2*x(2,:).*(1+x(1,:)).*(1-x(3,:)) -(1-x(2,:).^2).*(1+x(1,:))]/4;...
102 [-(1+x(2,:)).*(1-x(3,:)).*(-x(1,:)+x(2,:)-x(3,:)-2)-(1-x(1,:)).*(1+x(2,:)).*(1-x(3,:)) (1-x(1,:)).*(1-x(3,:)).*(-x(1,:)+x(2,:)-x(3,:)-2)+(1-x(1,:)).*(1+x(2,:)).*(1-x(3,:)) -(1-x(1,:)).*(1+x(2,:)).*(-x(1,:)+x(2,:)-x(3,:)-2)-(1-x(1,:)).*(1+x(2,:)).*(1-x(3,:))]/8;...
103 [-2*x(1,:).*(1+x(2,:)).*(1-x(3,:)) (1-x(1,:).^2).*(1-x(3,:)) -(1-x(1,:).^2).*(1+x(2,:))]/4;...
104 [(1+x(2,:)).*(1-x(3,:)).*(x(1,:)+x(2,:)-x(3,:)-2)+(1+x(1,:)).*(1+x(2,:)).*(1-x(3,:)) (1+x(1,:)).*(1-x(3,:)).*(x(1,:)+x(2,:)-x(3,:)-2)+(1+x(1,:)).*(1+x(2,:)).*(1-x(3,:)) -(1+x(1,:)).*(1+x(2,:)).*(x(1,:)+x(2,:)-x(3,:)-2)-(1+x(1,:)).*(1+x(2,:)).*(1-x(3,:))]/8;...
105 [-(1-x(3,:).^2).*(1-x(2,:)) -(1-x(3,:).^2).*(1-x(1,:)) -2*x(3,:).*(1-x(1,:)).*(1-x(2,:))]/4;...
106 [(1-x(3,:).^2).*(1-x(2,:)) -(1-x(3,:).^2).*(1+x(1,:)) -2*x(3,:).*(1+x(1,:)).*(1-x(2,:))]/4;...
109 [-(1-x(3,:).^2).*(1+x(2,:)) (1-x(3,:).^2).*(1-x(1,:)) -2*x(3,:).*(1-x(1,:)).*(1+x(2,:))]/4;...
110 [(1-x(3,:).^2).*(1+x(2,:)) (1-x(3,:).^2).*(1+x(1,:)) -2*x(3,:).*(1+x(1,:)).*(1+x(2,:))]/4;...
111 [-(1-x(2,:)).*(1+x(3,:)).*(-x(1,:)-x(2,:)+x(3,:)-2)-(1-x(1,:)).*(1-x(2,:)).*(1+x(3,:)) -(1-x(1,:)).*(1+x(3,:)).*(-x(1,:)-x(2,:)+x(3,:)-2)-(1-x(1,:)).*(1-x(2,:)).*(1+x(3,:)) (1-x(1,:)).*(1-x(2,:)).*(-x(1,:)-x(2,:)+x(3,:)-2)+(1-x(1,:)).*(1-x(2,:)).*(1+x(3,:))]/8;...
112 [-2*x(1,:).*(1-x(2,:)).*(1+x(3,:)) -(1-x(1,:).^2).*(1+x(3,:)) (1-x(1,:).^2).*(1-x(2,:))]/4;...
113 [(1-x(2,:)).*(1+x(3,:)).*(x(1,:)-x(2,:)+x(3,:)-2)+(1+x(1,:)).*(1-x(2,:)).*(1+x(3,:)) -(1+x(1,:)).*(1+x(3,:)).*(x(1,:)-x(2,:)+x(3,:)-2)-(1+x(1,:)).*(1-x(2,:)).*(1+x(3,:)) (1+x(1,:)).*(1-x(2,:)).*(x(1,:)-x(2,:)+x(3,:)-2)+(1+x(1,:)).*(1-x(2,:)).*(1+x(3,:))]/8;...
114 [-(1-x(2,:).^2).*(1+x(3,:)) -2*x(2,:).*(1-x(1,:)).*(1+x(3,:)) (1-x(2,:).^2).*(1-x(1,:))]/4;...
115 [(1-x(2,:).^2).*(1+x(3,:)) -2*x(2,:).*(1+x(1,:)).*(1+x(3,:)) (1-x(2,:).^2).*(1+x(1,:))]/4;...
116 [-(1+x(2,:)).*(1+x(3,:)).*(-x(1,:)+x(2,:)+x(3,:)-2)-(1-x(1,:)).*(1+x(2,:)).*(1+x(3,:)) (1-x(1,:)).*(1+x(3,:)).*(-x(1,:)+x(2,:)+x(3,:)-2)+(1-x(1,:)).*(1+x(2,:)).*(1+x(3,:)) (1-x(1,:)).*(1+x(2,:)).*(-x(1,:)+x(2,:)+x(3,:)-2)+(1-x(1,:)).*(1+x(2,:)).*(1+x(3,:))]/8;...
117 [-2*x(1,:).*(1+x(2,:)).*(1+x(3,:)) (1-x(1,:).^2).*(1+x(3,:)) (1-x(1,:).^2).*(1+x(2,:))]/4;...
118 [(1+x(2,:)).*(1+x(3,:)).*(x(1,:)+x(2,:)+x(3,:)-2)+(1+x(1,:)).*(1+x(2,:)).*(1+x(3,:)) (1+x(1,:)).*(1+x(3,:)).*(x(1,:)+x(2,:)+x(3,:)-2)+(1+x(1,:)).*(1+x(2,:)).*(1+x(3,:)) (1+x(1,:)).*(1+x(2,:)).*(x(1,:)+x(2,:)+x(3,:)-2)+(1+x(1,:)).*(1+x(2,:)).*(1+x(3,:))]/8];
125 q = fem.HexahedronSerendipity;
126 res = fem.BaseFEM.test_BasisFun(q);
129 [
X,
Y,Z] = ndgrid(-1:1:1,-1:1:1,-1:1:1);
130 p = [
X(:)
Y(:) Z(:)]^
t;
132 p(:,[5,11,13,14,15,17,23]) = [];
133 res = res && isequal(q.N(p),eye(20));
HexahedronSerendipity(geo)
FEMBASE Summary of this class goes here Detailed explanation goes here.
static function res = test_QuadraticBasisFun()
Triquatratic: Quadratic ansatz functions on cube with 20 nodes per cube.
function Nx = N(colvec< double > x)
Triquadratic basis functions.
function dNx = gradN(colvec< double > x)