I have stumbled upon a Petsc error.
Out of my full mesh, I am trying to solve the heat transfer problem on selected volume numbers defined as reg. Apart from these volume numbers, the rest are not solving for the heat transfer. So T=Tinitial for the unused volume numbers.
While adding the selected volume numbers in int3d(Th1,reg, qfV=qfV1), I am getting a Petsc error:
Object is in wrong state
I think it is due to the fact that I am trying to solve in a selected volume numbers because if I remove this it works perfectly.
How to overcome this error?
I am attaching a test version of my problem in the attachment.
Thanks in advance for your help and time.
[1]PETSC ERROR: Object is in wrong state
[1]PETSC ERROR: Matrix is missing diagonal entry 31
Furthermore, if you look at the trace, you’ll see something like:
[1]PETSC ERROR: #1 MatILUFactorSymbolic_SeqAIJ() at /ccc/work/cont003/rndm/rndm/petsc/src/mat/impls/aij/seq/aijfact.c:1697
[1]PETSC ERROR: #2 MatILUFactorSymbolic() at /ccc/work/cont003/rndm/rndm/petsc/src/mat/interface/matrix.c:6942
[1]PETSC ERROR: #3 PCSetUp_ILU() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/pc/impls/factor/ilu/ilu.c:144
[1]PETSC ERROR: #4 PCSetUp() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/pc/interface/precon.c:1016
[1]PETSC ERROR: #5 KSPSetUp() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/ksp/interface/itfunc.c:406
[1]PETSC ERROR: #6 PCSetUpOnBlocks_BJacobi_Singleblock() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/pc/impls/bjacobi/bjacobi.c:617
[1]PETSC ERROR: #7 PCSetUpOnBlocks() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/pc/interface/precon.c:1047
[1]PETSC ERROR: #8 KSPSetUpOnBlocks() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/ksp/interface/itfunc.c:214
[1]PETSC ERROR: #9 KSPSolve_Private() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/ksp/interface/itfunc.c:851
[1]PETSC ERROR: #10 KSPSolve() at /ccc/work/cont003/rndm/rndm/petsc/src/ksp/ksp/interface/itfunc.c:1084
You think you are using -pc_type hypre, but in reality your are not, since there is a typo in your sparams, --pc_type → -pc_type.
Your problem is singular since you are only integrating on part of the domain. This is unlikely to work, even with -pc_type hypre.
Are you suggesting by truncating the mesh?
Then I already have one approach with FreeFEM which works beautifully with trunc command.
I am trying a new approach with the region-based integration, despite the presence of the complete mesh. It works good with solve but not when do it with varf.
Why do you need a new approach? Is there a real need for the region-based integration? One way to bypass the problem may be to add a small regularization to make the problem definite, e.g., int3d(Th, !reg)(eps * u * v), with a small eps.