Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aesv_v1_0.tar.gz(581 Kbytes)
Manuscript Title: OFF, Open source Finite volume Fluid dynamics code: a free, high-order solver based on parallel, modular, object-oriented Fortran API
Authors: S. Zaghi
Program title: OFF
Catalogue identifier: AESV_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 185(2014)2151
Programming language: Fortran (standard 2003 or newer); developed and tested with Intel Fortran Compiler v. 12.x or newer.
Computer: Designed for shared-memory multi-cores workstations and for hybrid distributed/shared-memory supercomputers, but any computer system with a Fortran (2003+) compiler is suited.
Operating system: Designed for POSIX architecture and tested on GNU/Linux one.
Has the code been vectorised or parallelized?: Hybrid parallelization by means of MPI library and OpenMP paradigm, tested on up to 256 processors.
RAM: [1MB; 1GB] x core, simulation-dependent
Keywords: CFD, Finite Volume Scheme, Riemann's Problem Solver, WENO, OOP Fortran, MPI, OpenMP.
Classification: 4.3, 4.10, 12.

External routines: The proprietary library [1] must be linked for producing binary outputs in Tecplot Inc. format; the MPI library [2] must be linked for running on distribute-memory parallel systems

Nature of problem:
Numerical solution of the Compressible Navier-Stokes equations for multi-fluids multi-phase flows in complex geometries

Solution method:
Fully-conservative Finite Volume scheme based on very high-order WENO Positivity-Preserving reconstruction technique and Strong Stability Preserving high-order Runge-Kutta time integration. Structured multi-block general curvilinear and body-fitted grids constitute the underlining numerical grids. MPI and OpenMP paradigms are used for parallel computations. Pre-processing tool for deal with commercial meshing softwares is provided as well as post-processing one for numerical results visualization

At present, OFF is validated for simulating inviscid and single-phase flows (viscous fluxes computation and fully coupled Eulerian /Lagrangian schemes have still to be validated, but they are already implemented); modern Fortran compiler is mandatory

Unusual features:
OFF is a complex CFD software strongly based on Object-Oriented Programming paradigm by means of modern Fortran standard (2003 or higher)

Additional comments:
OFF project adopts Git [3], a free and open source distributed version control system. A public repository dedicated to OFF project [4] has been created on github, a web-based hosting service for software development projects using git versioning system. Finally, a comprehensive documentation [5] is provided parsing source code comments by means of doxygen software [6]

Running time:
The running time depends on the available computation resources, the complexity of the problem and the selected accuracy of the numerical scheme. Simple one dimensional problems require few minutes on personal workstation-like systems whereas complex three dimensional problems needing high accuracy (e.g. DNS) could require weeks on supercomputers. OFF has proven to have a good scalability on small clusters (e.g. CASPUR facilities, namely on Matrix, a GNU/Linux cluster composed by 320 nodes each one constituted by a dual Opteron quadcore at 2.1GHz with 16/32 GB of RAM)

[1] TecIO Library, Tecplot Inc. proprietary library for I/O binary files in Tecplot format, http://www.tecplot.com/downloads/tecio-library/.
[2] The Message Passing Interface (MPI) standard, a library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users, http://www.mcs.anl.gov/research/projects/mpi/.
[3] Git, a free and open source distributed version control system, http://git-scm.com/.
[4] Github, a web-based hosting service for software development projects using git versioning system, https://github.com.
[5] Ocial OFF documentation, http://szaghi.github.com/OFF/index.html.
[6] Doxygen, a documentation system for many programming languages, http://www.stack.nl/ dimitri/doxygen.