Hi Uwe,

I usually get this kind of exception when using distributed vectors but only 
with locally_owned components without ghosts or if I forget to 
update_ghost_values or compress somewhere earlier after assemble or solve 
routines, so this was my first guess, because your code runs on one process. 
problems resulting from different dim and spacedim (usually ...) would also 
arise on one process, but at here I can only guess.

Best
Martin

  ----- Original Message ----- 
  From: Uwe Köcher 
  To: [email protected] ; [email protected] 
  Sent: Friday, July 27, 2012 7:27 AM
  Subject: Re: [deal.II] Problem with vtu output on multiple processes 
(MPI/Trilinos)


  Hi Martin,


  yes it does... as I wrote in the case dim=2 and spacedim=1 its working...


  Best Uwe



  Sent from Samsung Mobile

  Martin Steigemann <[email protected]> wrote:

  Hi Uwe,

  does your vector x contains all locally_relevant components and not only the 
locally_owned ones? DataOut needs also the ghost values, so first you should 
check this.

  Maybe this helps,

  Best,
  Martin

   
  Von: Uwe Köcher <[email protected]>
  An: [email protected] 
  Gesendet: 21:55 Donnerstag, 26.Juli 2012
  Betreff: [deal.II] Problem with vtu output on multiple processes 
(MPI/Trilinos)


  Hi,

  I want to write a distributed vector (TrilionsWrappers::MPI::Vector)
  of a FESystem(fe, 3).
  So my dim=3 and the spacedim=3.

  When I'm (essentially) doing:
  DataOut<dim> data_out;
  data_out.attach_dof_handler(dof);
  data_out.add_data_vector(x, name);
  data_out.build_patches();

  I get an exception, thrown in the deep library, that one 
  Function wants to access a non-locally owned element of
  the vector:

  **********************************************************************
  An error occurred in line <205> of file
  </home/koecheru/toolbox/deal.II/svn/source/lac/trilinos_vector_base.cc>
  in function
      double dealii::TrilinosWrappers::VectorBase::operator()(unsigned
  int) const
  The violated condition was: 
      false
  The name and call sequence of the exception was:
      ExcAccessToNonlocalElement(index, local_range().first,
  local_range().second-1)
  Additional Information: 
  You tried to access element 111 of a distributed vector, but only
  entries 648 through 1088 are stored locally and can be accessed.
  **********************************************************************

  If I'm running on only one process everything is fine
  (due to the process owns all elements of the vector).

  Please note, my output-function is running fine on multiple processes
  with dim=2 and spacedim=1 in another application.

  And a second note: Without file-output the application is running
  fine on multiple processes.

  Any help would be nice.

  Best Uwe.

  Here the complete stacktrace:
  **********************************************************************
  Stacktrace:
  -----------
  #0  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::TrilinosWrappers::VectorBase::operator()(unsigned int) const
  #1  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre: void
  dealii::internal::DoFCellAccessor::Implementation::get_dof_values<3, 3,
  dealii::TrilinosWrappers::MPI::Vector,
  double*>(dealii::DoFCellAccessor<dealii::DoFHandler<3, 3> > const&,
  dealii::TrilinosWrappers::MPI::Vector const&, double*, double*)
  #2  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre: void
  dealii::DoFCellAccessor<dealii::DoFHandler<3, 3>
  >::get_dof_values<dealii::TrilinosWrappers::MPI::Vector,
  double>(dealii::TrilinosWrappers::MPI::Vector const&,
  dealii::Vector<double>&) const
  #3  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre: void
  dealii::DoFCellAccessor<dealii::DoFHandler<3, 3>
  >::get_interpolated_dof_values<dealii::TrilinosWrappers::MPI::Vector,
  double>(dealii::TrilinosWrappers::MPI::Vector const&,
  dealii::Vector<double>&) const
  #4  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::FEValuesBase<3,
  
3>::CellIterator<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > > >::get_interpolated_dof_values(dealii::TrilinosWrappers::MPI::Vector 
const&, dealii::Vector<double>&) const
  #5  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre: void
  dealii::FEValuesBase<3,
  3>::get_function_values<dealii::TrilinosWrappers::MPI::Vector,
  double>(dealii::TrilinosWrappers::MPI::Vector const&,
  std::vector<dealii::Vector<double>,
  std::allocator<dealii::Vector<double> > >&) const
  #6  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::internal::DataOut::DataEntry<dealii::DoFHandler<3, 3>,
  
dealii::TrilinosWrappers::MPI::Vector>::get_function_values(dealii::FEValuesBase<3,
 3> const&, std::vector<dealii::Vector<double>, 
std::allocator<dealii::Vector<double> > >&) const
  #7  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::DataOut<3, dealii::DoFHandler<3, 3>
  
>::build_one_patch(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)
  #8  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  std::_Mem_fn<void (dealii::DataOut<3, dealii::DoFHandler<3, 3>
  
>::*)(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)>::operator()(dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>&, 
std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3, 3> 
> >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion) const
  #9  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre: void
  std::_Bind<std::_Mem_fn<void (dealii::DataOut<3, dealii::DoFHandler<3,
  3>
  
>::*)(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)> (dealii::DataOut<3, dealii::DoFHandler<3, 3> >, 
std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, 
dealii::DataOut<3, dealii::DoFHandler<3, 3> >::CurvedCellRegion)>::__call<void, 
std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3, 3> 
> >, unsigned int>*&, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, 0, 1, 2, 3, 
4>(std::tuple<std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int>*&, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&>&&, std::_Index_tuple<0, 1, 2, 3, 4>)
  #10  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  void std::_Bind<std::_Mem_fn<void (dealii::DataOut<3,
  dealii::DoFHandler<3, 3>
  
>::*)(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)> (dealii::DataOut<3, dealii::DoFHandler<3, 3> >, 
std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, 
dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)>::operator()<std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int>*&, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, 
void>(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int>*&&&, dealii::internal::DataOut::ParallelData<3, 3>&&&, 
dealii::DataOutBase::Patch<3, 3>&&&)
  #11  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  void dealii::WorkStream::run<std::_Bind<std::_Mem_fn<void
  (dealii::DataOut<3, dealii::DoFHandler<3, 3>
  
>::*)(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)> (dealii::DataOut<3, dealii::DoFHandler<3, 3> >, 
std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, 
dealii::DataOut<3, dealii::DoFHandler<3, 3> >::CurvedCellRegion)>, 
std::_Bind<void (*(std::_Placeholder<1>, 
std::reference_wrapper<std::vector<dealii::DataOutBase::Patch<3, 3>, 
std::allocator<dealii::DataOutBase::Patch<3, 3> > > 
>))(dealii::DataOutBase::Patch<3, 3> const&, 
std::vector<dealii::DataOutBase::Patch<3, 3>, 
std::allocator<dealii::DataOutBase::Patch<3, 3> > >&)>, 
std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3, 3> 
> >, unsigned int>*, dealii::internal::DataOut::ParallelData<3, 3>, 
dealii::DataOutBase::Patch<3, 3> 
>(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3, 
3> > >, unsigned int>* const&, 
dealii::identity<std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int>*>::type const&, std::_Bind<std::_Mem_fn<void 
(dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::*)(std::pair<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3,
 3> > >, unsigned int> const*, dealii::internal::DataOut::ParallelData<3, 3>&, 
dealii::DataOutBase::Patch<3, 3>&, dealii::DataOut<3, dealii::DoFHandler<3, 3> 
>::CurvedCellRegion)> (dealii::DataOut<3, dealii::DoFHandler<3, 3> >, 
std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, 
dealii::DataOut<3, dealii::DoFHandler<3, 3> >::CurvedCellRegion)>, 
std::_Bind<void (*(std::_Placeholder<1>, 
std::reference_wrapper<std::vector<dealii::DataOutBase::Patch<3, 3>, 
std::allocator<dealii::DataOutBase::Patch<3, 3> > > 
>))(dealii::DataOutBase::Patch<3, 3> const&, 
std::vector<dealii::DataOutBase::Patch<3, 3>, 
std::allocator<dealii::DataOutBase::Patch<3, 3> > >&)>, 
dealii::internal::DataOut::ParallelData<3, 3> const&, 
dealii::DataOutBase::Patch<3, 3> const&, unsigned int, unsigned int)
  #12  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::DataOut<3, dealii::DoFHandler<3, 3>
  >::build_patches(dealii::Mapping<3, 3> const&, unsigned int,
  dealii::DataOut<3, dealii::DoFHandler<3, 3> >::CurvedCellRegion)
  #13  /home/koecheru/toolbox/deal.II/svn/lib/libdeal_II.g.so.7.2.pre:
  dealii::DataOut<3, dealii::DoFHandler<3, 3> >::build_patches(unsigned
  int)
  #14  ./DTM++:
  
_ZN5DTMpp10DataOutput6WriterILi3ELi3EN6dealii16TrilinosWrappers3MPI6VectorEE15vtu_in_parallelESsSsjRS5_RNS2_10DoFHandlerILi3ELi3EEEji+0x276)
 [0x456a66]
  #15  ./DTM++:
  
_ZN5DTMpp8parallel11distributed2CG18ElasticWaveNewmarkILi3ELi3EE5solveEdd+0x327)
 [0x453d01]
  #16  ./DTM++:
  _ZN5DTMpp8parallel11distributed2CG18ElasticWaveNewmarkILi3ELi3EE3runEdd
  +0x37) [0x4518c1]
  #17  ./DTM++: main+0x272) [0x44cb77]
  #18  /lib64/libc.so.6: __libc_start_main
  #19  ./DTM++: ) [0x448df9]
  **********************************************************************


  -- 
  Dipl.-Ing. Uwe Köcher

  Helmut Schmidt Universität
  Universität der Bundeswehr

  Fakultät für Maschinenbau,
  Professur für Numerische Verfahren in den Rechnergestützten
  Ingenieurwissenschaften.

  Holstenhofweg 85
  22043 Hamburg

  Tel:  +49 40 6541 - 3241
  Raum:  H1 - R.1225
  Email: [email protected]
  Web:  http://www.hsu-hh.de/mb-mathe

  _______________________________________________
  dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii


_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to