Error creating cohesive cell

Dear Brad,

I am trying to run step01.cfg in subduction example. It shows an error which says error in creating cohesive cells due to ambiguous fault surface.

How do I check the cell mentioned in the report ( in my case is cell 7721 ) thus I will be able to see which vertices of the fault curve causes this problem.

Here I attach the error report :
– Reading node set ‘fault_slabtop’ with id 22 containing 743 nodes.
Fatal error. Calling MPI_Abort() to abort PyLith application.
Traceback (most recent call last):

  • File “/scratch/akuncoro/pylith-2.2.1/lib/python2.7/site-packages/pylith/apps/PetscApplication.py”, line 74, in onComputeNodes*
  • self.main(*args, *kwds)
  • File “/scratch/akuncoro/pylith-2.2.1/lib/python2.7/site-packages/pylith/apps/PyLithApp.py”, line 115, in main*
  • mesh = self.mesher.create(self.problem.normalizer, interfaces)*
  • File “/scratch/akuncoro/pylith-2.2.1/lib/python2.7/site-packages/pylith/topology/MeshImporter.py”, line 120, in create*
  • self._adjustTopology(mesh, faults)*
  • File “/scratch/akuncoro/pylith-2.2.1/lib/python2.7/site-packages/pylith/topology/MeshGenerator.py”, line 127, in _adjustTopology*
  • interface.adjustTopology(mesh, firstFaultVertex, firstLagrangeVertex, firstFaultCell)*
  • File “/scratch/akuncoro/pylith-2.2.1/lib/python2.7/site-packages/pylith/faults/faults.py”, line 344, in adjustTopology*
  • def adjustTopology(self, *args): return _faults.FaultCohesive_adjustTopology(self, args)
    RuntimeError: Error occurred while adjusting topology to create cohesive cells for fault ‘fault_slabtop’.
    Ambiguous fault surface. Cell 7721 has all of its vertices on the fault.
    application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0
    /scratch/akuncoro/pylith-2.2.1/bin/nemesis: mpirun: exit 255
    /scratch/akuncoro/pylith-2.2.1/bin/pylith: /scratch/akuncoro/pylith-2.2.1/bin/nemesis: exit 1

Thank you in advance.
Best regards,
Alvina

You need to look at your mesh. As the error message says, there is a cell that has all of its vertices on the fault, which PyLith can’t handle. This usually happens when either the fault has a large amount of curvature relative to the cell size or you have very distorted cells (which you don’t want anyway).

I would first do a quality check within Trelis to make sure the condition number is less than about 4 (less than 2 is very good). If the quality is good, then you should look at the fault surface carefully to see what volumetric cells have all of their vertices (for a tet this is two or more faces) on the fault.

Dear Brad,

I have checked the mesh quality in Trelis but their scale is between 0-1. I think this one refers to orthogonality of the mesh. How do I check the condition number in Trelis? And if the quality is more than 4, is smoothing will be enough to obtain better quality or I have to recreate the geometry? In my case, I create a geometry of subduction (which is similar in the 2d subduction) and add splay fault.

Thank you,
Alvina

Dear Alvina,

How are you checking the condition number? If you’re using the GUI, there is a list of options to choose from (also, make sure that you have selected all surfaces/volumes). I’ve forgotten how to do this from the command line, but it will be
in the manual. There are several options for improving the mesh quality, including smoothing, remeshing, etc.

Cheers,

Charles

Charles Williams I Geodynamic Modeler
GNS Science I Te
Pῡ Ao

1 Fairway Drive, Avalon 5010, PO Box 30368, Lower Hutt 5040, New Zealand

Ph 0064-4-570-4566 I Mob 0064-22-350-7326 I Fax 0064-4-570-4600 http://www.gns.cri.nz/ I **Email: **C.Williams@gns.cri.nz

Dear Charles and Brad,

Since I am following the mesh script from the examples and the condition number of 1.4 has been set in the script. Once the script is running, the condition number of the current mesh will be reported in the command line. The problem is, my geometry has a low angle near the trench and there is a change of the angle on the slab. Because I combine the slab geometry from Hayes for deeper slab and from seismic profile for shallow part. It seems effect the mesh quality. Eventhough the condition number is set, there are still some mesh which have low quality.

I have checked again the cells and re-assure whether there is coincide node. And it comes a new error report :

ValueError: ID values for material ‘fault_slabtop’ and interface ‘fault_splay’ are both ‘100’. Material and interface id values must be unique.

I run the step01.cfg from examples/2d/subduction. It is said the ID of the materials are both 100. But I do not define the material ID as written in the report ( I define different number ID for the material. In the example, it is 100). Is there another script in PyLith folder which I have missed to change the ID?

Thank you for your assistances.

Best Regards,
Alvina

The default material-id value for faults is 100, so if you have more than one fault, you must override the default on all but one fault. PyLith has a number of default parameters. See the tutorials and the discussion of the PyLith Parameter Viewer in the manual to learn how to view the current values from the .cfg files and command line as well as the defaults.

Dear Brad,

Thank you for your response. It is working now. I put the id number for each fault below the label name in the script. While in the example, it is only the label name to be defined.

Thank you.