WIP: Re-design of the neighbour searching loops and tasks
Changes:
- Collect the max h of the active particles in a cell,
- Redesign the loops over neighbours to make use of this information,
- The sub- and regular tasks change their meaning,
- Added a range of checks for the correctness of the hydro, star and BH loops,
- Push the star ghost to deeper levels,
- Make newly-born stars inherit the smoothing length of their parent gas.
Fixes #696 (closed), #688 (closed)
Todo:
-
MPI -
Black hole loops -
Sink loops -
Early abort in subset PAIRS -
Add new recursion parameters to the yaml file
Edited by Matthieu Schaller
Merge request reports
Activity
added enhancement performance scaling labels
added 137 commits
-
1ea2d579...9780534f - 27 commits from branch
master
- a0299cd3 - Make cells collect the maximal smoothing lengths of active particles.
- 061a037f - Make DOPAIR1 in runner_doiact_functions_hydro.h use the maximal active h
- 8f105b7a - Added missing recursive gathering of h_max_active in runner_do_ghost()
- e7cb35d8 - Make the DOSUB_PAIR1 hydro functions use the recursion condition based on...
- 594b67f5 - Always use the recursing DOSELF1
- ee26b328 - Make the code compile again when switching on DEBUG_INTERACTIONS_SPH
- 2a47762d - Added parameters to the SELF1 and PAIR1 naive functions to select the range in...
- 839ecbf6 - Changed the recursion logic in DOSUB1 tasks to operate at different levels.
- 74388216 - Add a recursion limit in form of a minimal number of particles
- 403e1e59 - Added a mechanism to check the densities calculated by SPH via a brute-force check
- 55ebcaaa - Ignore inhibited particles as neighbours in the hydro brute-force check
- acebcfc6 - Correctly deal with inhibited particles in hte hydro density brute-force check
- 41f6371a - Ignore limited particles in the hydro check
- cfd12a76 - Fixed doxygen strings
- cce7095e - Made DOPAIR1 also use the limits in h for the new recursion scheme.
- dec05dc6 - Make the density brute-force checks work with the SPHENIX scheme.
- d181c45b - Make the gradient loop use the same recursion logic.
- dea2f81a - In the optimized DOPAIR1, only look for particles on the axis within the range set by the maximal h
- 80f39f51 - Also rewrite DOSELF1 to use limits in h
- c01096c2 - Early abort of the loop in DOSELF1() if all the active particles have been processed.
- 0c59d8c3 - Also skip the limited particles in the SWIFT loop when doing the brute-force density check
- be374140 - Only write the time spent doing hydro brute-force checks when running in verbose mode.
- c56506cc - Better function signature for space_getsid()
- 561ff5f9 - Time the debugging checks that are run every time-step to better understand where time goes
- ff99a373 - Parallelize the space_check_timesteps() debugging function
- 433dc320 - Added check in the logic of the SELF1() recursion
- 9909a615 - Added brute-force check to verify that the SPH forces are also computed correclty.
- bd0f609b - Add the integer number of neighbours to the list of hydro properties checked in loops
- bbc6c80d - Better check for correctness
- 94567ed2 - Update the self-task splitting condition to use the new logic
- c20f56bf - Update the pair-task splitting condition to use the new logic
- 9633a3b0 - No need to store the sid in the hydro pair flags
- c79e56c6 - Update the calls to the actual SELF and PAIR functions to make use of the new flags
- ed398d41 - Wrong task type
- bfd91736 - Incorrect task sub-type
- 50e3827a - Correctly create the sub-pairs of a self...
- 5c48d5e0 - Style changes in the hydro-task splitting
- 0782ce9d - Recompute the cell pair's sid rather than using the flags to get the sort directions
- 679fcd7d - Temporarily disable the sort checks in the hydro loops
- 74b3661e - Demand an accuracy of 1e-3 in the hydro check
- 88b2532f - Added start-up message when brute-force hydro checks are switched on
- 555ec2a6 - Update the DOSELF2 function to only update active particles within a fixed range of h values
- da8a36fc - Implemented the DOSELF2 recursion
- 0a82b672 - Updated DOPAIR2 to use the new h scheme
- 8b9099dd - Add the option to check only the densities. Check also the 0th step
- 7b02a11e - Update the subset hydro functions as well
- 35b6afb5 - Re-instate the check of the sph forces
- 5709d4e7 - Also count the integer number of interactions in the force loop when checking ngb numbers
- 82d813c7 - Update the hydro check to better test the accuracy of the force calculation
- 1d342831 - Also update the naive force loops to allow for comparison
- c64a3a13 - Also report the weighted number of neighbours
- 1db78981 - Simplify the logic in the subset tasks
- 2a298ddb - Simplify the logic in the subset tasks
- 0a95c3e7 - Fix function signatures
- 2adb3ca3 - Use the naive subet interactions if the cell isn't sorted
- 3aac12a8 - In DOSUB_PAIR2() abort if the cells are empty or inactive
- 92c3cd58 - Added a brute-force check of the star densities
- beae600e - Removed unnecessary include
- d4a6490f - Improve the checks of the star's densities
- cd8b61d4 - Print message if the expensive star checks are on
- 2483513a - Gather the maximal active h for stars
- f94a1c1e - Do not rebuild for now
- bbd069e9 - Correctly collect the max active particle upon reception
- d1f943cd - More const-correctness in the hydro subset branch
- 3d3329d2 - Implement the new function signatures for the star loops. Implement the sub-self and sub-pair
- aadb4058 - Add new constants to drive the depth of the recursion
- 94b88cc1 - When unskipping the star tasks use the h_max_old
- 91203e9e - Remove dead code
- 18b47213 - Implemented the SELF1 and PAIR1 for the star loops
- 21db8b89 - Also implement the stars' subset loops
- 67433ffb - Applied code formatting tool
- c574eb1e - Report the activation of the stars density checks
- 9cdcd9d4 - Fix incorrect debugging checks
- c0a0d46a - When makring the tasks, do not use t->flags
- 2609e15b - Check the correct cell for active status
- 0cd8f6e7 - Add an emergency sort when needed in the sub-star task
- 0a3cfb6f - Remove unwanted debugging message
- e0e7305a - Also update the subset stars functions
- 8beb1eb6 - Fix logic error in the dopair recursion of stars
- e02d996f - Also allow for emergency sorts in the stars' neighbour loops
- 3c7a8551 - Also run the star density check on the regular steps
- 780fc31a - Apply changes to the new files
- f9e743a4 - Implement the naive stars interactions with h_min/h_max limits as well. In the...
- c883f1e8 - Fix three mistakes in the star pair interactions
- 528161f2 - Adjust the rounding error in the distance calculation of...
- 20f65d27 - Fix stupid mistake in the STARS_DOPAIR1 where the sorted index and not distance was used
- 48802967 - Updates to the test27cells unit tests to use the new function signatures
- b075654f - Missing includes in sort_part.h
- 09382f0f - No need to climb the tree to active the drifts
- c2bec629 - Also add the same loop checks to the EAGLE stars
- 817210bd - Remove specific check of a given particle
- ec5bf486 - Small formatting improvements
- eeb51cb5 - Also activate the drifts at the super-level for sub-tasks in marktasks
- 0355edcc - Fix typo in the handling of files for the direct hydro/stars checks
- c8aa80cb - Check again for rebuild needs in mark-tasks
- 7330219d - When sanitizing the h-values also update the active h_max recorded in the cells
- ddeafe50 - Do not check for pair rebuild if we are looking at a task where the flag was set
- fb0a8d2c - Also record the correct star h_max_active when sanitizing the cells
- 22db314c - Also add the counter checks to SPHENIX
- de9c3911 - Add checks also for the density loop
- 5d121371 - Implement the naive SELF and PAIR limiter functions
- e39e1bc3 - Apply the same updates to the limiter loops
- 2a45de45 - Additional small style changes
- b8a40c0b - Push the star ghost task further down the tree
- b8269027 - Run the star ghost on the very first initialisation call of engine_launch()
- 86817f08 - Update h_max and h_max_active in cells when a star is being formed
- bd804eea - Activate the sync tasks at the correct level
- bc31755e - Improve the checks to take into account the changes in mass due to enrichment
- d08f8f34 - Adjust the rebuild condition
- 86fbcaf0 - Better choice for initial stars'h when born
Toggle commit list-
1ea2d579...9780534f - 27 commits from branch
added 1 commit
- 0bc4fdec - Count and report the weighted number of star neighbours
added 1 commit
- a6ebe2db - Do not use the sorted list in the subset pair loops as these may be botched at that time
added 153 commits
-
a6ebe2db...16475a78 - 40 commits from branch
master
- 81691d7f - Make cells collect the maximal smoothing lengths of active particles.
- 0a634aa0 - Make DOPAIR1 in runner_doiact_functions_hydro.h use the maximal active h
- a28a2377 - Added missing recursive gathering of h_max_active in runner_do_ghost()
- ccf247c5 - Make the DOSUB_PAIR1 hydro functions use the recursion condition based on...
- 3b2c726a - Always use the recursing DOSELF1
- 051bf56c - Make the code compile again when switching on DEBUG_INTERACTIONS_SPH
- b3316b87 - Added parameters to the SELF1 and PAIR1 naive functions to select the range in...
- 0f66037c - Changed the recursion logic in DOSUB1 tasks to operate at different levels.
- 616dbf1e - Add a recursion limit in form of a minimal number of particles
- f508c072 - Added a mechanism to check the densities calculated by SPH via a brute-force check
- 0c8286dc - Ignore inhibited particles as neighbours in the hydro brute-force check
- 5d83a924 - Correctly deal with inhibited particles in hte hydro density brute-force check
- acb5f242 - Ignore limited particles in the hydro check
- c7c17c7e - Fixed doxygen strings
- 5ad8ab73 - Made DOPAIR1 also use the limits in h for the new recursion scheme.
- 03633da4 - Make the density brute-force checks work with the SPHENIX scheme.
- 6a6ef22e - Make the gradient loop use the same recursion logic.
- f6e15852 - In the optimized DOPAIR1, only look for particles on the axis within the range set by the maximal h
- 0835c439 - Also rewrite DOSELF1 to use limits in h
- e9830d13 - Early abort of the loop in DOSELF1() if all the active particles have been processed.
- 629f2eeb - Also skip the limited particles in the SWIFT loop when doing the brute-force density check
- b3f62474 - Only write the time spent doing hydro brute-force checks when running in verbose mode.
- 03151cdd - Better function signature for space_getsid()
- 13c5d7e8 - Time the debugging checks that are run every time-step to better understand where time goes
- 4c36d636 - Parallelize the space_check_timesteps() debugging function
- a025c73a - Added check in the logic of the SELF1() recursion
- 11d250cc - Added brute-force check to verify that the SPH forces are also computed correclty.
- 96788264 - Add the integer number of neighbours to the list of hydro properties checked in loops
- 121d8782 - Better check for correctness
- 8042d17b - Update the self-task splitting condition to use the new logic
- 69f43d9e - Update the pair-task splitting condition to use the new logic
- cc626c95 - No need to store the sid in the hydro pair flags
- 38316061 - Update the calls to the actual SELF and PAIR functions to make use of the new flags
- 7230c20b - Wrong task type
- afae149d - Incorrect task sub-type
- d7219f49 - Correctly create the sub-pairs of a self...
- a4be399f - Style changes in the hydro-task splitting
- d383d980 - Recompute the cell pair's sid rather than using the flags to get the sort directions
- 740b737e - Temporarily disable the sort checks in the hydro loops
- d096ad60 - Demand an accuracy of 1e-3 in the hydro check
- 20969be8 - Added start-up message when brute-force hydro checks are switched on
- 57dd06dd - Update the DOSELF2 function to only update active particles within a fixed range of h values
- 0c5a6126 - Implemented the DOSELF2 recursion
- 4f21dae5 - Updated DOPAIR2 to use the new h scheme
- 91a87098 - Add the option to check only the densities. Check also the 0th step
- 711b0281 - Update the subset hydro functions as well
- 3f7b851b - Re-instate the check of the sph forces
- 8119d077 - Also count the integer number of interactions in the force loop when checking ngb numbers
- 322ffad7 - Update the hydro check to better test the accuracy of the force calculation
- 4732b65f - Also update the naive force loops to allow for comparison
- cc6f758a - Also report the weighted number of neighbours
- 3f0bd8e9 - Simplify the logic in the subset tasks
- a47861c3 - Simplify the logic in the subset tasks
- c8d718f4 - Fix function signatures
- e376bfe4 - Use the naive subet interactions if the cell isn't sorted
- 1c98c486 - In DOSUB_PAIR2() abort if the cells are empty or inactive
- f9cc096e - Added a brute-force check of the star densities
- 4d146382 - Removed unnecessary include
- 3001de94 - Improve the checks of the star's densities
- d9bb6323 - Print message if the expensive star checks are on
- db2266cc - Gather the maximal active h for stars
- 387bdf38 - Do not rebuild for now
- 75a692ca - Correctly collect the max active particle upon reception
- 802993af - More const-correctness in the hydro subset branch
- c62f307d - Implement the new function signatures for the star loops. Implement the sub-self and sub-pair
- a168084e - Add new constants to drive the depth of the recursion
- d8a3c42e - When unskipping the star tasks use the h_max_old
- 5d6d571d - Remove dead code
- 6cb79f66 - Implemented the SELF1 and PAIR1 for the star loops
- b08885de - Also implement the stars' subset loops
- 7ffd49b9 - Applied code formatting tool
- 00abff0c - Report the activation of the stars density checks
- 9b1eaf7e - Fix incorrect debugging checks
- ff0d49eb - When makring the tasks, do not use t->flags
- 84ad3d4a - Check the correct cell for active status
- f277f072 - Add an emergency sort when needed in the sub-star task
- 6791efd5 - Remove unwanted debugging message
- 8e3c6a2a - Also update the subset stars functions
- 652caf8c - Fix logic error in the dopair recursion of stars
- ae9f2ed4 - Also allow for emergency sorts in the stars' neighbour loops
- 8d6e53a8 - Also run the star density check on the regular steps
- 985081ec - Apply changes to the new files
- 3d8fd21e - Implement the naive stars interactions with h_min/h_max limits as well. In the...
- e240a687 - Fix three mistakes in the star pair interactions
- f0bdab2f - Adjust the rounding error in the distance calculation of...
- 3cfa853e - Fix stupid mistake in the STARS_DOPAIR1 where the sorted index and not distance was used
- 072df85c - Updates to the test27cells unit tests to use the new function signatures
- 1eba3c0d - Missing includes in sort_part.h
- eb1edcbc - No need to climb the tree to active the drifts
- 4b509883 - Also add the same loop checks to the EAGLE stars
- fdfe6ca0 - Remove specific check of a given particle
- c07d4635 - Small formatting improvements
- 8cd0a3f4 - Also activate the drifts at the super-level for sub-tasks in marktasks
- 7a18e144 - Fix typo in the handling of files for the direct hydro/stars checks
- 1137e1be - Check again for rebuild needs in mark-tasks
- cddc335b - When sanitizing the h-values also update the active h_max recorded in the cells
- 7bbca7a4 - Do not check for pair rebuild if we are looking at a task where the flag was set
- 5a7b6f00 - Also record the correct star h_max_active when sanitizing the cells
- 3f5ab5a7 - Also add the counter checks to SPHENIX
- bcb6e7ce - Add checks also for the density loop
- 3f7197d1 - Implement the naive SELF and PAIR limiter functions
- 76367c13 - Apply the same updates to the limiter loops
- 8ff5e350 - Additional small style changes
- 185058c1 - Push the star ghost task further down the tree
- 7d04d885 - Run the star ghost on the very first initialisation call of engine_launch()
- 1d3f442a - Update h_max and h_max_active in cells when a star is being formed
- cd581468 - Activate the sync tasks at the correct level
- 9007bc8b - Improve the checks to take into account the changes in mass due to enrichment
- 9d9d2140 - Adjust the rebuild condition
- c31248d4 - Better choice for initial stars'h when born
- dd359034 - Incorrect checks ifdef in the EAGLE stars
- 9b8137cb - Count and report the weighted number of star neighbours
- e7877259 - Do not use the sorted list in the subset pair loops as these may be botched at that time
Toggle commit list-
a6ebe2db...16475a78 - 40 commits from branch
added 1 commit
- d1d0cb18 - Added checks that the particle have the correct number of neighbours. Added...
added 1 commit
- 2392a538 - Add symmetric check in the limiter's DOPAIR1
added 2 commits
added 1 commit
- 4b697d3d - Fix typos in the main parameter example file
added 1 commit
- c65fdfe1 - In the runtime analysis, tabulate the time-step synchronization independently
added 124 commits
-
c65fdfe1...e3b49911 - 4 commits from branch
master
- 284bdfd4 - Make cells collect the maximal smoothing lengths of active particles.
- 27a4a5b9 - Make DOPAIR1 in runner_doiact_functions_hydro.h use the maximal active h
- aceb8f22 - Added missing recursive gathering of h_max_active in runner_do_ghost()
- c23ed419 - Make the DOSUB_PAIR1 hydro functions use the recursion condition based on...
- 31ba4322 - Always use the recursing DOSELF1
- ebf8420a - Make the code compile again when switching on DEBUG_INTERACTIONS_SPH
- e2de0d98 - Added parameters to the SELF1 and PAIR1 naive functions to select the range in...
- c1b88113 - Changed the recursion logic in DOSUB1 tasks to operate at different levels.
- 1adb7ee8 - Add a recursion limit in form of a minimal number of particles
- e427ec7f - Added a mechanism to check the densities calculated by SPH via a brute-force check
- 8e599094 - Ignore inhibited particles as neighbours in the hydro brute-force check
- b077b7f5 - Correctly deal with inhibited particles in hte hydro density brute-force check
- 4ed506e5 - Ignore limited particles in the hydro check
- ea18249b - Fixed doxygen strings
- 5dd22063 - Made DOPAIR1 also use the limits in h for the new recursion scheme.
- 185275fd - Make the density brute-force checks work with the SPHENIX scheme.
- f68841f7 - Make the gradient loop use the same recursion logic.
- 88238e7e - In the optimized DOPAIR1, only look for particles on the axis within the range set by the maximal h
- b5daca5e - Also rewrite DOSELF1 to use limits in h
- 66572312 - Early abort of the loop in DOSELF1() if all the active particles have been processed.
- b26f6ff3 - Also skip the limited particles in the SWIFT loop when doing the brute-force density check
- 2d78d54d - Only write the time spent doing hydro brute-force checks when running in verbose mode.
- 6ac74d62 - Better function signature for space_getsid()
- 4326dbae - Time the debugging checks that are run every time-step to better understand where time goes
- 659203fa - Parallelize the space_check_timesteps() debugging function
- 3103efbe - Added check in the logic of the SELF1() recursion
- 5d3f7e2e - Added brute-force check to verify that the SPH forces are also computed correclty.
- 84ce9aed - Add the integer number of neighbours to the list of hydro properties checked in loops
- ce72d367 - Better check for correctness
- 7c3ca9dd - Update the self-task splitting condition to use the new logic
- 5eebd07f - Update the pair-task splitting condition to use the new logic
- f1678c7e - No need to store the sid in the hydro pair flags
- 9f594e3f - Update the calls to the actual SELF and PAIR functions to make use of the new flags
- 58b9fa4f - Wrong task type
- 2fbd49e5 - Incorrect task sub-type
- 8f572fac - Correctly create the sub-pairs of a self...
- 4958f2f7 - Style changes in the hydro-task splitting
- a776007a - Recompute the cell pair's sid rather than using the flags to get the sort directions
- d66122eb - Temporarily disable the sort checks in the hydro loops
- 3104d095 - Demand an accuracy of 1e-3 in the hydro check
- 8531f495 - Added start-up message when brute-force hydro checks are switched on
- 6bea879e - Update the DOSELF2 function to only update active particles within a fixed range of h values
- 38fd8787 - Implemented the DOSELF2 recursion
- 728b8d44 - Updated DOPAIR2 to use the new h scheme
- 058adab8 - Add the option to check only the densities. Check also the 0th step
- eeedd570 - Update the subset hydro functions as well
- 8680b2e0 - Re-instate the check of the sph forces
- 74ca36c8 - Also count the integer number of interactions in the force loop when checking ngb numbers
- 27ffb3fd - Update the hydro check to better test the accuracy of the force calculation
- 2dfa8f77 - Also update the naive force loops to allow for comparison
- 28baf778 - Also report the weighted number of neighbours
- daf0d479 - Simplify the logic in the subset tasks
- 95e17af8 - Simplify the logic in the subset tasks
- 0da87cdc - Fix function signatures
- 34477587 - Use the naive subet interactions if the cell isn't sorted
- e132cc5e - In DOSUB_PAIR2() abort if the cells are empty or inactive
- 667959b3 - Added a brute-force check of the star densities
- 6a4bf954 - Removed unnecessary include
- bf311908 - Improve the checks of the star's densities
- 18cd18eb - Print message if the expensive star checks are on
- 59580b4b - Gather the maximal active h for stars
- 89512293 - Do not rebuild for now
- f98289a8 - Correctly collect the max active particle upon reception
- cb5416e9 - More const-correctness in the hydro subset branch
- ab25f26e - Implement the new function signatures for the star loops. Implement the sub-self and sub-pair
- 345d54f1 - Add new constants to drive the depth of the recursion
- 8f59d39d - When unskipping the star tasks use the h_max_old
- 940beb12 - Remove dead code
- b8de9b09 - Implemented the SELF1 and PAIR1 for the star loops
- f496770d - Also implement the stars' subset loops
- 6f2de42f - Applied code formatting tool
- cbe65e55 - Report the activation of the stars density checks
- efb1e66f - Fix incorrect debugging checks
- 7af3b908 - When makring the tasks, do not use t->flags
- a98e80db - Check the correct cell for active status
- 8767042f - Add an emergency sort when needed in the sub-star task
- e3c0437b - Remove unwanted debugging message
- 7f256bf6 - Also update the subset stars functions
- 5c1d1873 - Fix logic error in the dopair recursion of stars
- bd0fbf38 - Also allow for emergency sorts in the stars' neighbour loops
- e19377f8 - Also run the star density check on the regular steps
- a2daf1bd - Apply changes to the new files
- 9e01d434 - Implement the naive stars interactions with h_min/h_max limits as well. In the...
- 6db82ab9 - Fix three mistakes in the star pair interactions
- 1c509757 - Adjust the rounding error in the distance calculation of...
- 7a763040 - Fix stupid mistake in the STARS_DOPAIR1 where the sorted index and not distance was used
- 32398a1e - Updates to the test27cells unit tests to use the new function signatures
- 65bb2996 - Missing includes in sort_part.h
- cc96d517 - No need to climb the tree to active the drifts
- 5acbe29d - Also add the same loop checks to the EAGLE stars
- 89b34431 - Remove specific check of a given particle
- 94498d48 - Small formatting improvements
- 3b0fda1b - Also activate the drifts at the super-level for sub-tasks in marktasks
- f5970d11 - Fix typo in the handling of files for the direct hydro/stars checks
- 2b280e6d - Check again for rebuild needs in mark-tasks
- e71cba3d - When sanitizing the h-values also update the active h_max recorded in the cells
- c816ab2e - Do not check for pair rebuild if we are looking at a task where the flag was set
- ac459bcc - Also record the correct star h_max_active when sanitizing the cells
- a04a0f23 - Also add the counter checks to SPHENIX
- 0dd341c3 - Add checks also for the density loop
- b728d393 - Implement the naive SELF and PAIR limiter functions
- a98eb338 - Apply the same updates to the limiter loops
- 479e12ed - Additional small style changes
- 1c827fea - Push the star ghost task further down the tree
- de16f883 - Run the star ghost on the very first initialisation call of engine_launch()
- d5447331 - Update h_max and h_max_active in cells when a star is being formed
- 5759d222 - Activate the sync tasks at the correct level
- 5d654e7f - Improve the checks to take into account the changes in mass due to enrichment
- 5daf53f3 - Adjust the rebuild condition
- 83808c86 - Better choice for initial stars'h when born
- 0d126f46 - Incorrect checks ifdef in the EAGLE stars
- c386b0c6 - Count and report the weighted number of star neighbours
- a048d73a - Do not use the sorted list in the subset pair loops as these may be botched at that time
- 5fb6e641 - Added checks that the particle have the correct number of neighbours. Added...
- 6882c892 - Changes to the limiter loops
- d3477f4a - Add symmetric check in the limiter's DOPAIR1
- 60ba721a - Lock the limiter loop tasks
- 2713d0b4 - Reinstate the sort-based limiter pairs
- b5e1b3ff - Fix typos in the main parameter example file
- 9f65e1b7 - In the runtime analysis, tabulate the time-step synchronization independently
Toggle commit list-
c65fdfe1...e3b49911 - 4 commits from branch
added 1 commit
- c8018eac - Update the calls for the BH loops. Content of loops still to be written
Please register or sign in to reply