JuAFEM 中 QuadratureRule 积分点 order 的含义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mifangdebaise/article/details/85028063
dim = 1 (本质的情况)

dim = 1,则例如 qr = QuadratureRule{dim, RefCube}(2)2 即是 积分点order:(dim = 1 前提下)

  1. qr = QuadratureRule{dim, RefCube}(2) 返回 2积分点
  2. qr = QuadratureRule{dim, RefCube}(3) 返回 3积分点
  3. qr = QuadratureRule{dim, RefCube}(k) 返回 k积分点

默认的是 Gauss-legendre 积分,那么对 2k-1 阶多项式精确成立。
可以调用 qr = QuadratureRule{dim, RefCube}(:lobatto, 2) 来返回 Gauss-lobatto 积分点,那么对 2k-3 阶多项式精确成立。

同时我们再区别一下 RefCubeRefTetrahedrondim = 1 时,RefCube 为区间 [-1, 1]; RefTetrahedron 则为区间 [0, 1],如下面测试:

julia> qr = QuadratureRule{dim, RefCube}(:lobatto,2)
QuadratureRule{1,RefCube,Float64}([1.0, 1.0], Tensor{1,1,Float64,1}[[-1.0], [1.0]])

julia> qr = QuadratureRule{dim, RefTetrahedron}(:lobatto,2)
QuadratureRule{1,RefTetrahedron,Float64}([0.5, 0.5], Tensor{1,1,Float64,1}[[1.11022e-16], [1.0]])

dim = 2
  1. qr = QuadratureRule{dim, RefCube}(2) 返回 4积分点
  2. qr = QuadratureRule{dim, RefCube}(3) 返回 9积分点
  3. qr = QuadratureRule{dim, RefCube}(k) 返回 k^2积分点
julia> dim = 2;

julia> qr = QuadratureRule{dim, RefCube}(6);

julia> size(qr.points)
(36,)

需要注意一点的是用 RefTetrahedron 时,order k 不再返回 k^2积分点

julia>  dim = 2;

julia> qr = QuadratureRule{dim, RefTetrahedron}(7);

julia> size(qr.points)
(13,)

但同样 order k Gauss-legendre 积分,对 2k-1 阶多项式精确成立;Gauss-lobatto 积分点,对 2k-3 阶多项式精确成立。

猜你喜欢

转载自blog.csdn.net/mifangdebaise/article/details/85028063