From cbc417d1badf7406c1b9c7deba063c73e5281ce8 Mon Sep 17 00:00:00 2001 From: Matteo Cusini <49037133+CusiniM@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:12:01 -0700 Subject: [PATCH] Documentation of SolidMechanicsEmbeddedFracture solver (#2617) --- .../physicsSolvers/PhysicsSolvers.rst | 2 + .../contact/docs/ContactMechanics.rst | 37 ++++++++++++ .../SolidMechanicsConformingFractures.rst | 32 ++++++++++ .../docs/SolidMechanicsEmbeddedFractures.rst | 56 ++++++++++++++++++ src/docs/sphinx/Publications.rst | 9 ++- .../validationStudies/Index.rst | 2 + .../faultMechanics/Index.rst | 8 +-- .../validationStudies/poromechanics/Index.rst | 11 ++++ .../mandel/Example.rst | 0 .../mandel/Mandel_Verification.png | Bin .../mandel/disp.png | Bin .../mandel/displacement_history.hdf5 | Bin .../mandel/mandelFigure.py | 0 .../mandel/mesh.png | Bin .../mandel/pressure.png | Bin .../mandel/pressure_history.hdf5 | Bin .../mandel/sketch.png | Bin 17 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 src/coreComponents/physicsSolvers/contact/docs/ContactMechanics.rst create mode 100644 src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst create mode 100644 src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst create mode 100644 src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/Example.rst (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/Mandel_Verification.png (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/disp.png (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/displacement_history.hdf5 (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/mandelFigure.py (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/mesh.png (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/pressure.png (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/pressure_history.hdf5 (100%) rename src/docs/sphinx/advancedExamples/validationStudies/{faultMechanics => poromechanics}/mandel/sketch.png (100%) diff --git a/src/coreComponents/physicsSolvers/PhysicsSolvers.rst b/src/coreComponents/physicsSolvers/PhysicsSolvers.rst index da5a8b06317..63e457db904 100644 --- a/src/coreComponents/physicsSolvers/PhysicsSolvers.rst +++ b/src/coreComponents/physicsSolvers/PhysicsSolvers.rst @@ -13,6 +13,8 @@ physics solvers to be included in the simulation. solidMechanics/docs/SolidMechanics + contact/docs/ContactMechanics + fluidFlow/docs/SinglePhaseFlow fluidFlow/docs/CompositionalMultiphaseFlow diff --git a/src/coreComponents/physicsSolvers/contact/docs/ContactMechanics.rst b/src/coreComponents/physicsSolvers/contact/docs/ContactMechanics.rst new file mode 100644 index 00000000000..4bb7b84fa2c --- /dev/null +++ b/src/coreComponents/physicsSolvers/contact/docs/ContactMechanics.rst @@ -0,0 +1,37 @@ +.. _ContactMechanicsSolver: + +##################################### +Contact Mechanics Solver +##################################### + +Governing Equations +-------------------------- + +GEOS contact solvers solve the the balance of linear momentum within a fractured solid, accounting for the continuity of stress across surfaces (i.e., fractures), i.e. + +.. math:: + + \nabla \cdot \sigma = 0 \\\\ + [[\sigma]] \cdot \mathbf{n} = 0 + +Where: + +* :math:`\sigma` is the stress tensor in the solid, +* :math:`\mathbf{n}` is the outward unit normal to the surface, +* :math:`[[\sigma]]` is the stress jump across the surface. + +On each fracture surface, a no-interpenetration constraint is enforced. Additionally, tangential tractions can also be generated, which are modeled using a regularized Coulomb model to describe frictional sliding. + +Solvers +-------------------------- + +There exist two broad classes of discretization methods that model fractures as lower dimensional entities +(eg, 2D surfaces in a 3D domain): conforming grid methods and nonconforming (or embedded) methods. Both approaches have +been implemented in GEOS in the following solvers: + +.. toctree:: + :maxdepth: 1 + + SolidMechanicsConformingFractures + + SolidMechanicsEmbeddedFractures diff --git a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst new file mode 100644 index 00000000000..fb27f9e2c88 --- /dev/null +++ b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsConformingFractures.rst @@ -0,0 +1,32 @@ +.. _SolidMechanicsConformingFractures: + +##################################### +Solid mechanics conforming fractures solver +##################################### + +Introduction +============ + + +Theory +========================= + +Under construction + +Governing Equations +-------------------------- + +Under construction + +Parameters +========================= + +In the preceding XML block, The `LagrangianContactSolver` is specified by the title of the subblock of the `Solvers` block. +The following attributes are supported in the input block for `LagrangianContactSolver`: + +.. include:: /coreComponents/schema/docs/LagrangianContactSolver.rst + +The following data are allocated and used by the solver: + +.. include:: /coreComponents/schema/docs/LagrangianContactSolver_other.rst + diff --git a/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst new file mode 100644 index 00000000000..0e138bd2b84 --- /dev/null +++ b/src/coreComponents/physicsSolvers/contact/docs/SolidMechanicsEmbeddedFractures.rst @@ -0,0 +1,56 @@ +.. _SolidMechanicsEmbeddedFractures: + +##################################### +Solid mechanics embedded fractures solver +##################################### + + + +Introduction +============ + + +Discretization & soltuion strategy +========================= + +The linear momentum balance equation is discretized using a low order finite element method. Moreover, to account for the influence of the fractures on the overall behavior, we utilize the enriched finite element method (EFEM) +with a piece-wise constant enrichment. This method employs an element-local enrichment of the FE space using the concept of assumedenhanced strain [1-6]. + + +Example +========================= + +An example of a valid XML block is given here: + +.. literalinclude:: ../../../../../inputFiles/efemFractureMechanics/Sneddon_embeddedFrac_base.xml + :language: xml + :start-after: + :end-before: + +Parameters +========================= + +In the preceding XML block, The `SolidMechanicsEmbeddedFractures` is specified by the title of the subblock of the `Solvers` block. +Note that the `SolidMechanicsEmbeddedFractures` always relies on the existance of a +The following attributes are supported in the input block for `SolidMechanicsEmbeddedFractures`: + +.. include:: /coreComponents/schema/docs/SolidMechanicsEmbeddedFractures.rst + +The following data are allocated and used by the solver: + +.. include:: /coreComponents/schema/docs/SolidMechanicsEmbeddedFractures_other.rst + +References +========== + +1. Simo JC, Rifai MS. A class of mixed assumed strain methods and the method of incompatible modes. *Int J Numer Methods Eng.* 1990;29(8):1595-1638. Available at: http://arxiv.org/abs/https://onlinelibrary.wiley.com/doi/pdf/10.1002/nme.1620290802. + +2. Foster CD, Borja RI, Regueiro RA. Embedded strong discontinuity finite elements for fractured geomaterials with variable friction. *Int J Numer Methods Eng.* 2007;72(5):549-581. Available at: http://arxiv.org/abs/https://onlinelibrary.wiley.com/doi/pdf/10.1002/nme.2020. + +3. Wells G, Sluys L. Three-dimensional embedded discontinuity model for brittle fracture. *Int J Solids Struct.* 2001;38(5):897-913. Available at: https://doi.org/10.1016/S0020-7683(00)00029-9. + +4. Oliver J, Huespe AE, Sánchez PJ. A comparative study on finite elements for capturing strong discontinuities: E-fem vs x-fem. *Comput Methods Appl Mech Eng.* 2006;195(37-40):4732-4752. Available at: https://doi.org/10.1002/nme.4814. + +5. Borja RI. Assumed enhanced strain and the extended finite element methods: a unification of concepts. *Comput Methods Appl Mech Eng.* 2008;197(33):2789-2803. Available at: https://doi.org/10.1016/j.cma.2008.01.019. + +6. Wu J-Y. Unified analysis of enriched finite elements for modeling cohesive cracks. *Comput Methods Appl Mech Eng.* 2011;200(45-46):3031-3050. Available at: https://doi.org/10.1016/j.cma.2011.05.008. diff --git a/src/docs/sphinx/Publications.rst b/src/docs/sphinx/Publications.rst index d0117008b15..d550927c21b 100644 --- a/src/docs/sphinx/Publications.rst +++ b/src/docs/sphinx/Publications.rst @@ -2,11 +2,18 @@ Publications ############################################################################### -Last updated 23-October-2022 +Last updated 5-September-2023 Preprints and Early-Views ========================= +2023 +==== + +* - | **A phase-field model for hydraulic fracture nucleation and propagation in porous media** + | F Fei, A Costa, JE Dolbow, R Settgast, M Cusini + | International Journal for Numerical and Analytical Methods in Geomechanics + | `doi.org/10.1002/nag.3612 `_ 2022 ==== diff --git a/src/docs/sphinx/advancedExamples/validationStudies/Index.rst b/src/docs/sphinx/advancedExamples/validationStudies/Index.rst index e27f92a2c4b..058b6eb3b97 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/Index.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/Index.rst @@ -16,6 +16,8 @@ Validation and Verification Studies wellboreProblems/Index viscoplasticity/Index + + poromechanics/Index thermoPoromechanics/Index diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/Index.rst b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/Index.rst index bc59c83379f..2f0c1362e19 100644 --- a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/Index.rst +++ b/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/Index.rst @@ -1,18 +1,16 @@ .. _ValidationStudiesFaultMechanics: -Fault Mechanics +Faults & fractures =================================== .. toctree:: :maxdepth: 1 + sneddon/Example + singleFracCompression/Example intersectFrac/Example - sneddon/Example - - mandel/Example - faultVerification/Example diff --git a/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst new file mode 100644 index 00000000000..46eda39040d --- /dev/null +++ b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/Index.rst @@ -0,0 +1,11 @@ +.. _ValidationStudiesFaultMechanics: + + +Poromechanics +=================================== + +.. toctree:: + :maxdepth: 1 + + mandel/Example + diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/Example.rst b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/Example.rst rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Example.rst diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/Mandel_Verification.png b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Mandel_Verification.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/Mandel_Verification.png rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/Mandel_Verification.png diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/disp.png b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/disp.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/disp.png rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/disp.png diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/displacement_history.hdf5 b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/displacement_history.hdf5 similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/displacement_history.hdf5 rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/displacement_history.hdf5 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/mandelFigure.py b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/mandelFigure.py rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mandelFigure.py diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/mesh.png b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mesh.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/mesh.png rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/mesh.png diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/pressure.png b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/pressure.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/pressure.png rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/pressure.png diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/pressure_history.hdf5 b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/pressure_history.hdf5 similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/pressure_history.hdf5 rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/pressure_history.hdf5 diff --git a/src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/sketch.png b/src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/sketch.png similarity index 100% rename from src/docs/sphinx/advancedExamples/validationStudies/faultMechanics/mandel/sketch.png rename to src/docs/sphinx/advancedExamples/validationStudies/poromechanics/mandel/sketch.png