Failed to create cohesive cells for two connected faults

Dear everyone,
I have a problem to do coseismic simulation (Subduction 3d) using 2 connected faults as can be seen below,


I have no problem with the simulation using the main fault (yellow big square in the second figure). But when I define the fault interfaces with the main fault and the small fault, PyLith fails to create the cohesive cells.

I have defined the small fault after the main fault in my cfg file, also defined the buried edges. The mesh quality of the fault is also fine (condition number < 2).

Is there any advise to fix this?

Thank you in advance.
Alvina K K

I can’t identify the two faults in the first screenshot. Please annotate the screenshot to clearly identify the faults or provide a diagram with the two faults clearly identified.

Did you mark all buried edges and set the corresponding flags in the .cfg file?

Dear Brad,

In the first screenshot, the two faults are indicated by the white-purple square on top of the purple block.

Yes. I already define the edge of the fault when I created the mesh and in the cfg file.

Regards,
Alvina K K

Please annotate the screenshot so the two faults are clearly identified. It would help if you could outline the faults in two different colors.

I am sorry if I didn’t get you earlier.
Here is the screenshot,

The main fault is the yellow surface and the small fault is the green surface.

Thank you in advance.
Alvina KK

Dear Brad,

I finally found the problem. I should not include the curve at the small fault which coincides with the seafloor in the boundary condition.

I tried to run the simulation for each fault and it works fine.

But I still haven’t succeeded to connect these two faults.
If I don’t put the id of both fault patches and edges, I get this error:

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

But if I turn on the id command:
label = fault_slabtopB_patch ;
id = 40;
edge = fault_slabtopB_patch_edge ;
id = 41;
label = fault_splay_patch ;
id = 42;
edge = fault_splay_patch_edge ;
id = 43;
I will get this error :

step02.cfg:86:
– pyre.inventory(error)
– timedependent.interfaces.faultcohesivekin.id ← ‘40;’
– invalid literal for int() with base 10: ‘40;’

step02.cfg:117:
– pyre.inventory(error)
– timedependent.interfaces.faultcohesivekin.id ← ‘42;’
– invalid literal for int() with base 10: ‘42;’

step02.cfg:89:
– pyre.inventory(error)
– timedependent.interfaces.faultcohesivekin.id ← ‘41;’
– invalid literal for int() with base 10: ‘41;’

step02.cfg:119:
– pyre.inventory(error)
– timedependent.interfaces.faultcohesivekin.id ← ‘43;’
– invalid literal for int() with base 10: ‘43;’
pylithapp: configuration error(s)

How can I solve this?

Thanks,
Alvina KK

Replace id = 40; with id = 40

You don’t need to end lines in ; In fact this is used as a delimiter for comments as long as there there is a space between the a character and ;.

Dear Brad,

It works now. Thanks!

Alvina KK