NiHu: An open source C plus plus BEM library

被引:7
|
作者
Fiala, P. [1 ]
Rucz, P. [1 ]
机构
[1] Budapest Univ Technol & Econ, Dept Networked Syst & Serv, H-1117 Budapest, Hungary
关键词
Generic BEM library; C plus plus template metaprogramming; Boundary element methods; Object-oriented programming; Partial differential equations; Acoustics; BOUNDARY-ELEMENT METHOD; SINGULAR-INTEGRALS;
D O I
10.1016/j.advengsoft.2014.05.011
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
This paper introduces NiHu, a C++ template library for boundary element methods (BEM). The library is capable of computing the coefficients of discretised boundary integral operators in a generic way with arbitrarily defined kernels and function spaces. NiHu'S template core defines the workflow of a general BEM algorithm independent of the specific application. The core provides expressive syntax, based on the operator notation of the BEM, reflecting the mathematics behind boundary elements in the C++ source code. The customisable Component library contains elements specific to particular applications such as different numerical integration techniques and regularisation methods. The library can be used for creating a standalone C++ application using external open source libraries, or compiling a Matlab tool-box through the MEX interface. By massively exploiting C++ template metaprogramming, NiHu generates optimised codes for specific applications, including heterogeneous problems. The paper introduces the main concepts of the novel development, demonstrates its versatility and flexibility and compares the implementation's performance to that of other open source projects. (C) 2014 Elsevier Ltd. All rights reserved.
引用
收藏
页码:101 / 112
页数:12
相关论文
共 50 条
  • [41] owlcpp: a C plus plus library for working with OWL ontologies
    Levin, Mikhail K.
    Cowell, Lindsay G.
    [J]. JOURNAL OF BIOMEDICAL SEMANTICS, 2015, 6
  • [42] Development of the BCI Device Controlling C plus plus Software, Based on Existing Open Source Projects
    Olchawa, Ryszard
    Man, Dariusz
    [J]. CONTROL, COMPUTER ENGINEERING AND NEUROSCIENCE, 2021, 1362 : 60 - 71
  • [43] The image-guided surgery toolkit IGSTK: an open source C plus plus software toolkit
    Cheng, Peng
    Ibanez, Luis
    Gobbi, David
    Gary, Kevin
    Aylward, Stephen
    Jornier, Julien
    Enquobahrie, Andinet
    Zhang, Hui
    Kim, Hee-su
    Blake, M. Brian
    Cleary, Kevin
    [J]. MEDICAL IMAGING 2007: PACS AND IMAGING INFORMATICS, 2007, 6516
  • [44] SMT-RAT: An Open Source C plus plus Toolbox for Strategic and Parallel SMT Solving
    Corzilius, Florian
    Kremer, Gereon
    Junges, Sebastian
    Schupp, Stefan
    Abraham, Erika
    [J]. THEORY AND APPLICATIONS OF SATISFIABILITY TESTING - SAT 2015, 2015, 9340 : 360 - 368
  • [45] Evolution of Code Clone Ratios throughout Development History of Open-Source C and C plus plus Programs
    Goon, Anfernee
    Wu, Yuhao
    Matsushita, Makoto
    Inoue, Katsuro
    [J]. 2017 IEEE 11TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES (IWSC), 2017, : 47 - 53
  • [46] Clava: C/C plus plus source-to-source compilation using LARA
    Bispo, Joao
    Cardoso, Joao M. P.
    [J]. SOFTWAREX, 2020, 12
  • [47] Ironclad C plus plus A Library-Augmented Type-Safe Subset of C plus
    DeLozier, Christian
    Eisenberg, Richard
    Nagarakatte, Santosh
    Osera, Peter-Michael
    Martin, Milo M. K.
    Zdancewic, Steve
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (10) : 287 - 304
  • [48] VORO plus plus : A three-dimensional Voronoi cell library in C plus
    Rycroft, Chris H.
    [J]. CHAOS, 2009, 19 (04)
  • [49] Quandary: An open-source C plus plus package for high-performance optimal control of open quantum systems
    Gunther, Stefanie
    Petersson, N. Anders
    DuBois, Jonathan L.
    [J]. PROCEEDINGS OF SECOND INTERNATIONAL WORKSHOP ON QUANTUM COMPUTING SOFTWARE (QCS 2021), 2021, : 88 - 98
  • [50] Library Plus INTERNEST Project of the Library Plus
    Injac, Vesna
    [J]. BOSNIACA-JOURNAL OF THE NATIONAL AND UNIVERSITY LIBRARY OF BOSNIA AND HERZEGOVINA, 2013, (18): : 50 - 60