-
Notifications
You must be signed in to change notification settings - Fork 573
SubMesh for Nedelec and Raviart-Thomas Bases #3379
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
Conversation
|
The problem with invalid |
|
The problem with high order Nedelec triangles is caused an old friend. Nedelec basis functions associated with the interior of element faces are oriented with the reference triangle or quadrilateral. However, neighboring elements sharing a common face, or in this case neighboring meshes sharing a common face, may choose different orientations for their reference elements. This problem is resolved using data from the One possibility is to build a |
…by GetQuadOrientation
|
Merged in |
|
Re-merged in |
|
Re-merged in |
|
I see that all three new examples support the Lines 30 to 32 in f97a770
Lines 120 to 124 in f97a770
|
|
@mlstowell, can you please merge Also, do you want to make the above change suggested by @v-dobrev? |
# Conflicts: # examples/CMakeLists.txt # examples/makefile
|
Re-merged in |
This PR is studying the feasibility of adding support for Nedelec and Raviart-Thomas basis functions on SubMesh objects.
As a partial test of this new capability we add two new examples
ex34p.cppandex35p.cpp. Example 34 solves a magnetostatics problem where the current density is computed on a domain derivedSubMesh. Example 35 uses a port boundary condition to drive a wave equation in the full domain (this is a modified version ofex22p). The wave equation can use either H1, ND, or RT basis functions. The field used as the port boundary condition is computed as an eigenmode on aSubMeshobject which is defined using a subset of the boundary attributes. Four new unit tests are also added.This PR includes a significant redesign of the
DofTransformationclass although the resulting design should be backward compatible. The purpose of this redesign was to provide access to the underlying face transformations without tying them to a particularFiniteElementSpacesince we need to transform degrees of freedom between a parent mesh and a sub-mesh which have distinct finite element spaces.This PR also includes two new 2D meshes with non-trivial sets of boundary attributes which were used for testing. Although the test codes themselves do not appear as part of this PR I thought the meshes might be useful and/or interesting even without the tests (e.g. see

llnl-p3.mesh).PR Checklist
make style.CHANGELOG:CHANGELOGto group with other related features?INSTALL:makeorcmakehave a new target?.github.appveyor.yml.gitignore:make distclean; git statusshows any files that were generated from the source by the project (not an IDE) but we don't want to track in the repository.examples/makefile:SEQ_EXAMPLESandPAR_EXAMPLESvariables.cleantarget..gitignorefile.examples/CMakeLists.txt:ALL_EXE_SRCSvariable.THIS_TEST_OPTIONSis set correctly for the new example.doc/CodeDocumentation.dox.examples/pumi), list it indoc/CodeDocumentation.conf.insrc/examples.md.src/examples.mdandsrc/img.examples.md, list the example under the appropriate categories, add new categories if necessary.features.md.makefileandmakefilein corresponding miniapp directory..gitignorefile.CMakeLists.txtfile in theminiappsdirectory, if the new miniapp is in a new directory.CMakeLists.txtfile in the new miniapp directory.doc/CodeDocumentation.doxminiapps/nurbs), add it toMINIAPP_SUBDIRSin themakefile.miniapps/nurbs), list it indoc/CodeDocumentation.conf.insrc/meshing.mdandsrc/electromagnetics.mdfiles.src/examples.mdandsrc/img.features.md.mfem/webrepo.README(rare).doc/CodeDocumentation.dox(rare).make unittestto make sure all unit tests pass.tests/scripts.