You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The error is not always caught in release mode, when it is, the violated condition is:
An error occurred in line <1417> of file </gfs1/work/bbpanneg/software/deal.II.8.5/dealii-8.5.0/source/grid/grid_tools.cc> in function
std::pair<typename MeshType<dim, spacedim>::active_cell_iterator, dealii::Point<dim> > dealii::GridTools::find_active_cell_around_point(const dealii::Mapping<dim, spacedim>&, const MeshTy pe<dim, spacedim>&, const dealii::Point<spacedim>&) [with int dim = 3; MeshType = dealii::DoFHandler; int spacedim = 3; typename MeshType<dim, spacedim>::active_cell_iterator = dealii::TriaAc tiveIterator<dealii::DoFCellAccessor<dealii::DoFHandler<3>, false> >]
The violated condition was:
best_cell.first.state() == IteratorState::valid
Additional information:
The point <5.67614e+06 2.64683e+06 -991951> could not be found inside any of the subcells of a coarse grid cell.
Because of the artificial cells being mentioned, I tried the same model with 1 MPI process, this runs to completion. Also, when the free surface is switched off and I use a free slip top, the model also runs to completion. The mapping used with a free surface is different, i.e. MappingQ1Eulerian versus MappingQ. If I remember correctly, the first point that can't be found is different for a different number of processes.
I've attached a simple input file for testing; thanks for the help! point_value_chunk.txt
The text was updated successfully, but these errors were encountered:
Hi Anne,
it seems like deal.II at some point does not properly check if a cell is locally owned. This should not be a problem for ASPECT as long as a point is inside any of the MPI ranks domains (we want to ignore the error on all ranks that do not own the cell).
As a workaround you can try to add the following to the point_values postprocessor (after the existing line catch (const VectorTools::ExcPointNotAvailableHere &)):
catch (const GridTools::ExcPointNotFound &)
{
}
This way you ignore the additionally thrown exception. I hate to say this, but this will only work in release mode, because the Asserts in debug mode will immediately abort the code no matter if there is a catch or not. This is only a workaround for now, we should also take a closer look at what is causing the issue in deal.II.
When using the
point_values
postprocessor, an Assert in dealii is hit:The error is not always caught in release mode, when it is, the violated condition is:
Because of the artificial cells being mentioned, I tried the same model with 1 MPI process, this runs to completion. Also, when the free surface is switched off and I use a free slip top, the model also runs to completion. The mapping used with a free surface is different, i.e. MappingQ1Eulerian versus MappingQ. If I remember correctly, the first point that can't be found is different for a different number of processes.
I've attached a simple input file for testing; thanks for the help!
point_value_chunk.txt
The text was updated successfully, but these errors were encountered: