Why
When you declare a diagnostic block (ElectromagDiagnostics, FluidDiagnostics, etc.) with write_timestamps, that's already the user's intent: "write this at these times". Letting users to set auto_dump=False will, despite expressing the need for diagnostics dumps at specific timestamps, force them to call dump() themselves from python to actually get their diagnostics written. That's weird, why would one ever want to set that to false? In particular when the logic of wether the current simulation timestamp has reached a dump timestamp is controlled in cpp anyway... I feel there is no added value to call dump() by oneself.
My understanding is that one would want to set auto_dump to False only to not have the post-init/pre-first-advance dump written.... but wanting that and getting all subsequent diags bypassed if not calling dump() manually appears as a unwanted side effect.
What
maybe calling dump() in run() should always be the case and the parameter could be renamed to something like force_init_dump=True (default) or skip_init_dump=False (default) or something, to match the real use case of that param
Ideas on how (optional)
No response
Alternatives considered
No response
Additional context
No response
Why
When you declare a diagnostic block (ElectromagDiagnostics, FluidDiagnostics, etc.) with write_timestamps, that's already the user's intent: "write this at these times". Letting users to set
auto_dump=Falsewill, despite expressing the need for diagnostics dumps at specific timestamps, force them to call dump() themselves from python to actually get their diagnostics written. That's weird, why would one ever want to set that to false? In particular when the logic of wether the current simulation timestamp has reached a dump timestamp is controlled in cpp anyway... I feel there is no added value to call dump() by oneself.My understanding is that one would want to set auto_dump to False only to not have the post-init/pre-first-advance dump written.... but wanting that and getting all subsequent diags bypassed if not calling dump() manually appears as a unwanted side effect.
What
maybe calling dump() in run() should always be the case and the parameter could be renamed to something like force_init_dump=True (default) or skip_init_dump=False (default) or something, to match the real use case of that param
Ideas on how (optional)
No response
Alternatives considered
No response
Additional context
No response