Ingrid Cloud has always been a strong supporter of open-source software. Recently, in July 2020, after several years of development, we released updated open-source versions of DOLFIN-HPC, originally based on the FEniCS project.
New releases available at:
DOLFIN-HPC 0.9.1-hpc: https://bitbucket.org/adaptivesimulations/dolfin-hpc
ufc 2.2.0-hpc: https://bitbucket.org/adaptivesimulations/ufc2-hpc
ufl 1.1.0-hpc: https://bitbucket.org/adaptivesimulations/ufl-hpc
ffc 1.1.0-hpc: https://bitbucket.org/adaptivesimulations/ffc-hpc
These HPC-focused releases move those tools a step further in terms of performance, features and ease of use for both, the open source community and Ingrid Cloud.
Building upon this updated foundation we completely rewrote our groundbreaking Computational Fluid Dynamics (CFD) solver. The result is a more robust, feature-rich and better-performing solver, ready to efficiently make use of recent hardware developments.
DOLFIN is an Object-Oriented finite element library and the computational backend of FEniCS. The HPC version developed within Ingrid Cloud provides a distributed mesh representation, parallel adaptive mesh refinement, assembly of weak forms, predictive dynamic load balancing and in situ visualisation capabilities. Written in C++, DOLFIN is parallelised using either pure MPI or a hybrid MPI + PGAS approach.
Ingrid Cloud’s turbulent flow solvers are built based on the FEniCS and DOLFIN-HPC frameworks and feature smart mesh generation and adaptive mesh optimisation algorithms.
FEniCS is a high-level, problem-solving environment for solving of partial differential equations (PDEs) by the finite element method. To manage the complexity of multiphysics problems, FEniCS takes the weak form of a PDE as input in a near mathematical notation and automatically generates low-level source code, abstracting away implementation details and high-performance computing (HPC) concepts from domain scientists.
FEniCS is supported by a large community, providing various versions of its core components. But while several implementations exist, its broad user base is connected by the common code generation capabilities, allowing users to easily move between various flavours within the community.