You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains a set of python packages that are used alongside [GEOS](https://github.com/GEOS-DEV/GEOS).
9
+
The `geosPythonPackages`repository contains a set of python tools that are used alongside [GEOS](https://github.com/GEOS-DEV/GEOS). They include testing tools, pre- and post-processing filters and plugins, as well as diverse executables. You will find below a brief description of the different packages, please refer to the [Python Tools documentation](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/) for more details.
10
10
11
11
12
-
Package summary
13
-
---------------
12
+
Packages organization
13
+
---------------------
14
14
15
-
**WARNING: This repository is currently under refactoring to improve package organization, maintainability, and dependency management. The following describes the final package organisation. Some packages may still miss or contain code that will be move later.**
15
+
> [!WARNING]
16
+
> This repository is currently under refactoring to improve package organization, maintainability, and dependency management. The following describes the final package organisation. Some packages may still miss or contain code that will be moved later.
16
17
17
-
*`geos-ats` package includes tools for managing integrated tests for GEOS.
18
-
*`pygeos-tools` package adds a variety of tools for working with *pygeosx* objects.
18
+
* Data structures and processing packages
19
+
*`geos-ats`: tools for managing integrated tests for GEOS.
20
+
*`pygeos-tools`: variety of tools for working with *pygeosx* objects.
21
+
*`geos-utils`: basic utilities
22
+
*`geos-geomechanics`: geomechanics functions and data model
23
+
*`geos-mesh`: generic mesh processing tools
24
+
*`hdf5-wrapper`: wrapper to load hdf5 files
25
+
*`geos-xml-tools`: xml reader and writer dedicated to GEOS xml file
26
+
* User-oriented API packages
27
+
*`geos-processing`: GEOS pre- and post-processing VTK filters
28
+
*`xml-vtk`: conversion of GEOS xml to VTK objects and conversely
29
+
* Hands-on executables that can be used through command line
*`geos-trame`: web interface to check, display objects, and edit GEOS xml file (see [Trame documentation](https://kitware.github.io/trame/guide/tutorial/))
33
+
* Paraview plugins (see [Paraview](https://docs.paraview.org/) documentation)
34
+
*`geos-pv`: plugins that wrap GEOS Python tools
19
35
20
-
The next packages are dedicated to pre- and post-process GEOS inputs/outputs.
21
-
22
-
The following packages contain basic utilities used by the other ones:
23
-
24
-
*`geos-utils`: basic utilities
25
-
*`geos-geomecanics`: geomechanics functions and data model
26
-
27
-
28
-
The following packages define data models, vtk filters, and user-oriented API:
29
-
30
-
*`geos-xml-tools`: xml reader and writer dedicated to GEOS xml file
31
-
*`hdf5-wrapper`: wrapper to load hdf5 files
32
-
*`geos-mesh`: general mesh processing tools
33
-
*`geos-prep`: GEOS pre-processing tools
34
-
*`geos-posp`: GEOS post-processing tools
35
-
36
-
37
-
The following packages define hands-on executables that can be used through the command line:
38
-
39
-
*`mesh-doctor`: GEOS pre-processing application
40
-
*`time-history`: load and plot hdf5 files
41
-
*`geos-xml-viewer`: load GEOS xml file and display geometrical objects (mesh, boxes, wells)
42
-
*`geos-trame`: web interface to check, display objects, and edit GEOS xml file (see [Trame documentation](https://kitware.github.io/trame/guide/tutorial/))
43
-
44
-
45
-
The following package defines [Paraview](https://docs.paraview.org/) plugins that wrap GEOS Python tools
46
-
47
-
*`geos-pv`
48
36
49
37
GEOS Python packages dependency tree (inter-dependency and main external dependencies) is the following:
50
38
51
39
```
52
40
├── geos-ats
53
41
├── pygeos-tools
42
+
│ ├── geos-utils
43
+
│ ├── geos-xml-tools
44
+
│ ├── geos-mesh
45
+
│ ├── vtk
46
+
│ └── h5py
47
+
|
54
48
├── geos-utils
49
+
|
55
50
├── geos-geomechanics
51
+
│ └── geos-utils
52
+
|
53
+
├── geos-mesh
56
54
│ ├── geos-utils
57
-
│
55
+
│ └── vtk
56
+
|
58
57
├── hdf5-wrapper
59
-
│ ├── h5py
60
-
│
58
+
│ └── h5py
59
+
|
61
60
├── geos-xml-tools
62
-
│ ├── lxml
63
-
│
64
-
├── geos-mesh
65
61
│ ├── geos-utils
66
-
│ ├── vtk
67
-
│
68
-
├── geos-prep
62
+
│ └── lxml
63
+
|
64
+
├── geos-processing
69
65
│ ├── geos-mesh
70
-
│ ├── geos-xml-tools
71
-
│
72
-
├── geos-posp
66
+
│ └── geos-geomechanics
67
+
|
68
+
├── xml-vtk
73
69
│ ├── geos-mesh
74
-
│ ├── geos-geomechanics
75
-
│
76
-
├── time-history
77
-
│ ├── hdf5-wrapper
70
+
| └── geos-xml-tools
78
71
│
72
+
├── geos-timehistory
73
+
│ └── hdf5-wrapper
74
+
|
79
75
├── mesh-doctor
80
76
│ ├── geos-prep
81
-
│ ├── pyvista
82
-
│
77
+
│ └── pyvista
78
+
|
83
79
├── geos-trame
84
80
│ ├── geos-xml-tools
85
81
│ ├── geos-mesh
86
82
│ ├── pyvista
87
-
│ ├── trame
83
+
│ └── trame
88
84
│
89
-
├── geos-xml-viewer
90
-
│ ├── geos-xml-tools
91
-
│ ├── geos-mesh
92
-
│ ├── pyvista
93
-
│
94
-
├── geos-pv
95
-
├── geos-prep
96
-
├── geos-posp
85
+
└── geos-pv
86
+
├── geos-processing
87
+
├── geos-mesh
88
+
├── geos-geomechanics
89
+
├── geos-utils
97
90
├── geos-xml-tools
98
-
├── paraview
91
+
└── paraview
99
92
```
100
93
101
-
See the [documentation](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/) for additional details about the packages and how to use them.
102
-
103
94
104
95
Installation
105
96
-------------
@@ -112,8 +103,7 @@ Installation
112
103
113
104
GEOS Python packages can be manually installed with pip using `python` >= 3.10.
114
105
115
-
To install any package, run the following commands from the geosPythonPackage directory:
116
-
106
+
To install any package, run the following commands from the `geosPythonPackage` directory:
117
107
```
118
108
python -m venv .venv
119
109
source .venv/bin/activate
@@ -122,16 +112,16 @@ Installation
122
112
```
123
113
124
114
You can test installed package by running the commands:
125
-
126
115
```
127
116
python -m pip install pytest
128
117
python -m pytest ./<PACKAGE_NAME>
129
118
```
130
119
131
-
[!WARNING]
120
+
>[!WARNING]
132
121
Due to local package conflicts with `pip install`, it is recommended to use the `--upgrade` option when building packages, or to use the script `install_packages.sh` located at the root of the repository.
133
-
[!NOTE]
134
-
geos-pv package cannot be build alone, but together with Paraview ([see Paraview compilation guide](https://gitlab.kitware.com/paraview/paraview/-/blob/master/Documentation/dev/build.md)). It is recommended to use Paraview v5.12+, which is based on python 3.10+. Alternatively, plugins from `geos-pv/src/geos/pv/plugins` can be manually loaded into Paraview ([see documentation](https://docs.paraview.org/en/latest/ReferenceManual/pythonProgrammableFilter.html#python-algorithm)).
122
+
123
+
>[!NOTE]
124
+
`geos-pv` package cannot be build alone, but together with Paraview ([see Paraview compilation guide](https://gitlab.kitware.com/paraview/paraview/-/blob/master/Documentation/dev/build.md)). It is recommended to use Paraview v5.13+, which is based on python 3.10+. Alternatively, plugins from `geos-pv/src/geos/pv/plugins` can be manually loaded into Paraview ([see documentation](https://docs.paraview.org/en/latest/ReferenceManual/pythonProgrammableFilter.html#python-algorithm)).
135
125
136
126
137
127
Contributions
@@ -180,8 +170,8 @@ dependencies = [
180
170
]
181
171
```
182
172
183
-
[!IMPORTANT]
184
-
geos-pv dependencies are managed using a `requirements.txt` (together with the `setup.py`) file where all internal (and external if needed) dependencies are present. It ensures that internal dependency paths are correctly set when plugins are manually loaded into Paraview.
173
+
>[!IMPORTANT]
174
+
`geos-pv` dependencies are managed using a `requirements.txt` (together with the `setup.py`) file where all internal (and external if needed) dependencies are present. It ensures that internal dependency paths are correctly set when plugins are manually loaded into Paraview.
0 commit comments