Skip to content
Snippets Groups Projects
Commit fc5b2f84 authored by Sergey Lesnik's avatar Sergey Lesnik
Browse files

Update headers, add authors and cavity3D tutorial

parent 85bf2054
Branches
No related merge requests found
Showing
with 1048 additions and 9 deletions
LICENSE 0 → 100644
This diff is collapsed.
## Coherent I/O format for OpenFOAM
The new "coherent" OpenFOAM file format is designed for input/output (I/O) on high performance parallel file systems. The developments were conducted in a reduced version of foam-extend 4.1 comprising the core `foam` and `finiteVolume` libraries.
### Installation
For the reduced version the same steps apply as for foam-extend-4.1, see
https://openfoamwiki.net/index.php/Installation/Linux/foam-extend-4.1.
In particular, use `Allwmake.firstInstall` to download and install the dependency to ADIOS2 in the ThirdParty folder.
```
source etc/bashrc [WM_MPLIB=XXX MPI_ROOT=/path/to/mpi]
Allwmake.firstInstall
```
Sourcing the bashrc for a second time enables usage of ADIOS2 tools like `bpls`.
### Usage
Check out the `lid-driven-cavity-3D` case in the `tutorials` folder. The following workflow works straightforward:
```
blockMesh
[decomposePar]
mpirun -n X icoFoam -parallel
```
Note that `decomposePar` actually is optional because a *naive* decomposition can be used during start-up phase of `icoFoam`. Also, if the number of processors in `decomposeParDict` does not match the number of ranks in `mpirun -n X`, the *naive* decomposition is used. Hence, `decomposePar` becomes optional and restarts on arbitrary number of MPI ranks is possible.
After the first run the time folder contain a ADIOS2 bp-file. The data can be observed using the bpls command line tool.
```
bpls 0.001/data.bp/
double U/internalField {3000000}
double p/internalField {1000000}
double phi/boundaryField/movingWall/value {10000}
double phi/internalField {2970000}
```
Please also refer to https://adios2.readthedocs.io/en/v2.9.1/ about viewing and extracting data from ADIOS2 files, for instance using the tool `bpls`
If the `system/controlDict` sets `writeBulkData yes;` the the data of all time steps is stored in a case-global ADIOS2 bp-file. The time steps share one common `data.bp` file in the case folder. In that case, asynchronous out can be activate in the `system/config.xml`:
```
<parameter key="AsyncOpen" value="true"/>
<parameter key="AsyncWrite" value="true"/>
```
The activated asynchronous output into the case-global data file can hide the overheads of the I/O latencies.
#### Contributors
The work has been carried out in Task 3.4 — Parallel I/O — of the exaFOAM project.
Participating partners (partner in **bold** is the task lead): **HLRS**, Wikki GmbH
HLRS: Gregor Weiss, Flavio Galeazzo, and Andreas Ruopp
Wikki GmbH: Sergey Lesnik and Henrik Rusche
#### Acknowledgment
This application has been developed as part of the exaFOAM Project
https://www.exafoam.eu, which has received funding from the European
High-Performance Computing Joint Undertaking (JU) under grant agreement No
956416. The JU receives support from the European Union's Horizon 2020 research
and innovation programme and France, Germany, Italy, Croatia, Spain, Greece,
and Portugal.
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2006 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
FoamFile
{
......@@ -15,7 +15,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoamTar;
application icoFoam;
startFrom startTime;
......@@ -33,7 +33,7 @@ writeInterval 1;
purgeWrite 1;
writeFormat ascii;
writeFormat coherent;
writePrecision 6;
......
......@@ -3,7 +3,7 @@
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
FoamFile
{
......@@ -87,5 +87,4 @@ manualCoeffs
// "/tmp"
//);
// ************************************************************************* //
......@@ -177,7 +177,6 @@ $(SliceStreams)/create/InputFeatures.C
$(SliceStreams)/create/SliceWriting.C
$(SliceStreams)/create/SliceReading.C
$(SliceStreams)/buffer/SliceBuffer.C
$(SliceStreams)/buffer/variableBuffer.C
$(SliceStreams)/fieldDataEntry.C
$(SliceStreams)/formattingEntry.C
$(SliceStreams)/fieldTag.C
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "FileSliceStream.H"
#include "StreamFeatures.H"
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::FileSliceStream
Description
Child class from SliceStream implementing the parallel I/O streaming
into a file
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
FileSliceStream.C
\*---------------------------------------------------------------------------*/
#ifndef FileSliceStream_H
#define FileSliceStream_H
......
......@@ -21,6 +21,11 @@ License
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Sergey Lesnik, Wikki GmbH, 2023
Gregor Weiss, HLRS University of Stuttgart, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "IFCstream.H"
......
......@@ -31,7 +31,13 @@ Description
in the coherent format. GeometricField constructor obtains the ready-to-use
dictionary.
Author
Sergey Lesnik, Wikki GmbH, 2023
Gregor Weiss, HLRS University of Stuttgart, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
IFCstreamI.H
IFCstream.C
\*---------------------------------------------------------------------------*/
......
......@@ -21,6 +21,11 @@ License
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Sergey Lesnik, Wikki GmbH, 2023
Gregor Weiss, HLRS University of Stuttgart, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
......
......@@ -21,6 +21,11 @@ License
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Sergey Lesnik, Wikki GmbH, 2023
Gregor Weiss, HLRS University of Stuttgart, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "OFCstream.H"
......
......@@ -27,6 +27,11 @@ Class
Description
Output to file stream for coherent mesh and fields.
Author
Sergey Lesnik, Wikki GmbH, 2023
Gregor Weiss, HLRS University of Stuttgart, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
OFCstream.C
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "SliceStream.H"
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::SliceStream
Description
A parallel I/O streaming class for contiguous data access patterns
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
SliceStream.C
SliceStreamImpl.H (include in SliceStream.C)
\*---------------------------------------------------------------------------*/
#ifndef SliceStream_H
#define SliceStream_H
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "adios2.h"
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
// ToDoIO Formatting
#include "SliceStreamPaths.H"
#include "OSspecific.H" // isDir
......
......@@ -27,6 +27,11 @@ Class
Description
Class to manage and fix file naming for ADIOS2 files
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
SliceStreamPaths.C
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "SliceStreamRepo.H"
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | foam-extend: Open Source CFD
\\ / O peration | Version: 4.1
\\ / A nd | Web: http://www.foam-extend.org
\\/ M anipulation | For copyright notice see file Copyright
-------------------------------------------------------------------------------
License
This file is part of foam-extend.
foam-extend is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
foam-extend is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::SliceStreamRepo
Description
A repository for streaming resources for parallel I/O.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
SourceFiles
SliceStreamRepoI.H
SliceStreamRepo.C
\*---------------------------------------------------------------------------*/
#ifndef SliceStreamRepo_H
#define SliceStreamRepo_H
......
......@@ -21,6 +21,11 @@ License
You should have received a copy of the GNU General Public License
along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
Author
Gregor Weiss, HLRS University of Stuttgart, 2023
Sergey Lesnik, Wikki GmbH, 2023
Henrik Rusche, Wikki GmbH, 2023
\*---------------------------------------------------------------------------*/
#include "label.H"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment