Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
95f140a
shifted things around so that feedback is now executed after hydro.
mabruzzo Nov 9, 2023
c527b7e
consolidate Apply_Unresolved_SN and Apply_Wind
mabruzzo Oct 31, 2023
d779f79
Add support for running resolved SN without DE formalism. Also fixed …
mabruzzo Oct 31, 2023
1828a48
partially factored out s99-table parsing.
mabruzzo Nov 8, 2023
c2c908c
Finished factoring out s99 table-parsing.
mabruzzo Nov 8, 2023
f02486b
add some explanatory comments to feedback::Cluster_Feedback
mabruzzo Nov 9, 2023
cc8684b
removed the option to rewind feedback.
mabruzzo Nov 9, 2023
270d65d
further simplifying feedback::Cluster_Feedback
mabruzzo Nov 9, 2023
db3a306
Restructured quite a bit more of feedback::Cluster_Feedback
mabruzzo Nov 9, 2023
30a1e1b
altered feedback::Cluster_Feedback so that it no longer returns any v…
mabruzzo Nov 9, 2023
9f87227
mostly factored out new SNRateCalc class
mabruzzo Nov 10, 2023
fcef514
Mostly factored out new SWRateCalc class
mabruzzo Nov 10, 2023
4ee6023
Introduce ClusterFeedbackMethod. It's not doing much quite yet.
mabruzzo Nov 11, 2023
5d4bb29
convert feedback::Init_State and feedback::Init_Wind_state into
mabruzzo Nov 11, 2023
50daeae
removing Calc_Timestep from feedback routines.
mabruzzo Nov 11, 2023
b86e63c
finished removing the time_direction variable from feedback kernel.
mabruzzo Nov 11, 2023
a9ce37a
remove the loop variable.
mabruzzo Nov 11, 2023
04320ed
finished excising dti from feedback kernels.
mabruzzo Nov 11, 2023
6c642db
removed the prev_dens ptr from feedback
mabruzzo Nov 11, 2023
94f0941
consolidated named feedback_info indices.
mabruzzo Nov 13, 2023
517ce54
unhooked stellar-winds from feedback scheme.
mabruzzo Nov 13, 2023
7e3374f
Consolidate Adjust_Cluster_Mass_Kernel into Cluster_Feedback_Kernel
mabruzzo Nov 13, 2023
06273d0
fixed a minor bug in the accumulation of summary statistics.
mabruzzo Nov 13, 2023
eb44db2
consolidate Set_Ave_Density_Kernel with Cluster_Feedback_Kernel
mabruzzo Nov 13, 2023
f6ae5fa
factored out calculation of the number of SN per cycle.
mabruzzo Nov 13, 2023
8c8d418
add option to run with single sn
mabruzzo Nov 13, 2023
6226ed4
added the ability to enable/disable feedback or only model a single s…
mabruzzo Nov 13, 2023
223478d
a bunch of refactoring. Nothing algorithmic changed here. Unfortunate…
mabruzzo Nov 15, 2023
fbdc5ca
factor out the reduction from Cluster_Feedback_Kernel.
mabruzzo Nov 16, 2023
38db26f
removed the Cluster_Feedback_Helper function. It was effectively cons…
mabruzzo Nov 16, 2023
943e543
A bunch of restructuring. We now support no-feedback, resolved-only, …
mabruzzo Nov 16, 2023
b1d5468
factoring out and refactoring CIC stencil in feedback.
mabruzzo Nov 17, 2023
f38e8b7
intermediate commit.
mabruzzo Nov 19, 2023
f394ef0
incremental commit
mabruzzo Nov 20, 2023
05bef1b
slight tweak
mabruzzo Nov 20, 2023
74b3163
lightly refactored Apply_Energy_Momentum_Deposition.
mabruzzo Nov 20, 2023
ec3f0c4
reduced the number of arguments passed to apply_feedback.
mabruzzo Nov 20, 2023
2a4e3d6
some more changes.
mabruzzo Nov 21, 2023
a13abef
add experimental support for larger stencil.
mabruzzo Nov 21, 2023
5110840
started passing around particle velocities (they're not actually used…
mabruzzo Nov 21, 2023
dd9a6da
introduced the ParticleProps and FieldSpatialProps structs for the pu…
mabruzzo Nov 25, 2023
26149b9
refactor so that feedback_models don't need get passed any particle a…
mabruzzo Nov 27, 2023
86b47ef
consolidated some feedback-kernel args into CycleProps and deleted th…
mabruzzo Nov 28, 2023
da75c21
refactor feedback-kernels to use grid-strided for-loops.
mabruzzo Nov 28, 2023
4827ebf
some more shuffling and preparation for new tests.
mabruzzo Dec 4, 2023
a707406
laid ground-work for OverlapScheduler.
mabruzzo Dec 5, 2023
6cc8b78
start using cooperative launch
mabruzzo Dec 5, 2023
8ec701d
added for_each_possible_overlap method to each stencil.
mabruzzo Dec 5, 2023
2021272
finished integrating overlap_scheduler with feedback_details::Cluster…
mabruzzo Dec 6, 2023
47ba456
added a test of the overlap scheduler.
mabruzzo Dec 6, 2023
3d038e1
enabled the momentum-conserving feedback.
mabruzzo Dec 6, 2023
048d474
Refactored OverlapScheduler so it manages its own memory.
mabruzzo Dec 6, 2023
a69b4b9
added a test to validate that momentum of particle is properly handle…
mabruzzo Dec 6, 2023
da3dbbf
renaming stencil-related things.
mabruzzo Dec 8, 2023
b063aea
first stab at new momentum-depostion stencil.
mabruzzo Dec 8, 2023
a840930
factored stencil out of Apply_Energy_Momentum_Deposition
mabruzzo Dec 8, 2023
47637f4
refactored unresolved feedback to make it more self-consistent.
mabruzzo Dec 8, 2023
21d759d
making both stencils selectable for unresolved SNe
mabruzzo Dec 8, 2023
e2d9653
took some steps towards better boundary handling.
mabruzzo Dec 8, 2023
088c18b
added preliminary support for hacky-boundary handling.
mabruzzo Dec 10, 2023
65d7db0
remove unused Particle_Is_Alone device function
mabruzzo Dec 10, 2023
0327330
minor tweak to Sphere27::for_each_overlap_zone
mabruzzo Dec 11, 2023
58b8648
improved stencil-test-coverage.
mabruzzo Dec 11, 2023
ad75803
refactor feedback_model and feedback_stencil.
mabruzzo Dec 12, 2023
0199d20
removed default-value from feedback_sn_model (except in cases where c…
mabruzzo Dec 12, 2023
f2708cc
refactored stencil::for_each to take a single Arr3<Real> arg instead …
mabruzzo Dec 13, 2023
7436bc8
refactored stencil::for_each_enclosedCellVol to take a single Arr3<Re…
mabruzzo Dec 14, 2023
49fe401
corrected the implementation of Sphere27::for_each_vecflavor
mabruzzo Dec 14, 2023
4ada6ce
added new for_each flavors to LegacyCIC27 to make it easier to test.
mabruzzo Dec 16, 2023
98aa7a1
revised the unresolved fb prescription to overwrite momentum with avg…
mabruzzo Dec 16, 2023
09fa9f5
consolidate implementation of multiple flavors of Sphere27::for_each
mabruzzo Dec 18, 2023
f07feee
slight refactor of sliding_stencil_test.
mabruzzo Dec 18, 2023
b34be6c
made the sliding stencil test slightly more rigorous.
mabruzzo Dec 18, 2023
fb08e05
some light refactoring to simplify testing of feedback boundary-handl…
mabruzzo Dec 19, 2023
0560fd9
added new feedback-tests. Fixed a slight bug in unresolved feedback.
mabruzzo Dec 20, 2023
ffa57b8
fixed a bug related to averaging momentum.
mabruzzo Dec 20, 2023
12f0d54
Generalized the tests of injection magnitude into more cases. Refacto…
mabruzzo Dec 20, 2023
2998a38
added some basic-tests of the boundary-handling strategy
mabruzzo Dec 20, 2023
bf38c09
excised an unnecessary test.
mabruzzo Dec 20, 2023
f0169fa
removed the n_ghost member of fb_stencil::LegacyCIC27
mabruzzo Dec 20, 2023
ce66d14
removed the commented version of Apply_Energy_Momentum_Deposition
mabruzzo Dec 20, 2023
633469a
slightly refactored ResolvedAndUnresolvedSNe::for_each_possible_overlap
mabruzzo Dec 20, 2023
632c753
renamed feedback_model -> fb_prescription
mabruzzo Dec 20, 2023
66265ef
rename feedback_model.h -> prescription.h
mabruzzo Dec 20, 2023
5f15c3d
fixing some cuda/hip compatability issues
mabruzzo Jan 24, 2024
4d9a46c
minor feedback tweaks.
mabruzzo Feb 7, 2024
2308c93
Merge branch 's99_f-backport' into s99_f-feedback
mabruzzo Mar 26, 2024
84f1ce1
Merge branch 's99_f_galaxy' into s99_f-feedback
mabruzzo Apr 17, 2024
712029c
minor bugfix in the tests.
mabruzzo May 6, 2024
a49a765
Merge branch 's99_f_galaxy' into s99_f-feedback
mabruzzo May 6, 2024
d47f11b
alter the criterion for switching between resolved and unresolved fee…
mabruzzo May 16, 2024
ce21fa9
Merge branch 'dev' into s99_f-feedback
mabruzzo Jun 4, 2024
230ef08
Merge branch 'dev' into s99_f-feedback
mabruzzo Jul 11, 2024
583f11f
improved debugger logging in feedback/kernel.h
mabruzzo Jul 15, 2024
d7ac36d
Merge branch 'improving-thread-crash-logic' into s99_f-feedback
mabruzzo Jul 23, 2024
e8427df
changing the default reconstruction type in disk-problem and the star…
mabruzzo Jul 24, 2024
037e679
updated parameters to be more consistent with CGOLs-style sim
mabruzzo Jul 25, 2024
f754356
tweak the default truncation radius.
mabruzzo Jul 25, 2024
dbc0a7c
Merge branch 'cooling-choice-photoelectric-heating' into s99_f-feedback
mabruzzo Aug 3, 2024
2a753ad
Merge branch 'particleNoGrav-backport' into s99_f-feedback
mabruzzo Aug 9, 2024
3c95ca5
fix a bug where heating would break subcycling within cooling_kernel.
mabruzzo Aug 15, 2024
7375284
minor formatting tweak.
mabruzzo Oct 2, 2024
d0a47ce
start logging the type of SNe
mabruzzo Aug 19, 2024
d854af1
deposit feedback AFTER we apply floors.
mabruzzo Oct 18, 2024
48ee8c8
fixing a bug in GPU_Error_Check
mabruzzo Sep 27, 2024
d1beaa4
fixing the bug in the launch of PostUpdate_Conserved_Correct_Crashed_3D
mabruzzo Sep 30, 2024
9291767
make print statements about manual overrides more explicit.
mabruzzo Sep 30, 2024
bb738c5
slightly refactor the style of Average_Cell_All_Fields
mabruzzo Oct 2, 2024
63f5540
we now report errors when we can't slow-cell-average
mabruzzo Oct 3, 2024
1f7eda4
during cell-averaging we now print skipped values.
mabruzzo Oct 7, 2024
a17d8b9
Refactored DE to respect Crashed Cells
mabruzzo Oct 19, 2024
8acb34b
Average_Cell_All_Fields now respects DE Formalism
mabruzzo Oct 19, 2024
3603e88
introduce `gravity.gas_only_use_static_grav` parameter.
mabruzzo Nov 15, 2024
8a72b03
propagate `gravity.gas_only_use_static_grav` parameter to disk_ICs.
mabruzzo Nov 15, 2024
bed1fce
refactor feedback star particles.
mabruzzo Nov 20, 2024
ccf9e20
Merge branch 'cooling-choice-TIcool' into s99_f-feedback
mabruzzo Nov 22, 2024
c564088
Merge branch 'cooling-choice-TIcool' into s99_f-feedback
mabruzzo Dec 2, 2024
d9bf6d3
Merge branch 'dev' into s99_f-feedback
mabruzzo Jul 14, 2025
33c9515
address an oversight that unintentionally broke compilation when Grav…
mabruzzo Jul 14, 2025
153fa98
Merge branch 'refactor-dual-energy' into s99_f-feedback redux
mabruzzo Jul 21, 2025
2934692
relocate clamp helper function
mabruzzo Jul 15, 2025
6f1f96f
eliminate Arr3 part 1
mabruzzo Jul 15, 2025
c001244
finish removing all references to Arr3 type
mabruzzo Jul 15, 2025
d3dd46c
reapply the clang-tidy cleanup
mabruzzo Jul 21, 2025
f2a8001
some reorganization and light commentary
mabruzzo Jul 21, 2025
ff6d904
gradual clang-format
mabruzzo Jul 21, 2025
232be85
remaining clang-format
mabruzzo Jul 21, 2025
8c65c56
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 21, 2025
8536c54
Try bumping the ROCm version
mabruzzo Jul 21, 2025
6e948fc
turns out that this minimal change was all we needed to resolve this …
mabruzzo Jul 28, 2025
1ecd9a3
attempt to get GHA working
mabruzzo Aug 3, 2025
9f490f1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 3, 2025
e38afde
Merge branch 'dev' into s99_f-feedback
mabruzzo Aug 3, 2025
ff212a1
try to fix the gha again
mabruzzo Aug 3, 2025
30d33f8
shuffle operations
mabruzzo Aug 3, 2025
e881434
another attempt
mabruzzo Aug 3, 2025
c176258
update the ubuntu version
mabruzzo Aug 3, 2025
40047ac
revert the compilation_checks.yml
mabruzzo Aug 4, 2025
1eda25b
add an action to build the docker image
mabruzzo Aug 4, 2025
7f1bb2e
more-adjustments
mabruzzo Aug 4, 2025
ef0caab
another attempt
mabruzzo Aug 4, 2025
83eff6c
another tweak
mabruzzo Aug 4, 2025
848e915
a variation based on the dockerdocs
mabruzzo Aug 4, 2025
c103dc3
revert to a slightly earlier version
mabruzzo Aug 4, 2025
f2f807e
reverting the action to an earlier version
mabruzzo Aug 4, 2025
ac5d8ed
a tweak
mabruzzo Aug 4, 2025
1b3b0a2
Resolve the failing test
mabruzzo Aug 4, 2025
14351a6
format the tests file
mabruzzo Aug 4, 2025
3ab772c
Merge branch 'dev' into s99_f-feedback
mabruzzo Aug 18, 2025
a8a6456
address clang-tidy error
mabruzzo Aug 18, 2025
f45b425
another tweak
mabruzzo Aug 18, 2025
9cecdc1
hopefully the last bugfix
mabruzzo Aug 18, 2025
0c2abef
I forgot to re-enable compilation checks GHA
mabruzzo Aug 23, 2025
4e27c77
another attempt to fix the failing tests
mabruzzo Sep 14, 2025
4f3710f
With this bugfix, I now confirmed that it works with version rocm 5.7.1
mabruzzo Sep 14, 2025
a331c6f
Merge branch 'dev' into s99_f-feedback
mabruzzo Oct 31, 2025
0ef86cf
bump the docker image for HIP compilation checks
mabruzzo Oct 31, 2025
22008db
backport atomicMin for long longs to early HIP versions
mabruzzo Nov 3, 2025
1bc3ff9
resolve all bugs
mabruzzo Nov 3, 2025
a941290
Merge branch 'dev' into s99_f-feedback
mabruzzo Nov 12, 2025
138c007
port over and updates docs
mabruzzo Nov 12, 2025
366fb72
forgot to add this
mabruzzo Nov 12, 2025
8f54a70
Merge branch 'dev' into s99_f-feedback
mabruzzo Nov 12, 2025
cd39d05
address minor oversight
mabruzzo Dec 1, 2025
24b23e0
address some of Evan's comments
mabruzzo Jan 20, 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
21 changes: 17 additions & 4 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -104,19 +104,32 @@ IfMacros:
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
Priority: 4
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*\.h>'
# it's critical that <hip/hip_runtime.h> is included before the
# <hip/hip_cooperative_groups.h> header
# -> I spent a LOT of time trying to get SortPriority to work properly, and
# I've concluded that SortPriority is probably buggy or the documentation isn't
# accurate (or I'm missing something obvious)
- Regex: '^<hip/hip_runtime.h>$'
Priority: 1
SortPriority: 0
CaseSensitive: true
- Regex: '^<hip/.*>$'
Priority: 2
SortPriority: 0
CaseSensitive: true
- Regex: '^<.*\.h>'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*'
Priority: 2
Priority: 4
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 3
Priority: 5
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '([-_](test|unittest))?$'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/compilation_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
make-type: [hydro, gravity, disk, particles, cosmology, mhd, dust, cooling]
container:
#- {name: "CUDA", link: "docker://chollahydro/cholla:cuda_github"}
- {name: "HIP", link: "docker://chollahydro/cholla:rocm_github"}
- {name: "HIP", link: "ghcr.io/cholla-hydro/cholla-rocm:sha-a08bd2c"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intentional? For some reason I thought this had been updated elsewhere.

env: # Set environment variables
CHOLLA_MAKE_TYPE: ${{ matrix.make-type }}

Expand Down
2 changes: 1 addition & 1 deletion builds/make.type.disk
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ DFLAGS += -DGRAVITY_5_POINTS_GRADIENT

DFLAGS += -DMPI_CHOLLA
DFLAGS += -DPRECISION=2
DFLAGS += -DPLMC
DFLAGS += -DPLMP
DFLAGS += -DHLLC
DFLAGS += -DVL

Expand Down
2 changes: 1 addition & 1 deletion builds/make.type.starblast
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ DFLAGS += -DANALYSIS
DFLAGS += -DCUDA
DFLAGS += -DMPI_CHOLLA
DFLAGS += -DPRECISION=2
DFLAGS += -DPLMC
DFLAGS += -DPLMP
DFLAGS += -DHLLC
DFLAGS += -DVL

Expand Down
335 changes: 335 additions & 0 deletions docs/sphinx/Physics/DiskModel.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/sphinx/Physics/Dual-Energy-Formalism.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Problems arise in simulations with large Mach numbers (such as cosmological simu

The solution to this numerical problem is to use the "dual-energy formalism" (more details are provided in [Bryan+ 2014](https://ui.adsabs.harvard.edu/abs/2014ApJS..211...19B)). The core idea is to track an extra separately-advected "thermal energy" field at each cell-location, in addition to the total energy field and use this "thermal energy" field in cases where {math}`(E - E_{\rm thermal})` provides insufficient precision.

The dual-energy formalism is parameterized by two parameters, {math}`\eta_1` and {math}`\eta_2`. It's easiest to understand their meaning by discussing how they are used. The [Bryan+2014](https://ui.adsabs.harvard.edu/abs/2014ApJS..211...19B) paper describes two main steps:
The dual-energy formalism is parameterized by two parameters, {math}`\eta_1` and {math}`\eta_2`. It's easiest to understand their meaning by discussing how they are used. The [Bryan+ 2014](https://ui.adsabs.harvard.edu/abs/2014ApJS..211...19B) paper describes two main steps:
1. During a given timestep, when we want to compute thermal pressure, we compare quotient of the "thermal energy" field divided by {math}`E` to {math}`\eta_1`.
- When the ratio is smaller than {math}`\eta_1` we use the "thermal energy" field. When it exceeds {math}`\eta_1`, we use {math}`(E-E_{\rm kinetic})`.
- In effect, {math}`\eta_1` directly parameterizes the precision where the dual-energy formalism kicks in.
Expand All @@ -21,7 +21,7 @@ The dual-energy formalism is parameterized by two parameters, {math}`\eta_1` and
- To motivate this step, it's important to understand that when we separately advect the "thermal energy" and add the {math}`-p(\nabla \cdot {\bf v})\Delta t/ \rho` source term, we are effectively ignoring the effects of shock heating.
- Consequently, we might want to overwrite the "thermal energy" to capture the effects of shock heating.
- The precise condition that dictates when we overwrite the "thermal energy" field involves a comparison of {math}`\eta_2` and the values in neighboring cells. When {math}`\eta_2` is too high, we would effectively exclude shock-heating from weaker shocks. When {math}`\eta_2` is too low we may include spurious heating that is introduced by the truncation error of {math}`(E-E_{\rm kinetic})`.
- **NOTE:** [Bryan+2014](https://ui.adsabs.harvard.edu/abs/2014ApJS..211...19B) call this step "synchronization" - we find that name somewhat confusing since it may imply a bidirectional update (updating both "thermal energy" and {math}`E`).
- **NOTE:** [Bryan+ 2014](https://ui.adsabs.harvard.edu/abs/2014ApJS..211...19B) call this step "synchronization" - we find that name somewhat confusing since it may imply a bidirectional update (updating both "thermal energy" and {math}`E`).

In practice, Cholla does something slightly different:
1. It implements step 1 exactly as described above.
Expand Down
Loading