Closed baagaard-usgs closed 4 years ago
Ditto for residual check.
This is the error and stack trace I get for the discretization failure.I get the same stack for the residual check, which we would really like. Isn't there someway we can get these checks to work for the case of a Lagrange multiplier field?
[0]PETSC ERROR: Null argument, when expecting valid pointer
[0]PETSC ERROR: Null Object: Parameter # 1
[0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting.
[0]PETSC ERROR: Petsc Development GIT revision: v3.11.2-824-g5f7a1134a9 GIT Date: 2019-05-30 08:47:24 -0400
[0]PETSC ERROR: /scratch/brad/build/cig/gcc-7.3.0/pylith-develop/mmstests/faults/.libs/test_faultkin on a arch-gcc-7.3.0_debug named arling by brad Fri May 31 14:45:33 2019
[0]PETSC ERROR: Configure options --PETSC_ARCH=arch-gcc-7.3.0_debug --with-debugging=1 --with-clanguage=c --with-mpi-compilers=1 --with-shared-libraries=1 --with-64-bit-points=1 --with-large-file-io=1 --CC=mpicc --CXX=mpicxx --FC= --F77= LDFLAGS= --with-blaslapack-lib="-L/usr/lib/atlas-base -llapack_atlas -llapack -latlas -lblas" --with-lgrind=0 --with-c2html=0 --with-chaco=1 --download-chaco=1 --download-parmetis=1 --download-metis=1 --with-ml=1 --download-ml=1 --download-superlu --with-hdf5=1 --with-zlib=1 --with-hdf5-dir=/tools/common/hdf5-1.10.2/gcc-7.3.0 --download-triangle --with-fc=0
[0]PETSC ERROR: #1 PetscObjectGetClassId() line 26 in /tools/common/petsc-dev/src/sys/objects/gcookie.c
[0]PETSC ERROR: #2 PetscDSSetUp() line 366 in /tools/common/petsc-dev/src/dm/dt/interface/dtds.c
[0]PETSC ERROR: #3 PetscDSGetComponents() line 2485 in /tools/common/petsc-dev/src/dm/dt/interface/dtds.c
[0]PETSC ERROR: #4 DMProjectLocal_Generic_Plex() line 544 in /tools/common/petsc-dev/src/dm/impls/plex/plexproject.c
[0]PETSC ERROR: #5 DMProjectFunctionLocal_Plex() line 776 in /tools/common/petsc-dev/src/dm/impls/plex/plexproject.c
[0]PETSC ERROR: #6 DMProjectFunctionLocal() line 7532 in /tools/common/petsc-dev/src/dm/interface/dm.c
[0]PETSC ERROR: #7 DMProjectFunction() line 7489 in /tools/common/petsc-dev/src/dm/interface/dm.c
[0]PETSC ERROR: #8 DMSNESCheckDiscretization() line 2744 in /tools/common/petsc-dev/src/snes/utils/dmplexsnes.c
I think you are correct that I might have misinterpreted the error. However, even if we fix this error, the residual will not really be right because it will only calculate over the normals cells by default. You have to force it to loop over hybrid cells right now. We need to think through what we actually want here.
We need to check this again and update the error message now that we should have the DS use for faults correct.
The stack trace is still the same. I problem appears to be in setting up the solution field and the kernels for the exact solution.
I suspect that the kernels for the exact solution for the Lagrange multiplier subfield are not being set correctly (it is using the DS from the solution field domain mesh in tests/mmstests/faults/TestFaultKin2D_RigidBlockStatic.cc
). We should first check that the solution field discretization is correct, in particular the Lagrange multiplier subfield.
PETSc branch: knepley/pylith PyLith branch: baagaard/feature-integrator-interface
DMSNESCheckDiscretization()
fails inDMProjectLocal_Generic_Plex()
at line 477 when it is trying to get the discretization information for the Lagrange multiplier field.The prob retrieved using
DMGetDS()
(which is dm->probs[0]) correctly hasIt tries to use the NULL value at
prob->disc[1]
for field 1 (Lagrange multiplier field).We have a separate DS for the Lagrange multiplier field stored in dm->probs[1].
Test case