OpenFOAM (originally, FOAM) was created by Henry Weller from the late 1980s at Imperial College, London, to develop a more powerful and flexible general simulation platform than the de facto standard at the time, FORTRAN. This led to the choice of C++ as programming language, due to its modularity and object oriented features.
One distinguishing feature of OpenFOAM is its syntax for tensor operations and partial differential equations that closely resembles the equations being solved. This syntax, achieved through the use of object oriented programming and operator overloading, enables users to create custom solvers with relative ease. However, code customization becomes more challenging with increasing depth into the OpenFOAM library, owing to a lack of documentation, and heavy use of template metaprogramming.
Users can create custom objects, such as boundary conditions or turbulence models, that will work with existing solvers without having to modify or recompile the existing source code. OpenFOAM accomplishes this by combining virtual constructors with the use of simplified base classes as interfaces. As a result, this gives OpenFOAM good extensibility qualities. OpenFOAM refers to this capability as run-time selection[11].
OpenFOAM is constituted by a large base library, which offers the core capabilities of the code:
- Tensor and field operations
- Discretization of partial differential equations using a human-readable syntax
- Solution of linear systems[12]
- Solution of ordinary differential equations[13]
- Automatic parallelization of high-level operations
- Dynamic mesh[14]
- General physical models
- Solvers: they perform the actual calculation to solve a specific continuum mechanics problem
- Utilities: they are used to prepare the mesh, set-up the simulation case, process the results, and to perform operations other than solving the problem under examination
Finally, a set of third-party packages are used to provide parallel functionality (i.e.OpenMPI) and graphical post-processing (ParaView)."
https://en.wikipedia.org/wiki/OpenFOAM
https://openfoam.org/
dugksFoam: An open source OpenFOAM solver for the Boltzmann model equation - http://www.sciencedirect.com/science/article/pii/S0010465516303642
No comments:
Post a Comment