SCOREC / core

parallel finite element unstructured meshes
Other
181 stars 63 forks source link

Add MeshCAP implementation of Mesh2 to interface with Capstone #400

Closed bobpaw closed 10 months ago

bobpaw commented 11 months ago

Add MeshCAP implementation of Mesh2 to interface with Capstone CRE meshes.

Add Mesh2 wrapper for Capstone CRE meshes Adds capstone_cli for test meshes Update scorec packages to latest and add capstone requirements

onkarsahni commented 11 months ago

@cwsmith We have some mesh-adaptation tests based on surface meshes (in .cre format). Where and how should we add those? I assume we do not want to put them in the "core" repo. Also, note we cannot do mesh-verify on them as of now (due to being only surface mesh for a 3D domain). We do have output mesh for each case, however, a striaght comparison to output mesh is not a good idea (it will not be exact same output mesh if we were to change compilers for example) and so question is what should be 'assert' equivalent for this, compare mesh stats between reference stats and stats on adapted/output mesh, with some tolerance value.

cwsmith commented 11 months ago

@onkarsahni Sounds good.

The input .cre files should be added to the pumi-meshes repo (in an appropriately named subdir). Please create a PR for adding these.

Any check for correctness on the output (adapted mesh stats, etc.) would be fine with me.

onkarsahni commented 11 months ago

@bobpaw I can think of three items: 1) add .cre meshes to repo Cameron indicated (need a PR for that), 2) add test code (e.g., analytic anisotropic sizefield) in ctest, and 3) for now add some assert statements which will look like: abs(numVerts-numVertsRef)<0.05numVertsRef and abs(numElms-numElmsRef)<0.05numElmsRef. numVertsRef and numElmsRef will be hard-coded and 0.05*numVertsRef implies different is within 5% (relative tolerance). numVerts and numElms are obtained for adapted mesh. One can also add similar assert statements with relative tolerance on mesh edge lengths, e.g., for minimum, average and maximum values.

Please proceed with these. Let me know if any questions, and keep us posted.

bobpaw commented 11 months ago

@onkarsahni Sounds good.

The input .cre files should be added to the pumi-meshes repo (in an appropriately named subdir). Please create a PR for adding these.

Any check for correctness on the output (adapted mesh stats, etc.) would be fine with me.

Hi @cwsmith, I've made a local branch but need push access to pumi-meshes. Or I can make a PR from a fork.

cwsmith commented 11 months ago

@bobpaw A PR from the fork is fine. Thank you.

bobpaw commented 10 months ago

@cwsmith, discussed this PR with Prof. Sahni. Since all tests are passing for regular core and only a few tests are failing when ENABLE_CAPSTONE=True, I think this PR should be merged and a issues should be opened to add extra capstone test cases and sort out Bezier interaction. Moving on will give us better resources (i.e. ability to convert meshes from mds->cre) to come back and solve these issues. What are your thoughts?

cwsmith commented 10 months ago

@bobpaw That is OK with me. For the tests that pass, have they been run through valgrind to check for memory leaks or errors?

bobpaw commented 10 months ago

@cwsmith it is now!

cwsmith commented 10 months ago

@bobpaw Thank you. I approved the PR. If the 'merge pull request' button isn't grayed out, please go ahead and merge when you are ready. Otherwise, let me know if you are done and I'll click merge.