In order to facilitate the creation of fault parameters Fault objects have been created.
Inheritance will be used to minimise the repetition of code. The following inheritance tree will be used:
- Fault
- SinglePlaneFault
- PointSourceFault (Type1)
- FiniteFault
- Type2
- Type3
- MultiPlaneFault
- Type4
- SinglePlaneFault
Each leaf Fault object (The Types) represent a specific type of fault as per our regular definitions.
This allows us to have a uniform representation for a fault.
Currently implemented types are Type1 and Type2.
Types 3 and 4 have a skeleton to be filled later when Pre-processing has nhm generation added to the new workflow.
Type4 faults represent a collection of Type3 faults.
The fault_factory can be used to dynamically retrieve the different types of fault object using the number of the type required.
Type1
Type 1 faults are defined by GCMT parameters
Type2
Type 2 faults are defined by GCMT parameters with a magnitude scaling relation
These scaling relations mean the faults properties can be calculated when the scaling relation for a fault is set.
Additionally it is possible to set a ratio override to force a particular fault shape. Normally this will be set to 1 to force a square fault plane, if used.