OpenFOAM is assembled from components
Low level libraries
Foundation libraries
- Discretization, linear solver, mesh handling, etc.
Physical modeling libraries
- Thermo-physical models(liquid and gases), viscosity model, turbulence model, chemical reaction interface, Lagrangian particle tracking
Combine
Top level solvers
Solvers
- Custom executable for specific physical problem : few 100 lines of code
- Easy to read, understand, modify or add further capabilities
- Existing code is used as a basis for own solver
Utilities
- Mesh import and manipulation, post-processing, etc.