Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
ab19765
Create c-cpp.yml
mikegrudic Jul 22, 2025
9653907
Merge pull request #1 from mikegrudic/mikegrudic-patch-1
mikegrudic Jul 22, 2025
180c574
Update c-cpp.yml
mikegrudic Jul 22, 2025
e5b578c
default systype set for auto build on github
mikegrudic Jul 22, 2025
7c7867e
Merge pull request #2 from mikegrudic/mpifix
mikegrudic Jan 28, 2026
f6ecf26
remove jaco files from build system until the codegen is fully automated
mikegrudic Mar 6, 2026
c373717
Merge pull request #4 from mikegrudic/jaco_build_fix
mikegrudic Mar 6, 2026
a394ceb
fix: error in flag logic for planck-mean dust opacity causing nonsens…
mikegrudic Mar 6, 2026
ae22134
test: trivial test to check pytest
mikegrudic Mar 6, 2026
85f4b15
gmc cooling test
mikegrudic Mar 6, 2026
01d5408
Update README.md
mikegrudic Mar 6, 2026
c5ccf0b
Update README.md
mikegrudic Mar 6, 2026
324e2b7
testing setup
mikegrudic Mar 9, 2026
f37d930
Merge branch 'kappadust_fix' of https://github.com/mikegrudic/gizmo_i…
mikegrudic Mar 9, 2026
9770414
testing setup
mikegrudic Mar 9, 2026
b418f23
testing setup
mikegrudic Mar 9, 2026
194c8c4
testing setup
mikegrudic Mar 9, 2026
fd04822
setuptools package discovery fix
mikegrudic Mar 9, 2026
a7b6ddd
test: mpi build in integration
mikegrudic Mar 9, 2026
26f63e4
test package installations
mikegrudic Mar 9, 2026
bc98856
test package installations
mikegrudic Mar 9, 2026
248e031
test package installations
mikegrudic Mar 9, 2026
831d0b0
Merge pull request #5 from mikegrudic/master
mikegrudic Mar 9, 2026
2115b70
gmc_cooling test skeleton
mikegrudic Mar 9, 2026
46e2a3f
pycache cleanup
mikegrudic Mar 9, 2026
aa81985
pycache cleanup
mikegrudic Mar 9, 2026
95060a6
gmc cooling test
mikegrudic Mar 9, 2026
3c3ffe1
test modules for building GIZMO for a given test, downloading ICs and…
mikegrudic Mar 9, 2026
e29edae
error handling for test build
mikegrudic Mar 9, 2026
6c8e5da
error handling for test build
mikegrudic Mar 9, 2026
f6a6194
build libraries
mikegrudic Mar 9, 2026
4925f69
build libraries
mikegrudic Mar 9, 2026
4ca1714
build libraries
mikegrudic Mar 9, 2026
596d706
build libraries
mikegrudic Mar 9, 2026
0de3c2c
ubuntu makefile
mikegrudic Mar 9, 2026
7a3dd59
test: check that gmc_cooling test ran successfully
Mar 10, 2026
e61f9c8
test: fully implemented gmc cooling test
Mar 10, 2026
42f11d0
test plot for gmc_cooling
Mar 10, 2026
0655c33
Merge pull request #6 from mikegrudic/kappadust_fix
mikegrudic Mar 10, 2026
f5af929
rt cooling test
Mar 10, 2026
09ab0ac
logic in test file downloader
mikegrudic Mar 10, 2026
bce0f81
feat: added runtime parameter InitRadiationTemp for IR radiation temp…
mikegrudic Mar 10, 2026
72a9381
new runtime parameter InitRadiationTemp to supplant pegging initial r…
mikegrudic Mar 10, 2026
b80b327
move params files to test subdirectories
mikegrudic Mar 11, 2026
1fe15c9
Makefile.systype cleanup
mikegrudic Mar 11, 2026
15fee08
test removing optimize flags from ubuntu build for github
Mar 11, 2026
c8f3a19
optimize flags from ubuntu build for github
Mar 11, 2026
bafe8a9
don't run tests on every push
mikegrudic Mar 11, 2026
75dda64
Merge branch 'gmc_cooling_rt_test' of https://github.com/mikegrudic/g…
mikegrudic Mar 11, 2026
b8439c8
30km/s speed of light for RT gmc cooling test
mikegrudic Mar 11, 2026
a238503
add tracking of plots on github
mikegrudic Mar 11, 2026
05a3b61
makefile systype
mikegrudic Mar 11, 2026
dead7d8
Merge pull request #7 from mikegrudic/gmc_cooling_rt_test
mikegrudic Mar 11, 2026
6e9e869
documentation for running and implementing tests
mikegrudic Mar 16, 2026
09bbf26
example in test implementation
mikegrudic Mar 16, 2026
84112c2
test readme
mikegrudic Mar 16, 2026
ec7d45b
Merge pull request #9 from mikegrudic/testdocs
mikegrudic Mar 16, 2026
e405f0a
typos in test docs
mikegrudic Mar 16, 2026
a398c50
Merge pull request #10 from mikegrudic/testdocs
mikegrudic Mar 16, 2026
d04602c
cleanup Makefile.systype
mikegrudic Mar 16, 2026
12cd146
Merge pull request #11 from mikegrudic/testdocs
mikegrudic Mar 16, 2026
c87482b
merge c++ version
mikegrudic Mar 16, 2026
310c574
merge in c++ version
mikegrudic Mar 16, 2026
a530828
sync with gizmo c++ port. includes syncing updated dust opacity table…
mikegrudic Mar 17, 2026
e402f96
missing source file for dust opacity table
mikegrudic Mar 17, 2026
6b4cdc3
ubuntu build environment + more informative plots in gmc cooling tests
Mar 17, 2026
bc9884c
extra diagnostic plots for gmc_cooling_rt test
mikegrudic Mar 17, 2026
a1a813b
more detailed plots for gmc_cooling_rt test
Mar 18, 2026
863cfdb
arguments for variable MPI ranks in routine
Mar 19, 2026
2747bf7
run gmc tests on a grid of processor numbers
mikegrudic Mar 19, 2026
9f52a98
added rusty build environment to makefile. Removed vestigial commente…
Mar 19, 2026
965f6d7
typo in Makefile.systype
Mar 19, 2026
818bd37
add electron abundance plot to test
mikegrudic Mar 19, 2026
7702f0a
added soundwave test; corrected docs for accuracy (out soundwave setu…
mikegrudic Mar 19, 2026
53e1d7c
cleanup Makefile.systype
Mar 19, 2026
1f931c0
some fixes to path structure for tests
Mar 20, 2026
5da920d
Merge pull request #1 from pfhopkins/gizmo-cpp
mikegrudic Mar 20, 2026
a3333a6
test directory structure and CI tweaks
mikegrudic Mar 20, 2026
202614e
add mhd_wave test, including adjustment to the floor on MaxNumNgbDevi…
mikegrudic Mar 23, 2026
51eff1a
Merge pull request #2 from pfhopkins/tests
pfhopkins Mar 25, 2026
4e28d19
edit to try to restore correct behavior on dust sublimation
pfhopkins Mar 26, 2026
1cd4a61
edited star-cluster merger routine to account for extended formation …
pfhopkins Mar 27, 2026
9cb7876
added catch for starcluster merger module without tidal info, to use …
pfhopkins Mar 27, 2026
e5ae715
slight tweaks to default split method to minimize perturbations to de…
pfhopkins Mar 27, 2026
60efddb
pull in python_src and test changes from domain_optimization_omp
mikegrudic Mar 27, 2026
faab5bf
add meshoid as a dependency to pyproject.tol
mikegrudic Mar 27, 2026
7701ef2
targeted wakeup timebin: bump woken particles to dt_waker/WAKEUP inst…
mikegrudic Mar 27, 2026
02ff741
added option for true second-order M1 RHD, using full gradient recons…
pfhopkins Mar 27, 2026
b2e22a7
Merge pull request #4 from pfhopkins/tests
pfhopkins Mar 28, 2026
eac4461
Merge branch 'gizmo-cpp' into dust_evolution
pfhopkins Mar 28, 2026
d606f13
Merge pull request #3 from calebchoban/dust_evolution
pfhopkins Mar 28, 2026
90f9771
cleaning up recent PR with dust size models to remove debugging and t…
pfhopkins Mar 28, 2026
00dd0bb
edits
pfhopkins Mar 28, 2026
1b64508
edits
pfhopkins Mar 28, 2026
85ce6fa
more cleanups to the dust module PR
pfhopkins Mar 28, 2026
7f8e841
testing
pfhopkins Mar 28, 2026
94093db
Revert "more cleanups to the dust module PR"
pfhopkins Mar 28, 2026
d9389d2
more cleanups to the dust module PR
pfhopkins Mar 28, 2026
d2d3b6a
Revert "testing"
pfhopkins Mar 28, 2026
f5deb75
Merge pull request #5 from pfhopkins/pfh_slop_experiments
pfhopkins Mar 28, 2026
84350c7
added simple but slightly-better-than-before shock finder on the fly,…
pfhopkins Mar 28, 2026
8a89bd9
Merge pull request #6 from pfhopkins/targeted_wakeup_timebin
mikegrudic Mar 28, 2026
aa8d410
Merge pull request #7 from pfhopkins/pfh_slop_experiments
pfhopkins Mar 28, 2026
b7a1848
Removed extra dust evo ouputs that are no longer needed. Added BigRed…
calebchoban Mar 30, 2026
f2c2f48
Reworked coagulation/shattering routine to reduce unnecessary computa…
calebchoban Apr 1, 2026
b30b3f7
Small speedups to grain size routines and fixed bug with integer divi…
calebchoban Apr 1, 2026
47fa528
Refactored grain evolution model. Config options are reduced and simp…
calebchoban Apr 2, 2026
008b728
Updated .gitignore to include files from and test suite.
calebchoban Apr 2, 2026
f1d4627
Fixed silicate composition handling
calebchoban Apr 3, 2026
fab7a6b
Add commented-out code for initial log normal size distribution.
calebchoban Apr 3, 2026
b8a25a0
Fix calculation of dust species count in precompiler logic
calebchoban Apr 6, 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
38 changes: 38 additions & 0 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: pytest

on:
pull_request:
branches: ["starforge_dev"]

jobs:
build:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.13"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install .
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: openmpi
- name: Install libraries
run: sudo apt install libhdf5-openmpi-dev libgsl-dev
- name: Test with pytest
run: |
pytest
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Files used for gizmo compilation.
*.o
GIZMO
GIZMO_config.h
compile_time_info.cc
Config.sh
Config.sh

# Files used for gizmo test suite.
build/
spcool_tables/
TREECOOL
spcool_tables.tgz
test/*/*.txt
test/*/output
*egg-info
*.err
*.out
*.hdf5
*.tmp
*.pyc
*values
37 changes: 29 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ FINCL =
#----------------------------------------------------------------------------------------------
ifeq ($(SYSTYPE),"Frontera")
CC = mpicc
CXX = mpicxx -std=c++11
CXX = mpicxx -std=c++17
FC = mpif90 -nofor_main
OPTIMIZE = -ggdb -O2 -xCORE-AVX2 -Wno-unknown-pragmas -Wall -Wno-format-security -qopenmp
ifeq (CHIMES,$(findstring CHIMES,$(CONFIGVARS)))
Expand Down Expand Up @@ -203,9 +203,11 @@ OPT += #
endif

#----------------------------------------------------------------------------------------------
# Environment for building GIZMO on a macbook with libraries installed via homebrew. But note
# that the specific GSL and HDF5 versions are hardcoded here...
ifeq ($(SYSTYPE),"MacBookCellar")
CC = mpicc
CXX = mpiccxx
CXX = mpicxx -std=c++11
FC = $(CC) #mpifort ## change this to "mpifort" for packages requiring linking secondary fortran code, currently -only- the helmholtz eos modules do this, so I leave it un-linked for now to save people the compiler headaches
OPTIMIZE = -O1 -funroll-loops
OPTIMIZE += -g -Wall # compiler warnings
Expand All @@ -220,18 +222,18 @@ GSL_INCL = -I/opt/homebrew/Cellar/gsl/2.8/include #-I$(PORTINCLUDE)
GSL_LIBS = -L/opt/homebrew/Cellar/gsl/2.8/lib #-L$(PORTLIB)
FFTW_INCL= -I/usr/local/include
FFTW_LIBS= -L/usr/local/lib
HDF5INCL = -I/opt/homebrew/Cellar/hdf5/1.14.3_1/include -DH5_USE_16_API #-I$(PORTINCLUDE) -DH5_USE_16_API
HDF5LIB = -L/opt/homebrew/Cellar/hdf5/1.14.3_1/lib -lhdf5 -lz #-L$(PORTLIB)
HDF5INCL = -I/opt/homebrew/Cellar/hdf5/1.14.6/include -DH5_USE_16_API #-I$(PORTINCLUDE) -DH5_USE_16_API
HDF5LIB = -L/opt/homebrew/Cellar/hdf5/1.14.6/lib -lhdf5 -lz #-L$(PORTLIB)
MPICHLIB = #
OPT += -DDISABLE_ALIGNED_ALLOC -DCHIMES_USE_DOUBLE_PRECISION #
endif

#----------------------------
ifeq ($(SYSTYPE),"PopOS")
ifeq ($(SYSTYPE),"github-ubuntu")
CC = mpicc
CXX = mpiccxx
CXX = mpicxx
FC = $(CC)
OPTIMIZE = -g -fcommon -O1 -ffast-math -funroll-loops -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone ## optimizations for gcc compilers (1/2)
OPTIMIZE = -g -fcommon -O1 -funroll-loops -finline-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone ## optimizations for gcc compilers (1/2)
OPTIMIZE += -ftree-loop-distribute-patterns -fvect-cost-model -ftree-partial-pre ## optimizations for gcc compilers (2/2)
OPTIMIZE += -g -Wall # compiler warnings
ifeq (CHIMES,$(findstring CHIMES,$(CONFIGVARS)))
Expand All @@ -256,6 +258,24 @@ OPT += -DDISABLE_ALIGNED_ALLOC -DCHIMES_USE_DOUBLE_PRECISION
## to get required packages: sudo apt install libhdf5-openmpi-dev libgsl-dev libopenmpi-dev
endif

#----------------------------
# Should work on any Flatiron institute linux cluster environment: rusty, popeye and linux workstations
ifeq ($(SYSTYPE),"RUSTY")
CC = mpicc
ifeq (SOFTDOUBLEDOUBLE,$(findstring SOFTDOUBLEDOUBLE,$(OPT)))
CC = mpicxx
endif
FC = mpifort
OPTIMIZE = -O2 -g -Wall
GSL_INCL = -I$(GSL_BASE)/include
GSL_LIBS = -L$(GSL_BASE)/lib -Xlinker -R -Xlinker $(GSL_BASE) -lgsl -lgslcblas
FFTW_INCL= -I$(FFTW3_BASE)/include
FFTW_LIBS= -L$(FFTW3_BASE)/lib -Xlinker -R -Xlinker $(FFTW3_BASE)/lib
MPICHLIB =
HDF5INCL = -I$(HDF5_BASE)/include -DH5_USE_16_API
HDF5LIB = -L$(HDF5_BASE)/lib -Xlinker -R -Xlinker $(HDF5_BASE)/lib -lhdf5 -lz
endif


#----------------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -329,7 +349,8 @@ SINK_OBJS = sinks/sink.o \
RHD_OBJS = radiation/rt_utilities.o \
radiation/rt_CGmethod.o \
radiation/rt_source_injection.o \
radiation/rt_chem.o
radiation/rt_chem.o \
radiation/rt_dust_opacity.o

FOF_OBJS = structure/fof.o \
structure/subfind/subfind.o \
Expand Down
48 changes: 4 additions & 44 deletions Makefile.systype
Original file line number Diff line number Diff line change
Expand Up @@ -6,50 +6,10 @@
#
#############

SYSTYPE="Frontera"
#SYSTYPE="BigRed200"
#SYSTYPE="Stampede2"
#SYSTYPE="Bridges2"
#SYSTYPE="Anvil"
#SYSTYPE="Wheeler"
#SYSTYPE="CaltechHPC"
#SYSTYPE="MacBookPro"
SYSTYPE="github-ubuntu"
#SYSTYPE="Frontera"
#SYSTYPE="MacBookCellar"
#SYSTYPE="Quest"
#SYSTYPE="Quest-intel"
#SYSTYPE="TSCC"
#SYSTYPE="Expanse"
#SYSTYPE="Iron"
#SYSTYPE="CaltechHPC"
#SYSTYPE="RUSTY"
#SYSTYPE="Darter"
#SYSTYPE="Comet"
#SYSTYPE="Gordon"
#SYSTYPE="odyssey"
#SYSTYPE="antares"
#SYSTYPE="Pleiades"
#SYSTYPE="Mira"
#SYSTYPE="Titan"
#SYSTYPE="Edison"
#SYSTYPE="SciNet"
#SYSTYPE="Ranger_intel"
#SYSTYPE="Ranger_pgi"
#SYSTYPE="Darwin"
#SYSTYPE="Magny"
#SYSTYPE="Magny-Intel"
#SYSTYPE="OpenSuse"
#SYSTYPE="OpenSuse64"
#SYSTYPE="HLRB2"
#SYSTYPE="MPA"
#SYSTYPE="VIP"
#SYSTYPE="Ubuntu"
#SYSTYPE="MBM"
#SYSTYPE="OpteronMPA-Gnu"
#SYSTYPE="OpteronMPA-Intel"
#SYSTYPE="Centos5-intel"
#SYSTYPE="Kolob"
#SYSTYPE="Centos5-Gnu"
#SYSTYPE="OPA-Cluster64-Intel"
#SYSTYPE="Stampede"
#SYSTYPE="Zwicky"
#SYSTYPE="BlueWaters"
#SYSTYPE="PopOS"
#SYSTYPE="BigRed200"
67 changes: 19 additions & 48 deletions Template_Config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -503,8 +503,7 @@
#EOS_ENFORCE_ADIABAT=(1.0) # if set, this forces gas to lie -exactly- along the adiabat P=EOS_ENFORCE_ADIABAT*(rho^GAMMA)
#HYDRO_REPLACE_RIEMANN_KT # replaces the hydro Riemann solver (HLLC) with a Kurganov-Tadmor flux derived in Panuelos, Wadsley, and Kevlahan, 2019. works with MFM/MFV/fixed-grid methods [-without- MHD active, but other modules are fine]. more diffusive, but smoother, and more stable convergence results
#SLOPE_LIMITER_TOLERANCE=1 # sets the slope-limiters used. higher=more aggressive (less diffusive, but less stable). 1=default. 0=conservative. use on problems where sharp density contrasts in poor particle arrangement may cause errors. 2=use the original GIZMO paper (more aggressive) slope-limiters. more accurate for smooth problems, but these can introduce numerical instability in problems with poorly-resolved large noise or density contrasts (e.g. multi-phase, self-gravitating flows)
#ENERGY_ENTROPY_SWITCH_IS_ACTIVE # enable energy-entropy switch as described in GIZMO methods paper. This can greatly improve performance on some problems where the
# the flow is very cold and highly super-sonic. it can cause problems in multi-phase flows with strong cooling, though, and is not compatible with non-barytropic equations of state
#ENERGY_ENTROPY_SWITCH_IS_ACTIVE # enable energy-entropy switch as described in GIZMO methods paper. This can greatly improve performance on some problems where the the flow is very cold and highly super-sonic. it can cause problems in multi-phase flows with strong cooling, though, and is not compatible with non-barytropic equations of state
#FORCE_ENTROPIC_EOS_BELOW=(0.01) # set (manually) the alternative energy-entropy switch which is enabled by default in MFM/MFV: if relative velocities are below this threshold, it uses the entropic EOS
#HYDRO_KERNEL_SURFACE_VOLCORR # attempt to correct SPH/MFM/MFV cell volumes for free-surface effects, using the estimated boundary correction for the Wendland C2 kernel (works with others but most accurate for this) based on asymmetry of neighbors within kernel, as calibrated in Reinhardt & Stadel 2017 (arXiv:1701.08296), see e.g. their Fig 3
#DISABLE_SURFACE_VOLCORR # disables HYDRO_KERNEL_SURFACE_VOLCORR if it would be set by default (e.g. if EOS_ELASTIC is enabled)
Expand Down Expand Up @@ -582,6 +581,7 @@
#GRAIN_RDI_TESTPROBLEM # top-level flag to enable a variety of test problem behaviors, customized for the idealized studies of dust dynamics in Moseley et al 2019MNRAS.489..325M, Seligman et al 2019MNRAS.485.3991S, Steinwandel et al arXiv:2111.09335, Ji et al arXiv:2112.00752, Hopkins et al 2020MNRAS.496.2123H and arXiv:2107.04608, Squire et al 2022MNRAS.510..110S. Cite these if used.
#GRAIN_RDI_TESTPROBLEM_ACCEL_DEPENDS_ON_SIZE # Make the idealized external grain acceleration grain size-dependent; equivalent to assuming an absorption efficiency Q=1. Cite GRAIN_RDI_TESTPROBLEM papers.
#GRAIN_RDI_TESTPROBLEM_LIVE_RADIATION_INJECTION # Enables idealized radiation injection by a source population designed to set up outflow test problems with live radiation-hydrodynamics as in Hopkins et al., arXiv:2107.04608. Cite that paper if this module is used.
#IO_DUST_NOT_IN_ICFILE # special flag needed if restarting from a snapshot (flag=2) with no dust. Will set dust species via params arguments and assume an MRN size distribution, if GALSF_ISMDUSTCHEM_MODEL is active
# --------------------
# ----- MPI & Parallel-FFTW De-Bugging
#DOUBLEPRECISION_FFTW # FFTW in double precision to match libraries
Expand All @@ -591,6 +591,22 @@
#ALLOW_IMBALANCED_GASPARTICLELOAD # increases All.MaxPartGas to All.MaxPart: can allow better load-balancing in some cases, but uses more memory. But use me if you run into errors where it can't fit the domain (where you would increase PartAllocFac, but can't for some reason)
####################################################################################################

############################################################################################################################-
#------------------ ISM Dust Chemical Evolution Models (follow growth, destruction, and size evolution of different grain species)
#----------------- Users of any of these modules should cite Choban et al., 2022/25 for the methods/implementation in GIZMO and FIRE
############################################################################################################################-
#GALSF_ISMDUSTCHEM_MODEL=(1+2) #- enable live dust evolution model (value deteremines the dust species tracked). Use GALSF_ISMDUSTCHEM_SILICATE_COMPOSITION to set the silicate composition.
#- model = 1: Track silicates and carbonaceous dust.
#- model = 2: Track metallic iron dust.
#- model = 4: Track oxygen bearing dust species which is a simple match to observations of MW oxygen depletion.
#- model = 8: Track metallic iron nanoparticles with set fraction assumed to be locked in silicate dust as inclusions based on Zhukovska+(2018). Requires GALSF_ISMDUSTCHEM_MODEL=2.
#GALSF_ISMDUSTCHEM_SILICATE_COMPOSITION=(1+2+8) #- set the silicate dust chemical composition. This changes the production, growth, and destruction rates of silicate dust, and the max depletions of Mg, Fe, Si, and O in the gas phase.
#- model = 1 (default): olivine-pyroxene mix [(Fe_0.571 Mg_1.06) Si O_3.63]
#- model = 2: add 2 extra O atoms to better match O depletions.
#- model = 4: add 1 extra Fe atom to better match Fe depletions.
#- model = 8: remove all Fe. Use with additional metallic iron species to avoid Fe limiting silicate growth.
#GALSF_ISMDUSTCHEM_GRAINSIZEEVO=16 #- enable grain size evolution model w/ N number of logarithmically spaced bins (must also turn on GALSF_ISMDUSTCHEM_MODEL= 1 or (1 + 2) only and GALSF_ISMDUSTCHEM_SILICATE_COMPOSITION)
############################################################################################################################-



Expand All @@ -615,49 +631,4 @@
#USE_TIMESTEP_DILATION_FOR_ZOOMS #- enable time dilation modules, need to customize for applications, cannot be simply generically turned on without coding how they will work
#DILATION_FOR_STELLAR_KINEMATICS_ONLY #- special version of time dilation designed for stellar kinematics in e.g. dense star clusters or galaxy centers
#SINK_RIAF_SUBEDDINGTON_MODEL=(0.01) #- enable an arbitrary modular variation in the radiative efficiency of BHs as a function of eddington ratio or other particle properties, with the critical transition to the jet mode at this eddington ratio (defined in terms of mdot/mdot_crit)
####################################################################################################-

############################################################################################################################-
#------------------ ISM Dust Chemical Evolution Models (follow growth, destruction, and size evolution of different grain types)
#----------------- Users of any of these modules should cite Choban et al., 2022/25 for the methods/implementation in GIZMO and FIRE
############################################################################################################################-
#GALSF_ISMDUSTCHEM_MODEL=(2+4+8) #- enable live dust evolution model (must select either elemental or species or other model codes as well)
#- model = 1: "dust by element" dust evolution model based off Bekki(2013)/McKinnon+(2016). Track generalized silicates and carbonaceous dust.
#- model = 2: "dust by species" dust evolution model based off Zhukovska+(2008/2016/2018). Tracks silicates (set composition), carbonaceous, SiC, and metallic iron dust along with optional iron nanoparticles and/or O reservoir dust species.
#- model = 4: additional metallic iron dust nano-particles with set fraction assumed to be locked in silicate dust as inclusions based on Zhukovska+(2018)
#- model = 8: additional oxygen bearing dust species which is a simple match to observations of MW oxygen depletion since they cannot be explained with purely silicate dust
#- model = 16: modified "dust by species" model to be used with GALSF_ISMDUSTCHEM_GRAINSIZEEVO. Tracks size evolution of silicates (set composition), carbonaceous, and metallic iron
#- model = 32: modified "dust by species" model to be used with GALSF_ISMDUSTCHEM_GRAINSIZEEVO. Tracks size evolution of silicates w/ extra O and Fe (set composition) and carbonaceous
#GALSF_ISMDUSTCHEM_PASSIVE #- decouples dust evolution from dust physics, chemisty, and feedback. Dust will evolve passively, with any physics or chemistry involving dust using constant, preset values (typically D/Z=0.4)
# Options for grain size evolution model
#GALSF_ISMDUSTCHEM_GRAINSIZEEVO=16 #- enable grain size evolution model w/ N number of logarithmically spaced bins (must also turn on GALSF_ISMDUSTCHEM_MODEL= 2 + (16 or 32) only)
#IO_GRAINSIZEEVO_BINS_IN_SNAPSHOT=2 # Allows you to restart from a snapshot with a SMALLER number of grain size bins only. Set to the number of bins in the snapshot.
#IO_DUST_NOT_IN_ICFILE # special flag needed if restarting from a snapshot (flag=2) with no dust. Will set dust species via params arguments and assume an MRN size distrubtion
#INIT_DUST_SIZES_LOGNORM # flag if the initalized dust population has a lognormal size distribution. Otherwise power-law MRN is assumed.
# Extra output options
#OUTPUT_GRAIN_BIN_SLOPES # Outputs the slopes of each grain size bin in addition to the total number and mass.
#OUTPUT_SHATCOAG_MASSRATE # Outputs the mass transfer rate from shattering and coagulation processes in each grain size bin.
#GALSF_ISMDUSTCHEM_SUPERSONIC_GRAIN_VELOCITY # Assumes supersonic turbulence for determining grain velocities. Default is Kolmogorov.
# Flags to turn off certain dust processes
#COAGULATION_DENSE_GAS_ENHANCEMENT_TURNOFF # Turnoff enhancement of gas density for sub-resolved coagulation.
#AGBDUST_TURNOFF
#SNEDUST_TURNOFF
#DUSTDIFFUSION_TURNOFF
#DUSTSPUTTERING_TURNOFF
#DUSTACCRETION_TURNOFF
#COULOMB_ENHANCEMENT_TURNOFF
#DUSTSNEDEST_TURNOFF
#DUSTCOAGULATION_TURNOFF
#DUSTSHATTERING_TURNOFF
#DUSTPHOTODESTRUCTION_TURNON # Not included in fiducial model
# Options below are for testing the integration of dust evolution with all the dust physics included in FIRE
#PHOTOELECTRIC_TURNOFF
#MOLECULARFRACTION_TURNOFF
#RADIATIONTRANSPORT_TURNOFF # This will also affect the dust temperature calculations in FIRE-3 since these are determined from rad transport and the optically thick heating which uses rt kappa
#METALLINECOOLING_TURNOFF
#LOWTEMP_TURNOFF
#FREEELECTRON_TURNOFF
#HII_TURNOFF
#HIGHTTEMP_TURNOFF
############################################################################################################################-

####################################################################################################-
Loading