Re: [deal.II] An error occurred in line <1467> of file in function dealii::IndexSet dealii::TrilinosWrappers::MPI::Vector::locally_owned_elements() const

2023-10-11 Thread Daniel Arndt
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

2023-10-10 Thread Tiny Y
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