[aspect-devel] Dealing with the curved spherical mesh when applying different initial global refinement at different depths

Shangxin Liu sxliu at vt.edu
Sat Jul 23 21:26:33 PDT 2016


Hi;

When I use the fixed mesh to run global spherical shell model with ASPECT,
I find that the mesh size of shallower depths is larger than that of deeper
depths. In my model with 5 initial global refinement and 0 initial adaptive
refinement, for example, the mesh size above ~4501km is ~58km and the mesh
size below ~4501km is ~32 km. Because we commonly want the mesh size of
upper mantle smaller than that of lower mantle, I add the following code
into the core.cc after calling the initial global refinement to apply an
additional global refinement to the cells above a specified depth:

// Do the additional initial global refinement down to specified depth if
required

        if (parameters.increase_initial_global_refinement_to_depth)

          {

            for (unsigned int m=0;
m<parameters.additional_initial_global_refinemnt; ++m)

              {

                for (typename Triangulation<dim>::active_cell_iterator

                     cell = triangulation.begin_active();

                     cell != triangulation.end(); ++cell)

                  {

                    const Point<dim> cell_center = cell->center();

                    const double depth = geometry_model->depth(cell_center);

                    if (depth <
parameters.apply_initial_global_refinement_to_depth)

                      cell->set_refine_flag ();

                  }



                mesh_refinement_manager.tag_additional_cells ();

                triangulation.execute_coarsening_and_refinement();

              }
          }

"increase_initial_global_refinement_to_depth", "
additional_initial_global_refinemnt", and "
apply_initial_global_refinement_to_depth" represent my new specified input
parameters to define whether apply this additional global refinement, the
additional refinement level, and above which depth this is applied. This
indeed works to add additional global refinement of the mesh at shallower
depths. However, for the curved spherical shell geometry domain, this will
generate the empty slots around the input division depth due to the
inconsistency of the mesh size above and below this depth. I attach one of
my test figure output from Paraview here to show this "empty slots" issue
for curved spherical shell geometry. Of course these empty slots will be
smaller and closer to 0 when using higher global refinement, but I wonder
whether I can directly make the mesh here tracking the circular domain at
the division depth. Jacky may have made this depth-dependent global
refinement working. Have you run into this "tiny empty slots" problem?

Any idea how to fix this issue in curved spherical shell geometry?

Best,
Shangxin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20160724/232ceab3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D_spherical_shell_mesh.png
Type: image/png
Size: 14103 bytes
Desc: not available
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20160724/232ceab3/attachment-0001.png>


More information about the Aspect-devel mailing list