Re: [deal.II] An error occurred in line <1467> of file in function dealii::IndexSet dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const
Yi, How are you initializing your TrilinosWrappers::MPI::BlockVector? It looks like you are calling the constructor with only one std::vector but some of the index sets are overlapping. You should use the constructor taking two std::vector objects with the first one containing the locally owned indices and the second one the locally relevant indices, see https://www.dealii.org/current/doxygen/deal.II/classTrilinosWrappers_1_1MPI_1_1BlockVector.html#a13d7be7dd540e34e89559e9ff6a0d779 . Best, Daniel On Tue, Oct 10, 2023 at 11:30 PM Tiny Y wrote: > Hi al, > I am a freshman in dealii. I have installed Dealii 9.4.2 on 22.04. The > senior wrote code on the old version of dealii, so I made changes to his > code to adapt to the new version of dealii, but I encountered some > problems. The function(locally_owned_elements()) where the error code is > located has been deleted, but this error still occurs. I want to know where > this problem comes from and how I can solve it. Thanks in advance! > Regard, > Yi > Error Message > > qincai@qincai-OMEN:~/桌面/cracks-master_mod版本更新$ mpirun -n 8 ./cracks > parameters_ring.prm > Running on 8 cores > Cells: 442 > > DoFs: 5440 solid + 2720 phase + 2720 pressure = 10880 > > === > Parameters > == > h (min): 0.0415041 > k: 4.15041e-12 > eps: 0.166016 > G_c: 1.2 > gamma penal: 0 > Poisson nu: 0.2 > E modulus: 1 > Lame mu: 4166.67 > Lame lambda: 2777.78 > > > > An error occurred in line <1467> of file > > in function > dealii::IndexSet > dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const > The violated condition was: > owned_elements.size() == size() > Additional information: > The locally owned elements have not been properly initialized! This > happens for example if this object has been initialized with exactly > one overlapping IndexSet. > > Stacktrace: > --- > #0 ./cracks: > dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const > #1 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > #2 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > dealii::internal::DataOutImplementation::DataEntry<2, 2, > double>::DataEntry(dealii::DoFHandler<2, > 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, > dealii::DataPostprocessor<2> const*) > #3 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > std::__detail::_MakeUniq 2, double> >::__single_object > std::make_unique double>, dealii::DoFHandler<2, 2> const*, > dealii::TrilinosWrappers::MPI::BlockVector const*, > dealii::DataPostprocessor<2> const*>(dealii::DoFHandler<2, 2> const*&&, > dealii::TrilinosWrappers::MPI::BlockVector const*&&, > dealii::DataPostprocessor<2> const*&&) > #4 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > void dealii::DataOut_DoFData<2, 2, 2, > 2>::add_data_vector(dealii::DoFHandler<2, > 2> const&, dealii::TrilinosWrappers::MPI::BlockVector const&, > dealii::DataPostprocessor<2> const&) > #5 ./cracks: void dealii::DataOut_DoFData<2, 2, 2, > 2>::add_data_vector(dealii::TrilinosWrappers::MPI::BlockVector > const&, dealii::DataPostprocessor<2> const&) > #6 ./cracks: FracturePhaseFieldProblem<2>::output_results() const > #7 ./cracks: FracturePhaseFieldProblem<2>::run() > #8 ./cracks: main > > > Calling MPI_Abort now. > To break execution in a GDB session, execute 'break MPI_Abort' before > running. You can also put the following into your ~/.gdbinit: > set breakpoint pending on > break MPI_Abort > set breakpoint pending auto > > > An error occurred in line <1467> of file > > in function > dealii::IndexSet > dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const > The violated condition was: > owned_elements.size() == size() > Additional information: > The locally owned elements have not been properly initialized! This > happens for example if this object has been initialized with exactly > one overlapping IndexSet. > > Stacktrace: > --- > #0 ./cracks: > dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const > #1 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > #2 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > dealii::internal::DataOutImplementation::DataEntry<2, 2, > double>::DataEntry(dealii::DoFHandler<2, > 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, > dealii::DataPostprocessor<2> const*) > #3 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: > std::__detail::_MakeUniq 2, double> >::__single_object > std::make_unique double>, dealii::DoFHandler<2, 2> const*, > dealii::TrilinosWrappers::MPI::BlockVector const*, > dealii::DataPostprocessor<2> const*>(dealii::DoFHandler<2, 2>
[deal.II] An error occurred in line <1467> of file in function dealii::IndexSet dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const
Hi al, I am a freshman in dealii. I have installed Dealii 9.4.2 on 22.04. The senior wrote code on the old version of dealii, so I made changes to his code to adapt to the new version of dealii, but I encountered some problems. The function(locally_owned_elements()) where the error code is located has been deleted, but this error still occurs. I want to know where this problem comes from and how I can solve it. Thanks in advance! Regard, Yi Error Message qincai@qincai-OMEN:~/桌面/cracks-master_mod版本更新$ mpirun -n 8 ./cracks parameters_ring.prm Running on 8 cores Cells: 442 DoFs: 5440 solid + 2720 phase + 2720 pressure = 10880 === Parameters == h (min): 0.0415041 k: 4.15041e-12 eps: 0.166016 G_c: 1.2 gamma penal: 0 Poisson nu: 0.2 E modulus: 1 Lame mu: 4166.67 Lame lambda: 2777.78 An error occurred in line <1467> of file in function dealii::IndexSet dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const The violated condition was: owned_elements.size() == size() Additional information: The locally owned elements have not been properly initialized! This happens for example if this object has been initialized with exactly one overlapping IndexSet. Stacktrace: --- #0 ./cracks: dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const #1 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: #2 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: dealii::internal::DataOutImplementation::DataEntry<2, 2, double>::DataEntry(dealii::DoFHandler<2, 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, dealii::DataPostprocessor<2> const*) #3 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: std::__detail::_MakeUniq >::__single_object std::make_unique, dealii::DoFHandler<2, 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, dealii::DataPostprocessor<2> const*>(dealii::DoFHandler<2, 2> const*&&, dealii::TrilinosWrappers::MPI::BlockVector const*&&, dealii::DataPostprocessor<2> const*&&) #4 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: void dealii::DataOut_DoFData<2, 2, 2, 2>::add_data_vector(dealii::DoFHandler<2, 2> const&, dealii::TrilinosWrappers::MPI::BlockVector const&, dealii::DataPostprocessor<2> const&) #5 ./cracks: void dealii::DataOut_DoFData<2, 2, 2, 2>::add_data_vector(dealii::TrilinosWrappers::MPI::BlockVector const&, dealii::DataPostprocessor<2> const&) #6 ./cracks: FracturePhaseFieldProblem<2>::output_results() const #7 ./cracks: FracturePhaseFieldProblem<2>::run() #8 ./cracks: main Calling MPI_Abort now. To break execution in a GDB session, execute 'break MPI_Abort' before running. You can also put the following into your ~/.gdbinit: set breakpoint pending on break MPI_Abort set breakpoint pending auto An error occurred in line <1467> of file in function dealii::IndexSet dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const The violated condition was: owned_elements.size() == size() Additional information: The locally owned elements have not been properly initialized! This happens for example if this object has been initialized with exactly one overlapping IndexSet. Stacktrace: --- #0 ./cracks: dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const #1 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: #2 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: dealii::internal::DataOutImplementation::DataEntry<2, 2, double>::DataEntry(dealii::DoFHandler<2, 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, dealii::DataPostprocessor<2> const*) #3 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: std::__detail::_MakeUniq >::__single_object std::make_unique, dealii::DoFHandler<2, 2> const*, dealii::TrilinosWrappers::MPI::BlockVector const*, dealii::DataPostprocessor<2> const*>(dealii::DoFHandler<2, 2> const*&&, dealii::TrilinosWrappers::MPI::BlockVector const*&&, dealii::DataPostprocessor<2> const*&&) #4 /home/qincai/dealii-candi/deal.II-v9.4.2/lib/libdeal_II.g.so.9.4.2: void dealii::DataOut_DoFData<2, 2, 2, 2>::add_data_vector(dealii::DoFHandler<2, 2> const&, dealii::TrilinosWrappers::MPI::BlockVector const&, dealii::DataPostprocessor<2> const&) #5 ./cracks: void dealii::DataOut_DoFData<2, 2, 2, 2>::add_data_vector(dealii::TrilinosWrappers::MPI::BlockVector const&, dealii::DataPostprocessor<2> const&) #6 ./cracks: FracturePhaseFieldProblem<2>::output_results() const #7 ./cracks: FracturePhaseFieldProblem<2>::run() #8 ./cracks: main Calling MPI_Abort now. To break execution