Based on the stacktrace the problematic access happens within 
mg_cell_worker():
Stacktrace:
-----------
#0  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void 
dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true>::get_dof_values<dealii::TrilinosWrappers::MPI::Vector, 
double*>(dealii::TrilinosWrappers::MPI::Vector const&, double*, double*) 
const
#1  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void 
dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true>::get_dof_values<dealii::TrilinosWrappers::MPI::Vector, 
double>(dealii::TrilinosWrappers::MPI::Vector const&, 
dealii::Vector<double>&) const
#2  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void 
dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true>::get_interpolated_dof_values<dealii::TrilinosWrappers::MPI::Vector, 
double>(dealii::TrilinosWrappers::MPI::Vector const&, 
dealii::Vector<double>&, unsigned int) const
#3  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void 
dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true>::get_interpolated_dof_values<dealii::TrilinosWrappers::MPI::Vector, 
double>(dealii::TrilinosWrappers::MPI::Vector const&, 
dealii::Vector<double>&, unsigned int) const
#4  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void 
dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true>::get_interpolated_dof_values<dealii::TrilinosWrappers::MPI::Vector, 
double>(dealii::TrilinosWrappers::MPI::Vector const&, 
dealii::Vector<double>&, unsigned int) const
#5  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: dealii::FEValuesBase<2, 
2>::CellIterator<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > 
>::get_interpolated_dof_values(dealii::TrilinosWrappers::MPI::Vector 
const&, dealii::Vector<double>&) const
#6  /opt/dealii/lib/libdeal_II.g.so.9.2.0-pre: void dealii::FEValuesBase<2, 
2>::get_function_gradients<dealii::TrilinosWrappers::MPI::Vector>(dealii::TrilinosWrappers::MPI::Vector
 
const&, std::vector<dealii::Tensor<1, 2, 
dealii::TrilinosWrappers::MPI::Vector::value_type>, 
std::allocator<dealii::Tensor<1, 2, 
dealii::TrilinosWrappers::MPI::Vector::value_type> > >&) const
#7  ./MG_test: void 
Step15::MinimalSurfaceProblem<2>::mg_cell_worker<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > 
>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)
#8  ./MG_test: 
Step15::MinimalSurfaceProblem<2>::assemble_multigrid()::{lambda(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, 
Step15::CopyData&)#1}::operator()(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, Step15::CopyData&) const
#9  ./MG_test: std::_Function_handler<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&), 
Step15::MinimalSurfaceProblem<2>::assemble_multigrid()::{lambda(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, 
Step15::CopyData&)#1}>::_M_invoke(std::_Any_data const&, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)
#10  ./MG_test: std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, 
Step15::CopyData&)>::operator()(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, Step15::CopyData&) const
#11  ./MG_test: 
dealii::MeshWorker::mesh_loop<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> >, Step15::ScratchData<2>, Step15::CopyData, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > 
>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, 
dealii::identity<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > >::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)> >::type 
const&, dealii::identity<std::function<void (Step15::CopyData const&)> 
>::type const&, Step15::ScratchData<2> const&, Step15::CopyData const&, 
dealii::MeshWorker::AssembleFlags, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, Step15::ScratchData<2>&, Step15::CopyData&)> 
>::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, Step15::ScratchData<2>&, 
Step15::CopyData&)> >::type const&, unsigned int, unsigned 
int)::{lambda(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, 
Step15::CopyData&)#1}::operator()(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, Step15::CopyData&) const
#12  ./MG_test: void 
dealii::WorkStream::run<dealii::MeshWorker::mesh_loop<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> >, Step15::ScratchData<2>, Step15::CopyData, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > 
>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, 
dealii::identity<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > >::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)> >::type 
const&, dealii::identity<std::function<void (Step15::CopyData const&)> 
>::type const&, Step15::ScratchData<2> const&, Step15::CopyData const&, 
dealii::MeshWorker::AssembleFlags, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, Step15::ScratchData<2>&, Step15::CopyData&)> 
>::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, Step15::ScratchData<2>&, 
Step15::CopyData&)> >::type const&, unsigned int, unsigned 
int)::{lambda(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)#1}, 
std::function<void (Step15::CopyData const&)>, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> >, Step15::ScratchData<2>, 
Step15::CopyData>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, 
dealii::identity<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > >::type const&, 
dealii::MeshWorker::mesh_loop<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> >, Step15::ScratchData<2>, Step15::CopyData, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > 
>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, 
dealii::identity<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > >::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)> >::type 
const&, dealii::identity<std::function<void (Step15::CopyData const&)> 
>::type const&, Step15::ScratchData<2> const&, Step15::CopyData const&, 
dealii::MeshWorker::AssembleFlags, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, Step15::ScratchData<2>&, Step15::CopyData&)> 
>::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, Step15::ScratchData<2>&, 
Step15::CopyData&)> >::type const&, unsigned int, unsigned 
int)::{lambda(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)#1}, 
std::function<void (Step15::CopyData const&)>, Step15::ScratchData<2> 
const&, Step15::CopyData const&, unsigned int, unsigned int)
#13  ./MG_test: void 
dealii::MeshWorker::mesh_loop<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> >, Step15::ScratchData<2>, Step15::CopyData, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > 
>(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, 
dealii::identity<dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2,
 
2>, true> > >::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, Step15::ScratchData<2>&, Step15::CopyData&)> >::type 
const&, dealii::identity<std::function<void (Step15::CopyData const&)> 
>::type const&, Step15::ScratchData<2> const&, Step15::CopyData const&, 
dealii::MeshWorker::AssembleFlags, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, Step15::ScratchData<2>&, Step15::CopyData&)> 
>::type const&, dealii::identity<std::function<void 
(dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, 
dealii::TriaIterator<dealii::DoFCellAccessor<dealii::DoFHandler<2, 2>, 
true> > const&, unsigned int, unsigned int, Step15::ScratchData<2>&, 
Step15::CopyData&)> >::type const&, unsigned int, unsigned int)
#14  ./MG_test: Step15::MinimalSurfaceProblem<2>::assemble_multigrid()
#15  ./MG_test: Step15::MinimalSurfaceProblem<2>::run()
#16  ./MG_test: main

which is guarded by the if-condition.


Am Freitag, 19. Juli 2019 17:26:00 UTC+2 schrieb Wolfgang Bangerth:
>
> On 7/19/19 9:15 AM, 'Maxi Miller' via deal.II User Group wrote: 
> > I am trying to port example 15 to a MPI-supported version, using the 
> geometric 
> > multigrid method as preconditioner (to get more familiar with the 
> > implementation). I followed example 50 while doing that, but currently I 
> get 
> > the error 
> > An error occurred in line <3866> of file 
> > 
> <~/Downloads/git-files/dealii/include/deal.II/dofs/dof_accessor.templates.h> 
>
> > in function 
> >      void dealii::DoFCellAccessor<DoFHandlerType, 
> lda>::get_dof_values(const 
> > InputVector&, ForwardIterator, ForwardIterator) const [with InputVector 
> = 
> > dealii::TrilinosWrappers::MPI::Vector; ForwardIterator = double*; 
> > DoFHandlerType = dealii::DoFHandler<2, 2>; bool level_dof_access = true] 
> > The violated condition was: 
> >      this->is_artificial() == false 
> > Additional information: 
> >      Can't ask for DoF indices on artificial cells. 
> > as soon as I try to run my program using several MPI threads. I tried to 
> guard 
> > that part using if (cell->level_subdomain_id() == 
> > triangulation.locally_owned_subdomain()) as suggested in step-50, but 
> that did 
> > not help. Why am I still trying to request data from artificial cells, 
> even 
> > though I guarded that code part (at least I assume it guards it 
> accordingly). 
>
> Are you sure you guarded the right place? Have you checked with a debugger 
> where the problem actually happens? 
>
> Best 
>   WB 
>
> -- 
> ------------------------------------------------------------------------ 
> Wolfgang Bangerth          email:                 bang...@colostate.edu 
> <javascript:> 
>                             www: http://www.math.colostate.edu/~bangerth/ 
>
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/7ec5fd7e-5788-4627-b5b2-4a7bca380981%40googlegroups.com.

Reply via email to