A problem with the orthogonal fault model

Hello!
I’m using pylith v2.2.2 to study the surface deformation caused by an orthogonal fault. I embed these faults into a larger domain as shown in the figure below. The model can run to completion when I set a single fault (seg1_fault or seg2_fault). However, an error occurs when I specify an orthogonal fault system (seg1_fault and seg2_fault).

RuntimeError: Error occurred while adjusting topology to create cohesive cells for fault ‘seg2_fault’.
Error in topology of mesh associated with symmetry of adjacency information.

There are some settings about the fault interfaces.

[pylithapp.timedependent]
interfaces = [seg1_fault, seg2_fault]
[pylithapp.timedependent.interfaces]
seg1_fault = pylith.faults.FaultCohesiveKin
seg2_fault = pylith.faults.FaultCohesiveKin

[pylithapp.timedependent.interfaces.seg1_fault]
label = seg1_fault ; Nodeset for the entire fault surface
id=10
edge = seg1_fault_edge ; Nodeset for the buried edges
id=11
quadrature.cell = pylith.feassemble.FIATSimplex
quadrature.cell.dimension = 2
[pylithapp.timedependent.interfaces.seg1_fault.eq_srcs.rupture.slip_function]
slip.iohandler.filename = spatialdb/seg1_coseismic_slip.spatialdb
slip.query_type = linear
slip.label = seg1_fault slip
slip_time = spatialdata.spatialdb.UniformDB
slip_time.label = Slip time
slip_time.values = [slip-time]
slip_time.data = [0.0*year]

[pylithapp.timedependent.interfaces.seg2_fault]
label = seg2_fault ; Nodeset for the entire fault surface
id=20
edge = seg2_fault_edge ; Nodeset for the buried edges
id=21
quadrature.cell = pylith.feassemble.FIATSimplex
quadrature.cell.dimension = 2
[pylithapp.timedependent.interfaces.seg2_fault.eq_srcs.rupture.slip_function]
slip.iohandler.filename = spatialdb/seg2_coseismic_slip.spatialdb
slip.query_type = linear
slip.label = seg2_fault slip
slip_time = spatialdata.spatialdb.UniformDB
slip_time.label = Slip time
slip_time.values = [slip-time]
slip_time.data = [0.0*year]

Please give me some advice. Thanks for your help!
Best regards

PyLith (all versions) does not support intersections with multiple through-going faults. This is a limitation of the algorithm used to construct the topology of the cohesive cells. PyLith does support T intersections. In your case this means that one of the faults must be separated into 2 faults. For example, Seg1 could be separated into Seg1a on one side of Seg2 and Seg1b on the other side. In specifying Seg1a the buried edge would include vertices on the intersection of Seg1a with Seg2. Similarly, in specifying Seg1b the buried edge would include vertices on the intesection of Seg1b with Seg2.

Thanks for your help. I’ll try it.