Oasis: A high-level/high-performance open source Navier–Stokes solver

Oasis is a high-level/high-performance finite element Navier–Stokes solver written from scratch in Python using building blocks from the FEniCS project (fenicsproject.org). The solver is unstructured and targets large-scale applications in complex geometries on massively parallel clusters. Oasis uti...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Computer physics communications 2015-03, Vol.188, p.177-188
Hauptverfasser: Mortensen, Mikael, Valen-Sendstad, Kristian
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Oasis is a high-level/high-performance finite element Navier–Stokes solver written from scratch in Python using building blocks from the FEniCS project (fenicsproject.org). The solver is unstructured and targets large-scale applications in complex geometries on massively parallel clusters. Oasis utilizes MPI and interfaces, through FEniCS, to the linear algebra backend PETSc. Oasis advocates a high-level, programmable user interface through the creation of highly flexible Python modules for new problems. Through the high-level Python interface the user is placed in complete control of every aspect of the solver. A version of the solver, that is using piecewise linear elements for both velocity and pressure, is shown to reproduce very well the classical, spectral, turbulent channel simulations of Moser et al. (1999). The computational speed is strongly dominated by the iterative solvers provided by the linear algebra backend, which is arguably the best performance any similar implicit solver using PETSc may hope for. Higher order accuracy is also demonstrated and new solvers may be easily added within the same framework. Program title: Oasis Catalogue identifier: AEUW_v1_0 Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEUW_v1_0.html Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland Licensing provisions: GNU Lesser GPL version 3 or any later version No. of lines in distributed program, including test data, etc.: 3491 No. of bytes in distributed program, including test data, etc.: 266924 Distribution format: tar.gz Programming language: Python/C++. Computer: Any single laptop computer or cluster. Operating system: Any (Linux, OSX, Windows). RAM: a few Megabytes to several hundred Gigabytes Classification: 12. External routines: FEniCS 1.3.0 (www.fenicsproject.org, that in turn depends on a number of external libraries like MPI, PETSc, Epetra, Boost and ParMetis) Nature of problem: Incompressible, Newtonian fluid flow. Solution method: The finite element method. Unusual features: FEniCS automatically generates and compiles low-level C++ code based on high-level Python code. Running time: The example provided takes a couple of minutes on a single processor.
ISSN:0010-4655
1879-2944
DOI:10.1016/j.cpc.2014.10.026