geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
222 stars 235 forks source link

Errors with restart from checkpoint for current deal.ii development version #4021

Closed maxrudolph closed 3 years ago

maxrudolph commented 3 years ago

I'm trying to write and resume from a checkpoint with the current development versions of deal.ii and aspect. I have verified that I can do this successfully using deal.ii-9.2 and aspect from February, but that this functionality is broken. The model setup in question has prescribed surface velocity boundary conditions.

I suspect that the error is associated with a recent change in deal.ii. I do not understand the classes being used in core.cc:1872-1909. Maybe it is necessary to call map->initialize when resuming from snapshot?


-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.3.0-pre (master, 5d2ce34ea)
--     . using deal.II 9.3.0-pre (master, dd40ea034d)
--     .       with 32 bit indices and vectorization level 1 (128 bits)
--     . using Trilinos 12.10.1
--     . using p4est 2.0.0
--     . running in DEBUG mode
--     . running with 192 MPI processes
-----------------------------------------------------------------------------

   Setting up GPlates boundary velocity plugin.

   Loading GPlates data boundary file ZZ+S200/velo_ZZ+S200_458.gpml.

   Loading new gplates velocity file did not succeed.
   Assuming constant boundary conditions for rest of model run.

-----------------------------------------------------------------------------
-- For information on how to cite ASPECT, see:
--   https://aspect.geodynamics.org/citing.html?ver=2.3.0-pre&dg=1&sha=5d2ce34ea&src=code
-----------------------------------------------------------------------------
*** Resuming from snapshot!

Number of active cells: 49,152 (on 4 levels)
Number of degrees of freedom: 3,001,642 (1,216,710+52,258+405,570+1,327,104)

--------------------------------------------------------
An error occurred in line <721> of file </tmp/unpack/deal.II-master/source/fe/mapping_q_cache.cc> in function
    std::vector<dealii::Point<spacedim> > dealii::MappingQCache<<anonymous>, <anonymous> >::compute_mapping_support_points(const typename dealii::Triangulation<dim, spacedim>::cell_iterator&) const [with int dim = 3; int spacedim = 3; typename dealii::Triangulation<dim, spacedim>::cell_iterator = dealii::TriaIterator<dealii::CellAccessor<3, 3> >]
--------------------------------------------------------
--------------------------------------------------------
An error occurred in line <721> of file </tmp/unpack/deal.II-master/source/fe/mapping_q_cache.cc> in fu
nction
    std::vector<dealii::Point<spacedim> > dealii::MappingQCache<<anonymous>, <anonymous> >::compute_map
ping_support_points(const typename dealii::Triangulation<dim, spacedim>::cell_iterator&) const [with in
t dim = 3; int spacedim = 3; typename dealii::Triangulation<dim, spacedim>::cell_iterator = dealii::Tri
aIterator<dealii::CellAccessor<3, 3> >]
The violated condition was:
    support_point_cache.get() != nullptr
Additional information:
    Must call MappingQCache::initialize() before using it or after mesh
    has changed!

Stacktrace:
-----------
#0  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: dealii::MappingQCache<3, 3>::compute_mapping_support_points(dealii::TriaIterator<dealii::CellAccessor<3, 3> > const&) const
#1  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: dealii::MappingQGeneric<3, 3>::fill_fe_face_values(dealii::TriaIterator<dealii::CellAccessor<3, 3> > const&, unsigned int, dealii::hp::QCollection<2> const&, dealii::Mapping<3, 3>::InternalDataBase const&, dealii::internal::FEValuesImplementation::MappingRelatedData<3, 3>&) const
#2  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: dealii::FEFaceValues<3, 3>::do_reinit(unsigned int)
#3  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: void dealii::FEFaceValues<3, 3>::reinit<false>(dealii::TriaIterator<dealii::DoFCellAccessor<3, 3, false> > const&, unsigned int)
#4  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: void dealii::hp::FEFaceValues<3, 3>::reinit<false>(dealii::TriaIterator<dealii::DoFCellAccessor<3, 3, false> > const&, unsigned int, unsigned int, unsigned int, unsigned int)
#5  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: void dealii::VectorTools::compute_nonzero_normal_flux_constraints<3, 3>(dealii::DoFHandler<3, 3> const&, unsigned int, std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > const&, std::map<unsigned int, dealii::Function<3, double> const*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, dealii::Function<3, double> const*> > > const&, dealii::AffineConstraints<double>&, dealii::Mapping<3, 3> const&)
#6  /home/rudolph/sw/dealii-toolchain-openmpi-4.0.5-mpiio-04252021/deal.II-master/lib/libdeal_II.g.so.9.3.0-pre: void dealii::VectorTools::compute_no_normal_flux_constraints<3, 3>(dealii::DoFHandler<3, 3> const&, unsigned int, std::set<unsigned int, std::less<unsigned int>, std::allocator<unsigned int> > const&, dealii::AffineConstraints<double>&, dealii::Mapping<3, 3> const&)
#7  ./aspect-mpiio: aspect::Simulator<3>::compute_initial_velocity_boundary_constraints(dealii::AffineConstraints<double>&)
#8  ./aspect-mpiio: aspect::Simulator<3>::setup_dofs()
#9  ./aspect-mpiio: aspect::Simulator<3>::resume_from_snapshot()
#10  ./aspect-mpiio: aspect::Simulator<3>::run()
#11  ./aspect-mpiio: void run_simulator<3>(std::__cxx11::basic_string<char, std::char_traits<char>, std
::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<cha
r> > const&, bool, bool, bool)
#12  ./aspect-mpiio: main```
gassmoeller commented 3 years ago

Thanks for reporting! I opened a PR with a fix in #4022. Do you want to give that branch a try? I am pretty sure it fixes your issue (I could reproduce it with a simple test model).