XIAN-FEM-2026June/三维matlab代码/2023-2-端口激励问题(四面体网格)/Get2DGuassPoints.m

63 lines
2.9 KiB
Matlab

function [xt,yt,pt,nbrPoints]=Get2DGuassPoints(order)
%输入 order-积分多项式阶数
%输出 xt yt pt nbrPoints
if order==1
nbrPoints=1;
xt=0.333333333333333;
yt=0.333333333333333;
pt=0.5;
elseif (order==2)||(order==3)
nbrPoints=4;
xt=[0.333333333333333,0.6,0.2,0.2]';
yt=[0.3333333333333333,0.2,0.6,0.2]';
pt=[-0.28125,.260416666666,.260416666666,.260416666666]';
elseif order==4
nbrPoints=7;
xt=[0.333333333333333,0.797426985353087,0.101286507323456,...
0.101286507323456,0.470142064105115,0.059715871789770,0.470142064105115]';
yt=[0.333333333333333,0.101286507323456,0.797426985353087,...
0.101286507323456,0.059715871789770,0.470142064105115,0.470142064105115]';
pt=[0.112500000000000,0.062969590272414,0.062969590272414,...
0.062969590272414,0.066197076394253,0.066197076394253,0.066197076394253]';
elseif (order==5)||(order==6)
nbrPoints=12;
xt=[0.873821971016996,0.063089014491502,0.063089014491502,...
0.501426509658179,0.249286745170910,0.249286745170910,...
0.636502499121399,0.310352451033785,0.636502499121399,...
0.310352451033785,0.053145049844816,0.053145049844816]';
yt=[0.063089014491502,0.873821971016996,0.063089014491502,...
0.249286745170910,0.501426509658179,0.249286745170910,...
0.310352451033785,0.636502499121399,0.053145049844816,...
0.053145049844816,0.310352451033785,0.636502499121399]';
pt=[0.025422453185104,0.025422453185104,0.025422453185104,...
0.058393137863189,0.058393137863189,0.058393137863189,...
0.041425537809187,0.041425537809187,0.041425537809187,...
0.041425537809187,0.041425537809187,0.041425537809187 ]';
elseif order==7
nbrPoints=16;
xt=[0.333333333333333,0.081414823414554,0.459292588292723,...
0.459292588292723,0.658861384496480,0.170569307751760,...
0.170569307751760,0.898905543365938,0.050547228317031,...
0.050547228317031,0.008394777409958,0.728492392955404,...
0.263112829634638,0.008394777409958,0.263112829634638,...
0.728492392955404]';
yt=[0.333333333333333,0.459292588292723,0.081414823414554,...
0.459292588292723,0.170569307751760,0.658861384496480,...
0.170569307751760,0.050547228317031,0.898905543365938,...
0.050547228317031,0.728492392955404,0.008394777409958,...
0.008394777409958,0.263112829634638,0.728492392955404,...
0.263112829634638]';
pt=[0.072157803838894,0.047545817133643,0.047545817133643,...
0.047545817133643,0.051608685267359,0.051608685267359,...
0.051608685267359,0.016229248811599,0.016229248811599,...
0.016229248811599,0.013615157087217,0.013615157087217,...
0.013615157087217,0.013615157087217,0.013615157087217,...
0.013615157087217]';
elseif order>7
[xt,yt,pt,nbrPoints]=GetGuassPoints(7);
elseif order<1
[xt,yt,pt,nbrPoints]=GetGuassPoints(1);
end
end