GEOS icon indicating copy to clipboard operation
GEOS copied to clipboard

Import fault and fractures from mesh input files

Open TotoGaz opened this issue 1 year ago • 0 comments

Here is the first version of the work plan to eventually import fractures from input files instead of using SurfaceGenerator.

  • [x] Move the m_recalculateFractureConnectorEdges, m_edgesToFractureConnectorsEdges, m_fractureConnectorsEdgesToEdges and m_fractureConnectorEdgesToFaceElements from EdgeManager to FaceElementSubRegion. Done in PR https://github.com/GEOSX/GEOSX/pull/2011
  • [x] Remove the computation of connections from SurfaceElementRegion and CellElementRegion when computing CellElementStencilTPFA in TwoPointFluxApproximation.cpp. Done in PR https://github.com/GEOSX/GEOSX/pull/2012 In order to get the real type of the ElementRegionBase, we can
    • Add some ElementRegionBase::getType() member function, returning an enum telling the actual derived type
    • Add some kind of filter when iterating over the regions directly in ElementRegionBase.
    • dynamic_cast?
    • Other?
  • [x] Extend the CellBlockManagerABC and CellBlockABC contract such that we have some FaceBlockABC that matches our needs. Done in https://github.com/GEOSX/GEOSX/pull/2034
    • Let's be clear on the contract. Do we want FaceBlockABC to be 2d or 3d? Homogeneous or heterogeneous? Do we want one unique FaceElementSubRegion per SurfaceElementRegion?
    • Let's make a first dummy implementation of FaceBlockABC for now.
  • [x] Remove hardcoded name "faceElementSubRegion". Let's provide the name of the FaceElementSubRegion to SurfaceGenerator. If the subsurface does not already exist, let the solver create it. Otherwise, extend the already existing subsurface. Done in https://github.com/GEOSX/GEOSX/pull/2036
  • [x] Remove hardcoded name "embeddedSurfaceSubRegion" too. Done in https://github.com/GEOSX/GEOSX/pull/2036
  • [ ] Split TwoPointFluxApproximation::addToFractureStencil into the appropriate number of member functions such that they can be reused in the file import process (which should not have to remove, since we're not in a dynamic fracture creation.). Get inspired by the Embedded verion.
  • [ ] Trigger the creation of the stencil alongside the computeCellStencil( mesh ) in FluxApproximationBase::initializePostInitialConditionsPreSubGroups.
  • [ ] Implement FaceBlock for real.

It's still not clear which file format we want to be using. Let's start with something simple for GEOSX and test on real use cases what's the best approach.

@CusiniM

TotoGaz avatar Aug 11 '22 20:08 TotoGaz