sandialabs / omega_h

Simplex mesh adaptivity for HPC
Other
114 stars 54 forks source link

Questions on treatment of marked boundaries #320

Closed wortiz closed 3 years ago

wortiz commented 5 years ago

I have two example meshes with a sideset and nodeset either on the top of the domain or left side of the domain

ssexamples

If I refine a region with a prescribed size and slowly move that region upwards eventually with the top sideset that does not intersect I can take a number of steps without issue, but with the sideset being a part of the refined region it appears to not be coarsened and stalls due to maximum length

leftssvstopss

Is this lack of coarsening expected behavior? Are there suggestions to avoid the adaptation stalling due to maximum length here?

I'm still looking at how to use the library so I could be doing something completely wrong.

ibaned commented 5 years ago

Sidesets should not add severe restrictions to the ability to adapt. It is possible that adaptation is stalling for other reasons. My first suggestion would be to ensure that the size field has gone through gradation control (see Omega_h::limit_metric_gradation).

wortiz commented 5 years ago

Thanks for the reply. I was able to avoid adaptation convergence issues by lowering the max_gradation_rate, I did have it limited before just too large of a value it appears.

Two followup questions:

  1. About the sidesets, is it expected that they tend to avoid coarsening (like in the left side in the left mesh in the image above, or below)?

  2. Are exodus meshes expected to have all boundaries marked I noticed in the above tests that some of the unmarked edges would lose their corners:

corner-loss-arrow

ibaned commented 5 years ago
  1. Sidesets should not inherently affect the size. One possibility I can think of is that your left sideset is not one sideset for all sides, but rather one sideset for each side. In that case, the mesh can't coarsen because it isn't allowed to destroy sidesets.

  2. Only sidesets and nodesets that are explicitly present in the Exodus file will be reflected. All boundaries that aren't part of a sideset will just be lumped into a big continuous surface, hence the corner that you have gets rounded because there is no distinction between the bottom and right sides.

wortiz commented 5 years ago

Thanks, I tried with both a single sideset for all sides and one for each side and both seem to behave very closely avoiding changes to the majority of the side elements.

I've attached my test files if you want to look at them fixed_size_test.tar.gz

mesh

ztdepztdep commented 5 years ago

Thanks, I tried with both a single sideset for all sides and one for each side and both seem to behave very closely avoiding changes to the majority of the side elements.

I've attached my test files if you want to look at them fixed_size_test.tar.gz

mesh

Dear friends: I am studying the package. Could you please give me some help. I want to use it as my FVM code . But could you please give me some suggestions about:

  1. how to set the mesh mannually with coords and connection infors.
  2. how to obtain the element index of the ghosts. Regards