Unable to build with EAGLE cooling
mmlinford opened this issue · 4 comments
Hello!
I was trying to run the SmallCosmoVolume_cooling
example and got a message that cooling was not enabled when I compiled SWIFT, so I tried to do that with the EAGLE
option (which I chose arbitrarily because I don't yet know what I'm doing 😄)
When I tried to configure with
./configure --with-cooling=EAGLE
and did make
, I got the below errors
(giant console output)
in file included from cooling/EAGLE/cooling.c:36:0:
cooling/EAGLE/cooling_rates.h: In function ‘abundance_ratio_to_solar’:
cooling/EAGLE/cooling_rates.h:58:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H] *
^
cooling/EAGLE/cooling_rates.h:58:54: error: ‘chemistry_element_H’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H] *
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:58:54: note: each undeclared identifier is reported only once for each function it appears in
cooling/EAGLE/cooling_rates.h:62:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He] *
^
cooling/EAGLE/cooling_rates.h:62:54: error: ‘chemistry_element_He’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He] *
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:66:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_C] *
^
cooling/EAGLE/cooling_rates.h:66:54: error: ‘chemistry_element_C’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_C] *
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:70:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_N] *
^
cooling/EAGLE/cooling_rates.h:70:54: error: ‘chemistry_element_N’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_N] *
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:74:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_O] *
^
cooling/EAGLE/cooling_rates.h:74:54: error: ‘chemistry_element_O’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_O] *
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:78:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Ne] *
^
cooling/EAGLE/cooling_rates.h:78:54: error: ‘chemistry_element_Ne’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Ne] *
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:82:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Mg] *
^
cooling/EAGLE/cooling_rates.h:82:54: error: ‘chemistry_element_Mg’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Mg] *
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:86:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] *
^
cooling/EAGLE/cooling_rates.h:86:54: error: ‘chemistry_element_Si’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] *
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling_rates.h:91:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] *
^
cooling/EAGLE/cooling_rates.h:97:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] *
^
cooling/EAGLE/cooling_rates.h:102:24: error: ‘const struct chemistry_part_data’ has no member named ‘metal_mass_fraction’
p->chemistry_data.metal_mass_fraction[chemistry_element_Fe] *
^
cooling/EAGLE/cooling_rates.h:102:45: error: ‘chemistry_element_Fe’ undeclared (first use in this function)
p->chemistry_data.metal_mass_fraction[chemistry_element_Fe] *
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling.c: In function ‘newton_iter’:
cooling/EAGLE/cooling.c:234:24: error: ‘struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^
cooling/EAGLE/cooling.c:234:54: error: ‘chemistry_element_H’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling.c: In function ‘cooling_cool_part’:
cooling/EAGLE/cooling.c:527:24: error: ‘struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^
cooling/EAGLE/cooling.c:527:54: error: ‘chemistry_element_H’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling.c:529:24: error: ‘struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He];
^
cooling/EAGLE/cooling.c:529:54: error: ‘chemistry_element_He’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He];
^~~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling.c: In function ‘cooling_get_temperature’:
cooling/EAGLE/cooling.c:749:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^
cooling/EAGLE/cooling.c:749:54: error: ‘chemistry_element_H’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H];
^~~~~~~~~~~~~~~~~~~
cooling/EAGLE/cooling.c:751:24: error: ‘const struct chemistry_part_data’ has no member named ‘smoothed_metal_mass_fraction’
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He];
^
cooling/EAGLE/cooling.c:751:54: error: ‘chemistry_element_He’ undeclared (first use in this function)
p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He];
I did not get errors compiling SWIFT when I tried with const-lambda
.
Hi, you will need to configure —with-chemistry=eagle and have the cooling tables in your run directory (see examples/Cooling/getEAGLECoolingTables.sh, or at least its named something like that).
Wow, thanks for the fast response! I'll give that a try...
Yup, compiled fine and was able to start running that example.
I wonder if there's a way to make the configuration automatically enable EAGLE chemistry when EAGLE cooling is enabled (I'm no as familiar with automake)?
We could but usually we’d just have people compile with —with-subgrid=eagle, which includes the full galaxy formation model (star formation, equation of state, black holes when we add them...)