-
Notifications
You must be signed in to change notification settings - Fork 475
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
Tribol contact patch test miniapp [tribol-miniapp] #4054
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ebchin - Looks great. I mainly reviewed for clarity with some minor suggestions along those lines throughout.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am able to install tribol
and axom
and run the miniapp succesfully
config/defaults.mk
Outdated
TRIBOL_OPT = -I$(TRIBOL_DIR)/include -I$(AXOM_DIR)/include -I$(CONDUIT_DIR)/include/conduit | ||
TRIBOL_LIB = -L$(TRIBOL_DIR)/lib -ltribol -lredecomp -L$(AXOM_DIR)/lib -laxom_mint\ | ||
-laxom_sidre -laxom_slam -laxom_slic -laxom_core -L$(CONDUIT_DIR)/lib -lconduit\ | ||
-lconduit_blueprint -lconduit_blueprint_mpi -lconduit_relay -lconduit_relay_mpi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The conduit
libs are optional, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, conduit isn't needed. It was installed by default by the spack/uberenv build system, but the updated instructions no longer use it (see latest commits).
tribol::updateMfemParallelDecomposition(); | ||
|
||
// Save data in VisIt format | ||
mfem::VisItDataCollection visit_vol_dc("ContactPatchTestVolume", &mesh); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These files have to be deleted with make clean
in the miniapp make file and currently they are not
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for catching this. It's fixed!
Please merge in
See https://github.com/orgs/mfem/discussions/4207 for more details and/or ask @dylan-copeland for help. |
@psocratis @jwang125 @thartland Thanks for testing while I was out on leave! I updated the build instructions to get rid of the spack/uberenv build system, which will hopefully make installation easier across different machines. I've tested locally on Ubuntu and a couple of TOSS 4 LC machines. Let me know if you run into any issues. @tzanio I tested building with single precision, but I think Tribol will need additional changes for single precision support. Beyond changing data types, there are many geometric tolerances in the algorithms that will need to be revisited for single precision. @srwopschall likely has a better idea of the changes required. For now, I will make the miniapp require double precision. |
That's okay for now, it will be a gradual process to make sure all MFEM integrations support single precision correctly. |
@ebchin, I am waiting on your 🟢 to merge this in |
It should be good to go now @tzanio |
Merged in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much, @ebchin !
This PR adds a contact patch test miniapp using the Tribol interface physics library. Constraints are formulated using the mortar method and enforcement is via Lagrange multipliers.
Besides the miniapp source code, this PR also adds a
README.md
for installing and using the miniapp and changes to the MFEM GNU Make and CMake build systems to support Tribol. Tribol supports MFEM data structures natively and therefore has a dependency on MFEM. MFEM's dependency on Tribol is only through the new miniapp. This dependency relationship mirrors ParELAG and Tribol's TPL integration follows ParELAG's.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
.