Good afternoon everybody, I'm experiencing a quite confusing error. The demo example is straightforward: *1)* Create a simple Triangulation<2>, we're using GridGenerator::hyper_ball() *2) *Partition it with GridTools::partition_triangulation(...) *3)* Create TriangulationDescription::Description *4)* Create parallel::fullydistributed::Triangulation
We use dealii 9.6.0-rc1 from the M1 mac .dmg installer. We also test on the Docker image with deal.II 9.5.0. The aforementioned code works in both scenarios. *BUT*, as soon as I introduce a simple global refinement on the serial triangulation, like: 1.5) tria_base.refine_global(5); deali.II 9.5.0: Works fine deal.II 9.6.0: ERROR - or actually goes in a deadlock during the call to *tria_pft.create_triangulation(description);* ------- I attach the simple demo script as a .cpp file. Does anybody know something about this? Kind regards, Matteo Malvestiti -- 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 visit https://groups.google.com/d/msgid/dealii/bfa5025a-1276-4380-8d6e-110596935ba8n%40googlegroups.com.
#include <deal.II/base/mpi.h> #include <deal.II/dofs/dof_handler.h> #include <deal.II/dofs/dof_tools.h> #include <deal.II/fe/fe_q.h> #include <deal.II/fe/fe_tools.h> #include <deal.II/fe/mapping_q.h> #include <deal.II/grid/grid_in.h> #include <deal.II/grid/manifold_lib.h> #include <deal.II/grid/grid_tools.h> #include <deal.II/numerics/data_out.h> #include <deal.II/base/conditional_ostream.h> #include <deal.II/base/quadrature_lib.h> #include <deal.II/dofs/dof_handler.h> #include <deal.II/dofs/dof_tools.h> #include <deal.II/fe/fe_values.h> #include <deal.II/grid/tria.h> #include <deal.II/grid/grid_generator.h> #include <deal.II/lac/dynamic_sparsity_pattern.h> #include <deal.II/lac/full_matrix.h> #include <deal.II/lac/precondition.h> #include <deal.II/lac/solver_cg.h> #include <deal.II/lac/sparse_matrix.h> #include <deal.II/lac/vector.h> #include <deal.II/numerics/data_out.h> #include <deal.II/numerics/vector_tools.h> #include <fstream> #include <deal.II/fe/fe_q.h> #include <deal.II/grid/grid_out.h> #include <deal.II/lac/affine_constraints.h> #include <deal.II/grid/grid_refinement.h> #include <deal.II/numerics/error_estimator.h> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <deal.II/distributed/fully_distributed_tria.h> #include <deal.II/base/memory_consumption.h> #include <fstream> #include <iostream> using namespace dealii; int main(int argc, char **argv) { Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1); std::cout << "deal.II version: " << DEAL_II_PACKAGE_VERSION << std::endl; const int dim = 2; // Create a simple serial triangulation: Triangulation<dim> tria_base; GridGenerator::hyper_ball(tria_base); tria_base.refine_global(5); ConditionalOStream pcout(std::cout, (Utilities::MPI::this_mpi_process(MPI_COMM_WORLD) == 0)); pcout<<"Memory base:"<<tria_base.memory_consumption()<<std::endl; pcout << " Active cells [base]: " << tria_base.n_global_active_cells() << std::endl; // Partition serial triangulation: GridTools::partition_triangulation(Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD), tria_base); const TriangulationDescription::Description<dim, dim> description = TriangulationDescription::Utilities::create_description_from_triangulation(tria_base, MPI_COMM_WORLD); // Create a fully distributed triangulation: parallel::fullydistributed::Triangulation<dim,dim> tria_pft(MPI_COMM_WORLD); cout<<"Ready to create partitioned triangulation from description \n"; tria_pft.create_triangulation(description); pcout << " Active cells: " << tria_pft.n_global_active_cells() << std::endl; std::stringstream ss; ss << "Memory: " << tria_pft.memory_consumption() << " Locally active cells: " << tria_pft.n_locally_owned_active_cells()<<"\n"; cout<<ss.str(); }