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