pylith
pylith copied to clipboard
Bug in projection of Lagrange multiplier from solution to fault with quadrature order 2
Describe the bug
Projection of the Lagrange mutliplier field from the solution to the fault fails when the quadrature order is 2. It fails with the same error message whether the basis order is 1 or the basis order is 2 as long as the quadrature order is 2.
This problem appears to be associated with a fault that has buried edges in 3D.
To Reproduce
PETSc branch: knepley/pylith-4.0
PyLith fork: https://github.com/baagaard-usgs/pylith.git
PyLith branch: ``
cd tests/fullscale/linearelasticity/faults-3d-buried
pylith uniformslip.cfg --problem.defaults.quadrature_order=2
Error message
[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------
[0]PETSC ERROR: Argument out of range
[0]PETSC ERROR: Field 0 Side 0 Point number 4 should be in [0, 3)
-- snip --
[0]PETSC ERROR: Petsc Development GIT revision: v3.20.3-463-g882cb04d3cf GIT Date: 2024-01-19 22:17:32 -0500
-- snip --
[0]PETSC ERROR: #1 PetscFEEvaluateFieldJets_Hybrid_Internal() at /Users/baagaard/software/unix/petsc-dev/src/dm/dt/fe/interface/fe.c:2298
[0]PETSC ERROR: #2 DMProjectPoint_Field_Private() at /Users/baagaard/software/unix/petsc-dev/src/dm/impls/plex/plexproject.c:297
[0]PETSC ERROR: #3 DMProjectPoint_Private() at /Users/baagaard/software/unix/petsc-dev/src/dm/impls/plex/plexproject.c:485
[0]PETSC ERROR: #4 DMProjectLocal_Generic_Plex() at /Users/baagaard/software/unix/petsc-dev/src/dm/impls/plex/plexproject.c:970
[0]PETSC ERROR: #5 DMProjectFieldLabelLocal_Plex() at /Users/baagaard/software/unix/petsc-dev/src/dm/impls/plex/plexproject.c:1053
[0]PETSC ERROR: #6 DMProjectFieldLabelLocal() at /Users/baagaard/software/unix/petsc-dev/src/dm/interface/dm.c:8295
[0]PETSC ERROR: #7 DMProjectFieldLabel() at /Users/baagaard/software/unix/petsc-dev/src/dm/interface/dm.c:8367
[0]PETSC ERROR: #8 void pylith::meshio::OutputSubfield::projectWithLabel(const PetscVec &)() at /Users/baagaard/src/cig/pylith/libsrc/pylith/meshio/OutputSubfield.cc:213
I need to use the symmetries in the Section, which show how dual space basis vectors transform into each other under symmetries of the element, rather than the face quadrature.
@baagaard-usgs Can you try knepley/fix-plex-project-sym in PETSc? This seems to work for me.
Fixed in PETSc branch knepley/fix-plex-project-sym