On 1/16/24 07:03, Alex Quinlan wrote:

I've come up against another issue in my mixed-dimensional mesh.  I am now trying to implement MPI, which requires partitioning the triangulation.

In my case, I have two triangulations: one for the solid <3,3> elements and one for the shell <2,3> elements.  These two triangulations are couple at multiple points.  I combine them into a blockmatrix with the form:

[ A_solid   ,    B_coupling;
   C_coupling,    D_shell      ]

I may also need to expand this in the future to a matrix with 3x3 or nxn blocks.

Do you have any thoughts on how I can partition this problem?  The suite of GridTools::partition_triangulation seem like they will not work for my two-triangulation approach.

Can you elaborate what the problem you are facing is? At least for the diagonal blocks of the matrix, you would simply use a matrix class such as PETScWrappers::MPI::SparseMatrix that knows how to partition itself onto different processes. Similarly, for your vectors, you'd use the appropriate block vector class in which each vector block is partitioned. You'd have to initialize these individually, but I suspect you're already doing that anyway. In each case, blocking (into the 2x2 structure you show above) and partitioning (among MPI processes) are orthogonal issues.

The biggest issue I see is how you can build the off-diagonal blocks above because to do so, you need to know information about both meshes on the same process, and generally the partition of one triangulation owned by a specific process does not geometrically overlap with the partition of the other triangulation owned by the same process.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@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/0efa50f2-b1aa-4274-8736-6cb9a9641a4c%40colostate.edu.

Reply via email to