An unforeseen killing while running

test.prm (9.2 KB)
After running for about 10 hours, the line was killed using 2.5.0 (not debug) with text:

----------------------------------------------------
Exception on MPI process <51> while running postprocessor <N6aspect11Postprocess18HeatFluxStatisticsILi2EEE>: 

--------------------------------------------------------
An error occurred in line <624> of file </home/fuwuqi/aspect/base/candi/tmp/unpack/deal.II-v9.6.1/source/fe/mapping_q.cc> in function
    dealii::Point<dim> dealii::MappingQ<dim, spacedim>::transform_real_to_unit_cell(const typename dealii::Triangulation<dim, spacedim>::cell_iterator&, const dealii::Point<spacedim>&) const [with int dim = 2; int spacedim = 2; typename dealii::Triangulation<dim, spacedim>::cell_iterator = dealii::TriaIterator<dealii::CellAccessor<2, 2> >]
The violated condition was: 
    numbers::is_finite(p_unit[0])
Additional information: 
    Computing the mapping between a real space point and a point in
    reference space failed, typically because the given point lies outside
    the cell where the inverse mapping is not unique.

I can do nothing about it and I’m longing for help.

@KIVY Does the error message have any additional information, say a backtrace where that function was called?
Best
W.

Dear sir, the error message is listed by following:

An error occurred in line <624> of file </home/fuwuqi/aspect/base/candi/tmp/unpack/deal.II-v9.6.1/source/fe/mapping_q.cc> in function
    dealii::Point<dim> dealii::MappingQ<dim, spacedim>::transform_real_to_unit_cell(const typename dealii::Triangulation<dim, spacedim>::cell_iterator&, const dealii::Point<spacedim>&) const [with int dim = 2; int spacedim = 2; typename dealii::Triangulation<dim, spacedim>::cell_iterator = dealii::TriaIterator<dealii::CellAccessor<2, 2> >]
The violated condition was: 
    numbers::is_finite(p_unit[0])
Additional information: 
    Computing the mapping between a real space point and a point in
    reference space failed, typically because the given point lies outside
    the cell where the inverse mapping is not unique.

Stacktrace:
-----------
#0  /home/fuwuqi/aspect/base/candi/deal.II-v9.6.1/lib/libdeal_II.so.9.6.1: dealii::MappingQ<2, 2>::transform_real_to_unit_cell(dealii::TriaIterator<dealii::CellAccessor<2, 2> > const&, dealii::Point<2, double> const&) const
#1  ./aspect: aspect::MaterialModel::Rheology::Elasticity<2>::fill_reaction_outputs(aspect::MaterialModel::MaterialModelInputs<2> const&, std::vector<double, std::allocator<double> > const&, aspect::MaterialModel::MaterialModelOutputs<2>&) const
#2  ./aspect: aspect::MaterialModel::ViscoPlastic<2>::evaluate(aspect::MaterialModel::MaterialModelInputs<2> const&, aspect::MaterialModel::MaterialModelOutputs<2>&) const
#3  ./aspect: std::vector<std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >, std::allocator<std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > > > > aspect::Postprocess::internal::compute_heat_flux_through_boundary_faces<2>(aspect::SimulatorAccess<2> const&)
#4  ./aspect: aspect::Postprocess::HeatFluxStatistics<2>::execute[abi:cxx11](dealii::TableHandler&)
#5  ./aspect: aspect::Postprocess::Manager<2>::execute[abi:cxx11](dealii::TableHandler&)
#6  ./aspect: aspect::Simulator<2>::postprocess()
#7  ./aspect: aspect::Simulator<2>::run()
#8  ./aspect: void run_simulator<2>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, bool)
#9  ./aspect: main
--------------------------------------------------------

Aborting!
----------------------------------------------------
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 51 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.

Dear sir, the message was listed above. I’m sorry to miss “at”.

@KIVY I don’t know for sure, but typically this sort of error happens because you have a very distorted mesh. I assume you are using a free surface and end up with a mesh that has poorly shaped cells? Perhaps you can show us the mesh you have in the last time step before the program crashes?

If I am right with my hypothesis, the standard remedy is to use surface diffusion to smooth out the mesh.

Best
W.


Like these pictures…
And thank you for your advice, I’ll try it and if it works, you help me a lot.