Skip to content

Draft: Missing getters/setters for Gizmo

Bert Vandenbroucke requested to merge more-gizmo-fixes into master

Some of the getters and setters for the Gizmo schemes have an empty implementation that throws an error when they are called:

  • hydro_get_comoving_internal_energy_dt()
  • hydro_get_physical_internal_energy_dt()
  • hydro_set_comoving_internal_energy_dt()
  • hydro_set_physical_internal_energy_dt()
  • hydro_set_physical_entropy()
  • hydro_set_physical_internal_energy()
  • hydro_set_drifted_physical_internal_energy()

This merge requests implements these functions. I am not sure how to implement hydro_set_physical_internal_energy_dt() at this point, since Gizmo does not use a du/dt variable. The implementation in master has a similar variable, but we are already trying to get rid of that in !1411 (merged) so it would be unwise to implement it based on that.

In the current new implementation, the equivalent getter, hydro_get_physical_internal_energy_dt(), uses the Euler equations and the gradients of the primitive variables to compute du/dt (this is also done in the new conservative drift), although this has no direct link with the du/dt that is used to update the energy variable during the flux exchange. So I don't know if that is a very good implementation. I think it would help to know what these functions are actually used for, so that we can design a Gizmo compatible approach that achieves the same.

Implement #517 (closed) and #636 (closed).

Edited by Matthieu Schaller

Merge request reports