geodynamics / aspect

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

SIGFPE in cookbooks/continental_extension/ #4859

Closed tjhei closed 2 years ago

tjhei commented 2 years ago
-----------------------------------------------------------------------------
-- This is ASPECT, the Advanced Solver for Problems in Earth's ConvecTion.
--     . version 2.4.0-pre
--     . using deal.II 9.3.2
--     .       with 32 bit indices and vectorization level 1 (128 bits)
--     . using Trilinos 12.18.1
--     . using p4est 2.2.0
--     . running in DEBUG mode
--     . running with 16 MPI processes
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
-- For information on how to cite ASPECT, see:
--   https://aspect.geodynamics.org/citing.html?ver=2.4.0-pre&NewtonSolver=1&sha=&src=code
-----------------------------------------------------------------------------
Number of active cells: 3,056 (on 4 levels)
Number of degrees of freedom: 103,689 (25,122+3,201+12,561+12,561+12,561+12,561+12,561+12,561)

[...]

*** Timestep 1:  t=20000 years, dt=20000 years
   Solving mesh surface diffusion
   Solving mesh displacement system... 7 iterations.
   Solving temperature system... 11 iterations.
   Solving noninitial_plastic_strain system ... 17 iterations.
   Solving plastic_strain system ... 15 iterations.
   Solving crust_upper system ... 15 iterations.
   Solving crust_lower system ... 15 iterations.
   Solving mantle_lithosphere system ... 13 iterations.
SIGFPE received
bangerth commented 2 years ago

FWIW, I cannot reproduce this:

Number of active cells: 3,200 (on 4 levels)
Number of degrees of freedom: 107,649 (26,082+3,321+13,041+13,041+13,041+13,041+13,041+13,041)

Number of mesh deformation degrees of freedom: 6642
   Solving mesh displacement system... 0 iterations.
*** Timestep 0:  t=0 years, dt=0 years
   Solving mesh displacement system... 0 iterations.
   Solving temperature system... 0 iterations.
   Skipping noninitial_plastic_strain composition solve because RHS is zero.
   Solving plastic_strain system ... 0 iterations.
   Solving crust_upper system ... 0 iterations.
   Solving crust_lower system ... 0 iterations.
   Solving mantle_lithosphere system ... 0 iterations.
   Initial Newton Stokes residual = 2.13503e+15, v = 2.13385e+15, p = 7.11214e+13

   Rebuilding Stokes preconditioner...
   Solving Stokes system... 0+21 iterations.
      Relative nonlinear residual (total Newton system) after nonlinear iteration 1: 1, norm of the rhs: 2.13503e+15

   Rebuilding Stokes preconditioner...
   Solving Stokes system... 0+27 iterations.
      Relative nonlinear residual (total Newton system) after nonlinear iteration 2: 0.00480519, norm of the rhs: 1.02592e+13, newton_derivative_scaling_factor: 0

   The linear solver tolerance is set to 0.01. 
   Rebuilding Stokes preconditioner...
   Solving Stokes system... 0+8 iterations.
      Relative nonlinear residual (total Newton system) after nonlinear iteration 3: 0.00158375, norm of the rhs: 3.38135e+12, newton_derivative_scaling_factor: 0

   The linear solver tolerance is set to 0.01. 
   Rebuilding Stokes preconditioner...
   Solving Stokes system... 0+6 iterations.
      Relative nonlinear residual (total Newton system) after nonlinear iteration 4: 0.00149233, norm of the rhs: 3.18616e+12, newton_derivative_scaling_factor: 0

...

It's possible that FPE are not enabled on my system, although cmake says this:

> cmake .
-- ====================================================
-- ============ Configuring ASPECT ====================
-- ====================================================
-- Found deal.II version 9.5.0-pre at '/home/bangerth/p/deal.II/1/install/lib/cmake/deal.II'
-- Eclipse version is set to 4.11 (). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.
-- ASPECT_WITH_WORLD_BUILDER = 'ON'
-- Using World Builder version 0.5.0-pre found at /home/bangerth/p/deal.II/1/projects/WorldBuilder.
-- Query git repository information.
CMake Deprecation Warning at CMakeLists.txt:252 (CMAKE_POLICY):
  The OLD behavior for policy CMP0037 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

-- Enabling dynamic loading of plugins from the input file
-- Enabling checking of compatible deal.II library when loading plugins
-- Using ASPECT_WITH_LIBDAP = 'OFF'
-- Using ASPECT_WITH_NETCDF = 'OFF'
-- Runtime floating point checks enabled.
...
tjhei commented 2 years ago
 material_model/rheology/strain_dependent.cc:
503                 if  (this->simulator_is_past_initialization() && this->get_timestep_number() > 0 && in.requests_property(MaterialProperties::reaction_terms))                      │
│   504                   {                                                                                                                                                                │
│  >505                     const double edot_ii = std::max(std::sqrt(std::max(-second_invariant(deviator(in.strain_rate[i])), 0.)),                                                       │

but in.strain_rate has size 0.

callstack:

Program received signal SIGFPE, Arithmetic exception.
0x0000555558777526 in dealii::trace<2, double> (d=...) at /ssd/candi-v9.3.2-r1/deal.II-v9.3.2/include/deal.II/base/symmetric_tensor.h:2684
2684        t += d.data[i];
(gdb) bt
#0  0x0000555558777526 in dealii::trace<2, double> (d=...) at /ssd/candi-v9.3.2-r1/deal.II-v9.3.2/include/deal.II/base/symmetric_tensor.h:2684
#1  dealii::deviator<2, double> (t=...) at /ssd/candi-v9.3.2-r1/deal.II-v9.3.2/include/deal.II/base/symmetric_tensor.h:3194
#2  aspect::MaterialModel::Rheology::StrainDependent<2>::fill_reaction_outputs (this=0x555559adc450, in=..., i=0, min_strain_rate=9.9999999999999995e-21, plastic_yielding=false, out=...)
    at /ssd/aspect-git-clean/source/material_model/rheology/strain_dependent.cc:505
#3  0x000055555871c9ca in aspect::MaterialModel::ViscoPlastic<2>::evaluate (this=0x555559aefcd0, in=..., out=...) at /ssd/aspect-git-clean/source/material_model/visco_plastic.cc:255
#4  0x00005555586db16e in aspect::Assemblers::ApplyStabilization<2>::execute (this=0x55555a8623a0, scratch_base=..., data_base=...)
    at /ssd/aspect-git-clean/source/mesh_deformation/interface.cc:110
#5  0x0000555557c9618d in aspect::Simulator<2>::local_assemble_stokes_system (this=0x7fffffff9ad0, cell=..., scratch=..., data=...)
    at /ssd/aspect-git-clean/source/simulator/assembly.cc:571
#6  0x0000555557cb6b47 in aspect::Simulator<2>::assemble_stokes_system()::{lambda(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&)#1}::operator()(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&) const (this=0x7fffffff9ad0, cell=..., scratch=..., data=...)
    at /ssd/aspect-git-clean/source/simulator/assembly.cc:740
#7  0x0000555557ccceb3 in dealii::WorkStream::internal::sequential::run<aspect::Simulator<2>::assemble_stokes_system()::{lambda(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&)#1}, aspect::Simulator<2>::assemble_stokes_system()::{lambda(aspect::internal::Assembly::CopyData::StokesSystem<2> const&)#2}, dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > >, aspect::internal::Assembly::Scratch::StokesSystem<2>, aspect::internal::Assembly::CopyData::StokesSystem<2> >(dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > > const&, dealii::identity<dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > > >::type const&, aspect::Simulator<2>::assemble_stokes_system()::{lambda(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&)#1}, aspect::Simulator<2>::assemble_stokes_system()::{lambda(aspect::internal::Assembly::CopyData::StokesSystem<2> const&)#2}, aspect::internal::Assembly::Scratch::StokesSystem<2> const&, aspect::internal::Assembly::CopyData::StokesSystem<2> const&) (begin=..., end=..., worker=..., copier=..., sample_scratch_data=..., sample_copy_data=...)
    at /ssd/candi-v9.3.2-r1/deal.II-v9.3.2/include/deal.II/base/work_stream.h:770
#8  0x0000555557cbf752 in dealii::WorkStream::run<aspect::Simulator<2>::assemble_stokes_system()::{lambda(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&)#1}, aspect::Simulator<2>::assemble_stokes_system()::{lambda(aspect::internal::Assembly::CopyData::StokesSystem<2> const&)#2}, dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > >, aspect::internal::Assembly::Scratch::StokesSystem<2>, aspect::internal::Assembly::CopyData::StokesSystem<2> >(dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > > const&, dealii::identity<dealii::FilteredIterator<dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > > >::type const&, aspect::Simulator<2>::assemble_stokes_system()::{lambda(dealii::TriaActiveIterator<dealii::DoFCellAccessor<2, 2, false> > const&, aspect::internal::Assembly::Scratch::StokesSystem<2>&, aspect::internal::Assembly::CopyData::StokesSystem<2>&)#1}, aspect::Simulator<2>::assemble_stokes_system()::{lambda(aspect::internal::Assembly::CopyData::StokesSystem<2> const&)#2}, aspect::internal::Assembly::Scratch::StokesSystem<2> const&, aspect::internal::Assembly::CopyData::StokesSystem<2> const&, unsigned int, unsigned int) (begin=..., end=..., worker=..., copier=..., sample_scratch_data=..., sample_copy_data=..., queue_length=2, chunk_size=8)
    at /ssd/candi-v9.3.2-r1/deal.II-v9.3.2/include/deal.II/base/work_stream.h:1259
#9  0x0000555557c96d44 in aspect::Simulator<2>::assemble_stokes_system (this=0x7fffffff9ad0) at /ssd/aspect-git-clean/source/simulator/assembly.cc:749
#10 0x0000555557ae72be in aspect::Simulator<2>::compute_initial_newton_residual (this=0x7fffffff9ad0, linearized_stokes_initial_guess=...)
    at /ssd/aspect-git-clean/source/simulator/helper_functions.cc:2389
#11 0x0000555557763cc6 in aspect::Simulator<2>::assemble_and_solve_defect_correction_Stokes (this=0x7fffffff9ad0, dcr=..., use_picard=true)
    at /ssd/aspect-git-clean/source/simulator/solver_schemes.cc:453
#12 0x00005555576dd50c in aspect::Simulator<2>::solve_single_advection_iterated_defect_correction_stokes (this=0x7fffffff9ad0)
    at /ssd/aspect-git-clean/source/simulator/solver_schemes.cc:910
#13 0x0000555557472d18 in aspect::Simulator<2>::solve_timestep (this=0x7fffffff9ad0) at /ssd/aspect-git-clean/source/simulator/core.cc:1839
#14 0x000055555746fbf3 in aspect::Simulator<2>::run (this=0x7fffffff9ad0) at /ssd/aspect-git-clean/source/simulator/core.cc:1987
#15 0x0000555558940c92 in run_simulator<2> (
    raw_input_as_string="#### Continental Extension Cookbook\n# This cookbook is based off numerous published studies, five of which are listed below.\n# For additional information, see these publications and references therein"..., 
    input_as_string="#### Continental Extension Cookbook\n# This cookbook is based off numerous published studies, five of which are listed below.\n# For additional information, see these publications and references therein"..., output_xml=false, output_plugin_graph=false, validate_only=false) at /ssd/aspect-git-clean/source/main.cc:598
#16 0x00005555588f77a0 in main (argc=2, argv=0x7fffffffd9f8) at /ssd/aspect-git-clean/source/main.cc:785