-
Notifications
You must be signed in to change notification settings - Fork 516
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
SubMesh for Nedelec and Raviart-Thomas Bases #3379
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.cpp
andex35p.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 aSubMesh
object 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
DofTransformation
class 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 particularFiniteElementSpace
since 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
:CHANGELOG
to group with other related features?INSTALL
:make
orcmake
have a new target?.github
.appveyor.yml
.gitignore
:make distclean; git status
shows 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_EXAMPLES
andPAR_EXAMPLES
variables.clean
target..gitignore
file.examples/CMakeLists.txt
:ALL_EXE_SRCS
variable.THIS_TEST_OPTIONS
is set correctly for the new example.doc/CodeDocumentation.dox
.examples/pumi
), list it indoc/CodeDocumentation.conf.in
src/examples.md
.src/examples.md
andsrc/img
.examples.md
, list the example under the appropriate categories, add new categories if necessary.features.md
.makefile
andmakefile
in corresponding miniapp directory..gitignore
file.CMakeLists.txt
file in theminiapps
directory, if the new miniapp is in a new directory.CMakeLists.txt
file in the new miniapp directory.doc/CodeDocumentation.dox
miniapps/nurbs
), add it toMINIAPP_SUBDIRS
in themakefile
.miniapps/nurbs
), list it indoc/CodeDocumentation.conf.in
src/meshing.md
andsrc/electromagnetics.md
files.src/examples.md
andsrc/img
.features.md
.mfem/web
repo.README
(rare).doc/CodeDocumentation.dox
(rare).make unittest
to make sure all unit tests pass.tests/scripts
.