pylith icon indicating copy to clipboard operation
pylith copied to clipboard

Bug in projection of Lagrange multiplier from solution to fault with quadrature order 2

Open baagaard-usgs opened this issue 1 year ago • 1 comments

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

baagaard-usgs avatar Jan 29 '24 03:01 baagaard-usgs

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.

knepley avatar Jan 29 '24 20:01 knepley

@baagaard-usgs Can you try knepley/fix-plex-project-sym in PETSc? This seems to work for me.

knepley avatar May 17 '24 15:05 knepley

Fixed in PETSc branch knepley/fix-plex-project-sym

baagaard-usgs avatar May 18 '24 02:05 baagaard-usgs