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();

}

Reply via email to