Thanks, Wolfgang. Sorry for the big code dump. I've been trying to distill the problem down to find the issue. I've now eliminated the shell elements and the solid-shell coupling. In doing so, I've found a strange change to my sparsity pattern. The overlap of Process0 and Process1 is not symmetric. The PETSc error occurs in this area where I'd expect to see symmetry (at entry 36,48).
[image: asym_dsp2.png] The geometry of the problem is shown in the picture below. I've colored the cells and vertices based on their ownership. [image: solid_geom.png] The dynamic sparsity pattern comes from this approach: dof_handler_sld.distribute_dofs(fe_sld); sld_owned_dofs = dof_handler_sld.locally_owned_dofs(); DynamicSparsityPattern debug_dsp(sld_owned_dofs); DoFTools::make_sparsity_pattern(dof_handler_sld, debug_dsp); It makes sense that I should have an entry at position (36,48), since dof 36 and dof 48 share a cell. Therefore, I think my stiffness matrix process is okay. My problem seems to be with my sparsity pattern. So, I'm confused as to why Proc0 would not have any Sparsity Pattern entries for (36,48) when Proc1 does indeed have (48,36). Any thoughts on where I might be causing this problem? Best regards, Alex On Thursday, February 1, 2024 at 7:56:05 PM UTC-5 Wolfgang Bangerth wrote: > On 2/1/24 14:50, Alex Quinlan wrote: > > > > Can anyone see where I may have gone wrong or what I have omitted? > > Alex: > I cannot see what the issue is, and I doubt anyone can without spending a > substantial amount of time debugging. I am slightly confused, though, by > the > error message. I *believe* that what it is saying is that you are trying > to > write into a matrix entry that is not part of the matrix -- you can only > write > into matrix entries you have previously said exist when you passed the > sparsity pattern to the matrix. So what you need to find out is who owns > row > 36, and whether the sparsity pattern you provided on that process included > entry (36,48). My best guess is that that entry was not present in the > sparsity pattern on the process that owns row 36, and then your goal needs > to > be to figure out why not -- in other words, why you did not foresee that > the > entry that you ultimately end up writing into was not included when you > constructed the sparsity pattern. > > Best > W. > > -- > ------------------------------------------------------------------------ > Wolfgang Bangerth email: bang...@colostate.edu > www: http://www.math.colostate.edu/~bangerth/ > > > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/a1cf2d0c-f86f-402d-bf3e-aeaf58758825n%40googlegroups.com.