SeisSol / PUMGen

Mesh generation for SeisSol
BSD 3-Clause "New" or "Revised" License
7 stars 3 forks source link

pumgen crashes if properties given by a LayeredModel (VelocityAwareMeshing) #53

Open Thomas-Ulrich opened 1 year ago

Thomas-Ulrich commented 1 year ago

I've noticed that VelocityAwareMeshing seems to always crash with the velocity is given by a LayeredModel. Here is an extract of the log:

Wed Feb 22 14:42:28, Info:  face id: 116 , MSize = 1000 
Wed Feb 22 14:42:28, Info:  face id: 120 , MSize = 1000 
Wed Feb 22 14:42:28, Info:  face id: 122 , MSize = 1000 
Wed Feb 22 14:42:28, Info:  Enabling velocity aware meshing 
Wed Feb 22 14:42:28, Info:  Gradation rate = 0.8 
Wed Feb 22 14:42:28, Info:  Target equivolume AspectRatio = 12 
Wed Feb 22 14:42:28, Info:  Target equiarea AspectRatio = 6 
Wed Feb 22 14:42:28, Info:  Starting the surface mesher 
Wed Feb 22 14:42:28, Info:  Progress: Surface Meshing 
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 8 with PID 0 on node exception exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------

Here is the xml file:

<freeSurface>119</freeSurface>
<!-- hypocenter-->
<boundaryCondition tag="65">121</boundaryCondition>
<!-- fault 7.8-->
<boundaryCondition tag="66">101,107,112,114,121</boundaryCondition>
<!-- fault 7.5-->
<boundaryCondition tag="67">97,109,115,116,120,122</boundaryCondition>
<!-- extras fault 7.8 -->
<boundaryCondition tag="68">110,105</boundaryCondition>
<absorbing>93,95,103,104,108</absorbing>
<surfaceMSize value="1000">101,107,112,114,121,110,105</surfaceMSize>
<surfaceMSize value="1000">97,109,115,116,120,122</surfaceMSize>
<area_AspectRatio value="6"/>
<vol_AspectRatio value="12"/>
<SurfaceMeshing SmoothingLevel="1" SmoothingType="Gradient" DiscreteAngle="15.0" Snap="0"></SurfaceMeshing>
<VolumeMeshing  SmoothingLevel="1" SmoothingType="Gradient" SetOptimisation="1"></VolumeMeshing>
<gradation value="0.8"/>
<globalMSize value="20e3"/>
<VelocityAwareMeshing easiFile="Mw_78_Turkey_rhomulambda1D_Guvercin_et_al.yaml" elementsPerWaveLength="3">
    <VelocityRefinementCuboid frequency="0.1" centerX="0" centerY="0" centerZ="-15e3"
                              halfSizeX="40e10" halfSizeY="15e10" halfSizeZ="15e10" bypassFindRegionAndUseGroup="1"/>
</VelocityAwareMeshing>

and here is the yaml file:

!LayeredModel
  map: !AffineMap
    matrix:
      z1: [0.0, 0.0, 1.0]
    translation:
      z1: 0
  interpolation: lower
  parameters: [rho, mu, lambda, plastCo]
  nodes:
      -1000.0: [2464.9689710139387, 14555395276.94021, 21249511511.522747, 5822158.1107760845]
      -1000000.0: [3400.203751580001, 72261470148.95335, 89717096148.43964, 28904588.059581343]

if I use a LuaMap instead:

!LuaMap
returns: [rho, mu, lambda]
function: |
 function f (x)
    if (x["z"] >= -1000.0) then
      rho = 2464.9689710139387
      mu = 14555395276.94021
      lambda = 21249511511.522747
    elseif (x["z"] >= -1000000.0) then
      rho = 3400.203751580001
      mu = 72261470148.95335
      lambda = 89717096148.43964
    end
   return {
     rho = rho,
     mu = mu,
     lambda = lambda
   }
   end

I'm able to generate the mesh.

the setup is available on exception, at /export/dump/ulrich/PUMGEN_folder/bug_layered_model