Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
72244f8
Added new branch with collisionless TC from develop
vreville Dec 3, 2024
cb3bea8
Fixed undeclared CL arrays (GPU compiling)
vreville Dec 12, 2024
6ec6d0d
collisionless tc as an option of bragTDiffusion
Dec 14, 2024
9ac6698
idefix error includes collisionless status
vreville Dec 16, 2024
94a71d2
Added a saturation option for collisionless formulation
vreville Dec 20, 2024
e2f7a9a
add a column Density example
glesur Jan 12, 2025
26ffc60
add some documentation
glesur Jan 12, 2025
a1e6e67
add it to the tests
glesur Jan 12, 2025
9c58596
imrove documentation
glesur Jan 12, 2025
6283fd5
add doc link for column density
glesur Jan 12, 2025
8277ed0
missing testme file
glesur Jan 12, 2025
31ae1b8
add a 3D interface for column density computation
glesur Jan 14, 2025
d656036
Upwind scheme for cless TC with limiters + tests
Jan 15, 2025
7c10ec0
fix dimensions for alias
glesur Jan 15, 2025
79e70cf
updated ShowConfig functions from braginskii tc and viscosity to disp…
jeankpf Jan 16, 2025
c1cd824
Merge pull request #1 from jeankpf/collisionlessTC
vreville Jan 16, 2025
4286299
Merge pull request #316 from idefix-code/V2.2.00
glesur Jan 18, 2025
d0f348a
Génération automatique de plots de performance dans la doc
Jan 17, 2025
a61eb61
Updated doc for Collisionless TC
vreville Jan 20, 2025
7bef7a9
Corrected doc typo
vreville Jan 20, 2025
8f48bc2
Corrected typo
vreville Jan 21, 2025
1f891c7
add global routines to dump Idefix arrays (useful for debugging or
glesur Jan 21, 2025
afc3e4d
add missing header
glesur Jan 21, 2025
e840e2f
revert back to old reference commit sha to avoid merge conflicts
glesur Jan 21, 2025
ac10470
go back to last reference before fork
glesur Jan 22, 2025
76e399a
Récupération des derniers benchmarks sur JeanZay
Jan 24, 2025
49a56ee
Récupération de benchs pour H100; ajout de labels aux axes
Jan 24, 2025
0cb52ea
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Jan 24, 2025
0c07a8e
Use a std::vector of IdefixArray as input for the userdef braginskii …
vreville Jan 29, 2025
250610a
corrected typo
vreville Jan 29, 2025
2f54bb5
Merge pull request #308 from idefix-code/addColumnDensityExample
glesur Feb 9, 2025
898fcf3
add some doc
glesur Feb 9, 2025
241c69c
refactor DumpArray
glesur Feb 10, 2025
ab340ed
implements a 1st order IMEX1 solver for polydisperse dust species
glesur Feb 10, 2025
c0fbc84
switch for std.vector.at() in userdef TD tests
vreville Feb 11, 2025
22eaf5b
refactor dust drag law
glesur Feb 11, 2025
cbcc63f
clean up
glesur Feb 11, 2025
05ca488
change signature of userdef drag function
glesur Feb 11, 2025
6fbd722
add the dustyShock test from Benitez-Llambay 2019
glesur Feb 11, 2025
60740e7
add back dump files for reference
glesur Feb 11, 2025
4b8e277
update reference files for new dusyShock
glesur Feb 11, 2025
e844bc1
add documentation for implicit dust module
glesur Feb 11, 2025
78fae02
use proper update variables istead of pre-stage ones
glesur Feb 13, 2025
59a91d3
switch off heating terms when feedback is disabled (feedback assumes
glesur Feb 13, 2025
f1141ee
typo
glesur Feb 13, 2025
9b2afc5
restore energy conservation in implicit scheme with feedback
glesur Feb 13, 2025
e8d34bb
fix label of dust tracers with non-isothermal equation of state
glesur Feb 13, 2025
f87b698
Merge pull request #317 from vreville/CollisionlessTC
glesur Feb 17, 2025
34d9366
fix a bug that could lead to Nans when using the RKL scheme on grids
glesur Feb 19, 2025
cb7b999
change the way polar singularities are handled
glesur Feb 19, 2025
2874fda
-refactor curvature terms without using a small number on all Areas
glesur Feb 19, 2025
461ae58
fix typo
glesur Feb 20, 2025
a4ed690
fix capture on Cuda
glesur Feb 20, 2025
b3481f5
do not make an exception when Area=0, as this artificiallykills off one
glesur Feb 20, 2025
af6b3b7
update reference test
glesur Feb 20, 2025
9ea85b0
do not perform implicit capture
glesur Feb 20, 2025
ff459c0
remove reference to useless feedback
glesur Feb 20, 2025
3c9f26d
update signature of fargo+planet+dust drag function
glesur Feb 21, 2025
630836b
Merge pull request #321 from idefix-code/implicitDrag
glesur Feb 21, 2025
59dc0d6
Merge pull request #318 from idefix-code/addDumpArray
glesur Feb 21, 2025
ecb9d2d
Merge pull request #323 from idefix-code/fixRKLSmallGridSpacing
glesur Feb 21, 2025
902c003
add the job to the test suite
glesur Feb 21, 2025
24a62e4
update reference commit #
glesur Feb 21, 2025
c34b819
clean up test
glesur Feb 21, 2025
6f3bedd
too much cleaning
glesur Feb 22, 2025
dbdd28d
final cleanup
glesur Feb 22, 2025
2bc09a0
Merge pull request #324 from idefix-code/addCollionslessTCTest
glesur Feb 22, 2025
da27024
check coarsening inside ghost zone, and detect Nan.
glesur Mar 3, 2025
8bed32b
fix loop unrolling
glesur Mar 3, 2025
3d96f41
add back axis flux tube test
glesur Mar 3, 2025
f283f78
remove analysis from axisfluxtube
glesur Mar 4, 2025
4c9985f
add environement to gitignore
glesur Mar 4, 2025
3fb2236
final improvement to error message on grid coarsening levels
glesur Mar 4, 2025
1d9d101
use one single plot
glesur Mar 4, 2025
282cd12
Merge pull request #329 from idefix-code/checkCoarseningLevels
glesur Mar 4, 2025
4771bde
Update Adastra Mi250 to lock Rocm version
glesur Mar 6, 2025
b2168df
add benchmark data
glesur Mar 10, 2025
eccab2d
Merge pull request #319 from lih/marc-bench-plots
glesur Mar 11, 2025
d59ecf0
attempt at fixing Kokkos SYCL loop configuration (a proper benchmark
glesur Mar 11, 2025
ca9c8b0
tabs
glesur Mar 11, 2025
dd702ab
add a static_assert so that the error observed on syscl doesn't go
glesur Mar 12, 2025
9d7c589
do this for all loops
glesur Mar 12, 2025
217a812
catch misbehaved loops earlier (fix cuda!), and be more explicit.
glesur Mar 12, 2025
e58f724
cleaning up
glesur Mar 12, 2025
4c8ccb8
Merge pull request #331 from idefix-code/fixSyclConfig
glesur Mar 12, 2025
939f0cd
fix axis current regularisation along the south pole
glesur Mar 31, 2025
8e0481e
make divB check diemsionless
glesur Apr 14, 2025
bfc1aca
Merge pull request #334 from idefix-code/improveDivB
glesur Apr 15, 2025
1c33a03
Merge pull request #333 from idefix-code/fixJaxis
glesur Apr 16, 2025
d894627
use one single extra parameter for dump time output
glesur Apr 16, 2025
83986d0
add doc for wallclock dump outputs
glesur Apr 16, 2025
2529e80
Improve Wallclock dump outputs
glesur Apr 16, 2025
28ff697
Merge branch 'master' into develop
glesur Apr 16, 2025
1be4115
Add units (#338)
glesur Apr 25, 2025
e4b5a83
add Kokkos::fence at the beginning of profiling regions to fix profil…
glesur May 16, 2025
b22cd25
fix the energetic of ShearingBox+Fargo (#346)
glesur Jun 12, 2025
81f9143
Fix axis and reflective boundary conditions (#345)
glesur Jun 16, 2025
bea1c7b
fix "size" drag force with adiabatic equation of state (sound speed w…
glesur Oct 18, 2025
cde3a14
Doc updates (#354)
glesur Oct 18, 2025
18a22f7
Merge branch 'master' into develop
glesur Nov 5, 2025
7ff2f42
Fix axis regularisation (#356)
glesur Nov 27, 2025
3a8e37b
Fix BXs consistency accross mpi decomposition (#357)
glesur Dec 15, 2025
0880026
update changelog
glesur Dec 15, 2025
e289365
fix #358 (#359)
glesur Dec 18, 2025
3c5586e
typo
glesur Dec 27, 2025
52b6c97
[FIX] compatibility with compiling on AMD Instinct MI300A APU (#360)
dutta-alankar Jan 16, 2026
e53bc20
Add vector potentiel to pydefix (#361)
glesur Jan 20, 2026
de7ee54
Merge branch 'develop' of github.com:idefix-code/idefix into develop
glesur Jan 20, 2026
d83d694
fix incorrect subviews when using vector_potential in 2.5D (#362)
glesur Jan 21, 2026
56189c9
Usage of ccache in the test suite (#364)
svalat Mar 2, 2026
8300404
fix UCT HLLD when using DIMENSIONS<COMPONENTS (#363)
glesur Mar 10, 2026
df60d14
Fix div(B) check (#369)
glesur Mar 26, 2026
8171c32
Reorganise tests (#367)
glesur Mar 26, 2026
4f625af
MNT: upgrade inifix pre-commit hook (#372)
neutrinoceros Apr 4, 2026
24a3c3d
update pydefix for people using venv
glesur Apr 21, 2026
3b26652
update changelog in prep for release 2.2.1
glesur Apr 21, 2026
a6eebd1
Test launcher based on pytest (#366)
svalat Apr 21, 2026
3c69e45
update version number
glesur Apr 21, 2026
080557f
Merge branch 'develop' of github.com:idefix-code/idefix into develop
glesur Apr 21, 2026
326e7e0
Merge branch 'master' into develop
glesur Apr 21, 2026
5be7d71
fix security in ci-jobs
glesur Apr 21, 2026
62c3256
add pytest PR to changelog
glesur Apr 22, 2026
b6bdd5a
bump up sphinx package requirements for readthedocs
glesur Apr 22, 2026
8077957
Merge branch 'master' into develop
glesur Apr 22, 2026
0ef3886
test: add "default" semantic to testme.json files (#378)
svalat Jun 4, 2026
6db6cdf
MNT: migrate inifix-pre-commit hooks
neutrinoceros May 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,10 @@ repos:
- --ignore
- F403 # ignore import *

- repo: https://github.com/neutrinoceros/inifix
rev: v6.1.2
- repo: https://github.com/la-niche/inifix-pre-commit
rev: v1.0.0
hooks:
- id: inifix-format
files: ^(test/).*\.(ini)$ # want to skip pytest.ini

- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.5
Expand Down
63 changes: 34 additions & 29 deletions doc/source/testing/testLauncher.rst
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ For a single basic configuration one can use :
.. code-block:: json

{
"variants": {
"default": {
"dumpname": "dump.0001.dmp",
"ini": "idefix.ini",
"vectPot": false,
Expand All @@ -159,7 +159,7 @@ For a single basic configuration one can use :
Available parameters
--------------------

The parameters in the ``variants`` dictionnary correspond to the options supported by the
The parameters in the ``default`` dictionnary correspond to the options supported by the
:doc:`idfxTest <idfxTest>` script to configure the build and run of *Idefix*.

In addition there is some extra keys which are dedicated to the json interpretation layer :
Expand Down Expand Up @@ -195,22 +195,24 @@ In addition there is some extra keys which are dedicated to the json interpretat
Looping over parameters
-----------------------

You might want to explore running Idefix within parameter ranges (configuration files, modes).
For this simply list the values you want as a list. The test script will automatically
generate all combinations.
You might want to explore running *Idefix* within parameter ranges (configuration files, modes).
For this simply list the values you want as a list in tha ``variants`` dictionnary. The test script
will automatically generate all combinations.

.. code-block:: json

{
"variants": {
"default": {
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-hll.ini"],
"vectPot": [false, true],
"single": false,
"reconstruction": 2,
"mpi": [false, true],
"standardTest": false,
"tolerance": 0
},
"variants": {
"ini": ["idefix.ini","idefix-hll.ini"],
"vectPot": [false, true],
"mpi": [false, true]
}
}

Expand Down Expand Up @@ -245,25 +247,24 @@ can list several sets as a list. Here using single only on half of the modes.
.. code-block:: json

{
"default": {
"dumpname": "dump.0001.dmp",
"tolerance": 0
"standardTest": false,
"reconstruction": 2
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini"],
"ini": "idefix.ini",
"vectPot": false,
"single": false,
"reconstruction": 2,
"mpi": [false, true],
"standardTest": false,
"tolerance": 0
},{
"dumpname": "dump.0001.dmp",
"ini": ["idefix-hll.ini"],
"ini": "idefix-hll.ini",
"vectPot": true,
"single": true,
"reconstruction": 2,
"mpi": [false, true],
"standardTest": false,
"tolerance": 0

}
]
}
Expand All @@ -284,15 +285,17 @@ the order you want to see them composing the test name.

{
"namings": "ini,single,mpi",
"variants": {
"default": {
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-hll.ini"],
"vectPot": false,
"single": [false, true],
"reconstruction": 2,
"mpi": [false, true],
"standardTest": false,
"tolerance": 0
},
"variants": {
"ini": ["idefix.ini","idefix-hll.ini"],
"single": [false, true],
"mpi": [false, true],
}
}

Expand All @@ -309,16 +312,18 @@ It is just like if you used and IF statement.

{
"namings": "ini,single,mpi",
"variants": {
"default": {
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-hll.ini"],
"vectPot": false,
"single": [false, true],
"reconstruction": 2,
"mpi": [false, true],
"standardTest": false,
"tolerance": 0
},
"variants": {
"ini": ["idefix.ini","idefix-hll.ini"],
"single": [false, true],
"mpi": [false, true],
},
"when": {
"conditions": {
"single": true
Expand Down Expand Up @@ -348,9 +353,9 @@ They are described like :
.. code-block:: json

{
"variants": {
"default": {
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini"],
"ini": "idefix.ini",
"vectPot": false,
"single": false,
"reconstruction": 2,
Expand Down
2 changes: 1 addition & 1 deletion pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
markers=
default: Test to run by default.
python_files="test_*.py"
junit_logging="system-out"
junit_logging="all"
junit_log_passing_tests=false
2 changes: 1 addition & 1 deletion pytools/idfx_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ def addLog(self, entry):
def applyConfig(self, config: dict={}):
# check args
for key, value in config.items():
if key not in ['ini', 'testfile', 'testname', 'dumpname']:
if key not in ['ini', 'testfile', 'testname', 'dumpname', 'check_file_produced']:
assert key in self.cmdArgs, f"The given configuration overriding try to set an invalid paramater : {key}={value}"

# override options
Expand Down
18 changes: 13 additions & 5 deletions pytools/idfx_test_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __init__(self, currentTestFile: str, name: str = ""):
self.currentTestName = name

# generate the list of configs to run
def genTestConfigs(self, names:str, params, whenClauses = {}) -> list:
def genTestConfigs(self, names:str, params, whenClauses = {}, defaultConfig: dict = {}) -> list:
'''
Generate the the list of configurations as pytest parameters.
It will unpack the configuration set by looping on all combinations defined
Expand All @@ -48,20 +48,24 @@ def genTestConfigs(self, names:str, params, whenClauses = {}) -> list:
whenCaluses (dict|list):
Provide a set of clauses to apply after unpacking
the configuration so we can patch some values depending on some others.
defaultConfig (dict):
The default configuration on top of which to apply the variants.

Returns:
A list of pytest.param() ready to be fiven to parametrized pytest functions.
'''
# get name ordering list
nameList = names.split(',')
if '' in nameList:
nameList.remove('')

# gen list of complete configs
all_configs = []
if isinstance(params, dict):
all_configs += self._genOneConfigSeries(names, params)
all_configs += self._genOneConfigSeries(names, params, defaultConfig=defaultConfig)
elif isinstance(params, list):
for p in params:
all_configs += self._genOneConfigSeries(names, p)
all_configs += self._genOneConfigSeries(names, p, defaultConfig=defaultConfig)
else:
raise Exception("Should never be called !")

Expand Down Expand Up @@ -155,7 +159,7 @@ def _genNextLevelCombinations(self, input: list, paramName: str, paramValues: li
result.append(v)
return result

def _genOneConfigSeries(self, names: str, config: dict) -> list:
def _genOneConfigSeries(self, names: str, config: dict, defaultConfig: dict={}) -> list:
'''
Generate the the list of configurations as pytest parameters.
It will unpack the configuration set by looping on all combinations defined
Expand All @@ -167,6 +171,8 @@ def _genOneConfigSeries(self, names: str, config: dict) -> list:
name of the file.
config (dict):
A configuration set as a dictionnary.
defaultConfig (dict):
The default configuration to overload with the variant part.

Returns:
A list of pytest.param() ready to be fiven to parametrized pytest functions.
Expand All @@ -179,9 +185,11 @@ def _genOneConfigSeries(self, names: str, config: dict) -> list:
if 'ini' in loopOrder:
loopOrder.remove('ini')
loopOrder.append('ini')
if '' in loopOrder:
loopOrder.remove('')

# init core with everything not a list
core = {}
core = copy.deepcopy(defaultConfig)
for key, value in config.items():
if isinstance(value, list) and key not in DO_NOT_LOOP_ON:
assert key in nameList, f"All variable parameteres should be ordered in the names list, '{key}' is not."
Expand Down
17 changes: 12 additions & 5 deletions pytools/idfx_test_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,20 +85,27 @@ def genTests(self) -> list:

# load json & build the inner test combinations
with open(testfilePath, 'r') as fp:
# load
test = json.load(fp)
idefixTestGenerator=IdefixDirTestGenerator(testfilePath, testfileDir)

# extract default config & when & variants
defaultConfig = test.get('default', {})
whenClauses = test.get('when', {})
variants = test.get('variants', {})

if 'namings' in test:
namings = test['namings']
autoExtracted = idefixTestGenerator.extractNamingParameters(test['variants'])
autoExtracted = idefixTestGenerator.extractNamingParameters(variants)
self._validateNaming(namings, autoExtracted, testfilePath)
else:
namings = idefixTestGenerator.extractNamingParameters(test['variants'])
namings = idefixTestGenerator.extractNamingParameters(variants)

# required to simplify the algos later, if var is listed as variable, we need to loop over it.
self._makeVariableArgAsList(namings, test['variants'])
self._makeVariableArgAsList(namings, variants)

# gen
result += idefixTestGenerator.genTestConfigs(namings, test['variants'], test.get('when', {}))
result += idefixTestGenerator.genTestConfigs(namings, variants, whenClauses=whenClauses, defaultConfig=defaultConfig)
except Exception as e:
raise Exception(f"Fail to generate tests from {testfileRelPath} : {e}")

Expand Down Expand Up @@ -151,7 +158,7 @@ def run(self, config: dict) -> None:

# check produced
for file in check_file_produced:
if not os.path.exists(file):
if not os.path.exists(file) and not self.currentTestRunner.fake:
raise Exception(f"Don't find expected file to be produced by the run : {file} !")

def _runNonRegression(self, dumpname, ini, config_override, tolerance=0, definitionFile="", nonReg=True, nonRegIni=None, standardTest=True, first_run_ini=None,first_run_dumpname=None,configure_and_compile=True):
Expand Down
12 changes: 7 additions & 5 deletions pytools/tests/test/pb1/testme.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"default": {
"dumpname": "dump.0001.dmp",
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
"ini": ["idefix.ini","idefix-implicit.ini"]
}
]
}
14 changes: 7 additions & 7 deletions pytools/tests/test/pb2/testme.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"default": {
"dumpname": "dump.0001.dmp",
"reconstruction": 2,
"tolerance": 1e-14
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
"noplot": true
},
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": false,
"reconstruction": 2,
"tolerance": 1e-14
"noplot": false
}
]
}
12 changes: 7 additions & 5 deletions test/Dust/DustEnergy/testme.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"namings": "ini",
"default": {
"dumpname": "dump.0001.dmp",
"noplot": true,
"reconstruction": 2,
"tolerance": 0
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": true,
"reconstruction": 2,
"tolerance": 0
"ini": ["idefix.ini","idefix-implicit.ini"]
}
]
}
12 changes: 7 additions & 5 deletions test/Dust/DustyShock/testme.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"default": {
"dumpname": "dump.0001.dmp",
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
"ini": ["idefix.ini","idefix-implicit.ini"]
}
]
}
12 changes: 7 additions & 5 deletions test/Dust/DustyWave/testme.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"namings": "ini",
"default": {
"dumpname": "dump.0001.dmp",
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
},
"variants": [
{
"dumpname": "dump.0001.dmp",
"ini": ["idefix.ini","idefix-implicit.ini"],
"noplot": true,
"reconstruction": 2,
"tolerance": 1e-14
"ini": ["idefix.ini","idefix-implicit.ini"]
}
]
}
Loading
Loading