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

Using adaptivity results in a new output file for every time step #1755

Closed
bwspenc opened this issue Feb 14, 2014 · 4 comments
Closed

Using adaptivity results in a new output file for every time step #1755

bwspenc opened this issue Feb 14, 2014 · 4 comments

Comments

@bwspenc
Copy link
Contributor

bwspenc commented Feb 14, 2014

Currently, if you have adaptivity turned on and are using exodus output (I'm not positive about other types of output, but I suspect they also behave like this), you get a new file generated for every single output step, even if the mesh hasn't changed.

I have attached a patch that only calls meshChanged() on the output object when adaptivity has actually changed the mesh. That gives you a series of output steps on the file for a given mesh configuration, and then generates a new file when the mesh changes. If you're just doing initial adaptivity, you would just get one file instead of a series of files.

The patch isn't totally ready to commit -- I haven't cleaned up the affected tests. I just wanted to run the concept by the Moose developers to see if there is agreement that this is how it should be done.

@bwspenc bwspenc closed this as completed Feb 14, 2014
@jwpeterson
Copy link
Member

Some comments:

  1. Won't this cause confusion to users since they can obtain essentially arbitrary numbers of output files? For example, I do 100 adaptive timesteps and get 12 output files (since the mesh only changed 12 out of 100 times), my first reaction will be: what happened to the rest of my output?
  2. Does this work well in Paraview and Ensight? For instance can you still make animations within a single file and/or across multiple files?
  3. Are there situations where the non-displaced mesh doesn't change during a call to refine_and_coarsen_elements() but it does change on the displaced mesh? I see you've done
meshChanged |= _displaced_mesh_refinement->refine_and_coarsen_elements();

but what does it even mean if these two meshes get out of sync?

@bwspenc
Copy link
Contributor Author

bwspenc commented Feb 14, 2014

  1. I guess it's just a matter of what you are expecting the code to do. I personally think it's more intuitive for the code to only generate a new file every time the mesh changes, and have a minimal number of files. Ideally, it would be nice to have an output format that could have a changing mesh, and only generate a single output file.
  2. Yes, Paraview and Ensight work fine with this kind of output. This is the convention that SIERRA uses.
  3. I had the same question. It seems to me that they should always change together. It would probably be better to throw an error if they don't both do the same thing.

@friedmud
Copy link
Contributor

John,

Can you go ahead and apply this patch and test it and modify all the tests that need to be modified? This is really the way things should have been working all along.

@bwspenc
Copy link
Contributor Author

bwspenc commented Feb 14, 2014

In a3f760f:

Generate new output file only if mesh has changed

Previously, once adaptivity happened, a new output file would get
generated for every single output step.  With this change, new files
are created only if the mesh changes.

closes #1755

permcody pushed a commit that referenced this issue Feb 14, 2014
Previously, once adaptivity happened, a new output file would get
generated for every single output step.  With this change, new files
are created only if the mesh changes.

closes #1755

r17576
permcody pushed a commit that referenced this issue Mar 7, 2014
Previously, once adaptivity happened, a new output file would get
generated for every single output step.  With this change, new files
are created only if the mesh changes.

closes #1755

r17576
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants