Skip to content

jdroniou/HArDCore3D-release

Repository files navigation

HArDCore3D

HArD::Core3D (Hybrid Arbitrary Degree::Core 3D) - Library to implement schemes with face and cell polynomial unknowns on 3D generic meshes.

This is the 3D version of the HArD::Core library (https://github.com/jdroniou/HArDCore). This repository only contains a minimal number of meshes families, others can be found at https://imag.umontpellier.fr/~droniou/hcore-meshes/3D/ . The documentation for the library is at https://jdroniou.github.io/HArDCore3D-release/

The quadrature (src/Quadratures) module in HArDCore3D is partially based on Marco Manzini's code available at https://github.com/gmanzini-LANL/PDE-Mesh-Manager. A previous version of the mesh builder also used Marco's code, but we have since then developed a specific mesh builder in HArDCore3D.

The purpose of HArD::Core3D is to provide easy-to-use tools to code hybrid schemes, such as the Hybrid High-Order and the Discrete De Rham methods. The data structure is described using intuitive classes that expose natural functions we use in the mathematical description of the scheme. For example, each mesh element is a member of the class 'Cell', that gives access to its diameter, the list of its faces (themselves members of the class 'Face' that describe the geometrical features of the face), etc. Functions are also provided to compute the key elements usually required to implement hybrid schemes, such as mass matrices of local basis functions, stiffness matrices, etc. The approach adopted is that of a compromise between readibility/usability and efficiency.

The implementations in this library follow general principles described in the appendix of the book "The Hybrid High-Order Method for Polytopal Meshes: Design, Analysis, and Applications" (D. A. Di Pietro and J. Droniou. 2019, 516p. url: https://hal.archives-ouvertes.fr/hal-02151813). High-order methods with hybrid unknowns have certain specificities which sometimes require fine choices, e.g. of basis functions (hierarchical, orthonormalised or not), etc. We refer to this manuscript for discussions on these specificities. When using the HArDCore library for a scientific publication, please refer to this book. Some modules of the library have been developed for specific scientific articles; the README.txt file in the corresponding directories provide the details of these articles, which you are kindly requested to refer to if you use these modules.

This library was developed with the direct help and indirect advice of several people. Many thanks to them: Daniel Anderson, Lorenzo Botti, Hanz Martin Cheng, Daniele Di Pietro, Daniel Jackson, Marco Manzini, Jia Jia Qian, Liam Yemm. Special thanks, also, to Rémy Dubois who is doing a huge work, in particular, to include 3rd parties modules in the library.

The development of this library was partially supported by Australian Government through the Australian Research Council's Discovery Projects funding scheme (project number DP170100605), and by the ERC Synergy NEMESIS project (project number 101115663).

About

HArD::Core3D (Hybrid Arbitrary Degree::Core 3D) - Library to implement schemes with face and cell polynomial unknowns on 3D generic meshes

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors