I am by the way aware of the parrallel::distributed::Triangulation 
constructor which accepts another Triangulation as an argument - however 
this calls repartitioning and is therefore no solution to the problem.
Also weights could be passed to influence the partitioning, but determining 
weights such that the partitioning is exactly the one I want would be hard 
and it would depend massively on the algorithm used to compute the 
partitioning which should be kept as a black box. This would also be a very 
error-prone workaround.

Am Donnerstag, 18. Oktober 2018 13:54:13 UTC+2 schrieb Pascal Kraft:
>
> I will try to be as short as possible - if more details are required feel 
> free to ask. Also I offer to submit all mesh generation code I create in 
> the future, since others might have similar needs at some point.
>
> I work on a 3d mesh with purely axis-parallel edges. The mesh is a 2d-mesh 
> (say in x and y direction) extruded to 3d (z-direction). Due to the scheme 
> I use it is required, that the distributed version of this mesh be 
> distributed as intervals along the z-axis ( process 0 has all cells with 
> cell->center()[2] in [0,1], process 1 has all cells with cell->center()[2] 
> in (1,2] and so on.)
> What I did originally was simply generating a mesh consisting of 
> n_processes cells, let that mesh be auto partitioned, then turning 
> partitioning off and then using global refinement of marked cells to 
> generate the right structure inside these cells for each processor. This 
> however feels like a very elaborate workaround and the lack of anisotropic 
> refinement for distributed meshes is a heavy restriction here. However, 
> this seemed to be a feasible workaround for the time being.
> Recently a new problem has arisen however: For the construction of a 
> blockwise, parallel preconditioner for a sweeping method I now need 
> codimension 1 meshes of the process-to-process mesh-interfaces (again a 
> simple copy of the theoretical 2D-mesh, which was extruded to generate the 
> 3d mesh, if that were possible) because I need nodal and Nedelec-elements 
> on these 2D-interfaces for the computation of some integrals.
> So my questions would be:
> 1. given a 2D-mesh, what is the easiest way to get a distributed 
> 3d-extrusion with the partitioning described above?  (auto-partitioning 
> generates balls in this mesh, not cuboids with z-orthogonal 
> process-to-process interfaces) One suggestion for a function here would be 
> a function to transform a shared to a distributed mesh because on a shared 
> mesh I could set the subdomain Ids and then just call that function when 
> I'm done
> 2. say I have a layer of faces in that mesh (in the interior) and I need 
> nedelec elements and nodal elements on these faces (codimension 1) to 
> evaluate their shape function and gradients in quadrature points of a 
> 2D-quadrature on the faces. What is the best way to do this? (if it was a 
> boundary I could give a boundary id and call 
> GridGenerator::extract_boundary_mesh but it's not always on the boundary.
> 3. There is a description on how to manually generate a mesh which seems 
> easy enough in my case. How does this work for a distributed mesh? Is the 
> only version to generate a mesh and then auto-partition or can I somehow 
> define the partitioning in the generation phase similar to the way I could 
> set subdomain Ids in a shared parallel mesh?
> 4. What can I do to extend the exising functionality? Since the memory 
> consumtion of my (and most likely most codes) is low during mesh 
> generation, first generating a shared mesh and then distributing it would 
> not be a problem (compared to keeping the shared mesh during computation 
> when the matrices and vectors also take up a lot of the memory). Do you 
> consider such a function "easy" to implement?
>
> Thank you for your time!
> Pascal
>
>
>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to