星星米33 发表于 2012-9-4 10:19

求问:二维三角形单元的高斯积分点和权系数如何求?

我现在正在做一个电场计算的程序,在求边界电场刚度阵的时候,应用7个高斯节点精度不够~书中一般都是只给到7个积分点,哪位大神有求辐射单元高斯积分点的matlab程序或者积分表也成~高于7个积分点的~万分感谢!

犟牛 发表于 2012-9-7 09:49

本帖最后由 犟牛 于 2012-9-7 09:50 编辑

高斯点








犟牛 发表于 2012-9-7 09:56

搞错了,上面发的一维的,重新发一个二维的

星星米33 发表于 2012-9-9 21:27

回复 3 # 犟牛 的帖子

万分感谢~但是这个是对称结构的高斯点,就是适用于四边形单元,不适用于三角形单元啊~有木有三角形单元的高斯点啊?

犟牛 发表于 2012-9-11 15:26

本帖最后由 犟牛 于 2012-9-11 15:26 编辑

1
-0.333333333333333-0.3333333333333332.000000000000000
Gaussquadraturepointsandweightsonthereferencetriangleorderp=1

3
-0.666666666666667-0.6666666666666670.666666666666667
-0.6666666666666670.3333333333333330.666666666666667
0.333333333333333-0.6666666666666670.666666666666667
Gaussquadraturepointsandweightsonthereferencetriangleorderp=2

4
-0.333333333333333-0.333333333333333-1.125000000000000
-0.600000000000000-0.6000000000000001.041666666666667
-0.6000000000000000.2000000000000001.041666666666667
0.200000000000000-0.6000000000000001.041666666666667
Gaussquadraturepointsandweightsonthereferencetriangleorderp=3

6
-0.108103018168070-0.1081030181680700.446763179356022
-0.108103018168070-0.7837939636638600.446763179356022
-0.783793963663860-0.1081030181680700.446763179356022
-0.816847572980458-0.8168475729804580.219903487310644
-0.8168475729804580.6336951459609180.219903487310644
0.633695145960918-0.8168475729804580.219903487310644
Gaussquadraturepointsandweightsonthereferencetriangleorderp=4

7
-0.333333333333333-0.3333333333333330.450000000000000
-0.059715871789770-0.0597158717897700.264788305577012
-0.059715871789770-0.8805682564204600.264788305577012
-0.880568256420460-0.0597158717897700.264788305577012
-0.797426985353088-0.7974269853530880.251878361089654
-0.7974269853530880.5948539707061740.251878361089654
0.594853970706174-0.7974269853530880.251878361089654
Gaussquadraturepointsandweightsonthereferencetriangleorderp=5

12
-0.501426509658180-0.5014265096581800.233572551452758
-0.5014265096581800.0028530193163580.233572551452758
0.002853019316358-0.5014265096581800.233572551452758
-0.873821971016996-0.8738219710169960.101689812740414
-0.8738219710169960.7476439420339920.101689812740414
0.747643942033992-0.8738219710169960.101689812740414
-0.3792950979324320.2730049982427980.165702151236748
0.273004998242798-0.8937099003103660.165702151236748
-0.893709900310366-0.3792950979324320.165702151236748
-0.379295097932432-0.8937099003103660.165702151236748
0.273004998242798-0.3792950979324320.165702151236748
-0.8937099003103660.2730049982427980.165702151236748
Gaussquadraturepointsandweightsonthereferencetriangleorderp=6

13
-0.333333333333333-0.333333333333333-0.299140088935364
-0.479308067841920-0.4793080678419200.351230514866416
-0.479308067841920-0.0413838643161600.351230514866416
-0.041383864316160-0.4793080678419200.351230514866416
-0.869739794195568-0.8697397941955680.106694471217676
-0.8697397941955680.7394795883911360.106694471217676
0.739479588391136-0.8697397941955680.106694471217676
-0.3742690079902520.2768883771396200.154227521780514
0.276888377139620-0.9026193691493680.154227521780514
-0.902619369149368-0.3742690079902520.154227521780514
-0.374269007990252-0.9026193691493680.154227521780514
0.276888377139620-0.3742690079902520.154227521780514
-0.9026193691493680.2768883771396200.154227521780514
Gaussquadraturepointsandweightsonthereferencetriangleorderp=7

16
-0.333333333333333-0.3333333333333330.288631215355574
-0.081414823414554-0.0814148234145540.190183268534570
-0.081414823414554-0.8371703531708920.190183268534570
-0.837170353170892-0.0814148234145540.190183268534570
-0.658861384496480-0.6588613844964800.206434741069436
-0.6588613844964800.3177227689929600.206434741069436
0.317722768992960-0.6588613844964800.206434741069436
-0.898905543365938-0.8989055433659380.064916995246396
-0.8989055433659380.7978110867318760.064916995246395
0.797811086731876-0.8989055433659380.064916995246396
-0.4737743407307240.4569847859108080.054460628348870
0.456984785910808-0.9832104451800840.054460628348870
-0.983210445180084-0.4737743407307240.054460628348870
-0.473774340730724-0.9832104451800840.054460628348870
0.456984785910808-0.4737743407307240.054460628348870
-0.9832104451800840.4569847859108080.054460628348870
Gaussquadraturepointsandweightsonthereferencetriangleorderp=8

金蛇狂舞 发表于 2012-10-25 20:49

能不能把计算的程序发一下。楼主好人!!!

金蛇狂舞 发表于 2012-10-25 21:00

请问你能不能发一个用面积坐标表示的二维高斯积分点的结果。多谢啦。{:{03}:}

wmr987 发表于 2012-11-19 04:06

现在也在做一个有限元的作业,需要二维的高斯积分点

happy 发表于 2012-11-22 20:58

高斯积分点及其权重的计算程序,大家自己算去吧function = md_gauss(n,dimension,symbolic,type)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   Program:    Multi-dimensional gauss points calculator with weight
%               functions
%   Author:   Brent Lewis
%               rocketlion@gmail.com
%   History:    Originally written: 10/30/2006
%               Revision for symbolic logic:1/2/2007
%   Purpose:    Program calculates the gauss points for 1-D,2-D,3-D along
%               with their weights for use in numerical integration.
%               Originally written for a Finite Element Program so has the
%               capability to give integration points for a 6-node Triangle
%               element
%   Input:      n:          Number of gauss points(Must be integer 0<n<22
%               dimension:Dimension of space for gauss points(optional)
%               symbolic:   Logical statement for return values in symbolic
%                           form(optional)
%               type:       Type of finite element(optional)
%   Output:   point:      Gauss points in either vector or matrix form
%                           depeding on dimensions
%               c:          Weighting values for Gaussian integration
%   Example:    = md_gauss(2)
%               Returns the point = +/-sqrt(1/3) and c = 1 1 which are the
%               gauss points and integration weights for 2 Gauss point rule
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Multiple Levels of Input with default values
if nargin == 1
    dimension = 1;
    type = 'QUAD4';
    symbolic = 0;
elseif nargin == 2
    type = 'QUAD4';
    symbolic = 0;
elseif nargin == 3
    type = 'QUAD4';
end

if strcmp(upper(symbolic),'TRUE')
    symbolic = 1;
else
    symbolic = 0;
end

% Error determination
if n < 1 || n > 21
    error('Number of gauss points must be 0<n<21.')   % Factorial only accurate to n = 21
elseif mod(n,1) ~= 0
    error('Points must be integer value')               % Check for non-integer points
elseif dimension < 1 || dimension > 3
    error('Dimension error:0<Dimension<4')            % Dimension check
end

if strcmp(upper(type), 'QUAD4') || strcmp(upper(type), 'QUAD8') || strcmp(upper(type), 'QUAD9')
    syms x
    if n == 1
      point_1D = 0;
      c_1D = 2;
    else
      P = 1/(2^n*factorial(n))*diff((x^2-1)^n,n);% Rodrigues' Formula
      point_1D = double(solve(P));
      % Weight Function described in Numerical Analysis book 8th edition-
      % Richard Burden page 223
      for i = 1 : length(point_1D)
            prod = 1;
            for j = 1 : length(point_1D)
                if i == j
                  continue
                else
                  prod = prod*(x-point_1D(j))/(point_1D(i)-point_1D(j));
                end
            end
            c_1D(i,1) = double(int(sym(prod),-1,1));
      end
    end

    if dimension == 1
      point = point_1D;
      c = c_1D;
    elseif dimension == 2
      k = 1;
      for i = 1:n
            for j = 1:n
                point(k,:) = ;
                c(k,1) = c_1D(i)*c_1D(j);
                k = k+1;
            end
      end
    elseif dimension == 3
      m = 1;
      for i = 1 : n
            for j = 1 : n
                for k = 1 : n
                  point(m,:) = ;
                  c(m,1) = c_1D(i)*c_1D(j)*c_1D(k);
                  m = m+1;
                end
            end
      end
    end
elseif strcmp(upper(type), 'TRI6')
    if n == 1
      point = ones(3,1)/3;
      c = 1;
    elseif n == 3
      point = ones(3)/3+eye(3)/3;
      c = ones(3,1)/3;
    elseif n == -3
      point = ones(3)/2-eye(3)/2;
      c = ones(3,1)/3;
    elseif n == 6
      g1 = (8-sqrt(10)+sqrt(38-44*sqrt(2/5)))/18;
      g2 = (8-sqrt(10)-sqrt(38-44*sqrt(2/5)))/18;
      point = ;
      c = ones(6,1)*(213125-53320*sqrt(10))/3720;
    elseif n == -6
      point = ;
      c = ;
    elseif n == 7
      g1 = (6-sqrt(15))/21;
      g2 = (6+sqrt(15))/21;
      point = ;
      c = ;
    end
elseif strcmp(upper(type), 'TRI3')
    point =[];
    c = [];
end

if symbolic == 1
    point = sym(point);
    c = sym(c);
end

meifan2015 发表于 2015-11-2 19:24

刚好要用到,找了半天终于找到了,感谢分享!

zt895701777 发表于 2015-11-18 20:55

非常有用,感谢

renren 发表于 2015-12-10 13:21

meifan2015 发表于 2015-11-2 19:24
刚好要用到,找了半天终于找到了,感谢分享!

这个程序四边形可以用吗?

旧言虐心 发表于 2015-12-10 14:03

renren 发表于 2015-12-10 13:21
这个程序四边形可以用吗?

应该是可以的,程序中的type就是控制单元类型的,从程序上看有QUAD4等四边形单元

暖圆园 发表于 2017-4-5 14:47

{:{40}:}
页: [1]
查看完整版本: 求问:二维三角形单元的高斯积分点和权系数如何求?