Cased Elastic Wellbore with Imperfect Interfaces

Problem description

This example uses the LagrangianContact solver to handle a cased wellbore problem with imperfect contact interfaces. The completed wellbore is composed of a steel casing, a cement sheath, and rock formation. All the three materials are assumed to exhibit isotropic linear elastic behavior. The contact surfaces between these materials are simulated using a Lagrangian contact model.

../../../../../../_images/sketch7.png

Fig. 66 A cased wellbore with imperfect casing-cement and cement-rock interfaces

Under a compressional loading in the radial direction, the imperfect contact interfaces behave like the perfect ones (see Cased Elastic Wellbore Problem). When a radial tension acting on the inner face of the wellbore, the casing debonds from the cement layer. Analytical results of the radial displacement u_{r} in the casing is expressed as (Hervé and Zaoui, 1995) :

u_{r} = Ar - \frac{B}{r}

where r is the radial coordinate, A and B are constants that are obtained by solving the boundary conditions, as detailed in the post-processing script. The outer face of the casing as well as the inner face of the cement layer are free of stress because of the debonding at the casing-cement interface. Therefore, the displacement jump at the cement-rock interface is nil, and the displacement jump across the casing-cement interface is equal to u_r(r=r_{out_casing}), where r_{out_casing} is the outer radius of the casing.

Input file

This benchmark example does not use any external input files and everything required is contained within two GEOS XML files located at:

inputFiles/wellbore/CasedElasticWellbore_ImperfectInterfaces_base.xml

and

inputFiles/wellbore/CasedElasticWellbore_ImperfectInterfaces_benchmark.xml

The corresponding integrated test is

inputFiles/wellbore/CasedElasticWellbore_ImperfectInterfaces_smoke.xml

In this example, we should focus on following XML blocks:

Cylinder geometry

The nodesets that define the casing-cement and cement-rock interfaces are curved. In this example, we use the Cylinder geometry to select these nodesets. This geometry is defined by the centers of the two plane faces, firstFaceCenter and secondFaceCenter, and its inner and outer radii, innerRadius and outerRadius. Note that the inner radius is optional as it is only needed for defining a hollow cylinder (i.e. an annulus). The inner radius is required in this example to select only the nodes on the casing-cement and the cement-rock interfaces.

  <Geometry>
    <Cylinder
      name="casingCementInterface"
      firstFaceCenter="{ 0.0, 0.0,  -0.001 }"
      secondFaceCenter="{ 0.0, 0.0, 0.101 }"
      outerRadius="0.1061"
      innerRadius="0.1059"
    />

    <Cylinder
      name="cementRockInterface"
      firstFaceCenter="{ 0.0, 0.0,  -0.001 }"
      secondFaceCenter="{ 0.0, 0.0, 0.101 }"
      outerRadius="0.1331"
      innerRadius="0.1329"
    />
  </Geometry>

Events

In this example, we need to define a solo event for generating the imperfect contact surfaces as shown below:

    <SoloEvent
      name="preFracture"
      target="/Solvers/SurfaceGen"/>

where the surface generation solver is defined as follows:

    <SurfaceGenerator
      name="SurfaceGen"
      fractureRegion="Fracture"
      targetRegions="{ casing, cement, rock }"
      rockToughness="1.0e6"
      mpiCommOrder="1"/>

Here, rockToughness is defined by default but has been omitted in this simulation.

To collect the displacement jump across the imperfect interfaces, we also define two periodic events as shown below:

    <PeriodicEvent
      name="displacementJumpHistoryCollection"
      endTime="2.0"
      forceDt="0.1"
      target="/Tasks/displacementJumpCollection"/>
    <PeriodicEvent
      name="displacementJumpTimeHistoryOutput"
      endTime="2.0"
      forceDt="0.1"
      target="/Outputs/displacementJumpHistoryOutput"/>

The corresponding Tasks and Outputs targets must be defined in conjunction with these events.

Numerical Methods

The stabilizationName that is required in the LagrangianContact solver is defined by:

    <FiniteVolume>
      <TwoPointFluxApproximation
        name="TPFAstabilization"/>
    </FiniteVolume>

Contact region and material

The imperfect contact surfaces between casing, cement, and rock layers are defined as Fracture as shown below:

  <ElementRegions>
    <SurfaceElementRegion
      name="Fracture"
      faceBlock="faceElementSubRegion"
      defaultAperture="0"
      materialList="{ fractureContact }"/>

Here, the faceBlock name, faceElementSubRegion, is needed to define Tasks for collecting displacement jumps across the contact surfaces. The defaultAperture defined in this block is the default hydraulic aperture that should not be confused with the mechanical aperture. For this purely mechanical problem, the default hydraulic aperture parameter is omitted. The fracture material given in the materialList is defined as follows:

    <Coulomb
      name="fractureContact"
      cohesion="0"
      frictionCoefficient="0.5"
      penaltyStiffness="1.0e8"
      apertureTableName="apertureTable"/>

For this purely mechanical problem, without fluid flow and shearing stress acting on the contact surface, all the parameters defined in this block are omitted.

Results and benchmark

The GEOS results of displacement jump across the casing-cement and cement-rock interfaces are shown in the figure below:

../../../../../../_images/displacementJump3D.png

Fig. 67 Displacement jumps across the casing-cement and cement-rock interfaces

As expected, we observe a zero-displacement jump at the cement-rock interface under a tension stress on the inner surface of the casing. Indeed, the stress applied here does not cause any strain on the cement and rock layers after debonding has occurred at the casing-cement interface. The displacement jump at the casing-cement interface is homogeneous and varies over time because the tension stress on the inner surface of the casing varies with time, as defined in the XML file. A perfect comparison between GEOS results and theoretical results is shown in the figure below:

(Source code)

../../../../../../_images/elastic_casedWellbore_displacementJump.png

To go further

Feedback on this example

This concludes the cased wellbore example. For any feedback on this example, please submit a GitHub issue on the project’s GitHub page.