From: Junchao Z. <jun...@gm...> - 2015-08-04 19:07:21
|
Hello, I am writing a simple AMR code with libmesh. My input mesh has 4 elements. I use ParallelMesh. I found I could not distribute it to more than four processes even after refinement. In my code, I firstly do mesh.read("mesh.xda"). I find libmesh reads the data and distributes it on four processes, and mesh._is_serial is set to false. After that, I call mesh_refinement.refine_and_coarsen_elements(), which calls _mesh.prepare_for_use (), and then this->partition(). But in mesh_base.C, since this->is_serial() is false, the partitioner never gets called. << mesh_base.C>> 375 // Non-serial meshes may not be ready for repartitioning here. 376 else if(!skip_partitioning() && 377 partitioner().get() && 378 this->is_serial()) 379 { 380 partitioner()->partition (*this, n_parts); 381 } So, why are non-serial meshes not repartitioned? Thanks. --Junchao Zhang |