OpenGeode-Stochastic 1.20.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- opengeode_stochastic/__init__.py +6 -0
- opengeode_stochastic/__init__.pyi +27 -0
- opengeode_stochastic/bin/OpenGeode-Stochastic_stochastic.dll +0 -0
- opengeode_stochastic/bin/__init__.pyi +3 -0
- opengeode_stochastic/bin/opengeode_stochastic_py_stochastic.cp313-win_amd64.pyd +0 -0
- opengeode_stochastic/bin/opengeode_stochastic_py_stochastic.pyi +534 -0
- opengeode_stochastic/py.typed +0 -0
- opengeode_stochastic/stochastic.py +25 -0
- opengeode_stochastic/stochastic.pyi +23 -0
- opengeode_stochastic-1.20.0.dist-info/METADATA +64 -0
- opengeode_stochastic-1.20.0.dist-info/RECORD +13 -0
- opengeode_stochastic-1.20.0.dist-info/WHEEL +5 -0
- opengeode_stochastic-1.20.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import opengeode as opengeode
|
|
3
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import Distribution
|
|
4
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DistributionType
|
|
5
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DoubleDistributionDescription
|
|
6
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DoubleSampler
|
|
7
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import FractureSetDescription
|
|
8
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import FractureSimulationRunner
|
|
9
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import Gaussian
|
|
10
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import OpenGeodeStochasticStochasticLibrary
|
|
11
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import RandomEngine
|
|
12
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SimulationConfigurator
|
|
13
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SimulationPrinterConfigurator
|
|
14
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SpatialDomain2D
|
|
15
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SpatialDomain3D
|
|
16
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import StatisticsMonitor
|
|
17
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedGaussian
|
|
18
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedLogNormal
|
|
19
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedPowerLaw
|
|
20
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import UniformClosed
|
|
21
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import UniformClosedOpen
|
|
22
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import VonMises
|
|
23
|
+
import os as os
|
|
24
|
+
import pathlib as pathlib
|
|
25
|
+
from . import bin
|
|
26
|
+
from . import stochastic
|
|
27
|
+
__all__: list[str] = ['Distribution', 'DistributionType', 'DoubleDistributionDescription', 'DoubleSampler', 'FractureSetDescription', 'FractureSimulationRunner', 'Gaussian', 'OpenGeodeStochasticStochasticLibrary', 'RandomEngine', 'SimulationConfigurator', 'SimulationPrinterConfigurator', 'SpatialDomain2D', 'SpatialDomain3D', 'StatisticsMonitor', 'TruncatedGaussian', 'TruncatedLogNormal', 'TruncatedPowerLaw', 'UniformClosed', 'UniformClosedOpen', 'VonMises', 'bin', 'opengeode', 'os', 'pathlib', 'stochastic']
|
|
Binary file
|
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
"""
|
|
2
|
+
OpenGeode-Stochastic Python binding
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
import collections.abc
|
|
6
|
+
import opengeode.bin.opengeode_py_geometry
|
|
7
|
+
import typing
|
|
8
|
+
__all__: list[str] = ['Distribution', 'DistributionType', 'DoubleDistributionDescription', 'DoubleSampler', 'FractureSetDescription', 'FractureSimulationRunner', 'Gaussian', 'OpenGeodeStochasticStochasticLibrary', 'RandomEngine', 'SimulationConfigurator', 'SimulationPrinterConfigurator', 'SpatialDomain2D', 'SpatialDomain3D', 'StatisticsMonitor', 'TruncatedGaussian', 'TruncatedLogNormal', 'TruncatedPowerLaw', 'UniformClosed', 'UniformClosedOpen', 'VonMises']
|
|
9
|
+
class Distribution:
|
|
10
|
+
pass
|
|
11
|
+
class DistributionType:
|
|
12
|
+
@typing.overload
|
|
13
|
+
def __init__(self) -> None:
|
|
14
|
+
...
|
|
15
|
+
@typing.overload
|
|
16
|
+
def __init__(self, arg0: str) -> None:
|
|
17
|
+
...
|
|
18
|
+
def get(self) -> str:
|
|
19
|
+
...
|
|
20
|
+
def matches(self, arg0: DistributionType) -> bool:
|
|
21
|
+
...
|
|
22
|
+
class DoubleDistributionDescription:
|
|
23
|
+
distribution_type: DistributionType
|
|
24
|
+
name: str
|
|
25
|
+
def __init__(self) -> None:
|
|
26
|
+
...
|
|
27
|
+
def __repr__(self) -> str:
|
|
28
|
+
...
|
|
29
|
+
def string(self) -> str:
|
|
30
|
+
"""
|
|
31
|
+
Return a detailed description of the Distribution law
|
|
32
|
+
"""
|
|
33
|
+
@property
|
|
34
|
+
def alpha(self) -> float | None:
|
|
35
|
+
"""
|
|
36
|
+
Set up alpha which is the exponent parameter for power law Distribution law
|
|
37
|
+
"""
|
|
38
|
+
@alpha.setter
|
|
39
|
+
def alpha(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
40
|
+
...
|
|
41
|
+
@property
|
|
42
|
+
def kappa(self) -> float | None:
|
|
43
|
+
"""
|
|
44
|
+
Set up kappa which is the concentration parameter for Von Mises Distribution law
|
|
45
|
+
"""
|
|
46
|
+
@kappa.setter
|
|
47
|
+
def kappa(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
48
|
+
...
|
|
49
|
+
@property
|
|
50
|
+
def max_value(self) -> float | None:
|
|
51
|
+
...
|
|
52
|
+
@max_value.setter
|
|
53
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
54
|
+
...
|
|
55
|
+
@property
|
|
56
|
+
def mean(self) -> float | None:
|
|
57
|
+
...
|
|
58
|
+
@mean.setter
|
|
59
|
+
def mean(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
60
|
+
...
|
|
61
|
+
@property
|
|
62
|
+
def min_value(self) -> float | None:
|
|
63
|
+
...
|
|
64
|
+
@min_value.setter
|
|
65
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
66
|
+
...
|
|
67
|
+
@property
|
|
68
|
+
def standard_deviation(self) -> float | None:
|
|
69
|
+
...
|
|
70
|
+
@standard_deviation.setter
|
|
71
|
+
def standard_deviation(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
72
|
+
...
|
|
73
|
+
class DoubleSampler:
|
|
74
|
+
@staticmethod
|
|
75
|
+
def create_distribution(desc: DoubleDistributionDescription) -> opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosed | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosedOpen | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.Gaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedGaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.VonMises | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedLogNormal | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedPowerLaw:
|
|
76
|
+
"""
|
|
77
|
+
Create a distribution from a description
|
|
78
|
+
"""
|
|
79
|
+
@staticmethod
|
|
80
|
+
def create_rad_angle_distribution_from_degree(desc: DoubleDistributionDescription) -> opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosed | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosedOpen | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.Gaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedGaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.VonMises | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedLogNormal | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedPowerLaw:
|
|
81
|
+
"""
|
|
82
|
+
Create a angle distribution in radian from a description provided in degree
|
|
83
|
+
"""
|
|
84
|
+
@staticmethod
|
|
85
|
+
def sample(engine: RandomEngine, dist: opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosed | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.UniformClosedOpen | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.Gaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedGaussian | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.VonMises | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedLogNormal | opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.TruncatedPowerLaw) -> float:
|
|
86
|
+
"""
|
|
87
|
+
Sample a value from a distribution using a RandomEngine
|
|
88
|
+
"""
|
|
89
|
+
class FractureSetDescription:
|
|
90
|
+
azimuth: DoubleDistributionDescription
|
|
91
|
+
length: DoubleDistributionDescription
|
|
92
|
+
name: str
|
|
93
|
+
def __init__(self) -> None:
|
|
94
|
+
...
|
|
95
|
+
def __repr__(self) -> str:
|
|
96
|
+
...
|
|
97
|
+
def add_observed_fracture(self, arg0: opengeode.bin.opengeode_py_geometry.Point2D, arg1: opengeode.bin.opengeode_py_geometry.Point2D) -> None:
|
|
98
|
+
...
|
|
99
|
+
def string(self) -> str:
|
|
100
|
+
"""
|
|
101
|
+
Return a detailed description of the fracture set
|
|
102
|
+
"""
|
|
103
|
+
@property
|
|
104
|
+
def birth_ratio(self) -> float:
|
|
105
|
+
...
|
|
106
|
+
@birth_ratio.setter
|
|
107
|
+
def birth_ratio(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
108
|
+
...
|
|
109
|
+
@property
|
|
110
|
+
def change_ratio(self) -> float:
|
|
111
|
+
...
|
|
112
|
+
@change_ratio.setter
|
|
113
|
+
def change_ratio(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
114
|
+
...
|
|
115
|
+
@property
|
|
116
|
+
def death_ratio(self) -> float:
|
|
117
|
+
...
|
|
118
|
+
@death_ratio.setter
|
|
119
|
+
def death_ratio(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
120
|
+
...
|
|
121
|
+
@property
|
|
122
|
+
def minimal_spacing(self) -> float:
|
|
123
|
+
...
|
|
124
|
+
@minimal_spacing.setter
|
|
125
|
+
def minimal_spacing(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
126
|
+
...
|
|
127
|
+
@property
|
|
128
|
+
def p20(self) -> float:
|
|
129
|
+
...
|
|
130
|
+
@p20.setter
|
|
131
|
+
def p20(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
132
|
+
...
|
|
133
|
+
@property
|
|
134
|
+
def p21(self) -> float:
|
|
135
|
+
...
|
|
136
|
+
@p21.setter
|
|
137
|
+
def p21(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
138
|
+
...
|
|
139
|
+
class FractureSimulationRunner:
|
|
140
|
+
def __init__(self, box: SpatialDomain2D) -> None:
|
|
141
|
+
...
|
|
142
|
+
def add_fracture_set_descriptor(self, descriptor: FractureSetDescription) -> None:
|
|
143
|
+
"""
|
|
144
|
+
Add a fracture set configuration to the simulation.
|
|
145
|
+
"""
|
|
146
|
+
def add_x_node_monitoring(self, double: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
147
|
+
"""
|
|
148
|
+
Add a monitoring value for x node, value should be in[0.,1.].
|
|
149
|
+
"""
|
|
150
|
+
def check_statistics(self, statistic_monitoring: StatisticsMonitor) -> None:
|
|
151
|
+
"""
|
|
152
|
+
Check computed statistics after simulation.
|
|
153
|
+
"""
|
|
154
|
+
def initialize(self) -> None:
|
|
155
|
+
"""
|
|
156
|
+
Initialize internal samplers, energy terms, and proposal kernels.
|
|
157
|
+
"""
|
|
158
|
+
def run(self, engine: RandomEngine, config: SimulationConfigurator) -> StatisticsMonitor:
|
|
159
|
+
"""
|
|
160
|
+
Run the simulation and return statistics monitoring results.
|
|
161
|
+
"""
|
|
162
|
+
def string(self) -> str:
|
|
163
|
+
"""
|
|
164
|
+
Return a detailed description of the simulation configurator.
|
|
165
|
+
"""
|
|
166
|
+
class Gaussian:
|
|
167
|
+
@staticmethod
|
|
168
|
+
def distribution_type_static() -> DistributionType:
|
|
169
|
+
...
|
|
170
|
+
def __init__(self) -> None:
|
|
171
|
+
...
|
|
172
|
+
def distribution_type(self) -> DistributionType:
|
|
173
|
+
...
|
|
174
|
+
def is_valid(self) -> bool:
|
|
175
|
+
...
|
|
176
|
+
def string(self) -> str:
|
|
177
|
+
...
|
|
178
|
+
@property
|
|
179
|
+
def mean(self) -> float:
|
|
180
|
+
...
|
|
181
|
+
@mean.setter
|
|
182
|
+
def mean(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
183
|
+
...
|
|
184
|
+
@property
|
|
185
|
+
def standard_deviation(self) -> float:
|
|
186
|
+
...
|
|
187
|
+
@standard_deviation.setter
|
|
188
|
+
def standard_deviation(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
189
|
+
...
|
|
190
|
+
class OpenGeodeStochasticStochasticLibrary:
|
|
191
|
+
@staticmethod
|
|
192
|
+
def initialize() -> None:
|
|
193
|
+
...
|
|
194
|
+
class RandomEngine:
|
|
195
|
+
def __init__(self) -> None:
|
|
196
|
+
...
|
|
197
|
+
def __repr__(self) -> str:
|
|
198
|
+
...
|
|
199
|
+
def sample_bernoulli(self, probability_of_success: typing.SupportsFloat | typing.SupportsIndex) -> bool:
|
|
200
|
+
"""
|
|
201
|
+
Sample a boolean with given success probability
|
|
202
|
+
"""
|
|
203
|
+
def sample_gaussian(self, law: Gaussian) -> float:
|
|
204
|
+
"""
|
|
205
|
+
Sample a value from a Gaussian distribution
|
|
206
|
+
"""
|
|
207
|
+
def sample_log(self) -> float:
|
|
208
|
+
"""
|
|
209
|
+
Return a logarithmically uniform random value
|
|
210
|
+
"""
|
|
211
|
+
def sample_truncated_gaussian(self, law: TruncatedGaussian) -> float:
|
|
212
|
+
"""
|
|
213
|
+
Sample a value from a truncated Gaussian
|
|
214
|
+
"""
|
|
215
|
+
def sample_truncated_lognormal(self, law: TruncatedLogNormal) -> float:
|
|
216
|
+
"""
|
|
217
|
+
Sample a value from a Truncated Log Normal
|
|
218
|
+
"""
|
|
219
|
+
def sample_truncated_powerlaw(self, law: TruncatedPowerLaw) -> float:
|
|
220
|
+
"""
|
|
221
|
+
Sample a value from a Truncated Power Law
|
|
222
|
+
"""
|
|
223
|
+
def sample_uniform_closed(self, law: UniformClosed) -> float:
|
|
224
|
+
"""
|
|
225
|
+
Sample a double from a uniform closed distribution
|
|
226
|
+
"""
|
|
227
|
+
def sample_uniform_closed_open(self, law: UniformClosedOpen) -> float:
|
|
228
|
+
"""
|
|
229
|
+
Sample a double from a uniform closed-open distribution
|
|
230
|
+
"""
|
|
231
|
+
def sample_von_mises(self, law: VonMises) -> float:
|
|
232
|
+
"""
|
|
233
|
+
Sample a value from a Von Mises-Fisher
|
|
234
|
+
"""
|
|
235
|
+
@typing.overload
|
|
236
|
+
def set_seed(self, number: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
237
|
+
"""
|
|
238
|
+
Set RNG seed using integer
|
|
239
|
+
"""
|
|
240
|
+
@typing.overload
|
|
241
|
+
def set_seed(self, word: str) -> None:
|
|
242
|
+
"""
|
|
243
|
+
Set RNG seed using string
|
|
244
|
+
"""
|
|
245
|
+
class SimulationConfigurator:
|
|
246
|
+
def __init__(self) -> None:
|
|
247
|
+
...
|
|
248
|
+
def __repr__(self) -> str:
|
|
249
|
+
...
|
|
250
|
+
def string(self) -> str:
|
|
251
|
+
"""
|
|
252
|
+
Return a detailed description of the object set simulation configurator
|
|
253
|
+
"""
|
|
254
|
+
@property
|
|
255
|
+
def burn_in_steps(self) -> int:
|
|
256
|
+
"""
|
|
257
|
+
Number of burn-in steps before recording realizations
|
|
258
|
+
"""
|
|
259
|
+
@burn_in_steps.setter
|
|
260
|
+
def burn_in_steps(self, arg0: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
261
|
+
...
|
|
262
|
+
@property
|
|
263
|
+
def metropolis_hasting_steps(self) -> int:
|
|
264
|
+
"""
|
|
265
|
+
Number of Metropolis-Hastings steps per realization
|
|
266
|
+
"""
|
|
267
|
+
@metropolis_hasting_steps.setter
|
|
268
|
+
def metropolis_hasting_steps(self, arg0: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
269
|
+
...
|
|
270
|
+
@property
|
|
271
|
+
def printer(self) -> opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.SimulationPrinterConfigurator | None:
|
|
272
|
+
"""
|
|
273
|
+
Optional SimulationPrinter for output
|
|
274
|
+
"""
|
|
275
|
+
@printer.setter
|
|
276
|
+
def printer(self, arg0: opengeode_stochastic.bin.opengeode_stochastic_py_stochastic.SimulationPrinterConfigurator | None) -> None:
|
|
277
|
+
...
|
|
278
|
+
@property
|
|
279
|
+
def realizations(self) -> int:
|
|
280
|
+
"""
|
|
281
|
+
Number of realizations to generate
|
|
282
|
+
"""
|
|
283
|
+
@realizations.setter
|
|
284
|
+
def realizations(self, arg0: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
285
|
+
...
|
|
286
|
+
class SimulationPrinterConfigurator:
|
|
287
|
+
output_folder: str
|
|
288
|
+
print_realisations: bool
|
|
289
|
+
print_statistics: bool
|
|
290
|
+
print_statistics_summary: bool
|
|
291
|
+
realisations_prefix: str
|
|
292
|
+
statistics_filename: str
|
|
293
|
+
statistics_summary_filename: str
|
|
294
|
+
def __init__(self) -> None:
|
|
295
|
+
...
|
|
296
|
+
def __repr__(self) -> str:
|
|
297
|
+
...
|
|
298
|
+
@property
|
|
299
|
+
def realisations_print_frequency(self) -> int:
|
|
300
|
+
...
|
|
301
|
+
@realisations_print_frequency.setter
|
|
302
|
+
def realisations_print_frequency(self, arg0: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
303
|
+
...
|
|
304
|
+
class SpatialDomain2D:
|
|
305
|
+
def __init__(self, domain: opengeode.bin.opengeode_py_geometry.BoundingBox2D, buffer_size: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
306
|
+
"""
|
|
307
|
+
Create a spatial domain composed of:
|
|
308
|
+
|
|
309
|
+
- a core domain (the VOI)
|
|
310
|
+
- a buffer zone
|
|
311
|
+
- the extended domain (domain + buffer)
|
|
312
|
+
|
|
313
|
+
Arguments:
|
|
314
|
+
domain (BoundingBox): main domain / VOI
|
|
315
|
+
buffer_size (float): buffer thickness
|
|
316
|
+
"""
|
|
317
|
+
class SpatialDomain3D:
|
|
318
|
+
def __init__(self, domain: opengeode.bin.opengeode_py_geometry.BoundingBox3D, buffer_size: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
319
|
+
"""
|
|
320
|
+
Create a spatial domain composed of:
|
|
321
|
+
|
|
322
|
+
- a core domain (the VOI)
|
|
323
|
+
- a buffer zone
|
|
324
|
+
- the extended domain (domain + buffer)
|
|
325
|
+
|
|
326
|
+
Arguments:
|
|
327
|
+
domain (BoundingBox): main domain / VOI
|
|
328
|
+
buffer_size (float): buffer thickness
|
|
329
|
+
"""
|
|
330
|
+
class StatisticsMonitor:
|
|
331
|
+
def __init__(self, nb_energy_terms: typing.SupportsInt | typing.SupportsIndex) -> None:
|
|
332
|
+
"""
|
|
333
|
+
Create a StatisticsMonitor for a given number of energy terms
|
|
334
|
+
"""
|
|
335
|
+
def __repr__(self) -> str:
|
|
336
|
+
...
|
|
337
|
+
def add_realization(self, values: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None:
|
|
338
|
+
"""
|
|
339
|
+
Add a realization (vector of doubles) to update statistics
|
|
340
|
+
"""
|
|
341
|
+
def statiscal_count(self) -> int:
|
|
342
|
+
"""
|
|
343
|
+
Return the number of realizations added
|
|
344
|
+
"""
|
|
345
|
+
@property
|
|
346
|
+
def means(self) -> list[float]:
|
|
347
|
+
"""
|
|
348
|
+
Return the computed mean values for each energy term
|
|
349
|
+
"""
|
|
350
|
+
@property
|
|
351
|
+
def variances(self) -> list[float]:
|
|
352
|
+
"""
|
|
353
|
+
Return the computed variances for each energy term
|
|
354
|
+
"""
|
|
355
|
+
class TruncatedGaussian:
|
|
356
|
+
@staticmethod
|
|
357
|
+
def distribution_type_static() -> DistributionType:
|
|
358
|
+
...
|
|
359
|
+
def __init__(self) -> None:
|
|
360
|
+
...
|
|
361
|
+
def distribution_type(self) -> DistributionType:
|
|
362
|
+
...
|
|
363
|
+
def is_valid(self) -> bool:
|
|
364
|
+
...
|
|
365
|
+
def string(self) -> str:
|
|
366
|
+
...
|
|
367
|
+
@property
|
|
368
|
+
def max_value(self) -> float | None:
|
|
369
|
+
...
|
|
370
|
+
@max_value.setter
|
|
371
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
372
|
+
...
|
|
373
|
+
@property
|
|
374
|
+
def mean(self) -> float:
|
|
375
|
+
...
|
|
376
|
+
@mean.setter
|
|
377
|
+
def mean(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
378
|
+
...
|
|
379
|
+
@property
|
|
380
|
+
def min_value(self) -> float | None:
|
|
381
|
+
...
|
|
382
|
+
@min_value.setter
|
|
383
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
384
|
+
...
|
|
385
|
+
@property
|
|
386
|
+
def standard_deviation(self) -> float:
|
|
387
|
+
...
|
|
388
|
+
@standard_deviation.setter
|
|
389
|
+
def standard_deviation(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
390
|
+
...
|
|
391
|
+
class TruncatedLogNormal:
|
|
392
|
+
@staticmethod
|
|
393
|
+
def distribution_type_static() -> DistributionType:
|
|
394
|
+
...
|
|
395
|
+
def __init__(self) -> None:
|
|
396
|
+
...
|
|
397
|
+
def distribution_type(self) -> DistributionType:
|
|
398
|
+
...
|
|
399
|
+
def is_valid(self) -> bool:
|
|
400
|
+
...
|
|
401
|
+
def string(self) -> str:
|
|
402
|
+
...
|
|
403
|
+
@property
|
|
404
|
+
def max_value(self) -> float | None:
|
|
405
|
+
...
|
|
406
|
+
@max_value.setter
|
|
407
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
408
|
+
...
|
|
409
|
+
@property
|
|
410
|
+
def mean(self) -> float:
|
|
411
|
+
"""
|
|
412
|
+
Mean value of the underlying normal distribution
|
|
413
|
+
"""
|
|
414
|
+
@mean.setter
|
|
415
|
+
def mean(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
416
|
+
...
|
|
417
|
+
@property
|
|
418
|
+
def min_value(self) -> float | None:
|
|
419
|
+
...
|
|
420
|
+
@min_value.setter
|
|
421
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
422
|
+
...
|
|
423
|
+
@property
|
|
424
|
+
def standard_deviation(self) -> float:
|
|
425
|
+
"""
|
|
426
|
+
Standard deviation value of the underlying normal distribution
|
|
427
|
+
"""
|
|
428
|
+
@standard_deviation.setter
|
|
429
|
+
def standard_deviation(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
430
|
+
...
|
|
431
|
+
class TruncatedPowerLaw:
|
|
432
|
+
@staticmethod
|
|
433
|
+
def distribution_type_static() -> DistributionType:
|
|
434
|
+
...
|
|
435
|
+
def __init__(self) -> None:
|
|
436
|
+
...
|
|
437
|
+
def distribution_type(self) -> DistributionType:
|
|
438
|
+
...
|
|
439
|
+
def is_valid(self) -> bool:
|
|
440
|
+
...
|
|
441
|
+
def string(self) -> str:
|
|
442
|
+
...
|
|
443
|
+
@property
|
|
444
|
+
def alpha(self) -> float:
|
|
445
|
+
"""
|
|
446
|
+
Alpha value of the power law
|
|
447
|
+
"""
|
|
448
|
+
@alpha.setter
|
|
449
|
+
def alpha(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
450
|
+
...
|
|
451
|
+
@property
|
|
452
|
+
def max_value(self) -> float | None:
|
|
453
|
+
...
|
|
454
|
+
@max_value.setter
|
|
455
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
456
|
+
...
|
|
457
|
+
@property
|
|
458
|
+
def min_value(self) -> float | None:
|
|
459
|
+
...
|
|
460
|
+
@min_value.setter
|
|
461
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex | None) -> None:
|
|
462
|
+
...
|
|
463
|
+
class UniformClosed:
|
|
464
|
+
@staticmethod
|
|
465
|
+
def distribution_type_static() -> DistributionType:
|
|
466
|
+
...
|
|
467
|
+
def __init__(self) -> None:
|
|
468
|
+
...
|
|
469
|
+
def distribution_type(self) -> DistributionType:
|
|
470
|
+
...
|
|
471
|
+
def is_valid(self) -> bool:
|
|
472
|
+
...
|
|
473
|
+
def string(self) -> str:
|
|
474
|
+
...
|
|
475
|
+
@property
|
|
476
|
+
def max_value(self) -> float:
|
|
477
|
+
...
|
|
478
|
+
@max_value.setter
|
|
479
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
480
|
+
...
|
|
481
|
+
@property
|
|
482
|
+
def min_value(self) -> float:
|
|
483
|
+
...
|
|
484
|
+
@min_value.setter
|
|
485
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
486
|
+
...
|
|
487
|
+
class UniformClosedOpen:
|
|
488
|
+
@staticmethod
|
|
489
|
+
def distribution_type_static() -> DistributionType:
|
|
490
|
+
...
|
|
491
|
+
def __init__(self) -> None:
|
|
492
|
+
...
|
|
493
|
+
def distribution_type(self) -> DistributionType:
|
|
494
|
+
...
|
|
495
|
+
def is_valid(self) -> bool:
|
|
496
|
+
...
|
|
497
|
+
def string(self) -> str:
|
|
498
|
+
...
|
|
499
|
+
@property
|
|
500
|
+
def max_value(self) -> float:
|
|
501
|
+
...
|
|
502
|
+
@max_value.setter
|
|
503
|
+
def max_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
504
|
+
...
|
|
505
|
+
@property
|
|
506
|
+
def min_value(self) -> float:
|
|
507
|
+
...
|
|
508
|
+
@min_value.setter
|
|
509
|
+
def min_value(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
510
|
+
...
|
|
511
|
+
class VonMises:
|
|
512
|
+
@staticmethod
|
|
513
|
+
def distribution_type_static() -> DistributionType:
|
|
514
|
+
...
|
|
515
|
+
def __init__(self) -> None:
|
|
516
|
+
...
|
|
517
|
+
def distribution_type(self) -> DistributionType:
|
|
518
|
+
...
|
|
519
|
+
def is_valid(self) -> bool:
|
|
520
|
+
...
|
|
521
|
+
def string(self) -> str:
|
|
522
|
+
...
|
|
523
|
+
@property
|
|
524
|
+
def concentration(self) -> float:
|
|
525
|
+
...
|
|
526
|
+
@concentration.setter
|
|
527
|
+
def concentration(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
528
|
+
...
|
|
529
|
+
@property
|
|
530
|
+
def mean(self) -> float:
|
|
531
|
+
...
|
|
532
|
+
@mean.setter
|
|
533
|
+
def mean(self, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None:
|
|
534
|
+
...
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2019 - 2026 Geode-solutions
|
|
2
|
+
#
|
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
# in the Software without restriction, including without limitation the rights
|
|
6
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
# furnished to do so, subject to the following conditions:
|
|
9
|
+
#
|
|
10
|
+
# The above copyright notice and this permission notice shall be included in
|
|
11
|
+
# all copies or substantial portions of the Software.
|
|
12
|
+
#
|
|
13
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
# SOFTWARE.
|
|
20
|
+
|
|
21
|
+
import opengeode
|
|
22
|
+
|
|
23
|
+
from .bin.opengeode_stochastic_py_stochastic import *
|
|
24
|
+
|
|
25
|
+
OpenGeodeStochasticStochasticLibrary.initialize()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import opengeode as opengeode
|
|
3
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import Distribution
|
|
4
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DistributionType
|
|
5
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DoubleDistributionDescription
|
|
6
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import DoubleSampler
|
|
7
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import FractureSetDescription
|
|
8
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import FractureSimulationRunner
|
|
9
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import Gaussian
|
|
10
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import OpenGeodeStochasticStochasticLibrary
|
|
11
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import RandomEngine
|
|
12
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SimulationConfigurator
|
|
13
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SimulationPrinterConfigurator
|
|
14
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SpatialDomain2D
|
|
15
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import SpatialDomain3D
|
|
16
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import StatisticsMonitor
|
|
17
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedGaussian
|
|
18
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedLogNormal
|
|
19
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import TruncatedPowerLaw
|
|
20
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import UniformClosed
|
|
21
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import UniformClosedOpen
|
|
22
|
+
from opengeode_stochastic.bin.opengeode_stochastic_py_stochastic import VonMises
|
|
23
|
+
__all__: list[str] = ['Distribution', 'DistributionType', 'DoubleDistributionDescription', 'DoubleSampler', 'FractureSetDescription', 'FractureSimulationRunner', 'Gaussian', 'OpenGeodeStochasticStochasticLibrary', 'RandomEngine', 'SimulationConfigurator', 'SimulationPrinterConfigurator', 'SpatialDomain2D', 'SpatialDomain3D', 'StatisticsMonitor', 'TruncatedGaussian', 'TruncatedLogNormal', 'TruncatedPowerLaw', 'UniformClosed', 'UniformClosedOpen', 'VonMises', 'opengeode']
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: OpenGeode-Stochastic
|
|
3
|
+
Version: 1.20.0
|
|
4
|
+
Summary: A module of the OpenGeode framework for stochastic modeling, simulation and bayesian inference
|
|
5
|
+
Author-email: Geode-solutions <contact@geode-solutions.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: <3.15,>=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: opengeode-core==17.*,>=17.3.0
|
|
10
|
+
|
|
11
|
+
<h1 align="center">OpenGeode-Stochatic<sup><i>by Geode-solutions</i></sup></h1>
|
|
12
|
+
<h3 align="center">A module of the OpenGeode framework for stochastic modeling, simulation and bayesian inference.</h3>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<img src="https://github.com/Geode-solutions/OpenGeode-Stochatic/workflows/CI/badge.svg" alt="Build Status">
|
|
16
|
+
<img src="https://github.com/Geode-solutions/OpenGeode-Stochatic/workflows/CD/badge.svg" alt="Deploy Status">
|
|
17
|
+
<img src="https://codecov.io/gh/Geode-solutions/OpenGeode-Stochatic/branch/master/graph/badge.svg" alt="Coverage Status">
|
|
18
|
+
<img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode-Stochatic.svg" alt="Version">
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
|
|
23
|
+
<img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
|
|
24
|
+
<img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
|
|
25
|
+
<img src="https://img.shields.io/static/v1?label=macOS&logo=apple&logoColor=white&message=support&color=success" alt="macOS support">
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
|
|
30
|
+
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
|
|
31
|
+
<img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
|
|
32
|
+
<a href="https://slackin-opengeode.herokuapp.com">
|
|
33
|
+
<img src="https://slackin-opengeode.herokuapp.com/badge.svg" alt="Slack invite">
|
|
34
|
+
</a>
|
|
35
|
+
<a href="https://doi.org/10.5281/zenodo.3610370">
|
|
36
|
+
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
|
|
37
|
+
</a>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Introduction
|
|
42
|
+
|
|
43
|
+
## Documentation
|
|
44
|
+
|
|
45
|
+
## Questions
|
|
46
|
+
|
|
47
|
+
For questions and support please use the official [slack](https://slackin-opengeode.herokuapp.com) and go to the channel #module_template. The issue list of this repo is exclusively for bug reports and feature requests.
|
|
48
|
+
|
|
49
|
+
## Interesting other projects
|
|
50
|
+
|
|
51
|
+
DRlib is a C++ library for modeling, simulation and inference of marked point processes:
|
|
52
|
+
https://gitlab.univ-lorraine.fr/labos/iecl/drlib
|
|
53
|
+
|
|
54
|
+
### References
|
|
55
|
+
* Chiu SN, Stoyan D, Kendall WS, Mecke J (2013) Stochastic geometry and its applications, 3rd edn. Wiley,Chichester.https://doi.org/10.1002/9781118658222
|
|
56
|
+
* Illian J, Penttinen A, Stoyan H, Stoyan D (2008) Statistical analysis and modelling of spatial point patterns.Wiley, Chichester.https://doi.org/10.1002/9780470725160
|
|
57
|
+
* Stoica RS (2025) Random patterns and structures in spatial data. Chapman & Hall, CRC Press, Boca Raton.https://doi.org/10.1201/9781003380382
|
|
58
|
+
* Van Lieshout MNM (2000) Markov point processes and their applications. Imperial College Press, London.https://doi.org/10.1142/p060
|
|
59
|
+
|
|
60
|
+
## License
|
|
61
|
+
|
|
62
|
+
[MIT](https://opensource.org/licenses/MIT)
|
|
63
|
+
|
|
64
|
+
Copyright (c) 2019 - 2026, Geode-solutions
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
opengeode_stochastic/__init__.py,sha256=8Pxlk7ITwo9vIMepGnT2TI1wiPWnVRbAJVDRXseQvCg,176
|
|
2
|
+
opengeode_stochastic/__init__.pyi,sha256=wtfH_-t_fMziAss9pxLc2yUEjyzFd2iOm8htgWt6JLQ,2510
|
|
3
|
+
opengeode_stochastic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
opengeode_stochastic/stochastic.py,sha256=AblxXSTCJRooZib5ObMKgP-KI2K2lr44ddWbKFXmwWU,1250
|
|
5
|
+
opengeode_stochastic/stochastic.pyi,sha256=_0tkcZctzqMAyBDmjufs4k2foxPKDtNKrBGW8lpxlxM,2383
|
|
6
|
+
opengeode_stochastic/bin/OpenGeode-Stochastic_stochastic.dll,sha256=Oaqz4dRBFWgbHTmFSwc7aorjzKXZQgS2ixuOrnDuBlQ,182784
|
|
7
|
+
opengeode_stochastic/bin/__init__.pyi,sha256=sqX7XeTbk1vscX2tvFxUw0_OFFaDzKZ7zd_UkMbRWPQ,147
|
|
8
|
+
opengeode_stochastic/bin/opengeode_stochastic_py_stochastic.cp313-win_amd64.pyd,sha256=tQv_LUyaiuPQDP9ad0s2N_LJKyB3sAv3iPxullqu7Ow,465408
|
|
9
|
+
opengeode_stochastic/bin/opengeode_stochastic_py_stochastic.pyi,sha256=B7MabNARZQ4BfFcAbZNae-Dq71iGmLj8JsXoJSbDSlE,19504
|
|
10
|
+
opengeode_stochastic-1.20.0.dist-info/METADATA,sha256=w-aoMdUo7N1N9kHIwU5ck259ZSJ4yqp38JP6uixfeOI,3437
|
|
11
|
+
opengeode_stochastic-1.20.0.dist-info/WHEEL,sha256=x5Wpw_tLx5PQKiWdxpqvs0e7Sg-SO0mTWdEADYDGPGA,101
|
|
12
|
+
opengeode_stochastic-1.20.0.dist-info/top_level.txt,sha256=bImZ52miTFDZ6IMwBy-Dyj4LaTX6zqoSfAWbcILopUU,21
|
|
13
|
+
opengeode_stochastic-1.20.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
opengeode_stochastic
|