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
