Issue during generation of high resolution mesh


#1

ASPECT 2.1.0-pre
deal.II 9.0.0-pre
Trilinos 12.10.1
p4rest 2.0.0

I would like to generate a 3d spherical shell from Earth surface to CMB with very high resolution for the surface. I was able to generate such a mesh with GMR5 + AMR2 for the crust, but when I want a GMR5 + AMR3, I have a SIGFPE received error. Also despite the high resolution, it did not see any memory issue yet (running on 28 nodes *30t).
I have the following backtraces in gdb:

#0 0x00000031a1e07c01 in __ieee754_acos () from /lib64/libm.so.6
#1 0x00000031a1e24812 in acos () from /lib64/libm.so.6
#2 0x00007ffff479aab0 in dealii::SphericalManifold<3, 3>::get_intermediate_point (this=, p1=…, p2=…, w=0.5)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/manifold_lib.cc:292
#3 0x00007ffff47b0607 in dealii::SphericalManifold<3, 3>::get_new_point (this=0x1c97d48, vertices=…, weights=…)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/manifold_lib.cc:378
#4 0x00007ffff4739eb6 in dealii::Manifold<3, 3>::get_new_point_on_line (this=0x1c97d48, line=…)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/manifold.cc:314
#5 0x00007ffff47c4bc0 in dealii::(anonymous namespace)::get_new_point_on_object<3, 3> (obj=…)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria_accessor.cc:1028
#6 0x00007ffff47c58d7 in dealii::(anonymous namespace)::get_new_point_on_object<1, 3, 3> (obj=…, use_laplace=use_laplace@entry=false)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria_accessor.cc:1050
#7 0x00007ffff481cad5 in dealii::TriaAccessor<1, 3, 3>::center (this=0x7fffffff6670, respect_manifold=respect_manifold@entry=true,
use_laplace=use_laplace@entry=false) at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria_accessor.cc:1403
#8 0x00007ffff4adc9ab in dealii::internal::Triangulation::Implementation::execute_refinement<3> (triangulation=…,
check_for_distorted_cells=) at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria.cc:5248
#9 0x00007ffff4aec358 in dealii::Triangulation<3, 3>::execute_refinement (this=this@entry=0x7fffffffc1c0)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria.cc:11922
#10 0x00007ffff4aecbdf in dealii::Triangulation<3, 3>::execute_coarsening_and_refinement (this=this@entry=0x7fffffffc1c0)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/grid/tria.cc:11806
#11 0x00007ffff4e2399c in dealii::parallel::distributed::Triangulation<3, 3>::copy_local_forest_to_triangulation (this=this@entry=0x7fffffffc1c0)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/distributed/tria.cc:2621
#12 0x00007ffff4e2698e in dealii::parallel::distributed::Triangulation<3, 3>::execute_coarsening_and_refinement (this=this@entry=0x7fffffffc1c0)
at /home/aspect/deal.ii/deal.ii_2017-11-17/dealii/source/distributed/tria.cc:2911
#13 0x0000000000b43380 in aspect::Simulator<3>::refine_mesh (this=this@entry=0x7fffffffb160, max_grid_level=max_grid_level@entry=9)
at /home/jeanniot/aspect/aspect_2018-08-13/aspect/source/simulator/core.cc:1491
#14 0x0000000000b95b99 in aspect::Simulator<3>::maybe_do_initial_refinement (this=this@entry=0x7fffffffb160, max_refinement_level=9)
at /home/jeanniot/aspect/aspect_2018-08-13/aspect/source/simulator/helper_functions.cc:373
#15 0x0000000000b42d5c in aspect::Simulator<3>::run (this=this@entry=0x7fffffffb160)
at /home/jeanniot/aspect/aspect_2018-08-13/aspect/source/simulator/core.cc:1754
#16 0x0000000000dafb05 in run_simulator<3> (input_as_string=…, output_xml=output_xml@entry=false,
output_plugin_graph=output_plugin_graph@entry=false, validate_only=validate_only@entry=false)
at /home/jeanniot/aspect/aspect_2018-08-13/aspect/source/main.cc:605
#17 0x0000000000d8566e in main (argc=2, argv=) at /home/jeanniot/aspect/aspect_2018-08-13/aspect/source/main.cc:796

I printed few variables:
p1 = -1.3096152364662485643558098770626746e+549
p2 = 2.70429662801675051088334272624006e+1927
other variables (e1,e2,w) did not “exist”

I did the computation in Q1 then Q2 and have the same issue.
I am not able to attach anything in here, so I copy-paste some important info of the input file:
set Dimension = 3
set End time = 0
set Use years in output instead of seconds = true
set Pressure normalization = surface
set Surface pressure = 0

subsection Geometry model
set Model name = spherical shell
subsection Spherical shell
set Inner radius = 3481000
set Outer radius = 6376000
set Cells along circumference = 12
end
end

subsection Mesh refinement
set Initial global refinement = 5
set Initial adaptive refinement = 3
set Skip solvers on initial refinement = true
set Skip setup initial conditions on initial refinement = true
set Strategy = minimum refinement function
subsection Minimum refinement function
set Coordinate system = spherical
set Variable names = depth, phi, theta
set Function expression = if (depth>6350000, 8, 5)
end
end

Let me know if you need further information,
Many thanks,
Ludovic


#2

Hi Ludo,
that looks like an interesting bug indeed. Could you provide the following information for further clarification:

  • the SphericalManifold class has experienced some changes since deal.II 9.0.0-pre (some I did, some others) and I do not know if ASPECT relies on having the deal.II 9.0 release if you are using a newer deal.II version than 8.5. Which git commit are you using precisely, and can you try with a newer deal.II version (either the official deal.II 9.0, or a new development version)
  • to solve a similar problem to your gdb problem l had to recompile deal.II with the -O0 flag for the debug mode (add -D DEAL_II_CXX_FLAGS_DEBUG=’-O0’ to your cmake call). that should give you more information.
  • what does the documentation of the failing function say? Are your values for p1 and p2 realistic? they seem wrong to me (huge numbers). If that is the case the error lies somewhere above either in the get_new_point function or further above.

Hope that helps


#3

Hi Ludo,
that looks like an interesting bug indeed. Could you provide the following information for further clarification:

  • the SphericalManifold class has experienced some changes since deal.II 9.0.0-pre (some I did, some others) and I do not know if ASPECT relies on having the deal.II 9.0 release if you are using a newer deal.II version than 8.5. Which git commit are you using precisely, and can you try with a newer deal.II version (either the official deal.II 9.0, or a new development version)
  • to solve a similar problem to your gdb problem l had to recompile deal.II with the -O0 flag for the debug mode (add -D DEAL_II_CXX_FLAGS_DEBUG=’-O0’ to your cmake call). that should give you more information.
  • what does the documentation of the failing function say? Are your values for p1 and p2 realistic? they seem wrong to me (huge numbers). If that is the case the error lies somewhere above either in the get_new_point function or further above.

Hope that helps


#4

Hi Rene,

Thank you for your insight! Problem solved.
I downloaded the newest version of aspect and dealii (9.1.0) and I was able to generate the high resolution mesh in 3D spherical geometry (GMR5 + AMR3).

Indeed, the value for p1 and p2 appeared way to high. I did not run further tests (debug mode of dealii) because having the newest version of deallii fixed it, but if you are curious I can run the debug mode to see where it failed initially.

Many thanks
Ludo