danieljprice / phantom

Phantom Smoothed Particle Hydrodynamics and Magnetohydrodynamics code
https://phantomsph.github.io
Other
103 stars 230 forks source link

(#543) MAXP should not be hardwired in the SETUP block #544

Closed danieljprice closed 4 months ago

danieljprice commented 4 months ago

Type of PR: Bug fix

Description: Fix to #543 and #465.

For #543, the problem is that MAXP should no longer be hardwired in the compile-time configuration block. Instead, it can be specified at runtime using

./phantomsetup star --maxp=1e8 

In phantom the memory allocation is automatic as the number of particles is read from the dump file header. This should be ideally be done automatically also in phantomsetup but this is currently not the case, as memory allocation is done before entering the setpart routine

For #465 the issue was that the conserved variables were not initialised before calling derivs. This was working in previous code versions because a call to prim2consall was inserted directly into the derivs routine. This was commented out because it broke the phantomNR implementation. Indeed, we should not be doing prim2cons there because this overrides the input conservative variables. Instead, I have now inserted a call to prim2consall inside get_derivs_global so that when get_derivs_global is called during relax_star the metric and conserved quantities are computed correctly.

Testing:

~/phantom/scripts/writemake.sh grstar > Makefile
make setup
make
./phantomsetup star

Did you run the bots? no

Did you update relevant documentation in the docs directory? no