当前位置: 首页 > news >正文

MFEM积分模块部分解析

最近在学习 mfem 的设计,逐步搭建自己可用的有限元程序框架,顺带记录一下学习过程

MFEM的Integration部分包含多个类(这里暂时不对 NURBSMeshRules 进行分析):

  • IntegrationPoint
  • IntegrationRule
  • QuadratureFunctions1D
  • Quadrature1D
  • IntegrationRules

Integration相关的类与积分点数据相关,而Quadrature相关的类与积分点的生成方式相关。

首先 IntegrationPoint 类用于存储单个积分点的坐标和权重

real_t x, y, z, weight;

类中还包括一些对坐标和权重的初始化函数,此处主要分析程序结构,函数具体实现方法暂不讨论。

IntegrationRule 类继承自 Array<IntegrationPoint>它本质上是一个数组,存储着单个单元所含的所有积分点,并且IntegrationRule 继承了数组的功能。

QuadratureFunctions1D 是一个静态类,实现了所有生成一维积分点的函数,如

  • GaussLegendre
  • GaussLobatto
  • OpenUniform
  • ...

在IntegrationRules类中将会调用这些函数,计算出单元的积分点信息。

Quadrature1D类是一个积分类型的列表,相当于标签,用于后续积分方法的选择。

IntegrationRules类包括了所有类型的积分点生成功能:

Array<IntegrationRule *> PointIntRules;
Array<IntegrationRule *> SegmentIntRules;
Array<IntegrationRule *> TriangleIntRules;
Array<IntegrationRule *> SquareIntRules;
Array<IntegrationRule *> TetrahedronIntRules;
Array<IntegrationRule *> PyramidIntRules;
Array<IntegrationRule *> PrismIntRules;
Array<IntegrationRule *> CubeIntRules;

其中的 rules 为一个数组,按几何类型进行区分,每个元素存储对应阶次的单元积分点,例如 SquareIntRules 中

SquareIntRules[1] 指向 order = 1 时,square单元的积分点

PyramidIntRules[2] 指向 order = 2 时,Pyramid单元的积分点

具体积分点的计算通过一下函数计算:

   IntegrationRule *GenerateIntegrationRule(int GeomType, int Order);IntegrationRule *PointIntegrationRule(int Order);IntegrationRule *SegmentIntegrationRule(int Order);IntegrationRule *TriangleIntegrationRule(int Order);IntegrationRule *SquareIntegrationRule(int Order);IntegrationRule *TetrahedronIntegrationRule(int Order);IntegrationRule *PyramidIntegrationRule(int Order);IntegrationRule *PrismIntegrationRule(int Order);IntegrationRule *CubeIntegrationRule(int Order);



最后更新于 2025年12月27日 --- 最初发表于 2025年12月27日
原创作者:LitBro
关于作者:MFEM 写的真好
本文链接: [https://www.cnblogs.com/LitBro/p/19410248]
版权声明:本文采用 BY-NC-SA协议,转载或引用请注明出处!
关于后续:碍于学业不精,如有描述不当,还请见谅并非常感谢指出

http://www.jsqmd.com/news/150378/

相关文章:

  • 等保三级认证准备:TensorRT服务的安全体系建设
  • 从零到一:高效代码教学的实践与思考
  • 宿舍二三事
  • 医学大模型微调前的数据处理
  • 《人--件》读书笔记2
  • 团购拼单活动:降低中小企业采购门槛
  • 近视,阻断了多少人的梦想?影响了多少人的生活?
  • 公益项目资助:免费提供TensorRT资源给NGO组织
  • 基于TensorRT的高性能AI服务搭建全攻略
  • LeetCode周赛AI专场:TensorFlow题目解析
  • 机器人质量与成本十年演进(2015–2025)
  • 2025最新!9个AI论文工具测评:本科生写论文痛点全解析
  • 【课程设计/毕业设计】基于springboot社区医院挂号就诊管理系统基于springboot的社区诊所在线挂号与排队应用系统【附源码、数据库、万字文档】
  • Java 大视界 -- 基于 Java 的大数据实时流处理在能源行业设备状态监测与故障预测中的应用
  • 【课程设计/毕业设计】基于Springboot+Vue的在线教育系统设计与实现基于SpringBoot+Vue 大学生在线教育平台设计与实现【附源码、数据库、万字文档】
  • 世界人工智能大会亮相:站在全球舞台讲述中国故事
  • 轻量级服务架构设计:TensorRT + REST API 实战
  • 【计算机毕业设计案例】基于 SpringBoot 的电竞比赛管理系统的设计与实现基于SpringBoot的热门游戏赛事平台设计与实现(程序+文档+讲解+定制)
  • 动态解码加速:TensorRT-LLM实现流式输出优化
  • V2EX社区互动:在极客圈层传播TensorRT价值
  • 【课程设计/毕业设计】基于springboot的小区停车场车辆信息管理系统的设计与实现更新车位状态,展示车位分布与占用情况【附源码、数据库、万字文档】
  • 媒体公关稿撰写:扩大TensorRT品牌影响力
  • CSDN博客迁移:继承原有开发者社区资源
  • 测试《A Simple Algorithm for Fitting a Gaussian Function》拟合
  • 【计算机毕业设计案例】Java毕设项目推荐-基于Java的医院在线挂号系统设计与实现-基于JAVA的医院预约挂号管理系统的设计与基于JAVA的医院预约挂号管理系统的设计与实现(程序+文档+讲解+定制)
  • 告别关萌萌!原艺展凭热搜级“野心王妃“在《曼波奇缘》圆满出圈
  • SegmentFault问答:参与技术讨论植入产品信息
  • 开源中国报道申请:获得官方渠道背书
  • 数字人情感表达:基于TensorRT的情绪识别优化
  • 性能回归测试:持续验证TensorRT优化稳定性