gempy icon indicating copy to clipboard operation
gempy copied to clipboard

Fault input orientations affecting result

Open javoha opened this issue 1 week ago • 1 comments

Describe the bug A simple model featuring a single fault and two horizontal units in separate groups. The younger (top) unit is only present in one fault block. Depending on input fault orientation, the older unit gets eroded unexpectedly in the fault block where the younger unit should not be present, due to the fact that the scalar field for the younger unit bends downwards along the fault plane and cuts o-off (due to erode relationship) the older unit.

The resulting models:

Expected result Image

Model with reversed fault orientation leading to top layer bending downwards along fault plane and eroding lower unit:

Image Image

To Reproduce

Run the following code with the provided input files

geo_model= gp.create_geomodel(
    project_name='fault_test',
    extent=[0, 1000, 0, 1000, 0, 1000],
    resolution=[20,20,20],
    importer_helper=gp.data.ImporterHelper(
        # path_to_orientations="model_orientations_reverse.csv", for "weird" model
        path_to_orientations="model_orientations.csv", # for "correct" model
        path_to_surface_points="model_surface_points.csv"
    )
)

# Map geological series to surfaces
gp.map_stack_to_surfaces(
    gempy_model=geo_model,
    mapping_object={
        "Fault_Series": 'fault',
        "Strat_Series_2": ('rock2'),
        "Strat_Series_1": ('rock1')
    }
)

# Define youngest structural group as fault
gp.set_is_fault(geo_model, ["Fault_Series"])

# Compute the geological model
gp.compute_model(geo_model)

# Display a basic cross section of input data
gpv.plot_2d(geo_model)

Expected behavior I think only the "correct" model should be calculated, independent of passed orientations.

Additional context model_orientations_reverse.csv model_surface_points.csv model_orientations.csv

javoha avatar Dec 05 '25 14:12 javoha