pyvale 2025.4.0__py3-none-any.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.

Potentially problematic release.


This version of pyvale might be problematic. Click here for more details.

Files changed (157) hide show
  1. pyvale/__init__.py +75 -0
  2. pyvale/core/__init__.py +7 -0
  3. pyvale/core/analyticmeshgen.py +59 -0
  4. pyvale/core/analyticsimdatafactory.py +63 -0
  5. pyvale/core/analyticsimdatagenerator.py +160 -0
  6. pyvale/core/camera.py +146 -0
  7. pyvale/core/cameradata.py +64 -0
  8. pyvale/core/cameradata2d.py +82 -0
  9. pyvale/core/cameratools.py +328 -0
  10. pyvale/core/cython/rastercyth.c +32267 -0
  11. pyvale/core/cython/rastercyth.py +636 -0
  12. pyvale/core/dataset.py +250 -0
  13. pyvale/core/errorcalculator.py +112 -0
  14. pyvale/core/errordriftcalc.py +146 -0
  15. pyvale/core/errorintegrator.py +339 -0
  16. pyvale/core/errorrand.py +614 -0
  17. pyvale/core/errorsysdep.py +331 -0
  18. pyvale/core/errorsysfield.py +407 -0
  19. pyvale/core/errorsysindep.py +905 -0
  20. pyvale/core/experimentsimulator.py +99 -0
  21. pyvale/core/field.py +136 -0
  22. pyvale/core/fieldconverter.py +154 -0
  23. pyvale/core/fieldsampler.py +112 -0
  24. pyvale/core/fieldscalar.py +167 -0
  25. pyvale/core/fieldtensor.py +221 -0
  26. pyvale/core/fieldtransform.py +384 -0
  27. pyvale/core/fieldvector.py +215 -0
  28. pyvale/core/generatorsrandom.py +528 -0
  29. pyvale/core/imagedef2d.py +566 -0
  30. pyvale/core/integratorfactory.py +241 -0
  31. pyvale/core/integratorquadrature.py +192 -0
  32. pyvale/core/integratorrectangle.py +88 -0
  33. pyvale/core/integratorspatial.py +90 -0
  34. pyvale/core/integratortype.py +44 -0
  35. pyvale/core/optimcheckfuncs.py +153 -0
  36. pyvale/core/raster.py +31 -0
  37. pyvale/core/rastercy.py +76 -0
  38. pyvale/core/rasternp.py +604 -0
  39. pyvale/core/rendermesh.py +156 -0
  40. pyvale/core/sensorarray.py +179 -0
  41. pyvale/core/sensorarrayfactory.py +210 -0
  42. pyvale/core/sensorarraypoint.py +280 -0
  43. pyvale/core/sensordata.py +72 -0
  44. pyvale/core/sensordescriptor.py +101 -0
  45. pyvale/core/sensortools.py +143 -0
  46. pyvale/core/visualexpplotter.py +151 -0
  47. pyvale/core/visualimagedef.py +71 -0
  48. pyvale/core/visualimages.py +75 -0
  49. pyvale/core/visualopts.py +180 -0
  50. pyvale/core/visualsimanimator.py +83 -0
  51. pyvale/core/visualsimplotter.py +182 -0
  52. pyvale/core/visualtools.py +81 -0
  53. pyvale/core/visualtraceplotter.py +256 -0
  54. pyvale/data/__init__.py +7 -0
  55. pyvale/data/case13_out.e +0 -0
  56. pyvale/data/case16_out.e +0 -0
  57. pyvale/data/case17_out.e +0 -0
  58. pyvale/data/case18_1_out.e +0 -0
  59. pyvale/data/case18_2_out.e +0 -0
  60. pyvale/data/case18_3_out.e +0 -0
  61. pyvale/data/case25_out.e +0 -0
  62. pyvale/data/case26_out.e +0 -0
  63. pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff +0 -0
  64. pyvale/examples/__init__.py +7 -0
  65. pyvale/examples/analyticdatagen/__init__.py +7 -0
  66. pyvale/examples/analyticdatagen/ex1_1_scalarvisualisation.py +38 -0
  67. pyvale/examples/analyticdatagen/ex1_2_scalarcasebuild.py +46 -0
  68. pyvale/examples/analyticdatagen/ex2_1_analyticsensors.py +83 -0
  69. pyvale/examples/ex1_1_thermal2d.py +89 -0
  70. pyvale/examples/ex1_2_thermal2d.py +111 -0
  71. pyvale/examples/ex1_3_thermal2d.py +113 -0
  72. pyvale/examples/ex1_4_thermal2d.py +89 -0
  73. pyvale/examples/ex1_5_thermal2d.py +105 -0
  74. pyvale/examples/ex2_1_thermal3d .py +87 -0
  75. pyvale/examples/ex2_2_thermal3d.py +51 -0
  76. pyvale/examples/ex2_3_thermal3d.py +109 -0
  77. pyvale/examples/ex3_1_displacement2d.py +47 -0
  78. pyvale/examples/ex3_2_displacement2d.py +79 -0
  79. pyvale/examples/ex3_3_displacement2d.py +104 -0
  80. pyvale/examples/ex3_4_displacement2d.py +105 -0
  81. pyvale/examples/ex4_1_strain2d.py +57 -0
  82. pyvale/examples/ex4_2_strain2d.py +79 -0
  83. pyvale/examples/ex4_3_strain2d.py +100 -0
  84. pyvale/examples/ex5_1_multiphysics2d.py +78 -0
  85. pyvale/examples/ex6_1_multiphysics2d_expsim.py +118 -0
  86. pyvale/examples/ex6_2_multiphysics3d_expsim.py +158 -0
  87. pyvale/examples/features/__init__.py +7 -0
  88. pyvale/examples/features/ex_animation_tools_3dmonoblock.py +83 -0
  89. pyvale/examples/features/ex_area_avg.py +89 -0
  90. pyvale/examples/features/ex_calibration_error.py +108 -0
  91. pyvale/examples/features/ex_chain_field_errs.py +141 -0
  92. pyvale/examples/features/ex_field_errs.py +78 -0
  93. pyvale/examples/features/ex_sensor_single_angle_batch.py +110 -0
  94. pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +86 -0
  95. pyvale/examples/rasterisation/ex_rastenp.py +154 -0
  96. pyvale/examples/rasterisation/ex_rastercyth_oneframe.py +220 -0
  97. pyvale/examples/rasterisation/ex_rastercyth_static_cypara.py +194 -0
  98. pyvale/examples/rasterisation/ex_rastercyth_static_pypara.py +193 -0
  99. pyvale/simcases/case00_HEX20.i +242 -0
  100. pyvale/simcases/case00_HEX27.i +242 -0
  101. pyvale/simcases/case00_TET10.i +242 -0
  102. pyvale/simcases/case00_TET14.i +242 -0
  103. pyvale/simcases/case01.i +101 -0
  104. pyvale/simcases/case02.i +156 -0
  105. pyvale/simcases/case03.i +136 -0
  106. pyvale/simcases/case04.i +181 -0
  107. pyvale/simcases/case05.i +234 -0
  108. pyvale/simcases/case06.i +305 -0
  109. pyvale/simcases/case07.geo +135 -0
  110. pyvale/simcases/case07.i +87 -0
  111. pyvale/simcases/case08.geo +144 -0
  112. pyvale/simcases/case08.i +153 -0
  113. pyvale/simcases/case09.geo +204 -0
  114. pyvale/simcases/case09.i +87 -0
  115. pyvale/simcases/case10.geo +204 -0
  116. pyvale/simcases/case10.i +257 -0
  117. pyvale/simcases/case11.geo +337 -0
  118. pyvale/simcases/case11.i +147 -0
  119. pyvale/simcases/case12.geo +388 -0
  120. pyvale/simcases/case12.i +329 -0
  121. pyvale/simcases/case13.i +140 -0
  122. pyvale/simcases/case14.i +159 -0
  123. pyvale/simcases/case15.geo +337 -0
  124. pyvale/simcases/case15.i +150 -0
  125. pyvale/simcases/case16.geo +391 -0
  126. pyvale/simcases/case16.i +357 -0
  127. pyvale/simcases/case17.geo +135 -0
  128. pyvale/simcases/case17.i +144 -0
  129. pyvale/simcases/case18.i +254 -0
  130. pyvale/simcases/case18_1.i +254 -0
  131. pyvale/simcases/case18_2.i +254 -0
  132. pyvale/simcases/case18_3.i +254 -0
  133. pyvale/simcases/case19.geo +252 -0
  134. pyvale/simcases/case19.i +99 -0
  135. pyvale/simcases/case20.geo +252 -0
  136. pyvale/simcases/case20.i +250 -0
  137. pyvale/simcases/case21.geo +74 -0
  138. pyvale/simcases/case21.i +155 -0
  139. pyvale/simcases/case22.geo +82 -0
  140. pyvale/simcases/case22.i +140 -0
  141. pyvale/simcases/case23.geo +164 -0
  142. pyvale/simcases/case23.i +140 -0
  143. pyvale/simcases/case24.geo +79 -0
  144. pyvale/simcases/case24.i +123 -0
  145. pyvale/simcases/case25.geo +82 -0
  146. pyvale/simcases/case25.i +140 -0
  147. pyvale/simcases/case26.geo +166 -0
  148. pyvale/simcases/case26.i +140 -0
  149. pyvale/simcases/run_1case.py +61 -0
  150. pyvale/simcases/run_all_cases.py +69 -0
  151. pyvale/simcases/run_build_case.py +64 -0
  152. pyvale/simcases/run_example_cases.py +69 -0
  153. pyvale-2025.4.0.dist-info/METADATA +140 -0
  154. pyvale-2025.4.0.dist-info/RECORD +157 -0
  155. pyvale-2025.4.0.dist-info/WHEEL +5 -0
  156. pyvale-2025.4.0.dist-info/licenses/LICENSE +21 -0
  157. pyvale-2025.4.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,140 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyvale
3
+ Version: 2025.4.0
4
+ Summary: An all-in-one package for sensor simulation, sensor uncertainty quantification, sensor placement optimisation and simulation calibration or validation.
5
+ Author-email: "scepticalrabbit et al." <thescepticalrabbit@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (C) 2025 The Computer Aided Validation Team at UKAEA
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+ Project-URL: Repository, https://github.com/Digital-Validation-Laboratory/pyvale
28
+ Project-URL: Issue Tracker, https://github.com/Digital-Validation-Laboratory/pyvale/issues
29
+ Requires-Python: ==3.11.*
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Requires-Dist: mooseherder>=0.1.0
33
+ Requires-Dist: numpy<2.0.0
34
+ Requires-Dist: scipy>=1.14.0
35
+ Requires-Dist: netCDF4>=1.6.5
36
+ Requires-Dist: pyvista>=0.43.3
37
+ Requires-Dist: matplotlib>=3.8
38
+ Requires-Dist: shapely>=2.0.4
39
+ Requires-Dist: sympy>=1.13.0
40
+ Requires-Dist: PyQT6>=6.7.1
41
+ Requires-Dist: imageio>=2.36.1
42
+ Requires-Dist: imageio-ffmpeg>=0.5.1
43
+ Requires-Dist: numba>=0.59.1
44
+ Requires-Dist: pymoo>=0.6.1.3
45
+ Requires-Dist: Cython>=3.0.0
46
+ Requires-Dist: bpy>=4.2.0
47
+ Dynamic: license-file
48
+
49
+ # pyvale
50
+ The python validation engine (`pyvale`): An all-in-one package for sensor simulation, sensor uncertainty quantification, sensor placement optimisation and simulation calibration/validation.​ Used to simulate experimental data from an input multi-physics simulation by explicitly modelling sensors with realistic uncertainties. Useful for experimental design, sensor placement optimisation, testing simulation validation metrics and virtually testing digital shadows/twins.
51
+
52
+ ## Quick Demo: Simulating Point Sensors
53
+ Here we demonstrate how `pyvale` can be used to simulate thermocouples and strain gauges applied to a [MOOSE](https://mooseframework.inl.gov/index.html) thermo-mechanical simulation of a fusion divertor armour heatsink. The figures below show visualisations of the virtual thermocouple and strain gauge locations on the simualtion mesh as well as time traces for each sensor over a series of simulated experiments. The code to run the simulated experiments and produce the output shown here comes from [this example](https://github.com/Computer-Aided-Validation-Laboratory/pyvale/blob/main/src/pyvale/examples/ex6_2_multiphysics3d_expsim.py).
54
+
55
+ |![fig_thermomech3d_tc_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|![fig_thermomech3d_sg_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|
56
+ |--|--|
57
+ |*Visualisation of the thermcouple locations.*|*Visualisation of the strain gauge locations.*|
58
+
59
+ |![fig_thermomech3d_tc_traces](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_tc_traces.png)|![fig_thermomech3d_sg_traces](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_traces.png)|
60
+ |--|--|
61
+ |*Thermocouples time traces over a series of simulated experiments.*|*Strain gauge time traces over a series of simulated experiments.*|
62
+
63
+
64
+ ## Quick Install
65
+ `pyvale` can be installed from pypi:
66
+ ```shell
67
+ pip install pyvale
68
+ ```
69
+
70
+ ## Detailed Install: Ubuntu
71
+ ### Managing Python Versions
72
+ To be compatible with `bpy` (the Blender python interface), `pyvale` uses python 3.11. To install python 3.11 without corrupting your operating systems python installation first add the deadsnakes repository to apt:
73
+ ```shell
74
+ sudo add-apt-repository ppa:deadsnakes/ppa
75
+ sudo apt update && sudo apt upgrade -y
76
+ ```
77
+
78
+ Install python 3.11:
79
+ ```shell
80
+ sudo apt install python3.11
81
+ ```
82
+
83
+ Add `venv` to your python 3.11 install:
84
+ ```shell
85
+ sudo apt install python3.11-venv
86
+ ```
87
+
88
+ Check your python 3.11 install is working using the following command which should open an interactive python interpreter:
89
+ ```shell
90
+ python3.11
91
+ ```
92
+
93
+ ### Virtual Environment
94
+
95
+ We recommend installing `pyvale` in a virtual environment using `venv` or `pyvale` can be installed into an existing environment of your choice. To create a specific virtual environment for `pyvale` navigate to the directory you want to install the environment and use:
96
+
97
+ ```shell
98
+ python3.11 -m venv .pyvale-env
99
+ source .pyvale-env/bin/activate
100
+ ```
101
+
102
+ ### Standard Installation
103
+ `pyvale` can be installed from pypi. Ensure you virtual environment is activated and run:
104
+ ```shell
105
+ pip install pyvale
106
+ ```
107
+
108
+ ### Developer Installation
109
+
110
+ Clone `pyvale` to your local system along with submodules using
111
+ ```shell
112
+ git clone --recurse-submodules git@github.com:Computer-Aided-Validation-Laboratory/pyvale.git
113
+ ```
114
+
115
+ `cd` to the root directory of `pyvale`. Ensure you virtual environment is activated and run the following commmand from the `pyvale` directory:
116
+ ```shell
117
+ pip install -e .
118
+ pip install -e ./dependencies/mooseherder
119
+ ```
120
+
121
+ ### MOOSE
122
+ `pyvale` come pre-packaged with example `moose` physics simulation outputs (as *.e exodus files) to demonstrate its functionality. If you need to run additional simulation cases we recommend `proteus` (https://github.com/aurora-multiphysics/proteus) which has build scripts for common linux distributions.
123
+
124
+ ## Getting Started
125
+ The examples folder in "pyvale/examples" includes a sequence of examples of increasing complexity that demonstrate the functionality of `pyvale`.
126
+
127
+ ## Contributors
128
+ The Computer Aided Validation Team at UKAEA:
129
+ - Lloyd Fletcher (ScepticalRabbit), UK Atomic Energy Authority
130
+ - John Charlton (coolmule0), UK Atomic Energy Authority
131
+ - Joel Hirst (JoelPhys), UK Atomic Energy Authority
132
+ - Lorna Sibson (lornasibson), UK Atomic Energy Authority
133
+ - Adel Tayeb (3adelTayeb), UK Atomic Energy Authority
134
+ - Alex Marsh (alexmarsh2), UK Atomic Energy Authority
135
+ - Rory Spencer (fusmatrs), UK Atomic Energy Authority
136
+
137
+
138
+
139
+
140
+
@@ -0,0 +1,157 @@
1
+ pyvale/__init__.py,sha256=PqkK7XYVq-fU1Ru6qCM7TsvhU9clsFUpOBJn-VrNO58,2647
2
+ pyvale/core/__init__.py,sha256=s5K8rchT4t5ZDL-Oanu_1tZNGJeDhG401_lVVdt_zz4,273
3
+ pyvale/core/analyticmeshgen.py,sha256=aPtZoxsqtC1eWRnIVJ_jGPLoo0T8PhiB7LstxA2HMpM,1865
4
+ pyvale/core/analyticsimdatafactory.py,sha256=nild0oc9-JQkqhAJvR9q1JE2RVGiI-s0XdeBr8c4yUs,1953
5
+ pyvale/core/analyticsimdatagenerator.py,sha256=40UW3lV60WP5iXDQQ0gnxXQ18XnBO8gTrR3h6NXX1Q4,6036
6
+ pyvale/core/camera.py,sha256=RAKalMlanzHM7Q4kKKIhqKVOVzKMUaexhPhI4WF6Q70,5362
7
+ pyvale/core/cameradata.py,sha256=rbS8BJ-4F5T51o9D3YxFa2cWiXxq7nK4SpKwueEjKu4,2036
8
+ pyvale/core/cameradata2d.py,sha256=Xy9pVQ71y3oHfyMa-w7vU4fnryLCdsSFPdc5FJZK2aI,2678
9
+ pyvale/core/cameratools.py,sha256=Vf9-3kXsvd_TK-imzp0iXcc6ClkozeZ3Y89wOUmP_II,13482
10
+ pyvale/core/dataset.py,sha256=GMuAKbvBGHdGwq0GEdPsO9hdu2e8f4Z4gpb1wGEbvkw,9681
11
+ pyvale/core/errorcalculator.py,sha256=My1a_-oThNPYxFa3sT188GT1I7dExKhrD6AnWz4S2IU,3497
12
+ pyvale/core/errordriftcalc.py,sha256=aW8-wRfohIWZt-rklXpeLMuZrqbWQgut7vYoHi-O_ig,4474
13
+ pyvale/core/errorintegrator.py,sha256=JOkDE-vGm0Ibz_Tbxj-l6Oqp6_kCYNDuAnvc80rL7B8,14103
14
+ pyvale/core/errorrand.py,sha256=rVmnB9zLhtpvh9v4DEFYvFujycRWWHAgmhEl2r0czeM,22667
15
+ pyvale/core/errorsysdep.py,sha256=9gRjaxAJGIcqvGKrYlUleu9tzAviguTLND8GcNH6DvY,11816
16
+ pyvale/core/errorsysfield.py,sha256=oLG2XxqitrrRUgf70IS5Jau0fmAtekJsL9bkdd_glAA,16799
17
+ pyvale/core/errorsysindep.py,sha256=Ci5clfG-FpE6UZzvDZYAeAynn9V9luLQB19XJkc7xvA,33988
18
+ pyvale/core/experimentsimulator.py,sha256=TNawo8YEQ-4u8JeD3o2HNfzrEW9hafcdFcLbQubG7_s,3579
19
+ pyvale/core/field.py,sha256=WPAyA2SRyGsjvaTGUDYR4w8ia3_tNveb1-AV-xucVSA,4624
20
+ pyvale/core/fieldconverter.py,sha256=4WucIzpvlHYCN53mkIQP9zTgHvlBBuknNTN9aYqpbjM,5517
21
+ pyvale/core/fieldsampler.py,sha256=6uRTitrkM0y2PpfwjIbwuSdVdo7QfEFrw8O06GOH8pI,4459
22
+ pyvale/core/fieldscalar.py,sha256=J50DFLbTrj6L4QTOwuxHRfxsQAac2nTphY6uRhJ4Xvc,5970
23
+ pyvale/core/fieldtensor.py,sha256=coIPVI1zjm-mCdrriD-kg8UmQqj9-3bdcDrnFM5sz-8,8276
24
+ pyvale/core/fieldtransform.py,sha256=VGwY2Oox879iK47xI20iEuaAAQMvtSD9LwpLcZACjlI,17863
25
+ pyvale/core/fieldvector.py,sha256=p5NQsZElpAYUuabSXGj0N-4cBjBBQn8d2bwwU5Z9Aek,7988
26
+ pyvale/core/generatorsrandom.py,sha256=IUu4kSAtIsiUAzQPVflU0IBeJjyWdWPJ7pKz8t2WUGs,18393
27
+ pyvale/core/imagedef2d.py,sha256=NG46-NT1vCo_c-LuwVjSlRF0hUYr6da5jp56bjed-Ro,25073
28
+ pyvale/core/integratorfactory.py,sha256=-FmP9Pk5GclHXjXEsosILUferNPnnT6tGX2AaFHrGb8,9651
29
+ pyvale/core/integratorquadrature.py,sha256=5Znz33T4JkgZNxwPz-fdsZ-JDLknmkLl5sux4SJq7lY,6709
30
+ pyvale/core/integratorrectangle.py,sha256=PNWqU9SNXayltpPrfn4249Aqb0DJv8uz6IoDneQl78s,2951
31
+ pyvale/core/integratorspatial.py,sha256=tinYZv5EjrzixXiRJQ_xqXKWfwOUtb7DPAFbpbrL2qQ,3225
32
+ pyvale/core/integratortype.py,sha256=hoEt8UPbuJeiBxcGdwo3N9rHIYFF4tX2rIj6jcJXzhI,1305
33
+ pyvale/core/optimcheckfuncs.py,sha256=Xw0QbZPnc_5tIlb1j5ePIfyA5n1FZ-rm4S-dYFsnnYM,4196
34
+ pyvale/core/raster.py,sha256=4gY6DautLivikSyDgGfgaMcYhp3OQRljoGQKjorodgA,784
35
+ pyvale/core/rastercy.py,sha256=jfh8OuFlrnNzKL2-eDxgcDAq_DrFjbVoWOM8-QVM1KU,2891
36
+ pyvale/core/rasternp.py,sha256=oWtU8kUTVragGdrDoVYrNpbO3-ONE6iI_f0smdl_iP8,26010
37
+ pyvale/core/rendermesh.py,sha256=RkYuygr9VIa3I_-fHGp26Exup9VbDbRfcK0ObL6VwkQ,5601
38
+ pyvale/core/sensorarray.py,sha256=mwWrmMb07eX1eKR_XGP-uK1adyP3Jy65moAHMg9zE8A,7025
39
+ pyvale/core/sensorarrayfactory.py,sha256=6GYIJR1s0YnEjD2YSTnPKVG-TQIU8_ojUSctcMq8cUk,8353
40
+ pyvale/core/sensorarraypoint.py,sha256=oybgwykzuzStH62zmy19P9TFKGMMFiyfS0SoR2i4wu4,11263
41
+ pyvale/core/sensordata.py,sha256=dAI7IGINGHKbOGw60eqOpQWH7rJaMjzXIG9Ft1O19FE,2770
42
+ pyvale/core/sensordescriptor.py,sha256=g6TJgteMZGDb_ruDnAoYOLrh0uAHpUeklEu-gfaaxFY,2960
43
+ pyvale/core/sensortools.py,sha256=aLnWZUbat0SJVz2beDuoLlKNlHfL9mdCRR4ffHFAO9g,5737
44
+ pyvale/core/visualexpplotter.py,sha256=1_b4f4feXrbmvAi3x_oV74bJfapktT1-oHKQIMq2X8w,6029
45
+ pyvale/core/visualimagedef.py,sha256=21usk59QjrAgGc4rM6K-qqPYlIoFhdfLu3trL1O0EL8,2732
46
+ pyvale/core/visualimages.py,sha256=krA5tGlqgXn_88cFgA2xgONVtzlNXHZzg9TKwdHlc_8,2854
47
+ pyvale/core/visualopts.py,sha256=9utGwztzwRy_XDzqW-Fgr9KruDtfWT4gI5JU020OX_o,4730
48
+ pyvale/core/visualsimanimator.py,sha256=LLO1HcdrNbbyH4cjXJYIiBKtPo17q1Dfpyeeq-tZi_0,3225
49
+ pyvale/core/visualsimplotter.py,sha256=PthkhhvRCVRvFuMAHXjoNfVDGU-wZ7A1DyWMp-bOIAM,6829
50
+ pyvale/core/visualtools.py,sha256=uuE8U0W39Iwb0ImBZWu5JsnQ0Vr9U45HQMa3-Iy1Wjw,2983
51
+ pyvale/core/visualtraceplotter.py,sha256=ldN8qLvAcyGikaxIZPe2-L4LgO-HETgCQSqDUx03H6E,10511
52
+ pyvale/core/cython/rastercyth.c,sha256=Enq3RciGDUqfPubatA08eTcdTY-MUMXNT4ZgpBp8zd8,1225306
53
+ pyvale/core/cython/rastercyth.py,sha256=BXIDdta-ofIPiYB1Dt9i3BSa0B0vcuqwNxIJuon5geI,24377
54
+ pyvale/data/__init__.py,sha256=s5K8rchT4t5ZDL-Oanu_1tZNGJeDhG401_lVVdt_zz4,273
55
+ pyvale/data/case13_out.e,sha256=cqgs7TbyDtrlV4AxXUzULa0Qu50gbp_3VeQkehNT82g,150820
56
+ pyvale/data/case16_out.e,sha256=hmkiJQo4phaAPiEa9mgjggcUMn_yY2h348DSqMIj0pA,11614464
57
+ pyvale/data/case17_out.e,sha256=C5Zx0Xx8_iZqypPFbcutGPQtO5VNQaJmqg9YxWi0FHc,6095004
58
+ pyvale/data/case18_1_out.e,sha256=4ITunHIxCBCekUPipSv8j7IKDlhlwTaHe1e3wTN4qLE,1470776
59
+ pyvale/data/case18_2_out.e,sha256=Uz8U1TMBSe1YkRE4nRFMQ38Y11UQo9wb1cIbTRPua1Y,1470776
60
+ pyvale/data/case18_3_out.e,sha256=8dTnKLQOSCL-gle-1shL68GBQPW1go05aDvjO6AawAg,1470776
61
+ pyvale/data/case25_out.e,sha256=LWnCKG7GDUvzCs7GI1h25dhIhq6_qJgXnkhiTmdynPw,93748
62
+ pyvale/data/case26_out.e,sha256=UAoxPN0K1bbk9R0r2hDehuQZVCPHcAV5NA1PckRyXDY,225744
63
+ pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff,sha256=cRmbiTzxc8QJ_aO9dc7YT21lV1c9K7pH-L9uQZvUQ8M,5046422
64
+ pyvale/examples/__init__.py,sha256=s5K8rchT4t5ZDL-Oanu_1tZNGJeDhG401_lVVdt_zz4,273
65
+ pyvale/examples/ex1_1_thermal2d.py,sha256=AmlYnr5_IcGK8J--R3LcLlrj6p9JW7SR_WtC5ks-iVo,3407
66
+ pyvale/examples/ex1_2_thermal2d.py,sha256=8FmN_XpowxtKqX6sZJnRvSdMETaft9yp-t1oHLRbmtQ,3932
67
+ pyvale/examples/ex1_3_thermal2d.py,sha256=f6sS821VrIv8ORDXjl8xVH8wP7mvcRWPtNy4wAgWVpo,4058
68
+ pyvale/examples/ex1_4_thermal2d.py,sha256=8JnBKAKqOJcdg2SHd2U8dES2087CiFamE_oZaI0ifi8,3085
69
+ pyvale/examples/ex1_5_thermal2d.py,sha256=HeSABfbtPLfQQ0ywicJdN5nzJqpVh98mmQrBpIjt0NM,3964
70
+ pyvale/examples/ex2_1_thermal3d .py,sha256=pYXoYtVYUwu650YWx1z-U8tquVrbU7J-2Ev35nQD2gc,3299
71
+ pyvale/examples/ex2_2_thermal3d.py,sha256=1oH4xmFo-6hpBka0wCzVzr1x7G2XgYRbn_ndhMnAgEY,1674
72
+ pyvale/examples/ex2_3_thermal3d.py,sha256=CKPTyLHhWzqvUsTNNshTnN6AL7I1_ZUSdkmsWOuOTu4,3560
73
+ pyvale/examples/ex3_1_displacement2d.py,sha256=0utwxMuVqLFXd6-k9bWRa7PXfR5YJq-A_F7dPtNS5nE,1619
74
+ pyvale/examples/ex3_2_displacement2d.py,sha256=Qwf9S95pFtl8pHff3LGovzYmM6o-eMBCAzcCEzDBw9g,2636
75
+ pyvale/examples/ex3_3_displacement2d.py,sha256=3sAPV-ycdssqFLs6q__op0RWqHK9gB83SZOpYH4vclU,3649
76
+ pyvale/examples/ex3_4_displacement2d.py,sha256=H99FecuNCFgLaeYDD_CZdO5DlfHQ9xq2vS50jih6VBg,3991
77
+ pyvale/examples/ex4_1_strain2d.py,sha256=444MYF3J6dDIbLT5RGNAWnGI_2QP7hZoe6ScVrOIkco,1932
78
+ pyvale/examples/ex4_2_strain2d.py,sha256=mGoFLAIiimaQHSh7xWnup9urz1aS6IqxzOUo-BUrrZs,2734
79
+ pyvale/examples/ex4_3_strain2d.py,sha256=G4Nw6PjpPOfbgZvWgQV4xg_wJvSwGUj7TUyCE5lXuKs,3518
80
+ pyvale/examples/ex5_1_multiphysics2d.py,sha256=UbRDLwvJbpMmq2VdiHuG9jZdvdqMtM3X_Af0dGJhkps,2837
81
+ pyvale/examples/ex6_1_multiphysics2d_expsim.py,sha256=NSH-U4l_3DQMtEHBPTYa37QiRFFsiC3zO7hCZk17-DU,4336
82
+ pyvale/examples/ex6_2_multiphysics3d_expsim.py,sha256=Dem29f6j7uRFQfdn4TYK_t7ALoY9v20yI9tjwAnXIBI,5916
83
+ pyvale/examples/analyticdatagen/__init__.py,sha256=s5K8rchT4t5ZDL-Oanu_1tZNGJeDhG401_lVVdt_zz4,273
84
+ pyvale/examples/analyticdatagen/ex1_1_scalarvisualisation.py,sha256=X8OaNz1bYSiFVj7AZP1u8w7r0T0yTST8C5gHpzf1nE4,973
85
+ pyvale/examples/analyticdatagen/ex1_2_scalarcasebuild.py,sha256=iXY9wqoBUCaDwkLH1zMahxefsvX3TBbPjSrPGYUiuGQ,1317
86
+ pyvale/examples/analyticdatagen/ex2_1_analyticsensors.py,sha256=ln5U4g7XP-oLvtoAhAH_ombM01czEiPeG6pmzGVpyTc,2889
87
+ pyvale/examples/features/__init__.py,sha256=s5K8rchT4t5ZDL-Oanu_1tZNGJeDhG401_lVVdt_zz4,273
88
+ pyvale/examples/features/ex_animation_tools_3dmonoblock.py,sha256=4gNCiX831iankXOZrf_uji4iciRryhiFcaBUUSArvGc,2940
89
+ pyvale/examples/features/ex_area_avg.py,sha256=rNuwLwQwEikZ9Hz8i2AQPqsN8EY8mOTi73f8LDEgCf8,3110
90
+ pyvale/examples/features/ex_calibration_error.py,sha256=CoB2HulJ68XH7K1p6sQSCjKzRsjlUspcu2ELijvB3f8,3566
91
+ pyvale/examples/features/ex_chain_field_errs.py,sha256=BfkwFm9u8iZQfqtmvdZB7qMZzSTexvsKOkxkDREhf1M,4993
92
+ pyvale/examples/features/ex_field_errs.py,sha256=80w8GOpMS_NXay9XinNCx5XsPqwzPVzFWZJRZXm2Iq4,2762
93
+ pyvale/examples/features/ex_sensor_single_angle_batch.py,sha256=oiLKI46PBpluJXRBC9TUaEm709Wknqv-o0To1tY--tc,4295
94
+ pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=zA5EE_hq1ZeZijV6mpppqp14tH1VCjgo6m1MHVH2k2k,3039
95
+ pyvale/examples/rasterisation/ex_rastenp.py,sha256=AZnFx7g0m6LJqSLsPgoMzHdHvS-jH2AEsj33_GHG8Bk,4849
96
+ pyvale/examples/rasterisation/ex_rastercyth_oneframe.py,sha256=RXfHecn-4qIEszJ2x8F33LRQuUTgE_P-MY6G4DE_UJE,7439
97
+ pyvale/examples/rasterisation/ex_rastercyth_static_cypara.py,sha256=M8RqQLo0dBlqCvLny3G3Ir3tPVVBacpwYt_YSwsVrGQ,6953
98
+ pyvale/examples/rasterisation/ex_rastercyth_static_pypara.py,sha256=fBNJi6b8EFDah5dOr3eSUA-4hblFJJ13Dy5p68AVW3I,6931
99
+ pyvale/simcases/case00_HEX20.i,sha256=nxYk6_N2t3Xyfsi0tXDuqBuaN55ySlytCVswzunTi1M,5209
100
+ pyvale/simcases/case00_HEX27.i,sha256=11XkgwGB8fmYiw8bJMrRTkoeq-5qZXER91o62DT__bs,5209
101
+ pyvale/simcases/case00_TET10.i,sha256=sDCznjavre3lw08vaL_fFHdO8Qk_Ohp7pHR4zy2RhME,5209
102
+ pyvale/simcases/case00_TET14.i,sha256=U4QJY2IxRmJ5OC2gayN0VtKiHeWH0ySwSVLKbTte4t4,5209
103
+ pyvale/simcases/case01.i,sha256=R6t_uui6DywA1m5HLt4EsdkGDzobpGrfxBrfIY-5YiI,2184
104
+ pyvale/simcases/case02.i,sha256=gOPdUDVDnMUgqevcRO7vT5HnXTY64a7rmugSgkUqQ0s,3406
105
+ pyvale/simcases/case03.i,sha256=6LkfehTSTXuJ390mdn6tYp2Tkgo15KVpGmFmBrHo-AA,2848
106
+ pyvale/simcases/case04.i,sha256=Ao5z2qey2eJrqW1TmCm6LZRDeTwPTOFtMNPocH4zQO4,3757
107
+ pyvale/simcases/case05.i,sha256=VO2D38xsUrZmEMuEJF6JzjF_InpGAdrf9y_5FhvvvDw,5959
108
+ pyvale/simcases/case06.i,sha256=DLMHzOp3Kgu4EIXSg58Ltz4NRVTPC-dZbJp-g-vY3Uo,7298
109
+ pyvale/simcases/case07.geo,sha256=DxJjqex1zlQewGEcr_JiwbHSDczhOi-34ogvwAFfx_Q,4442
110
+ pyvale/simcases/case07.i,sha256=73YrdZUAGCddorbBBxY-oK0tLOw12lISYR5xzzi3ddc,1921
111
+ pyvale/simcases/case08.geo,sha256=d9QEIzMRRXynWOAHx07i8RxTA-uvKNVvpMAEBVZamKs,4795
112
+ pyvale/simcases/case08.i,sha256=G4MqwcZWAaKcXD3toDNtaghbJ3rxiZHWvL-zT6n021Y,3253
113
+ pyvale/simcases/case09.geo,sha256=zW9w_MQlfdbzXat7XfttiAP5HKIo6aCnUBWyGd8SlQQ,6858
114
+ pyvale/simcases/case09.i,sha256=3tZCH7MtvjE4GPLO-Tsigm8kmvc_Ma8H9kZ2e5wb3uQ,1924
115
+ pyvale/simcases/case10.geo,sha256=y4RRENzZyfzUey-wNK3dr448_j7ta70EgxReoaKP2vY,6839
116
+ pyvale/simcases/case10.i,sha256=5X7xsgqiXAZDx-q5erxiWg1XOdGlmfD9UZ7i4Lqg-nk,6377
117
+ pyvale/simcases/case11.geo,sha256=HDEMxIpANKUrDEgBfokxDohEoVpWMcfAcKJ1Rr8RW8c,10429
118
+ pyvale/simcases/case11.i,sha256=f34kuvrDNKjqjiyV0BmCeH3ZDDJFUTtkKmorK4YbAhc,3093
119
+ pyvale/simcases/case12.geo,sha256=FQ-Ck1LBsqnV4HDdLbIP1U2cRot7dRBTIlQ1n6GnxgE,12477
120
+ pyvale/simcases/case12.i,sha256=N-lJnOenl_PQhhatkjMLhUGNNGKLV0QPjLiWU0QfXGo,7932
121
+ pyvale/simcases/case13.i,sha256=q1KLk_S9AC15-ZNV_PydIp2QZsf_EUE1sth6a3t8cG8,3308
122
+ pyvale/simcases/case14.i,sha256=-Yq-ecGcs153-t-fHNM4kWBR3d4_joxmM7WAnm4O57w,3502
123
+ pyvale/simcases/case15.geo,sha256=Sgat1JQJeBCaSlGEEJ1o_WSZMpLpDkbhIrTaUKDiRX4,10429
124
+ pyvale/simcases/case15.i,sha256=88TAhiFxU9jGKnxJu8Ne4pWnbh9pHKkzSs0e0IjfUDM,3187
125
+ pyvale/simcases/case16.geo,sha256=SHB_GMofxN6WYq8JZ1Ktm8B8F_0L7K5hu4-DHtm3CX4,12554
126
+ pyvale/simcases/case16.i,sha256=TJDlkIcdQz2JypfVDobYXg6N86rk03w-AUlIdWV1l7s,8758
127
+ pyvale/simcases/case17.geo,sha256=lBMnrWGnYYivRqOIg5hfExRVr_jRjs1Zd9-f_ugitwA,4442
128
+ pyvale/simcases/case17.i,sha256=G0o57umdzOkzWoroREpV1IH6DA8QM2zAhdemul6-Y7w,3056
129
+ pyvale/simcases/case18.i,sha256=W3Hu6wwWCwOzxwZFmEB2tMlQ1VeCrs-r8erdbFWrqd0,6292
130
+ pyvale/simcases/case18_1.i,sha256=W3Hu6wwWCwOzxwZFmEB2tMlQ1VeCrs-r8erdbFWrqd0,6292
131
+ pyvale/simcases/case18_2.i,sha256=9Y2F3FCrLUJ78cP95CUKvsdCWGkWQLZbcqQ_WbeWPVs,6292
132
+ pyvale/simcases/case18_3.i,sha256=0K1IDUiK1WSjWJOpJi7hvUqJApFD4Z0m9JkCkivAevM,6292
133
+ pyvale/simcases/case19.geo,sha256=nT1Hch8Llv96z3QAPYqzpzIlaV01xXf1sozuA-m0-7I,9102
134
+ pyvale/simcases/case19.i,sha256=jRDSAWaC-bTxCeFgSyj1gapbo6iqteySuPR5QhPLKqo,2191
135
+ pyvale/simcases/case20.geo,sha256=TKBX8JKDwXKyXfXCi6fmOzDV_7_1Kpfpne9yeute11o,9102
136
+ pyvale/simcases/case20.i,sha256=wAQGXJbY_VniZPG-PzeL5-Sk6_ZUiwuf8zRV3c8nEz0,6655
137
+ pyvale/simcases/case21.geo,sha256=AzFNKkQp7-a9PojtR4y0GNI6g12BLvTRvkHDglYPRFQ,2387
138
+ pyvale/simcases/case21.i,sha256=QjKU97PMsswLkaGkutC7gdJhGY8lRq5VEf5b-gRhT4E,3417
139
+ pyvale/simcases/case22.geo,sha256=3OHJhFTm9P_G6vIB9fqgcpeT1DQt5xq5tWxOsRhvj2A,2491
140
+ pyvale/simcases/case22.i,sha256=b3IeO0hs4IU0PJlS_MIkF1gtPkKYQXklfNs5rhy9KNc,3189
141
+ pyvale/simcases/case23.geo,sha256=53NyuNJrPBgUWRHhgz0zS2fCZ8lavn_flpnfLUO2GNY,5448
142
+ pyvale/simcases/case23.i,sha256=0sRJTmiieHxb4YBnYH5foJGteQZfn5Fo0Z3TkDuLSoQ,3188
143
+ pyvale/simcases/case24.geo,sha256=3qiwipPbwaOjmPySISOZycYKdXCSDFrQpccnXHWhiU0,2408
144
+ pyvale/simcases/case24.i,sha256=6scn1ujqyQ2FUHm30NNZPwTzXD9w7AEDkzbrncah-xQ,2950
145
+ pyvale/simcases/case25.geo,sha256=k33GLvsApxTbxDbnOGueA3rTIazqcgYQ5DP37kCAPA4,2492
146
+ pyvale/simcases/case25.i,sha256=8lArbbZOCJ4aLuJCaEO5FW1kzJI4JquOmbA-nVpNRRI,2994
147
+ pyvale/simcases/case26.geo,sha256=7Qj0siF2FqgElxcmtX_7UDp4tdX6scnJgKffpP6iRQY,5468
148
+ pyvale/simcases/case26.i,sha256=V-pS7MeAo9vl3QUDtu-i6MQyeftryxSj0r8n7t6hY0k,2992
149
+ pyvale/simcases/run_1case.py,sha256=sueVRRLxBgND0HgnJeWh97BY2aJ65I8U-IM0ve6VHMA,1922
150
+ pyvale/simcases/run_all_cases.py,sha256=9b3JYcxC8PA2CR-htum7wCICwwnLNeC01xAhk0m6yxw,1903
151
+ pyvale/simcases/run_build_case.py,sha256=IlyZC_VU095ayi7nz57xSSboTeJB54y7nsQXpBTUXFM,1938
152
+ pyvale/simcases/run_example_cases.py,sha256=l5KOQvPMNRUkJMotaReG2nmrFtVBNWCwKVezNyRwKb0,1910
153
+ pyvale-2025.4.0.dist-info/licenses/LICENSE,sha256=h2qWsRIazuLLhALyUsCP6aE0DFcswL9SSSt9sgMzZi4,1099
154
+ pyvale-2025.4.0.dist-info/METADATA,sha256=X7fD1kYbYuXFMD-n_f_UM4l1GLuGPLSC5sxt-RcUcP0,6923
155
+ pyvale-2025.4.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
156
+ pyvale-2025.4.0.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
157
+ pyvale-2025.4.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (79.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (C) 2025 The Computer Aided Validation Team at UKAEA
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ pyvale