Skip to content

Commit 18c2b73

Browse files
glesurvolodia99pre-commit-ci-lite[bot]
authored
V2.0.05 (#231)
* fix Planet::RegisterInDump (#229) * fix segFault with gridCoarsening+MHD when DIMENSIONS==2 (#230) * Fix parabolic MHD+coarsening (#233) * reconstruct BX2s only on the axis (#234) * fix single precision warnings with hipcc * implement per-fluid flux boundaries, as proposed by @PaulSegretain (#235) * DOC: use --recursive-submodules in place of init followed by update (#237) * warn user in case of possible output overflow for very large domain sizes. * add fences when profiling * detect MPI imbalance * add the possibility to produce dumps on a regular real time basis Co-authored-by: volodia99 <[email protected]> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 00e3db9 commit 18c2b73

32 files changed

Lines changed: 653 additions & 86 deletions

.github/workflows/idefix-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ jobs:
123123
run: |
124124
cd $IDEFIX_DIR/test/MHD/ResistiveAlfvenWave
125125
./testme.py -all $TESTME_OPTIONS
126+
- name: Grid coarsening diffusion
127+
run: |
128+
cd $IDEFIX_DIR/test/MHD/Coarsening
129+
./testme.py -all $TESTME_OPTIONS
126130
- name: Hall whistler waves
127131
run: |
128132
cd $IDEFIX_DIR/test/MHD/HallWhistler

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [2.0.5] 2024-03-29
8+
### Added
9+
- implement per-fluid flux boundary conditions (experimental) following a suggestion from Paul Segretain (#235)
10+
- measure and warn user when a significant MPI imbalance is detected, possibly indicating a failing node (#236)
11+
- add the possibility to write dumps following a real time (i.e. wall clock time) periodicity (#236)
12+
- detect some overflows in VTK output routines for very large domain sizes (#236)
13+
14+
### Changed
15+
- fix the dump reading routines to allow the code to restart with embedded planets from dumps generated by idefix v1.x (#229)
16+
- fix a potential segfault bug that could show up when gridCoarsening and MHD are enabled with DIMENSIONS=2 (#230)
17+
- fix a bug that could result in incorrect magnetic diffusion (Ohmic or AD) when grid coarsening is enabled (#233)
18+
- fix a bug in the reconstruction of BX2s when axis boundary is activated that could result in roundoff errors when different MPI decomposition are used (#234)
19+
- fix compiler warnings when single precision is used on some recent HIP compilers
20+
721
## [2.0.4] 2024-01-16
822
### Changed
923
- fix potential segfault in slices

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ set (CMAKE_CXX_STANDARD 17)
44

55
set(Idefix_VERSION_MAJOR 2)
66
set(Idefix_VERSION_MINOR 0)
7-
set(Idefix_VERSION_PATCH 04)
7+
set(Idefix_VERSION_PATCH 05)
88

9-
project (idefix VERSION 2.0.04)
9+
project (idefix VERSION 2.0.05)
1010
option(Idefix_MHD "enable MHD" OFF)
1111
option(Idefix_MPI "enable Message Passing Interface parallelisation" OFF)
1212
option(Idefix_HIGH_ORDER_FARGO "Force Fargo to use a PPM reconstruction scheme" OFF)

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ Download:
2323
Assuming you want to use https to get idefix (easiest option):
2424

2525
```shell
26-
git clone https://github.com/idefix-code/idefix.git idefix
26+
git clone --recurse-submodules https://github.com/idefix-code/idefix.git idefix
2727
cd idefix
28-
git submodule init
29-
git submodule update
3028
```
3129

30+
This will create and deploy Idefix in the directory `idefix`.
3231

3332
Installation:
3433
-------------

doc/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
author = 'Geoffroy Lesur'
2424

2525
# The full version, including alpha/beta/rc tags
26-
release = '2.0.0'
26+
release = '2.0.05'
2727

2828

2929

doc/source/faq.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ I get an error during *Idefix* link that says there are undefined symbols to std
4444
While *Idefix* auto-detects gcc8 when it is used as the main compiler, it still misses the cases when another compiler
4545
(like Clang or Intel) is used with gcc8 as a backend.
4646
You should try to clear up CMakeCache.txt and explicitely add the required link library when calling cmake as in
47-
``LDFLAGS=-lstdc++fs cmake $IDEFIX_DIR ...```
47+
``LDFLAGS=-lstdc++fs cmake $IDEFIX_DIR ...``
48+
49+
At the end of the compilation phase, during link on MacOS, I get an error ``ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, ...``.
50+
This is a known bug of the new linker provided by Apple with Xcode 15. Revert to the old linker:
51+
``LDFLAGS=-ld_classic cmake $IDEFIX_DIR ...``
4852

4953
Execution
5054
---------
@@ -57,6 +61,9 @@ How can I stop the code without loosing the current calculation?
5761
I'm doing performance measures. How do I disable all outputs in *Idefix*?
5862
Add ``-nowrite`` when you call *Idefix* executable.
5963

64+
I sometimes get incoherent values in my VTK files when running Idefix with OpenMPI>4, but the code seems to be running fine.
65+
This is probably a bug ot the MPI library for some of the MPI I/O calls used by the VTK class. We recommend passing ``--mca io ^ompio`` to mpirun to avoid
66+
this problem which seems to be a bug of the OMPIO layer of OpenMPI.
6067

6168
Developement
6269
------------

doc/source/quickstart.rst

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ Download and install *Idefix*
88
One first need to download *Idefix* from the public git. Say you want to install *Idefix* in the directory ``~/src/idefix``, you need to run::
99

1010
cd ~/src
11-
git clone https://github.com/idefix-code/idefix.git idefix
11+
git clone --recurse-submodules https://github.com/idefix-code/idefix.git idefix
1212
cd idefix
13-
git submodule init
14-
git submodule update
1513

16-
Note that the ``idefix`` directory is automatically created by ``git clone``. Because Kokkos is embedded as a submodule of *Idefix*, the last two lines will download Kokkos for you and put it
14+
Note that the ``idefix`` directory is automatically created by ``git clone``. Because Kokkos is embedded as a submodule of *Idefix*, the ``--recurse-submodules`` will download Kokkos for you and put it
1715
at the right place.
1816

1917
The configuration and compilation of *Idefix* relies on the environement variable ``$IDEFIX_DIR``, which should point to the

src/dataBlock/planetarySystem/planet.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,13 @@ m_vxp(state.vx), m_vyp(state.vy), m_vzp(state.vz), m_xp(state.x), m_yp(state.y),
129129
void Planet::RegisterInDump() {
130130
idfx::pushRegion("Planet::RegisterInDump");
131131
// Register variables for dump read/write
132-
data->dump->RegisterVariable(&m_xp,std::string("x_p_")+std::to_string(m_ip));
133-
data->dump->RegisterVariable(&m_yp,std::string("y_p_")+std::to_string(m_ip));
134-
data->dump->RegisterVariable(&m_zp,std::string("z_p_")+std::to_string(m_ip));
135-
data->dump->RegisterVariable(&m_vxp,std::string("vx_p_")+std::to_string(m_ip));
136-
data->dump->RegisterVariable(&m_vyp,std::string("vy_p_")+std::to_string(m_ip));
137-
data->dump->RegisterVariable(&m_vzp,std::string("vz_p_")+std::to_string(m_ip));
138-
data->dump->RegisterVariable(&m_qp,std::string("q_p_")+std::to_string(m_ip));
132+
data->dump->RegisterVariable(&m_xp,std::string("x_p")+std::to_string(m_ip));
133+
data->dump->RegisterVariable(&m_yp,std::string("y_p")+std::to_string(m_ip));
134+
data->dump->RegisterVariable(&m_zp,std::string("z_p")+std::to_string(m_ip));
135+
data->dump->RegisterVariable(&m_vxp,std::string("vx_p")+std::to_string(m_ip));
136+
data->dump->RegisterVariable(&m_vyp,std::string("vy_p")+std::to_string(m_ip));
137+
data->dump->RegisterVariable(&m_vzp,std::string("vz_p")+std::to_string(m_ip));
138+
data->dump->RegisterVariable(&m_qp,std::string("q_p")+std::to_string(m_ip));
139139

140140
idfx::popRegion();
141141
}

src/dataBlock/planetarySystem/planetarySystem.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,10 @@ void PlanetarySystem::IntegrateAnalytically(DataBlock& data, const real& dt) {
225225
real yp = planet[ip].m_yp;
226226

227227
// from cartesian to polar
228-
real Rp{sqrt(xp*xp+yp*yp)};
229-
real phip{atan2(yp,xp)};
228+
real Rp{std::sqrt(xp*xp+yp*yp)};
229+
real phip{std::atan2(yp,xp)};
230230

231-
real omegap{sqrt((ONE_F+qp)/Rp/Rp/Rp)};
231+
real omegap{std::sqrt((ONE_F+qp)/Rp/Rp/Rp)};
232232

233233
real RpNew{Rp};
234234
// real phipNew{phip + dt*omegap};
@@ -242,7 +242,7 @@ void PlanetarySystem::IntegrateAnalytically(DataBlock& data, const real& dt) {
242242
}
243243

244244
real vxp_tmp{ZERO_F};
245-
real vyp_tmp{RpNew*sqrt((ONE_F+qp)/RpNew/RpNew/RpNew)};
245+
real vyp_tmp{RpNew*std::sqrt((ONE_F+qp)/RpNew/RpNew/RpNew)};
246246

247247
planet[ip].m_xp = RpNew*cos(phipNew);
248248
planet[ip].m_yp = RpNew*sin(phipNew);

0 commit comments

Comments
 (0)