Bitpit
bitpit is an open source modular library for scientific computing. The goal of bitpit is to ease the burden of writing scientific programs providing the common building blocks needed by every scientific application.
Each module of the bitpit library is developed to address a specific aspect of real-life application development. Modules can be used as building blocks to quickly develop a high-performance scientific application. The library consists of several modules ranging from low level functionalities like algebraic operators to high level functionalities like the evaluation of distance functions on computational meshes.
Features and modules
Features and the modules of bitpit include:
- Cartesian and unstructured volume and surface meshes
- Parallel linear quadtree/octree with load balancing and 2:1 balancing (PABLO - PArallel Balanced Linear Octree)
- Basic container object for different types of meshes (surface and volume) which allows the concomitant use of more than one mesh at the same time
- Methods for the evaluation of signed and unsigned distance functions from generic objects immersed in a computational mesh
- Basic algebraic operators (Addition, subtraction, multiplication, division), mathematical functions (dot product, cross product, norm, absolute value), stream operators and display functions for some of the Standard Template Library (STL) containers
- A collection of useful containers for scientific applications.
- binary buffers for parallel data exchange and high level methods for handling MPI parallel communications.
- methods for reading and writing common data files, like DGF (Dune Grid Format), STL (STereo Litography) and VTK (Visualization ToolKit) files, and for handling logfiles.
- tools for handling and solving small dense linear systems.
- Radial Basis Function interpolation and parametrization even with large set of nodes.
- Sorting algorithms (LIFO, kd-tree, and binary tree)
- A computational geometry methods collection