Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change of solution variables for restart file (and paraview) #84

Open
dreamer2368 opened this issue Dec 17, 2021 · 4 comments
Open

Change of solution variables for restart file (and paraview) #84

dreamer2368 opened this issue Dec 17, 2021 · 4 comments
Labels
enhancement New feature or request io

Comments

@dreamer2368
Copy link
Contributor

Currently, void M2ulPhyS::initSolutionAndVisualizationVectors() is saving primitive variables (rho, u, v, w, p) in restart file and visualization.
As a result, reading a restart file requires conversion from primitive to conserved variables in void M2ulPhyS::restart_files_hdf5(string mode) and void M2ulPhyS::read_restart_files().
Can we just store conserved (or solution) variables, since this conversion will change as we add more physics into it. Adding multiple species changes pressure evaluation. Adding two temperature will also change it again. And we will have to fix this part every time we need to add physics. Keeping this will be inefficient not only for computation but also for code development.

If primitive variables are something useful to see, It would be good to include them as additional variables for visualization, but not solution variables.

@dreamer2368 dreamer2368 added enhancement New feature or request io labels Dec 17, 2021
@marc-85
Copy link
Contributor

marc-85 commented Dec 17, 2021

Primitive variables are definitely useful variables since we understand flow in terms of pressure, velocity and density. They are also quantities that people doing experiments usually measure. So I have a strong preference for them to stay in the output.

I do agree, however, that restart is going to be more challenging in future models so maybe we can also output primitive variables.

@koomie
Copy link
Contributor

koomie commented Dec 17, 2021

I agree with @marc-85. We almost certainly need to continue to maintain a way to visualize/interrogate primitive variables for validation efforts. If we were to only dump conserved quantities, we would then have to move that conversion to a separate post-processing step which is probably not what want to have to do (and then introduces an additional place to have model mismatch). You could dump both sets of quantities, but that inflates the size of the restart files and doesn't reduce the need to convert to primitive variables.

Nonetheless, we will need/want a much more generic routine that can convert between primitive/state variables and this should be managed by a forthcoming general gas mixture class which knows the underlying modeling being used (ideal gas, 2T, etc).

@dreamer2368
Copy link
Contributor Author

dreamer2368 commented Dec 17, 2021

I agree that we need a generic routine for primitive<->state variable conversion and use it for io.

One question is, should the restart file always use the same variables as for visualization? If this is something limited by mfem capability, then I guess there is nothing we can do and we should keep the conversion to primitive variables.

@koomie
Copy link
Contributor

koomie commented Dec 17, 2021

One question is, should the restart file always use the same variables as for visualization? If this is something limited by mfem capability, then I guess there is nothing we can do and we should keep the conversion to primitive variables.

The restart capability is of our own creation so we can do what we want and save want we want here. But as mentioned above, we need to be able to output primitive variables at some point anyway. Presently we are writing things twice (one for the paraview output and one for HDF5). I'd like to get away from that and do visualization directly from the .h5 files at some point. If we absolutely had to write both primitive/conserved quantities to .h5, we certainly can, but it doesn't seem to really be necessary to me. After all, if a restart can't work with primitive or conserved variables, that means there is a bug-a-boo converting between the two variants.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request io
Projects
None yet
Development

No branches or pull requests

3 participants