首页> 外文会议>World Conference on Boundary Elements and Other Mesh Reduction Methods >Object-oriented C++ boundary element solution of the vector Laplace equation
【24h】

Object-oriented C++ boundary element solution of the vector Laplace equation

机译:矢量拉普拉斯方程的面向对象C ++边界元件解决方案

获取原文

摘要

The Boundary Element Method (BEM) lends itself well to an object-oriented implementation. Well-defined class hierarchies can reduce the size of a problem solution while improving the readability and maintainability of the solution. The BEM uses geometric elements, defined as collections of nodes, to model a surface. Boundary conditions, specified by the problem, are defined at each node. This suggests an object oriented solution that defines a base Element class that can be extended to define triangular elements and quadrilateral elements, and a base Node class that can be extended to define more specialized nodes, such as edge and corner nodes. Historically, BEM codes have been written in FORTRAN 90 and object oriented codes have been deemed too slow for such computationally intensive solutions. In this paper I will discuss the development and optimization of an object-oriented BEM code, written in C++, for solving the vector Laplace equation for the magnetic vector potential in three dimensions. The solution to the 3-D magnetic field problem was first written and tested in FORTRAN 90. Due to the complexity and size of the problem solution, the translation to C++ went through several stages. At each stage the code was tested for accuracy and speed. After optimization of the C++ code, which included optimization of memory allocation, optimization of class structures, optimization of functions required to build the discretized linear system of equations and optimization of the solver, the C++ code executed faster than the FORTRAN 90 code for all test problems.
机译:边界元方法(BEM)对面向对象的实现提供很好。定义良好的类层次结构可以减少问题解决方案的大小,同时提高解决方案的可读性和可维护性。 BEM使用几何元素,定义为节点集合,以模拟曲面。由问题指定的边界条件在每个节点上定义。这建议一个面向对象的解决方案,其定义可以扩展以定义三角形元素和四边形元素的基本元素类,以及可以扩展以定义更多专用节点(例如边缘和角节点)的基本节点类别。从历史上看,BEM代码已经用Fortran 90写入,并且对于这种计算密集型解决方案来说,面向对象的代码被视为太慢。在本文中,我将讨论用C ++写入的面向对象的BEM码的开发和优化,用于在三维中求解磁矢量电位的矢量拉普拉斯方程。在Fortran 90中首先写入和测试3-D磁场问题的解决方案。由于问题解决方案的复杂性和大小,转换为C ++经历了几个阶段。在每个阶段,代码进行了准确性和速度测试。在优化C ++代码之后,其中包括对存储器分配的优化,类结构的优化,优化构建方程式的离散线性系统所需的功能和求解器的优化,C ++代码执行比Fortran 90代码更快地执行所有测试问题。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号