Hi Roland,
Thank you very much for your message! I had seen the shorter version of your reply in the minutes indeed, but thank you for giving a more detailed answer!
When I come back from the holiday season, I will gladly file the bug report. I would also say that this should be straightforward to fix, at least about initializing the variable to 0 by default.
The consistency between setting the parameter Coordinates::store_volume_form=yes and having the code still set Coordinates::volume_form_state = 0 depending on the actual implementation of the volume form -- if it's even needed -- might be a different question though. For instance, I think that technically the system Thornburg04nc should have the volume form computed, but it doesn't. I suppose that the consistency could be handled at ParamCheck for example. Please tell me if that would require another subsequent bug report or not.
I would say that this renders the usage of CCTK_VarDataPtr on Coordinates::volume_form still insufficient because its storage relies on the parameter value, although I get your point about abusing poisoning there. However (from the top of my head), I remember that when I used poisoning with Llama (and MLBSSN), the norm2 of the Hamiltonian constraint was NaN, so I had to turn it off.
Let me know if you'd like me to help on the implementation. I'm not sure about how the process goes and what is the corresponding involvement, so I don't want to make promises, but I'd happy to contribute to these (hopefully easy) fixes, if it saves you more time than it wastes.
Best wishes for the holiday season!
Jordan