`_).
-It is recommended to use Paraview v5.12+, which is based on python 3.10+. If you need to build geos-pv package with the paraview dependency, use the command:
-
-.. code-block:: bash
-
- pip install path/to/geosPythonPackages/geos-pv[paraview]
diff --git a/docs/geos_pv_docs/meshQuality.rst b/docs/geos_pv_docs/meshQuality.rst
deleted file mode 100644
index 8662d1276..000000000
--- a/docs/geos_pv_docs/meshQuality.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Mesh Quality
-================
-
-
-PVCellTypeCounterEnhanced
-----------------------------------
-
-.. automodule:: geos.pv.plugins.qc.PVCellTypeCounterEnhanced
-
-PVMeshQualityEnhanced
----------------------------
-
-.. automodule:: geos.pv.plugins.qc.PVMeshQualityEnhanced
diff --git a/docs/geos_pv_docs/mohrCircles.rst b/docs/geos_pv_docs/mohrCircles.rst
index 4a72b4222..513aed90d 100644
--- a/docs/geos_pv_docs/mohrCircles.rst
+++ b/docs/geos_pv_docs/mohrCircles.rst
@@ -3,7 +3,7 @@ Mohr's Circle Package
This package includes utilities to compute and plot Mohr's Circles using the Python View from Paraview.
-geos.pv.utils.mohrCircles.functionsMohrCircle module
+functionsMohrCircle module
--------------------------------------------------------
.. automodule:: geos.pv.utils.mohrCircles.functionsMohrCircle
@@ -11,7 +11,7 @@ geos.pv.utils.mohrCircles.functionsMohrCircle module
:undoc-members:
:show-inheritance:
-geos.pv.utils.mohrCircles.plotMohrCircles module
+plotMohrCircles module
--------------------------------------------------
.. automodule:: geos.pv.utils.mohrCircles.plotMohrCircles
diff --git a/docs/geos_pv_docs/processing.rst b/docs/geos_pv_docs/processing.rst
deleted file mode 100644
index 762caef18..000000000
--- a/docs/geos_pv_docs/processing.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-Post-/Pre-processing
-=========================
-The plugins include:
-
-* A reader that parse GEOS output log file;
-* 3D mesh cleanning plugins;
-* Processing plugins to compute additional geomechanical properties;
-* Visualization plugins to plot Mohr's circles and cross plots using Paraview Python View.
-
-
-PVAttributeMapping
---------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVAttributeMapping
-
-
-PVCreateConstantAttributePerRegion
------------------------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVCreateConstantAttributePerRegion
-
-
-PVFillPartialArrays
---------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVFillPartialArrays
-
-
-PVSplitMesh
-----------------------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVSplitMesh
-
-
-PVMergeBlocksEnhanced module
---------------------------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVMergeBlocksEnhanced
-
-
-PVClipToMainFrame
-----------------------------------
-
-.. automodule:: geos.pv.plugins.generic_processing.PVClipToMainFrame
-
-
-Geos output pre-processing
-+++++++++++++++++++++++++++++
-
-PVGeosBlockExtractAndMerge plugin
-----------------------------------
-
-.. automodule:: geos.pv.plugins.post_processing.PVGeosBlockExtractAndMerge
-
-
-Geomechanics workflows
-++++++++++++++++++++++++
-
-
-PVGeomechanicsWorkflow plugin
-------------------------------
-
-.. automodule:: geos.pv.plugins.post_processing.PVGeomechanicsWorkflow
-
-
-PVGeomechanicsCalculator plugin
----------------------------------------
-
-.. automodule:: geos.pv.plugins.post_processing.PVGeomechanicsCalculator
-
-
-PVMohrCirclePlot plugin
----------------------------------
-
-.. automodule:: geos.pv.plugins.post_processing.PVMohrCirclePlot
diff --git a/docs/geos_pv_docs/pv_generic.rst b/docs/geos_pv_docs/pv_generic.rst
new file mode 100644
index 000000000..fa71c940a
--- /dev/null
+++ b/docs/geos_pv_docs/pv_generic.rst
@@ -0,0 +1,38 @@
+Generic Processing Plugins
+================================
+
+
+Attribute Mapping
+----------------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVAttributeMapping
+
+
+Create Constant Attribute Per Region
+-----------------------------------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVCreateConstantAttributePerRegion
+
+
+Fill Partial Arrays
+-----------------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVFillPartialArrays
+
+
+Split Mesh
+-----------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVSplitMesh
+
+
+Merge Blocks Keeping Partial Attributes
+---------------------------------------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVMergeBlocksEnhanced
+
+
+Clip to the main frame
+-----------------------------
+
+.. automodule:: geos.pv.plugins.generic_processing.PVClipToMainFrame
\ No newline at end of file
diff --git a/docs/geos_pv_docs/pv_postprocessing.rst b/docs/geos_pv_docs/pv_postprocessing.rst
new file mode 100644
index 000000000..76bcc339a
--- /dev/null
+++ b/docs/geos_pv_docs/pv_postprocessing.rst
@@ -0,0 +1,45 @@
+Post-processing
+=========================
+
+Generic post-processing
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. _PVGeosBlockExtractAndMerge_plugin:
+
+GEOS Extract And Merge Blocks
+----------------------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVGeosBlockExtractAndMerge
+
+
+GEOS Log Reader
+------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVGeosLogReader
+
+
+Geomechanics workflows
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+GEOS Geomechanics Calculator
+-----------------------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVGeomechanicsCalculator
+
+
+Plot Mohr's circle
+------------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVMohrCirclePlot
+
+
+GEOS Surface Geomechanics
+--------------------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVSurfaceGeomechanics
+
+
+GEOS Geomechanics Workflow
+------------------------------
+
+.. automodule:: geos.pv.plugins.post_processing.PVGeomechanicsWorkflow
\ No newline at end of file
diff --git a/docs/geos_pv_docs/pv_preprocessing.rst b/docs/geos_pv_docs/pv_preprocessing.rst
new file mode 100644
index 000000000..742d50b24
--- /dev/null
+++ b/docs/geos_pv_docs/pv_preprocessing.rst
@@ -0,0 +1,4 @@
+Pre-processing
+===========================
+
+**mesh-doctor plugins to be added**
\ No newline at end of file
diff --git a/docs/geos_pv_docs/pv_qc.rst b/docs/geos_pv_docs/pv_qc.rst
new file mode 100644
index 000000000..777f54d22
--- /dev/null
+++ b/docs/geos_pv_docs/pv_qc.rst
@@ -0,0 +1,19 @@
+Quality check
+=====================
+
+
+Cell Type Counter Enhanced
+----------------------------------
+
+.. automodule:: geos.pv.plugins.qc.PVCellTypeCounterEnhanced
+
+Mesh Quality Enhanced
+---------------------------
+
+.. automodule:: geos.pv.plugins.qc.PVMeshQualityEnhanced
+
+
+Python View Configurator
+------------------------------
+
+.. automodule:: geos.pv.plugins.qc.PVPythonViewConfigurator
\ No newline at end of file
diff --git a/docs/geos_pv_docs/utilities.rst b/docs/geos_pv_docs/pv_utilities.rst
similarity index 88%
rename from docs/geos_pv_docs/utilities.rst
rename to docs/geos_pv_docs/pv_utilities.rst
index c3d83c458..20b38778f 100644
--- a/docs/geos_pv_docs/utilities.rst
+++ b/docs/geos_pv_docs/pv_utilities.rst
@@ -2,7 +2,7 @@ Utilities
==========
.. toctree::
- :maxdepth: 5
+ :maxdepth: 1
geosLogReaderUtils
diff --git a/docs/geos_pv_docs/pyplotUtils.rst b/docs/geos_pv_docs/pyplotUtils.rst
index 155eea78f..1b768cb50 100644
--- a/docs/geos_pv_docs/pyplotUtils.rst
+++ b/docs/geos_pv_docs/pyplotUtils.rst
@@ -4,8 +4,8 @@ pyplotUtils functions
This package define options for matplotlib.
-geos.pv.pyplotUtils.matplotlibOptions module
----------------------------------------------
+matplotlib options
+-------------------------
.. automodule:: geos.pv.pyplotUtils.matplotlibOptions
:members:
diff --git a/docs/geos_pv_docs/pythonViewUtils.rst b/docs/geos_pv_docs/pythonViewUtils.rst
index 22e29c9ec..c7d7c865d 100644
--- a/docs/geos_pv_docs/pythonViewUtils.rst
+++ b/docs/geos_pv_docs/pythonViewUtils.rst
@@ -4,16 +4,16 @@ PythonViewUtils Package
This package includes utilities to display cross-plot using the Python View from Paraview.
-geos.pv.pythonViewUtils.Figure2DGenerator module
-----------------------------------------------------------
+Figure2DGenerator
+-----------------------
.. automodule:: geos.pv.pythonViewUtils.Figure2DGenerator
:members:
:undoc-members:
:show-inheritance:
-geos.pv.pythonViewUtils.functionsFigure2DGenerator module
--------------------------------------------------------------------
+FunctionsFigure2DGenerator
+--------------------------------------
.. automodule:: geos.pv.pythonViewUtils.functionsFigure2DGenerator
:members:
diff --git a/docs/geos_pv_docs/readers.rst b/docs/geos_pv_docs/readers.rst
deleted file mode 100644
index 7d6f15169..000000000
--- a/docs/geos_pv_docs/readers.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Readers
-=============
-
-PVGeosLogReader
---------------------
-
-.. automodule:: geos.pv.plugins.post_processing.PVGeosLogReader
\ No newline at end of file
diff --git a/docs/geos_pv_docs/utils.rst b/docs/geos_pv_docs/utils.rst
index 31443918f..74d42b563 100644
--- a/docs/geos_pv_docs/utils.rst
+++ b/docs/geos_pv_docs/utils.rst
@@ -4,7 +4,7 @@ Utilities
This package defines utilities for Paraview plugins.
-geos.pv.utils.checkboxFunction module
+checkboxFunction module
---------------------------------------------
.. automodule:: geos.pv.utils.checkboxFunction
@@ -12,7 +12,7 @@ geos.pv.utils.checkboxFunction module
:undoc-members:
:show-inheritance:
-geos.pv.utils.DisplayOrganizationParaview module
+DisplayOrganizationParaview module
-------------------------------------------------
.. automodule:: geos.pv.utils.DisplayOrganizationParaview
@@ -20,7 +20,7 @@ geos.pv.utils.DisplayOrganizationParaview module
:undoc-members:
:show-inheritance:
-geos.pv.utils.paraviewTreatments module
+paraviewTreatments module
---------------------------------------------
.. automodule:: geos.pv.utils.paraviewTreatments
@@ -28,7 +28,7 @@ geos.pv.utils.paraviewTreatments module
:undoc-members:
:show-inheritance:
-geos.pv.utils.workflowFunctions module
+workflowFunctions module
---------------------------------------
.. automodule:: geos.pv.utils.workflowFunctions
diff --git a/docs/images/AttributeMapping.JPG b/docs/images/AttributeMapping.JPG
deleted file mode 100644
index c1276a02a..000000000
--- a/docs/images/AttributeMapping.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b5890611052d9b7d4eeb76be3e078055850b0a781de8c2fbe86af45b2a85466a
-size 131108
diff --git a/docs/images/CreateConstantAttributePerRegionFilter.JPG b/docs/images/CreateConstantAttributePerRegionFilter.JPG
deleted file mode 100644
index 49ec58e52..000000000
--- a/docs/images/CreateConstantAttributePerRegionFilter.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4d60f54b6fdf52d9bc68d56b606d153c0c37d129eea31992dbc641390641ca95
-size 136498
diff --git a/docs/images/ExtractMergeBlockFilter.JPG b/docs/images/ExtractMergeBlockFilter.JPG
deleted file mode 100644
index af04606b3..000000000
--- a/docs/images/ExtractMergeBlockFilter.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:dda93e2bde77e997faa355365a3a1b634f7a5cf54dd82d34af50009458cd43ef
-size 78692
diff --git a/docs/images/GEOS_XML_Wells.JPG b/docs/images/GEOS_XML_Wells.JPG
deleted file mode 100644
index 6a5fb47d2..000000000
--- a/docs/images/GEOS_XML_Wells.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e032536db1620d002443c8cfc3fe049522355a4952189e4d5fff87c456856341
-size 47483
diff --git a/docs/images/GEOS_XML_csv_export.JPG b/docs/images/GEOS_XML_csv_export.JPG
deleted file mode 100644
index 06ea1abc1..000000000
--- a/docs/images/GEOS_XML_csv_export.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:953a6f9fc1bc85ec487cb5cf28e01a0ff64a7a4dab71a0ed4b48981f6908ffb3
-size 32742
diff --git a/docs/images/GEOS_XML_flowSolver.JPG b/docs/images/GEOS_XML_flowSolver.JPG
deleted file mode 100644
index b623677e4..000000000
--- a/docs/images/GEOS_XML_flowSolver.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:467730e1da2b2fb1ff7bfa8181fd37f7766a9984aa6b2947996fe654b4a237cd
-size 54271
diff --git a/docs/images/GEOS_XML_vtkOutput.JPG b/docs/images/GEOS_XML_vtkOutput.JPG
deleted file mode 100644
index c36e97b34..000000000
--- a/docs/images/GEOS_XML_vtkOutput.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8ebb9c042b1b9aa6ab386f62bbea4f435e1237163f482092192ffa74df2e843c
-size 25570
diff --git a/docs/images/GEOS_filter_organisation.JPG b/docs/images/GEOS_filter_organisation.JPG
deleted file mode 100644
index 8865c0f10..000000000
--- a/docs/images/GEOS_filter_organisation.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fe626a9293aab1d54b7cc507cd780df2dd0fc5a9590a0b39a9001ce655994e92
-size 20732
diff --git a/docs/images/GEOS_log_Reader0.JPG b/docs/images/GEOS_log_Reader0.JPG
deleted file mode 100644
index 446c1fc0e..000000000
--- a/docs/images/GEOS_log_Reader0.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6986d4ed913a05004d27bdeb8958af5b41d43e56f48f3096d145b1d735eac721
-size 65747
diff --git a/docs/images/GEOS_log_Reader1.JPG b/docs/images/GEOS_log_Reader1.JPG
deleted file mode 100644
index 353eb494f..000000000
--- a/docs/images/GEOS_log_Reader1.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f08b02300d3ba8f740da35be71b98a1a93976d0ce4864a875e3b0d7799e26f54
-size 50828
diff --git a/docs/images/GEOS_log_data_spreadsheet.JPG b/docs/images/GEOS_log_data_spreadsheet.JPG
deleted file mode 100644
index 8ffb8d895..000000000
--- a/docs/images/GEOS_log_data_spreadsheet.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3d69c22cef4e76ca8ab73c880aff2b71a2f270924ad69e2b3cb67578d60c66d5
-size 141545
diff --git a/docs/images/GEOS_log_start.JPG b/docs/images/GEOS_log_start.JPG
deleted file mode 100644
index e93ddc381..000000000
--- a/docs/images/GEOS_log_start.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3daa02723c0e83ca5d2537997f7bba3db30705ccd326fa05c54cb94f1e13b108
-size 107938
diff --git a/docs/images/GEOS_log_time_step.JPG b/docs/images/GEOS_log_time_step.JPG
deleted file mode 100644
index acc1d8f43..000000000
--- a/docs/images/GEOS_log_time_step.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c0c8e0f2aaca85a005b14ef49e8144c195586e43aecea7eacc085875d04bfc88
-size 124109
diff --git a/docs/images/GeomechanicsAnalysis.JPG b/docs/images/GeomechanicsAnalysis.JPG
deleted file mode 100644
index 6dc56e139..000000000
--- a/docs/images/GeomechanicsAnalysis.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:632d323464a363473c46dfd25b9f2d8c27d774820e98c75790ba3e042c23f3e9
-size 142592
diff --git a/docs/images/GeomechanicsWorkflows.JPG b/docs/images/GeomechanicsWorkflows.JPG
deleted file mode 100644
index a91fc2e0d..000000000
--- a/docs/images/GeomechanicsWorkflows.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d7dac6c43befad7101aab5a5e8b4bd586cc20fabd6d7732b8085a392bd851e4f
-size 143959
diff --git a/docs/images/MergeBlocksEnhanced.JPG b/docs/images/MergeBlocksEnhanced.JPG
deleted file mode 100644
index 66712152e..000000000
--- a/docs/images/MergeBlocksEnhanced.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:539736c21cf96f1e45325b0e9fe98c062ba961763c203575ef209ef56ccba6b8
-size 95347
diff --git a/docs/images/MultiBlock_inspector.JPG b/docs/images/MultiBlock_inspector.JPG
deleted file mode 100644
index 8a897f96f..000000000
--- a/docs/images/MultiBlock_inspector.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:51cfd0672ab85784f78e63f9f6925ef8ba770aa49eff525494f991882da4db54
-size 75570
diff --git a/docs/images/SurfaceGeomechanics.JPG b/docs/images/SurfaceGeomechanics.JPG
deleted file mode 100644
index 482f1fc10..000000000
--- a/docs/images/SurfaceGeomechanics.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b7a3ea8bdce67ecc64ff37a0e0678e2dcbf1854a3fa5450c973b9b32eae909c
-size 133783
diff --git a/docs/images/TransferAttributes.JPG b/docs/images/TransferAttributes.JPG
deleted file mode 100644
index 753200c96..000000000
--- a/docs/images/TransferAttributes.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8a7b576cadeb51d14cd08ddd261a7dcc4e27cc66974111f276f46a6cb8aaaae1
-size 193807
diff --git a/docs/images/mohr_circle_plot.JPG b/docs/images/mohr_circle_plot.JPG
deleted file mode 100644
index 1c68c1a1f..000000000
--- a/docs/images/mohr_circle_plot.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d33def2d68584b554d7889b1850cee97ebc967f70b04777438840d701524ecac
-size 141659
diff --git a/docs/images/pressure_vs_time.JPG b/docs/images/pressure_vs_time.JPG
deleted file mode 100644
index 671d73fc4..000000000
--- a/docs/images/pressure_vs_time.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:04c65ae2862ff606fbc687f2f910a633d373c55de86f3d8d9955d37d7ea96ff3
-size 171513
diff --git a/docs/images/pvd_file.JPG b/docs/images/pvd_file.JPG
deleted file mode 100644
index 9b4860e96..000000000
--- a/docs/images/pvd_file.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ca021c78d4df298558e88f9974d51f87f4f002cecb4504e8ef470a4dc3fe483c
-size 62300
diff --git a/docs/images/stress_along_well.JPG b/docs/images/stress_along_well.JPG
deleted file mode 100644
index b459e37ec..000000000
--- a/docs/images/stress_along_well.JPG
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3bb5d122c1f79f61e0ee8f8d05c5638732979dd1dd124647d7bb35a7deb5d802
-size 100937
diff --git a/docs/index.rst b/docs/index.rst
index 91c8c8a81..3bd9289e9 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -76,28 +76,28 @@ Packages
.. toctree::
- :maxdepth: 5
-
- hdf5-wrapper
+ :maxdepth: 2
geos-ats
- geos-geomechanics
+ mesh-doctor
- geos-mesh
+ ./geos_geomechanics_docs/geos-geomechanics
- geos-processing
+ ./geos_mesh_docs/geos-mesh
- geos-pv
+ ./geos_processing_docs/geos-processing
- geos-timehistory
+ ./geos_pv_docs/geos-pv
- geos-utils
+ hdf5-wrapper
+
+ geos-timehistory
geos-xml-tools
geos-xml-viewer
- mesh-doctor
+ geos-utils
pygeos-tools
\ No newline at end of file
diff --git a/docs/user_guide.md b/docs/user_guide.md
deleted file mode 100644
index 67d60441e..000000000
--- a/docs/user_guide.md
+++ /dev/null
@@ -1,628 +0,0 @@
----
-Title: GEOS Paraview Plugins User Guide
-SubTitle: PV plugins to process GEOS inputs/outputs
-Author: Martin LEMAY
-Company: TotalEnergies
-Date: January 29, 2025
----
-
-
-
-
-
-{{ Title }}
-
-
-
-{{ SubTitle }}
-
-
-{{ Author }}
-
-*{{ CurrentDate }}*
-
-
-
-
-
-
-
-
-
-## Outline
-
-- [1. Introduction](#1-introduction)
- - [1.1. Paraview at a glance](#11-paraview-at-a-glance)
- - [1.2. Paraview filters for GEOS](#12-paraview-filters-for-geos)
-- [2. Pre-processing GEOS inputs](#2-pre-processing-geos-inputs)
-- [3. Load and plot GEOS Log Data](#3-load-and-plot-geos-log-data)
- - [3.1. GEOS Log Reader](#31-geos-log-reader)
- - [3.2. Plot data from spreadsheets using Python View Configurator](#32-plot-data-from-spreadsheets-using-python-view-configurator)
-- [4. Load and clean GEOS output mesh and properties](#4-load-and-clean-geos-output-mesh-and-properties)
-- [5. Geomechanics Post-Processing](#5-geomechanics-post-processing)
- - [5.1. Compute additional geomechanical properties](#51-compute-additional-geomechanical-properties)
- - [5.2. Compute additional surfacic geomechanical properties](#52-compute-additional-surfacic-geomechanical-properties)
- - [5.3. Geomechanics workflows](#53-geomechanics-workflows)
- - [5.4. Plot 2D Mohr's Circles for geomechanics studies](#54-plot-2d-mohrs-circles-for-geomechanics-studies)
-- [6. Utilities](#6-utilities)
- - [6.1. Transfer attributes between identical or partial meshes](#61-transfer-attributes-between-identical-or-partial-meshes)
- - [6.2. Transfer properties from Volume mesh to surfaces](#62-transfer-properties-from-volume-mesh-to-surfaces)
- - [6.3. Merge blocks keeping partial attributes](#63-merge-blocks-keeping-partial-attributes)
-- [7. Other tools around GEOS](#7-other-tools-around-geos)
- - [7.1. GEOS Python tools](#71-geos-python-tools)
- - [7.2. geos-xml-viewer](#72-geos-xml-viewer)
-
-
-
-## What you will learn in this documentation
-
-* What are GEOS outputs:
-* How to load and plot information from GEOS output log
-* How to load and process GEOS output mesh
-* How to compute additional geomechanical outputs
-* How to plot Mohr's circles
-* How to create scatter plots
-
-
-## Prerequisites
-
-**On GEOS**
-
-* Get the output mesh with properties in pvd format
-* Get the simulation log in .txt or .out format
-
-**On Paraview**
-
-* Basic knowledge of Paraview
-
-
-
-# 1. Introduction
-
-## 1.1. Paraview at a glance
-
-Paraview (PV) is an open source application and architecture for the 2D and 3D visualization and analysis of large scale scientific data sets. It has been developed by the Kitware company since 2000 and is merely funded by DOE programs or by external companies. It is downloaded approximately 100,000 times a year and is recognized as a leader scientific visualization application by many institutions and companies. It has initially been designed for computational fluid dynamics visualizations but its extensible and modular architecture enables it to extend to new areas. It makes ParaView a general purpose tool for a wide range of applications.
-
-For more details, see the following documentation:
-* [Paraview website and user guides](https://docs.paraview.org/en/latest/index.html)
-
-
-
-## 1.2. Paraview filters for GEOS
-
-GEOS is a R&D simulation software, which implies that:
-
-* input data must be cautiously prepared to be compliant with GEOS
-* output data must be post-processed to be visualized or to be compliant with other softwares
-
-To this end, several tools have been developed around GEOS to pre-process and post-process GEOS inputs/outputs (see section [Other tools around GEOS](#7-other-tools-around-geos)) and to integrate it in the global geomedeling workflow.
-
-
-
-In particular, several Paraview plugins have been developed to enable the users to visualize data -especially unstructured meshes- and to make the tools more user-friendly. These plugins and described in the following.
-
-Filters are organized as following in the `Filters` menu:
-* `0- Geos Pre-Processing`: filters to process the mesh before GEOS simulations
-* `1- Geos Post-Processing Workflows`: Composite filters that combine individual post-processing filters to apply on GEOS simulation results.
-* `2- Geos Output Mesh Pre-Processing`: Individual post-processing filters to apply on GEOS simulation results to clean the mesh.
-* `3- Geos Geomechanics`: Individual filters to perform geomechanic analysis of GEOS simulation results.
-* `4- Geos Utils`: Individual filters to process and visualize the mesh.
-
-
-
-
-
-Figure 1: GEOS filter organization in Paraview.
-
-
-
-# 2. Pre-processing GEOS inputs
-
-GEOS input data needs to be processed from the geomedeller to make it valid for GEOS. Most of these operations are currently made by [`mesh-doctor`](#71-geos-python-tools) and [`geos-xml-viewer`](#72-geos-xml-viewer), and Paraview plugins are not available yet for these tools.
-
-The pre-processing `Create Constant attribute Per Region` filter was however developed in Paraview to ease the creation of properties constant per regions, such region being defined using another index property.
-Input mesh can be of any type and composite. The user needs to select the region property, to define the name of output property, and to defined the values of the output property for each region index. If no value is defined for some region indexes, the output property will yield no data value in these regions.
-
-> [!IMPORTANT]
-> #### To use this filter
->
-> 1. Select the mesh you want to add an attribute
-> 2. Apply `Create Constant attribute Per Region` filter
-> 3. Define input parameters
-> 4. Click on `Apply`
-
-In the example shown in the Figure hereafter, the mesh consists of 3 regions defined using the property named "region" whose values are (0, 1, 2) and can be seen in the 3D viewer on the left hand. A new property named here "Porosity" is created whose values are:
-
-* 0.05 in region index 0
-* 0.15 in region index 1
-* 0.2 in region index 2
-
-The resulting property is shown in the 3D viewer on the right hand.
-
-
-
-
-
-Figure 2: "CreateConstantAttributePerRegion" filter.
-
-
-
-
-
-# 3. Load and plot GEOS Log Data
-
-GEOS dumps data in a log file whose name is usually "job_GEOS_[JOB ID].out". This text file can be read by the user. It contains:
-* the list of all the events that happens during the simulation
-
-
-
-
-
-
-Figure 3: GEOS output log file - GEOS events.
-
-
-
-
-* if activated, a lot of information on:
- * Flow properties
- * Well properties
- * Aquifer properties
- * Solver properties
-
-
-
-
-
-Figure 6: GEOS output log file - Time step information.
-
-
-
-
-This log file is currently the subject of a lot of work by the GEOS Integration Team to make the information clearer and more easily readible.
-
-The data contained in this file can also be loaded in Paraview as a spreadsheet to be processed and plotted.
-
-> [!TIP]
-> #### How to export simulation data to GEOS log in GEOS xml file?
->
-> Information dumped into the log file is controlled by the field `log_level` from `Statistics` tasks in the xml file.
->
->
->
->

->
->

->
->
Figure 4: Activation of statistic outputs in the GEOS xml file.
->
-
-## 3.1. GEOS Log Reader
-
-A Paraview plugin has been developped to read GEOS log file. To load a log file, the user uses the `Open` command from Paraview, selects the log file, then selects the right reader named `Geos Log Reader`.
-
-
-
-

-
-
Figure 5: Steps to open GEOS log file using "GEOS Log Reader".
-
-
-
-
-The user can now select in the `Properties` panel the information type to load among:
-
-* `Flow` properties statistics
-* `Wells` properties statistics
-* `Aquifers` properties
-* `Convergence` metrics
-
-All the properties read in the file are listed and can be manually selected. In addition, the user can enter the phase names if they are known, and choose working units.
-
-
-
-
-
-Figure 6: "GEOS log Reader" - Properties panel.
-
-
-
-
-Loaded data are displayed in a SpreadSheetView.
-
-
-
-
-
-Figure 7: Loaded properties as a spreadsheet using "GEOS log Reader".
-
-
-
-
-> [!TIP]
-> If the user wants to load multiple property types from the log (e.g., both Flow and Wells), the same file must be loaded twice using GEOS Log Reader and selecting in each one the correct type.
-
-> [!CAUTION]
-> The reader is compliant until the GEOS commit version #9365098.
->
-> Use the **csv export** options for more recent versions of GEOS and directly load the csv into Paraview.
-
-> [!TIP]
-> #### How to export simulation data to csv file in GEOS xml file?
->
-> Information dumped into the csv file is controlled by the field `writecsv` from `Statistics` tasks in the xml file.
->
->
->
->

->
->
Figure 8: Activation of csv export in the GEOS xml file.
->
-
-## 3.2. Plot data from spreadsheets using Python View Configurator
-
-A common task is to plot the data loaded from GEOS log file or csv files. To do that, a plugin has been developped to create and display plots in Paraview using the `PythonView`.
-
-The user must choose the filter `Filters>4- Geos Utils>Python View Configurator`. In the `Properties` panel, the following parameters must be defined:
-
-* Input sources: input data source to plot
-* Curves To Plot: abcissa and ordinate data to plot. Multiple curve can be plotted in the same graph, but a same scale is used for all of them. If some regions are defined, data can be splitted by regions if the checkbox is toggled.
-* Curve Convention: Toggle to select from the list the curves to change convention (multiplied by -1). This is usefull for instance to plot Stress and Pressure on a same plot using the right convention.
-* Axis Properties: Toggle `Edit Axis Properties` to access to axis properties. Axes can be reversed, use a log scale, display minor ticks, or set limits.
-* Title Properties: Toggle `Display Title` to add a title to the figure and edit font properties.
-* Legend Properties: Toggle `Display Legend` to add a legend to the figure and edit position and labels.
-* Curves Properties: Toggle `Edit Curve Graphics` to edit markers and line properties.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select input data to plot
-> 2. Apply `Python View Configurator` filter
-> 3. Define input parameters
-> 4. Click on `Apply`
-
-
-
-
-
-Figure 9: Plot Pressure vs. Time using "Python View Configurator" filter from GEOS log outputs.
-
-
-
-
-> [!TIP]
-> `Python View Configurator` is able to plot data from any spreadsheets, whatever its origin (e.g., data along a line).
-> The image hereafter shows an example of pipeline and `Python View Configurator` filter parameters to plot Pressure, total and effective stresses against the depth.
->
->
->
-> 
->
-> Figure 10: Steps to Plot Pressure and Stress vs. Depth using "Python View Configurator" filter from GEOS output mesh.
->
->
-
-# 4. Load and clean GEOS output mesh and properties
-
-GEOS may result in an output mesh containing simulated properties at multiple time steps. The export format is a `.pvd` xml file referring to the corresponding vtm file for each time step.
-
-
-
-

-
-
Figure 11: pvd file containing time step value and path to corresponding vtm file.
-
-
-
-
-> [!TIP]
-> #### How to activate vtk output mesh in GEOS xml file?
->
-> To activate the output mesh, xml file must contains the following sections:
-> * `` with the `VTK` field, where `fieldNames` allows to define exported properties, and set `logLevel` key to 2.
-> * `` with `` pointing to vtk output name.
->
->
->
-> 
->
-> Figure 12: Activation of output mesh in GEOS XML file.
->
->
-
-To load GEOS output mesh in Paraview, the user uses the `Open` command from Paraview and selects the `.pvd` file. The file name must appears in the Pipeline Browser. The user may display the properties in the 3D View, and run through the time steps using the `Time Manager` toolbar.
-
-> [!TIP]
-> The `.pvd` file can be copied and manually edited to select desired time steps to save computation time in Paraview.
-
-GEOS output mesh is a composite data set containing all the objects used in the simulation including the volume mesh, surfaces (faults), and wells. Each object may contain regions -e.g., one region per layer in the volume mesh, one region per fault, or one region per well- and each region is splitted in ranks because of parallel processing during GEOS simulation. In addition, property names take the name of the region they are computed. Consequently a property may have various prefix although it represents a same property -e.g., "reservoir_Porosity", "overburden_Porosity", "underburden_Porosity".
-
-
-
-

-
-
Figure 13: Paraview MultiBlock Inspector showing GEOS output mesh architecture.
-
-
-
-
-A set of 4 filters located in `Filters>2 Geos Output Mesh Pre-Processing` can be used to clean the mesh depending on mesh content: `Geos Extract And Merge Blocks - Volume Only`, `Geos Extract And Merge Blocks - Volume/Surface`, `Geos Extract And Merge Blocks - Volume/Surface/Well`, `Geos Extract And Merge Blocks - Volume/Well`. These filters result in one, two, or three outputs, `output-0` being the volume mesh, `output-1` being surfaces or wells if 2 outputs are present, `output-3` being wells.
-These filters do the following operations:
-* merge rank blocks for each regions and create "blockIndex" property to keep memory of ranks
-* merge properties whose names contain various prefix and rename some properties like "stress" in "effectiveStress"
-* copy some property values from initial time step to the other time steps ("Porosity", "effectiveStress", "Pressure")
-* compute surface normal and tangent vectors
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select GEOS output mesh
-> 2. Apply one of `Geos Extract And Merge Blocks` filters according to the data content
-> 3. Click on `Apply`
-
-
-
-
-
-Figure 14: "Geos Extract And Merge Blocks" filters.
-
-
-
-
-# 5. Geomechanics Post-Processing
-
-GEOS computes many outputs including flow and geomechanic properties if coupled flow geomechanics simulations were run. Users however need additional metrics to asses geomechanical stability as part of operational studies. Two filters have been developped to compute these additional metrics: `Geos Geomechanics Analysis` and `Geos Surfacic Geomechanics`. In addition, a third filter allows to plot Mohr's circles on selected cells and time steps.
-
-## 5.1. Compute additional geomechanical properties
-
-`Geos Geomechanics Analysis` filter located in `Filters>3 Geos Geomechanics` computes additional geomechanics properties on input object (volume, surface, polyline mesh).
-This filter has the following input parameters:
-* grain bulk modulus to compute Biot coefficient if the property is not in the mesh
-* the reference density used to compute specific gravity
-* if `Compute Advanced Geomechanical Outputs` is toggled, other metrics are computed. Additional parameters are rock cohesion (in Pa) and friction angle (in °).
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select output-0 from one of `Geos Extract And Merge Blocks` filters
-> 2. Apply `Geos Geomechanics Analysis` filter
-> 3. Define input parameters
-> 4. Click on `Apply`
-
-
-
-
-
-Figure 15: "GEOS Geomechanics Analysis" filter applied on a volume mesh.
-
-
-
-
-All properties are computed if they are not already present in the mesh as a GEOS output.
-
-Table 1: Geomechanical basic outputs.
-
-| Property
| Property Name
| Formulae
|
-| ------------------- | ------------------- | --------------------------- |
-| Young modulus | youngModulus | $E=\frac{9K.G}{3K+G}$ |
-| Poisson ratio | poissonRatio | $\nu=\frac{3K-2G}{2(3K+G)}$ |
-| Bulk modulus | bulkModulus | $K=\frac{E}{3(1-2\nu)}$ |
-| Shear modulus | shearModulus | $G=\frac{E}{2(1+\nu)}$ |
-| Biot coefficient | biotCoefficient | $b=1-\frac{K}{K_{grain}}$ |
-| Specific gravity | specificGravity | $SG=\frac{\rho}{\rho_{ref}}$ |
-| Elastic strain | strainElastic | $\epsilon=\Delta\sigma_{eff}.C^{-1}$ |
-| Effective stress ratio
in oedometric conditions | stressEffectiveRatio_oed | $r_{eff}^{oed}=\frac{\nu}{1-\nu}$ |
-| Effective stress ratio
in real conditions | stressEffectiveRatio_real | $r_{eff}^{real}=\frac{\sigma_{eff}^h}{\sigma_{eff}^v}$ | |
-| Total stress | stressTotal | $\sigma_{tot}=\sigma_{eff}-bP$ | |
-| Total stress deviation | deltaStressTotal | $\Delta\sigma_{tot}=\sigma_{tot}^{@t}-\sigma_{tot}^{@t_0}$ |
-| Total stress ratio
in real conditions | stressTotalRatio_real | $r_{tot}=\frac{\sigma_{tot}^h}{\sigma_{tot}^v}$ |
-| Reservoir Stress Path
in oedometric conditions | RSP_oed | $RSP_{oed}=b\frac{1-2\nu}{1-\nu}$ |
-| Reservoir Stress Path
in real conditions | RSP_real | $RSP_{real}=\frac{\Delta\sigma}{\Delta P}$ |
-| Compressibility coefficient
in oedometric conditions | compressibility_oed | $C_{oed}=\frac{1}{\phi}.\frac{3}{3K+4G}$ |
-| Compressibility coefficient
in real conditions | compressibility_real | $C_{real}=\frac{\phi-\phi_0}{\Delta P.\phi_0}$ |
-
-where $\rho$ is density, $\rho_{ref} is reference density, $K_{grain}$ is grain bulk modulus, $\sigma_{eff}$ is effective stress, *P* is pressure, exponent *h* and *v* stand for horizontal and vertical (e.g., $\sigma_{eff}^v$ is vertical effective stress), *C* is stiffness tensor, $\Delta$ stands for deviation from initial time step (e.g., $\Delta P$ is pressure deviation).
-
-Table 2: Geomechanical advanced outputs.
-
-| Property
| Property Name
| Formulae
| Comment
|
-| ------------------- | ------------------- | --------------------------- | ------- |
-| Critical total stress ratio | totalStressRatioCritical_real | $\sigma_{Ĉr}=\frac{P}{\sigma_v}$ | Corresponds to the fracture index from Lemgruber-Traby et al (2024). Fracturing can occur in areas where K > Total stress ratio. (see [Lemgruber-Traby, A., Cacas, M. C., Bonte, D., Rudkiewicz, J. L., Gout, C., & Cornu, T. (2024). Basin modelling workflow applied to the screening of deep aquifers for potential CO2 storage. Geoenergy, geoenergy2024-010.](https://doi.org/10.1144/geoenergy2024-010)) |
-| Total stress ratio threshold | totalStressRatioThreshold_real | $\sigma_{Th}=\frac{P}{\sigma_h}$ | Corresponds to the fracture threshold from Lemgruber-Traby et al (2024). Fracturing can occur in areas where FT > 1. Equals FractureIndex / totalStressRatio. (see [Lemgruber-Traby, A., Cacas, M. C., Bonte, D., Rudkiewicz, J. L., Gout, C., & Cornu, T. (2024). Basin modelling workflow applied to the screening of deep aquifers for potential CO2 storage. Geoenergy, geoenergy2024-010.](https://doi.org/10.1144/geoenergy2024-010)) |
-| Critical pore pressure | porePressureCritical_real | $P_{Cr}=\frac{c.\cos(\alpha)}{1-\sin(\alpha)} + \frac{3\sigma_3-\sigma_1}{2}$ | Fracturing can occur in areas where Critical pore pressure is greater than the pressure. (see [Khan, S., Khulief, Y., Juanes, R., Bashmal, S., Usman, M., & Al-Shuhail, A. (2024). Geomechanical Modeling of CO2 Sequestration: A Review Focused on CO2 Injection and Monitoring. Journal of Environmental Chemical Engineering, 112847.](https://doi.org/10.1016/j.jece.2024.112847)) |
-| Pore pressure threshold | porePressureThreshold_real | $P_{Th}=\frac{P}{P_{Cr}}$ | Defined as the ratio between pressure and critical pore pressure. Fracturing can occur in areas where critical pore pressure threshold is >1. (see [Khan, S., Khulief, Y., Juanes, R., Bashmal, S., Usman, M., & Al-Shuhail, A. (2024). Geomechanical Modeling of CO2 Sequestration: A Review Focused on CO2 Injection and Monitoring. Journal of Environmental Chemical Engineering, 112847.](https://doi.org/10.1016/j.jece.2024.112847)) |
-
-where *c* is rock cohesion and $\alpha$ is friction angle.
-
-> [!CAUTION]
-> Elastic moduli properties -i.e., either Shear and Bulk moduli, or Young modulus and Poisson ratio- are necessary to compute additional geomechanical properties. An error message warns the user if these properties are missing.
-
-
-> #### How to output elastic moduli in GEOS xml file?
->
-> Elastic moduli properties can be manually added to the output mesh in Paraview using for instance the `Calculator` filter. But if these moduli vary in space and/or time, it is better to export the properties in the output mesh.
->
-> To do that, the `fieldNames` key from `VTK` field in the `` section of GEOS xml file must contains the list of output property names like `rock_bulkModulus`, `rock_shearModulus`, `rock_youngModulus`, `rock_poissonRatio`, etc. (e.g., ![GEOS output mesh]), where `rock` refers to `materialList` key elements from `ElementRegions` field in the xml file.
-
-> [!CAUTION]
-> This filter must be applied to output-0 from `Geos Extract And Merge Blocks` filters.
-
-## 5.2. Compute additional surfacic geomechanical properties
-
-`Geos Surfacic Geomechanics` filter located in `Filters>3 Geos Geomechanics` computes additional geomechanics properties and is dedicated to surfaces. This filter computes:
-* the displacementJump property in the XYZ axes in addition to normal and tangential axes given by GEOS.
-* the shear capacity utilization (SCU) property. This calculation needs rock cohesion (in Pa) and friction angle (in °) to compute failure threshold. SCU formula is: $SCU = \frac{abs(\tau_1)}{\tau_{max}}$, where $\tau_1$ is the maximal principal stress and $\tau_{max}$ is the failure threshold.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select output-1 from `Geos Extract And Merge Blocks - Volume/Surface` or `Geos Extract And Merge Blocks - Volume/Surface/Well` filters
-> 2. Apply one of `Geos Surfacic Geomechanics` filter
-> 3. Define input parameters
-> 4. Click on `Apply`
-
-
-
-
-
-Figure 16: "GEOS Surface Geomechanics" filter.
-
-
-
-
-> [!IMPORTANT]
-> This filter must be applied to output-1 from `Geos Extract And Merge Blocks - Volume/Surface` or `Geos Extract And Merge Blocks - Volume/Surface/Well` filters.
-
-## 5.3. Geomechanics workflows
-
-During geomechanical studies, users will most often have to apply one of the `Geos Extract And Merge Blocks` filters, then `Geos Geomechanics Analysis` on output-0 and/or `Geos Surface Geomechanics` on output-1.
-
-`Geos Geomechanics Workflow` filters located in `Filters>1-Geos Post-Processing Workflows` gather the successive application of these filters in a single one depending on input objects. Results are the same as the combination of the elementary filters.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select GEOS output mesh
-> 2. Apply one of `Geos Geomechanics Workflow` filters according to the data content
-> 3. Define input parameters
-> 4. Click on `Apply`
-
-
-
-
-
-Figure 17: "GEOS Geomechanics Workflow - Volume/Surface" filter.
-
-
-
-
-## 5.4. Plot 2D Mohr's Circles for geomechanics studies
-
-Geomechanical studies most often rely on Mohr-s circle analysis. Mohr's circle can be plotted from a selection of cells and time steps using `Plot Mohr's Circles` filter located in `Filters>3-Geos Geomechanics`.
-
-Input parameters in the `Properties` panel are:
-* Ids of the cell to plot
-* Time steps to plot
-* Mohr-Coulomb failure envelop parameters -i.e., rock cohesion (in Pa) and friction angle (in °)
-* Stress unit used for axes
-* Stress convention (default is positive for compression)
-* Annotate circle checkbox allows to show/hide normal stress values
-* show/hide minor ticks
-* Show/Hide title and Legend parameters like font properties and legend location
-* Show/Hide user-defined axis limits definition panel
-* Show/Hide curve aspect edition panel
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Extract a reduce number of cells from GEOS output mesh (`Find Data>Extract Selection`) ([see Paraview documentatin](https://docs.paraview.org/en/latest/UsersGuide/selectingData.html))
-> 2. Apply `MergeBlocks` filter
-> 3. Apply `Plot Mohr's Circles` filter
-> 4. Select circles to plot
-> 5. Select plot parameters
-> 6. Click on `Apply`
-
-
-
-
-
-Figure 18: Steps to plot Mohr's circles using "Plot Mohr's Circle" filter from GEOS output mesh.
-
-
-
-
-> [!CAUTION]
-> `Plot Mohr's Circles` must be applied on a limited number of cells and input mesh must be merged (even if it consists of a single cell)
-
-# 6. Utilities
-
-`Filters>4-Geos Utilities` menu contains generic filters including `Python View Configurator` (see section *[3.2. Plot data from spreadsheets using Python View Configurator](#32-plot-data-from-spreadsheets-using-python-view-configurator))* and `Geos Transfer Attributes From Volume To Surface` filter.
-
-In addition, writers have also been developped and are accessible using `Save Data` command of Paraview by selecting the appropriate output format. Currently, an exporter of a text file for EST containing map properties from GEOS simulation is available.
-
-## 6.1. Transfer attributes between identical or partial meshes
-
-The filter `Attribute Mapping` allows to transfer properties from a server mesh to a client mesh. The server and client meshes must be either strictly identical or one an extract from the other one. The server mesh must be a single block dataset, whereas the output mesh can be a single or multi block dataset.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select the server mesh from which properties will be transferred
-> 2. Select the `Attribute Mapping` filter
-> 3. In the dialog, check the server mesh then select the client mesh the properties to transfer go to
-> 4. In the `Properties` panel, select the properties to transfer
-> 5. Click on `Apply`
-
-> In the following example, the property "region" was transferred from GEOS input mesh (to the left) to GEOS output mesh (to the right).
-
-
-
-
-
-Figure 19: Application of "Attribute Mapping" filter.
-
-
-
-
-## 6.2. Transfer properties from Volume mesh to surfaces
-
-`Geos Transfer Attributes From Volume To Surface` filter allows to transfer attributes initially stored on the volume mesh to a surface mesh. The surface mesh must be conformal to the volume mesh -i.e., surface and volume mesh vertices are collocated and surface faces correspond to volume cell faces.
-
-Because a surface usually defines a boundary of the model, properties may be discontinuous on both sides of the surface. Two properties are thus created on the surface using the name of input property and a suffix "_minus" and "_plus". Each property corresponds to the property value of cells adjacent to the surface along one side or the other.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select the volume mesh the properties to transfer are from
-> 2. Apply `Geos Transfer Attributes From Volume To Surface` filter
-> 3. In the dialog, select the surface mesh the properties to transfer go to
-> 4. In the `Properties` panel, select the properties to transfer
-> 5. Click on `Apply`
-
-> In the following example, the property "totalStressThreshold_real" was transferred from volume to surface mesh. Top 3D viewer shows the volume mesh with the property and the surface edges in white.
-> Bottom left viewer shows the property on the surface ("totalStressThreshold_real_minus") that was transferred from the volume to right side of the surface, bottom right viewer shows the property on the surface ("totalStressThreshold_real_plus") that was transferred from the volume to the left side of the surface.
-
-
-
-
-
-Figure 20: Application of "Geos Transfer Attributes From Volume To Surface" filter.
-
-
-
-
-> [!CAUTION]
-> `Transfer Attributes From Volume To Surface` filter must be cautiously applied since the results may be nonsense.
-
-## 6.3. Merge blocks keeping partial attributes
-
-Paraview provides the `Merge Blocks` filter to merge multiblock mesh to a single block mesh. However, if some properties are partial (i.e., present in some blocks of different data type but not all), they are removed in the output mesh. The filter `Merge Blocks Keeping Partial Attributes` extends the `Merge Blocks` filter by transferring in the output mesh partial properties. They take the *nan* value where the attributes were absent.
-
-> [!IMPORTANT]
-> #### To use this filter
-> 1. Select the volume mesh to merge
-> 2. Apply `Merge Blocks Keeping Partial Attributes` filter
-> 3. Click on `Apply`
-
-> In the following example, the mesh to the rigth is a multiBlock dataset containing partial attributes including the pressure defined only in the mid unit. After applying `Merge Blocks Keeping Partial Attributes` filter, all the blocks were merged together and all the attributes are present in the merged dataset.
-
-
-
-
-
-Figure 21: Application of "Merge Blocks Keeping Partial Attributes" filter.
-
-
-
-
-# 7. Other tools around GEOS
-
-Other tools allow GEOS users to prepare GEOS input data. Except geos2est for which a Paraview plugin exists, these tools do not have a Paraview interface yet.
-
-## 7.1. GEOS Python tools
-
-`GEOS Python tools` allows to process GEOS input and output data (See [documentation](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/?_sm_au_=iMVrtR60VT6jHPNtQ0WpHK6H8sjL6)).
-
-Among these tools, [`mesh-doctor`](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/geos-mesh.html?_sm_au_=iMVrtR60VT6jHPNtQ0WpHK6H8sjL6) processes GEOS input data to make it compliant with GEOS.
-
-## 7.2. geos-xml-viewer
-
-`geos-xml-viewer` is a Python package dedicated to visualize and process GEOS input xml file (deck). This package provides the following main functionalities:
-* create a PartitionedDataSetCollection from vtu file and objects defined in the GEOS deck
-* visualize deck objects (mesh, wells, boxes)
-* split a deck into multiple files (e.g. one per main node)
-
-
-
\ No newline at end of file
diff --git a/geos-geomechanics/src/geos/geomechanics/processing/geomechanicsCalculatorFunctions.py b/geos-geomechanics/src/geos/geomechanics/processing/geomechanicsCalculatorFunctions.py
index 4c7b16e7c..84f21f0fe 100644
--- a/geos-geomechanics/src/geos/geomechanics/processing/geomechanicsCalculatorFunctions.py
+++ b/geos-geomechanics/src/geos/geomechanics/processing/geomechanicsCalculatorFunctions.py
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
-# # SPDX-FileCopyrightText: Copyright 2023-2024 TotalEnergies.
+# SPDX-FileCopyrightText: Copyright 2023-2024 TotalEnergies.
# SPDX-FileContributor: Alexandre Benedicto, Martin Lemay
from typing import Any
import numpy as np
@@ -10,7 +10,22 @@
from geos.utils.PhysicalConstants import (
EPSILON, )
-__doc__ = """Functions to compute additional geomechanical properties."""
+__doc__ = """The `geomechanicsCalculatorFunctions` module contains functions to compute additional geomechanical properties such as:
+
+ - specific gravity
+ - Young modulus
+ - Poisson ratio
+ - bulk modulus
+ - shear modulus
+ - lambda coefficient
+ - oedometric modulus
+ - Biot coefficient
+ - total stress
+ - elastic strain
+ - reservoir stress
+ - ...
+
+"""
def specificGravity( density: npt.NDArray[ np.float64 ], specificDensity: float ) -> npt.NDArray[ np.float64 ]:
@@ -210,7 +225,7 @@ def biotCoefficient( Kgrain: float, bulkModulus: npt.NDArray[ np.float64 ] ) ->
bulkModulus (npt.NDArray[np.float64]): default bulk modulus (*K* - Pa)
Returns:
- npt.NDArray[np.float64]: biot coefficient (*b*)
+ npt.NDArray[np.float64]: Biot coefficient (*b*)
"""
assert bulkModulus is not None, "Bulk modulus must be defined"
@@ -521,7 +536,7 @@ def reservoirStressPathOed( biotCoefficient: npt.NDArray[ np.float64 ],
RSP_{oed}=b\frac{1-2\nu}{1-\nu}
Args:
- biotCoefficient (npt.NDArray[np.float64]): biot coefficient (*b*)
+ biotCoefficient (npt.NDArray[np.float64]): Biot coefficient (*b*)
poissonRatio (npt.NDArray[np.float64]): Poisson's ratio (:math:`\nu`)
Returns:
@@ -786,7 +801,7 @@ def compressibility(
biotCoefficient: npt.NDArray[ np.float64 ],
porosity: npt.NDArray[ np.float64 ],
) -> npt.NDArray[ np.float64 ]:
- r"""Compute compressibility from elastic moduli, biot coefficient and porosity.
+ r"""Compute compressibility from elastic moduli, Biot coefficient and porosity.
Compressibility formula is:
diff --git a/geos-mesh/pyproject.toml b/geos-mesh/pyproject.toml
index 7cf4ef76a..06f278e63 100644
--- a/geos-mesh/pyproject.toml
+++ b/geos-mesh/pyproject.toml
@@ -40,7 +40,7 @@ dependencies = [
[project.scripts]
convert_abaqus = "geos.mesh.conversion.main:main"
-
+
[project.urls]
Homepage = "https://github.com/GEOS-DEV/geosPythonPackages"
Documentation = "https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/"
@@ -53,11 +53,11 @@ build = [
]
dev = [
"mypy",
- "ruff",
+ "ruff",
"yapf",
]
test = [
- "pytest-cov",
+ "pytest-cov",
"pytest"
]
@@ -71,3 +71,13 @@ python_functions = "test*"
testpaths = ["tests"]
norecursedirs = "bin"
filterwarnings = []
+
+
+# [tool.coverage.run]
+# branch = true
+# source = [""]
+# omit = ["tests/*"]
+# where = ["src"]
+# include = ["geos.mesh*"]
+# exclude = ['tests*']
+# source = ["PVplugins, filters, processing, readers, utils, visu, writers, pyvistaTools, bin"]
\ No newline at end of file
diff --git a/geos-processing/pyproject.toml b/geos-processing/pyproject.toml
index 3d947f672..13391180b 100644
--- a/geos-processing/pyproject.toml
+++ b/geos-processing/pyproject.toml
@@ -68,3 +68,6 @@ python_functions = "test*"
testpaths = ["tests"]
norecursedirs = "bin"
filterwarnings = []
+
+
+# [tool.coverage.run]
diff --git a/geos-processing/src/geos/processing/generic_processing_tools/CreateConstantAttributePerRegion.py b/geos-processing/src/geos/processing/generic_processing_tools/CreateConstantAttributePerRegion.py
index 85e1fc74b..cdb5cb346 100644
--- a/geos-processing/src/geos/processing/generic_processing_tools/CreateConstantAttributePerRegion.py
+++ b/geos-processing/src/geos/processing/generic_processing_tools/CreateConstantAttributePerRegion.py
@@ -27,12 +27,9 @@
with constant values per components for each chosen indexes of a reference/region attribute.
If other region indexes exist values are set to nan for float type, -1 for int type or 0 for uint type.
-Input mesh is either vtkMultiBlockDataSet or vtkDataSet and the region attribute must have one component.
-The relation index/values is given by a dictionary.
-Its keys are the indexes and its items are the list of values for each component.
-To use a handler of yours, set the variable 'speHandler' to True and add it using the member function addLoggerHandler.
+Input mesh is either vtkMultiBlockDataSet or vtkDataSet and the region attribute must have exactly one component.
+The values for each region are provided with a dictionary with regions indexes as keys and list of values for each components as associated values. By default, the value type is set to float32, the is one component.
-By default, the value type is set to float32, their is one component and no name and the logger use an intern handler.
To use it:
diff --git a/geos-processing/src/geos/processing/generic_processing_tools/SplitMesh.py b/geos-processing/src/geos/processing/generic_processing_tools/SplitMesh.py
index 8cbe9d026..cec7751f0 100644
--- a/geos-processing/src/geos/processing/generic_processing_tools/SplitMesh.py
+++ b/geos-processing/src/geos/processing/generic_processing_tools/SplitMesh.py
@@ -19,7 +19,7 @@
__doc__ = """
SplitMesh module is a vtk filter that splits cells of a mesh composed of tetrahedra, pyramids, hexahedra, triangles, and quads.
-Warning: Current implementation only supports meshes composed of either polygons or polyhedra, not both together.
+.. Warning:: Current implementation only supports meshes composed of either polygons or polyhedra, not both together.
Filter input and output types are vtkUnstructuredGrid.
diff --git a/geos-processing/src/geos/processing/post_processing/GeosBlockExtractor.py b/geos-processing/src/geos/processing/post_processing/GeosBlockExtractor.py
index 985959aa5..1771f1596 100644
--- a/geos-processing/src/geos/processing/post_processing/GeosBlockExtractor.py
+++ b/geos-processing/src/geos/processing/post_processing/GeosBlockExtractor.py
@@ -18,10 +18,13 @@
.. Important::
The input mesh must be an output of a GEOS simulation or contain at least three blocks labeled with the same domain names:
- "CellElementRegion" for volume domain
- "SurfaceElementRegion" for fault domain
- "WellElementRegion" for well domain
- See more https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/datastructure/ElementRegions.html?_sm_au_=iVVT5rrr5fN00R8sQ0WpHK6H8sjL6#xml-element-elementregions
+ - "CellElementRegion" for volume domain
+ - "SurfaceElementRegion" for fault domain
+ - "WellElementRegion" for well domain
+
+ See more in `GEOS documentation`_ about Element region.
+
+.. _GEOS documentation: https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/datastructure/ElementRegions.html
.. Note::
Volume domain is automatically extracted, by defaults Fault and Well domains are empty multiBlockDataSet.
@@ -154,9 +157,9 @@ def __init__(
Args:
geosMesh (vtkMultiBlockDataSet): The mesh from Geos.
- extractFault (bool, Optional): True if SurfaceElementRegion needs to be extracted, False otherwise.
+ extractFault (bool, optional): True if SurfaceElementRegion needs to be extracted, False otherwise.
Defaults to False.
- extractWell (bool, Optional): True if WellElementRegion needs to be extracted, False otherwise.
+ extractWell (bool, optional): True if WellElementRegion needs to be extracted, False otherwise.
Defaults to False.
speHandler (bool, optional): True to use a specific handler, False to use the internal handler.
Defaults to False.
diff --git a/geos-pv/src/geos/pv/plugins/generic_processing/PVAttributeMapping.py b/geos-pv/src/geos/pv/plugins/generic_processing/PVAttributeMapping.py
index dcc3e2b4e..b9bcdc9b6 100644
--- a/geos-pv/src/geos/pv/plugins/generic_processing/PVAttributeMapping.py
+++ b/geos-pv/src/geos/pv/plugins/generic_processing/PVAttributeMapping.py
@@ -53,7 +53,7 @@
* Select the mesh to transfer the global attributes (meshTo)
* Select the filter: Filters > { FilterCategory.GENERIC_PROCESSING.value } > Attribute Mapping
* Select the source mesh with global attributes to transfer (meshFrom)
-* Select the on which element (onPoints/onCells) the attributes to transfer are
+* Select on which element (onPoints/onCells) the attributes to transfer are
* Select the global attributes to transfer from the source mesh to the final mesh
* Apply
diff --git a/geos-pv/src/geos/pv/plugins/post_processing/PVGeosBlockExtractAndMerge.py b/geos-pv/src/geos/pv/plugins/post_processing/PVGeosBlockExtractAndMerge.py
index 5fe97bca0..cd94f7846 100644
--- a/geos-pv/src/geos/pv/plugins/post_processing/PVGeosBlockExtractAndMerge.py
+++ b/geos-pv/src/geos/pv/plugins/post_processing/PVGeosBlockExtractAndMerge.py
@@ -38,28 +38,36 @@
__doc__ = f"""
PVGeosBlockExtractAndMerge is a Paraview plugin processing the input mesh at the current time in two steps:
+
1. Extraction of domains (volume, fault and well) from a GEOS output multiBlockDataSet mesh
2. Actions on each region of a GEOS output domain (volume, fault, wells) to:
- * Merge Ranks
- * Identify "Fluids" and "Rock" phases
- * Rename "Rock" attributes depending on the phase they refer to for more clarity
- * Convert volume meshes to surface if needed
- * Copy "geomechanics" attributes from the initial timestep to the current one if they exist
+
+ - Merge Ranks
+ - Identify "Fluids" and "Rock" phases
+ - Rename "Rock" attributes depending on the phase they refer to for more clarity
+ - Convert volume meshes to surface if needed
+ - Copy "geomechanics" attributes from the initial timestep to the current one if they exist
+
This filter results in 3 output pipelines with the vtkMultiBlockDataSet:
+
- "Volume" contains the volume domain
- "Fault" contains the fault domain if it exist
- "Well" contains the well domain if it exist
+
Input and output meshes are vtkMultiBlockDataSet.
.. Important::
+
- The input mesh must be an output of a GEOS simulation or contain at least three blocks labeled with the same domain names:
* "CellElementRegion" for volume domain
* "SurfaceElementRegion" for fault domain if the input contains fault
* "WellElementRegion" for well domain if the input contains well
- * See more https://geosx-geosx.readthedocs-hosted.com/en/latest/docs/sphinx/datastructure/ElementRegions.html?_sm_au_=iVVT5rrr5fN00R8sQ0WpHK6H8sjL6#xml-element-elementregions
- - The filter detected automatically the three domains. If one of them if not in the input mesh, the associated output pipeline will be empty
+
+ See more about `Element region `_ in GEOS documentation.
+ - The filter detects automatically the three domains. If one of them is not in the input mesh, the associated output pipeline will be empty.
+
To use it:
diff --git a/geos-pv/src/geos/pv/plugins/post_processing/PVSurfaceGeomechanics.py b/geos-pv/src/geos/pv/plugins/post_processing/PVSurfaceGeomechanics.py
index b6e24d85d..ed476285f 100644
--- a/geos-pv/src/geos/pv/plugins/post_processing/PVSurfaceGeomechanics.py
+++ b/geos-pv/src/geos/pv/plugins/post_processing/PVSurfaceGeomechanics.py
@@ -42,15 +42,17 @@
additional geomechanical attributes from the input surfaces, such as shear capacity utilization (SCU).
Input and output are vtkMultiBlockDataSet.
+
.. Important::
- - Please refer to the PVGeosBlockExtractAndMerge plugin to provide the correct input.
+
+ - Please refer to the :ref:`GEOS Extract and Merge Blocks ` plugin to provide the correct input.
- This filter only works on triangles at the moment. Please apply a triangulation algorithm beforehand if required.
To use it:
* Load the plugin in Paraview: Tools > Manage Plugins ... > Load New ... > .../geosPythonPackages/geos-pv/src/geos/pv/plugins/post_processing/PVSurfaceGeomechanics
-* Select any pipeline child "Fault" from PVGeosBlockExtractAndMerge plugin
+* Select any pipeline child "Fault" from "GEOS Extract and Merge Blocks" plugin
* Select the filter: Filters > { FilterCategory.GENERIC_PROCESSING.value } > GEOS Surface Geomechanics
* (Optional) Set rock cohesion and/or friction angle
* Apply
diff --git a/geos-timehistory/src/geos/timehistory/plot_time_history.py b/geos-timehistory/src/geos/timehistory/plot_time_history.py
index ae9fae660..cd9132295 100644
--- a/geos-timehistory/src/geos/timehistory/plot_time_history.py
+++ b/geos-timehistory/src/geos/timehistory/plot_time_history.py
@@ -26,7 +26,7 @@ def getHistorySeries( database: h5w,
Args:
database (geos.hdf5_wrapper.hdf5_wrapper): database to retrieve time history data from
variable (str): the name of the time history variable for which to retrieve time-series data
- setname (str): the name of the index set as specified in the geosx input xml for which to query time-series data
+ setname (str): the name of the index set as specified in the geos input xml for which to query time-series data
indices (Optional[int | list[ int ]]): the indices in the named set to query for, if None, defaults to all
components (Optional[int | list[ int ]]): the components in the flattened data types to retrieve, defaults to all
@@ -104,7 +104,7 @@ def getHistorySeries( database: h5w,
def commandLinePlotGen() -> int:
- """Parse commande line."""
+ """Parse command line."""
parser = argparse.ArgumentParser(
description="A script that parses geosx HDF5 time-history files and produces time-history plots using matplotlib"
)
@@ -123,7 +123,7 @@ def commandLinePlotGen() -> int:
default=[ None ],
nargs="+",
help=
- "Which index set of time-history data collected by GEOSX to generate a plot file for, may be specified multiple times with different indices/components for each set."
+ "Which index set of time-history data collected by GEOS to generate a plot file for, may be specified multiple times with different indices/components for each set."
)
parser.add_argument( "--indices",
diff --git a/geos-utils/src/geos/utils/Logger.py b/geos-utils/src/geos/utils/Logger.py
index 099ce9077..68e35868d 100644
--- a/geos-utils/src/geos/utils/Logger.py
+++ b/geos-utils/src/geos/utils/Logger.py
@@ -15,7 +15,7 @@
__doc__ = """
Logger module manages logging tools.
-Code was modified from
+Code was modified from `here `_ .
It also include adaptor strategy to make vtkLogger behave as a logging's logger.
Indeed, C++ adapted class is based on private Callback assignement which is not compatible
@@ -255,7 +255,7 @@ def getLogger( title: str, use_color: bool = False ) -> Logger:
import Logger
# logger instantiation
- logger :Logger.Logger = Logger.getLogger("My application")
+ logger: Logger.Logger = Logger.getLogger("My application")
# logger use
logger.debug("debug message")
diff --git a/geos-utils/src/geos/utils/algebraFunctions.py b/geos-utils/src/geos/utils/algebraFunctions.py
index 876f88873..a7027f9e1 100644
--- a/geos-utils/src/geos/utils/algebraFunctions.py
+++ b/geos-utils/src/geos/utils/algebraFunctions.py
@@ -18,29 +18,29 @@ def getAttributeMatrixFromVector( attrArray: npt.NDArray[ np.float64 ], ) -> npt
* if input vector size is 3:
.. math::
- (v1, v2, v3) => \\begin{bmatrix}
+ (v1, v2, v3) => \begin{bmatrix}
v0 & 0 & 0 \\
0 & v1 & 0 \\
0 & 0 & v2
- \\end{bmatrix}
+ \end{bmatrix}
* if input vector size is 9:
.. math::
- (v1, v2, v3, v4, v5, v6, v7, v8, v9) => \\begin{bmatrix}
+ (v1, v2, v3, v4, v5, v6, v7, v8, v9) => \begin{bmatrix}
v1 & v6 & v5 \\
v9 & v2 & v4 \\
v8 & v7 & v3
- \\end{bmatrix}
+ \end{bmatrix}
* if input vector size is 6 (symmetrical tensor):
.. math::
- (v1, v2, v3, v4, v5, v6) => \\begin{bmatrix}
+ (v1, v2, v3, v4, v5, v6) => \begin{bmatrix}
v1 & v6 & v5 \\
v6 & v2 & v4 \\
v5 & v4 & v3
- \\end{bmatrix}
+ \end{bmatrix}
.. Note::
In the case of 3 x 3 tensors, GEOS is currently only implemented for symmetrical cases.
@@ -92,31 +92,31 @@ def getAttributeVectorFromMatrix( attrMatrix: npt.NDArray[ np.float64 ], size: i
* 3x3 diagonal matrix:
.. math::
- \\begin{bmatrix}
+ \begin{bmatrix}
M00 & 0 & 0 \\
0 & M11 & 0 \\
0 & 0 & M22
- \\end{bmatrix}
+ \end{bmatrix}
=> (M00, M11, M22)
* 3x3 Generic matrix:
.. math::
- \\begin{bmatrix}
+ \begin{bmatrix}
M00 & M01 & M02 \\
M10 & M11 & M12 \\
M20 & M21 & M22
- \\end{matrix}
+ \end{bmatrix}
=> (M00, M11, M22, M12, M02, M01, M21, M20, M10)
* Symmetric case
.. math::
- \\begin{bmatrix}
+ \begin{bmatrix}
M00 & M01 & M02 \\
M01 & M11 & M12 \\
M02 & M12 & M22
- \\end{bmatrix}
+ \end{bmatrix}
=> (M00, M11, M22, M12, M02, M01)
.. Note::
diff --git a/install_packages.sh b/install_packages.sh
index f0384e5d1..3ded06357 100755
--- a/install_packages.sh
+++ b/install_packages.sh
@@ -11,8 +11,8 @@ python -m pip install --upgrade ./mesh-doctor
python -m pip install --upgrade ./pygeos-tools
python -m pip install --upgrade ./geos-pv
#! trame install requires npm
-cd ./geos-trame/vue-components
-npm i
-npm run build
-cd ../../
-python -m pip install ./geos-trame
\ No newline at end of file
+# cd ./geos-trame/vue-components
+# npm i
+# npm run build
+# cd ../../
+# python -m pip install ./geos-trame
\ No newline at end of file