You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* incorrect max diffusion with resistivity (#244)
Fix a bug that could result in too restrictive timesteps when resistivity is enabled
fix#242
* fix documentation for reflective boundary conditions (#246)
fix#228
* Per proc normalisation (#247)
- show performance per sub-domain during integration
- add performance measures in documentation
- update link to method paper
- update acknowledgements
* Documentation fixes (#248)
* directly ask kokkos for its execution space
* remove replace source files, as this doesn't work with header files
(.hpp)
* add proper readme
* clean up hdf5 mess in readme (is already in the full doc)
* add Async malloc option to JZ configuration
Copy file name to clipboardExpand all lines: README.md
+30-3Lines changed: 30 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
4
4
<!-- toc -->
5
5
6
+
-[What is Idefix?](#what-is-idefix)
7
+
-[Documentation](#documentation)
6
8
-[Download:](#download)
7
9
-[Installation:](#installation)
8
10
-[Compile an example:](#compile-an-example)
@@ -17,6 +19,33 @@
17
19
18
20
<!-- tocstop -->
19
21
22
+
What is Idefix?
23
+
---------------
24
+
Idefix is a computational fluid dynamics code based on a finite-volume high-order Godunov method, originally designed for astrophysical fluid dynamics applications. Idefix is designed to be performance-portable, and uses the [Kokkos](https://github.com/kokkos/kokkos) framework to achieve this goal. This means that it can run both on your laptop's cpu and on the largest GPU Exascale clusters. More technically, Idefix can run in serial, use OpenMP and/or MPI (message passing interface) for parallelization, and use GPU acceleration when available (based on Nvidia Cuda, AMD HIP, etc...). All these capabilities are embedded within one single code, so the code relies on relatively abstracted classes and objects available in C++17, which are not necessarily
25
+
familiar to astrophysicists. A large effort has been devoted to simplify this level of abstraction so that the code can be modified by researchers and students familiar with C and who are aware of basic object-oriented concepts.
26
+
27
+
28
+
Idefix currently supports the following physics:
29
+
30
+
* Compressible hydrodynamics in 1D, 2D, 3D
31
+
* Compressible magnetohydrodynamics using constrained transport in 1D, 2D, 3D
* Multi dust species modelled as pressureless fluids
41
+
* Multiple planets interraction
42
+
43
+
Documentation
44
+
-------------
45
+
46
+
A full online documentation is available on [readTheDoc](https://idefix.readthedocs.io/latest/).
47
+
48
+
20
49
Download:
21
50
---------
22
51
@@ -56,10 +85,8 @@ Configure the code launching cmake (version >= 3.16) in the example directory:
56
85
cmake $IDEFIX_DIR
57
86
```
58
87
59
-
Several options can be enabled from the command line (a complete list is available with `cmake $IDEFIX_DIR -LH`). For instance: `-DIdefix_RECONSTRUCTION=Parabolic` (enable PPM reconstruction), `-DIdefix_MPI=ON` (enable mpi), `-DKokkos_ENABLE_OPENMP=ON` (enable openmp parallelisation), etc... For more complex target architectures, it is recommended to use cmake GUI launching `ccmake $IDEFIX_DIR` in place of `cmake` and then switching on the required options.
88
+
Several options can be enabled from the command line (a complete list is available with `cmake $IDEFIX_DIR -LH`). For instance: `-DIdefix_RECONSTRUCTION=Parabolic` (enable PPM reconstruction), `-DIdefix_MPI=ON` (enable mpi), `-DKokkos_ENABLE_OPENMP=ON` (enable openmp parallelisation), etc... For more complex target architectures, it is recommended to use cmake GUI launching `ccmake $IDEFIX_DIR` in place of `cmake` and then switching on the required options. See the [online documentation](https://idefix.readthedocs.io/latest/) for details.
60
89
61
-
Optional xdmf(hdf5+xmf) file dumping feature has been added to `Idefix`. This uses either serial or parallel implementation of `hdf5` library which needs to be made available. These xdmf file pairs can be easily visualized in `ParaView` or `VisIt` by loading the `xmf` files. The `hdf5` files can also be loaded easily in `python` (using `h5py`) for post-processing and post-run analysis. One can turn on `xdmf` data dumps by using `-DIdefix_HDF5=ON`. The `[Output]` block of `.ini` file is checked during runtime for a `xdmf` entry whih controls the frequency of xdmf file dumps during code execution.
62
-
<!-- TODO: HDF5 Chunking and Compression filters -->
Copy file name to clipboardExpand all lines: doc/source/index.rst
+11-3Lines changed: 11 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ Terms and condition of Use
55
55
===========================
56
56
*Idefix* is distributed freely under the `CeCILL license <https://en.wikipedia.org/wiki/CeCILL>`_, a free software license adapted to both international and French legal matters, in the spirit of and retaining
57
57
compatibility with the GNU General Public License (GPL). We expect *Idefix* to be referenced and acknowledeged by authors in their publications. At the minimum, the authors
58
-
should cite the *Idefix* `method paper <https://ui.adsabs.harvard.edu/abs/2023arXiv230413746L/abstract>`_.
58
+
should cite the *Idefix* `method paper <https://ui.adsabs.harvard.edu/abs/2023A%26A...677A...9L/abstract>`_.
59
59
60
60
*Idefix* data structure and algorithm are derived from Andrea Mignone's `PLUTO code <http://plutocode.ph.unito.it/>`_, released under the GPL license.
61
61
*Idefix* also relies on the `Kokkos <https://github.com/kokkos/kokkos>`_ performance portability programming ecosystem released under the terms
@@ -74,6 +74,9 @@ Soufiane Baghdadi
74
74
Gaylor Wafflard-Fernandez
75
75
planet-disc interaction
76
76
77
+
Jonah Mauxion
78
+
self-gravity module
79
+
77
80
Clément Robert
78
81
gitlab integration, linter
79
82
@@ -96,8 +99,12 @@ This documentation has automatically been generated on |today| from the followin
96
99
Acknowledgements
97
100
===================
98
101
99
-
The developement of *Idefix* is supported by the European Research Council (ERC)
100
-
under the European Union Horizon 2020 research and innovation programme (Grant agreement No. 815559 (MHDiscs))
102
+
The developement of *Idefix* was supported by the European Research Council (ERC)
103
+
under the European Union Horizon 2020 research and innovation programme (Grant agreement No. 815559 (MHDiscs)).
104
+
Idefix developement team is partly funded by the `PEPR Origins <https://pepr-origins.fr>`_ through the project "MHD@Exascale".
105
+
The Idefix collaboration benefited from funding from the “Programme National de Physique Stellaire” (PNPS),
106
+
“Programme National Soleil-Terre” (PNST), “Programme National de Hautes Energies” (PNHE) and
107
+
“Programme National de Planétologie” (PNP) of CNRS/INSU co-funded by CEA and CNES.
101
108
102
109
103
110
.. toctree::
@@ -108,6 +115,7 @@ under the European Union Horizon 2020 research and innovation programme (Grant a
MPI (multi-GPU) can be enabled by adding ``-DIdefix_MPI=ON`` as usual.
157
+
MPI (multi-GPU) can be enabled by adding ``-DIdefix_MPI=ON`` as usual. The malloc async option is here to prevent a bug when using PSM2 with async
158
+
cuda malloc possibly leading to openmpi crash or hangs on the Jean Zay machine.
156
159
157
160
.. _setupSpecificOptions:
158
161
@@ -174,7 +177,7 @@ explicitely the options as they are required, using the functions ``set_idefix_p
174
177
175
178
.. _customSourceFiles:
176
179
177
-
Add/replace custom source files
180
+
Add custom source files
178
181
+++++++++++++++++++++++++++++++
179
182
180
183
It is possible to add custom source files to be compiled and linked against *Idefix*. This can be useful
@@ -189,21 +192,6 @@ say you want to add source files for an analysis, your ``CMakeLists.txt`` should
189
192
add_idefix_source(analysis.hpp)
190
193
191
194
192
-
*Idefix* also allows one to replace a source file in `$IDEFIX_DIR` by your own implementation. This is useful when developping new functionnalities without touching
193
-
the main directory of your *Idefix* repository. For instance, say one wants to replace the implementation of viscosity in `$IDEFIX_SRC/src/hydro/viscosity.cpp`,
194
-
with a customised `myviscosity.cpp` in the problem directory, one should add a ``CMakeLists.txt`` in the problem directory reading
Note that the first parameter of ``replace_idefix_source`` is used as a search pattern in `$IDEFIX_DIR`. Hence it is possible to ommit the parent directory
203
-
of the file being replaced if there is only one file with that name in the *Idefix* source directory, which is not guaranteed (some classes may implement
204
-
methods with the same name). It is therefore recommended to add the parent directory in the first argument of ``replace_idefix_source``.
205
-
206
-
207
195
.. tip::
208
196
209
197
Don't forget to delete `CMakeCache.txt` before attempting to reconfigure the code when adding a problem-specific
0 commit comments