pyvale 2025.5.3__cp311-cp311-macosx_14_0_arm64.whl → 2025.7.1__cp311-cp311-macosx_14_0_arm64.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 (97) hide show
  1. pyvale/.dylibs/libomp.dylib +0 -0
  2. pyvale/.dylibs/libunwind.1.0.dylib +0 -0
  3. pyvale/__init__.py +12 -0
  4. pyvale/blendercalibrationdata.py +3 -1
  5. pyvale/blenderscene.py +7 -5
  6. pyvale/blendertools.py +27 -5
  7. pyvale/camera.py +1 -0
  8. pyvale/cameradata.py +3 -0
  9. pyvale/camerasensor.py +147 -0
  10. pyvale/camerastereo.py +4 -4
  11. pyvale/cameratools.py +23 -61
  12. pyvale/cython/rastercyth.c +1657 -1352
  13. pyvale/cython/rastercyth.cpython-311-darwin.so +0 -0
  14. pyvale/cython/rastercyth.py +71 -26
  15. pyvale/data/DIC_Challenge_Star_Noise_Def.tiff +0 -0
  16. pyvale/data/DIC_Challenge_Star_Noise_Ref.tiff +0 -0
  17. pyvale/data/plate_hole_def0000.tiff +0 -0
  18. pyvale/data/plate_hole_def0001.tiff +0 -0
  19. pyvale/data/plate_hole_ref0000.tiff +0 -0
  20. pyvale/data/plate_rigid_def0000.tiff +0 -0
  21. pyvale/data/plate_rigid_def0001.tiff +0 -0
  22. pyvale/data/plate_rigid_ref0000.tiff +0 -0
  23. pyvale/dataset.py +96 -6
  24. pyvale/dic/cpp/dicbruteforce.cpp +370 -0
  25. pyvale/dic/cpp/dicfourier.cpp +648 -0
  26. pyvale/dic/cpp/dicinterpolator.cpp +559 -0
  27. pyvale/dic/cpp/dicmain.cpp +215 -0
  28. pyvale/dic/cpp/dicoptimizer.cpp +675 -0
  29. pyvale/dic/cpp/dicrg.cpp +137 -0
  30. pyvale/dic/cpp/dicscanmethod.cpp +677 -0
  31. pyvale/dic/cpp/dicsmooth.cpp +138 -0
  32. pyvale/dic/cpp/dicstrain.cpp +383 -0
  33. pyvale/dic/cpp/dicutil.cpp +563 -0
  34. pyvale/dic2d.py +164 -0
  35. pyvale/dic2dcpp.cpython-311-darwin.so +0 -0
  36. pyvale/dicchecks.py +476 -0
  37. pyvale/dicdataimport.py +247 -0
  38. pyvale/dicregionofinterest.py +887 -0
  39. pyvale/dicresults.py +55 -0
  40. pyvale/dicspecklegenerator.py +238 -0
  41. pyvale/dicspecklequality.py +305 -0
  42. pyvale/dicstrain.py +387 -0
  43. pyvale/dicstrainresults.py +37 -0
  44. pyvale/errorintegrator.py +10 -8
  45. pyvale/examples/basics/ex1_1_basicscalars_therm2d.py +124 -113
  46. pyvale/examples/basics/ex1_2_sensormodel_therm2d.py +124 -132
  47. pyvale/examples/basics/ex1_3_customsens_therm3d.py +199 -195
  48. pyvale/examples/basics/ex1_4_basicerrors_therm3d.py +125 -121
  49. pyvale/examples/basics/ex1_5_fielderrs_therm3d.py +145 -141
  50. pyvale/examples/basics/ex1_6_caliberrs_therm2d.py +96 -101
  51. pyvale/examples/basics/ex1_7_spatavg_therm2d.py +109 -105
  52. pyvale/examples/basics/ex2_1_basicvectors_disp2d.py +92 -91
  53. pyvale/examples/basics/ex2_2_vectorsens_disp2d.py +96 -90
  54. pyvale/examples/basics/ex2_3_sensangle_disp2d.py +88 -89
  55. pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py +172 -171
  56. pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py +88 -86
  57. pyvale/examples/basics/ex3_1_basictensors_strain2d.py +90 -90
  58. pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py +93 -91
  59. pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py +172 -160
  60. pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py +154 -148
  61. pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py +249 -231
  62. pyvale/examples/dic/ex1_region_of_interest.py +98 -0
  63. pyvale/examples/dic/ex2_plate_with_hole.py +149 -0
  64. pyvale/examples/dic/ex3_plate_with_hole_strain.py +93 -0
  65. pyvale/examples/dic/ex4_dic_blender.py +95 -0
  66. pyvale/examples/dic/ex5_dic_challenge.py +102 -0
  67. pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +4 -2
  68. pyvale/examples/renderblender/ex1_1_blenderscene.py +152 -105
  69. pyvale/examples/renderblender/ex1_2_blenderdeformed.py +151 -100
  70. pyvale/examples/renderblender/ex2_1_stereoscene.py +183 -116
  71. pyvale/examples/renderblender/ex2_2_stereodeformed.py +185 -112
  72. pyvale/examples/renderblender/ex3_1_blendercalibration.py +164 -109
  73. pyvale/examples/renderrasterisation/ex_rastenp.py +74 -35
  74. pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py +6 -13
  75. pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py +2 -2
  76. pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py +2 -4
  77. pyvale/imagedef2d.py +3 -2
  78. pyvale/imagetools.py +137 -0
  79. pyvale/rastercy.py +34 -4
  80. pyvale/rasternp.py +300 -276
  81. pyvale/rasteropts.py +58 -0
  82. pyvale/renderer.py +47 -0
  83. pyvale/rendermesh.py +52 -62
  84. pyvale/renderscene.py +51 -0
  85. pyvale/sensorarrayfactory.py +2 -2
  86. pyvale/sensortools.py +19 -35
  87. pyvale/simcases/case21.i +1 -1
  88. pyvale/simcases/run_1case.py +8 -0
  89. pyvale/simtools.py +2 -2
  90. pyvale/visualsimplotter.py +180 -0
  91. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/METADATA +11 -57
  92. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/RECORD +95 -57
  93. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/WHEEL +1 -1
  94. pyvale/examples/visualisation/ex1_1_plot_traces.py +0 -102
  95. pyvale/examples/visualisation/ex2_1_animate_sim.py +0 -89
  96. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/licenses/LICENSE +0 -0
  97. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyvale
3
- Version: 2025.5.3
3
+ Version: 2025.7.1
4
4
  Summary: An all-in-one package for sensor simulation, sensor uncertainty quantification, sensor placement optimisation and simulation calibration or validation.
5
5
  Author-email: "scepticalrabbit et al." <thescepticalrabbit@gmail.com>
6
6
  License: MIT License
@@ -47,17 +47,23 @@ Requires-Dist: bpy>=4.2.0
47
47
  Requires-Dist: pyyaml>=6.0.2
48
48
  Requires-Dist: pytest>=8.3.5
49
49
  Requires-Dist: pybind11>=2.13.6
50
+ Requires-Dist: pyqtgraph>=0.13.7
51
+ Requires-Dist: opencv-python<=4.9.0.80
50
52
  Dynamic: license-file
51
53
 
52
54
  # pyvale
53
- 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.
55
+ ![fig_pyvale_logo](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/pyvale_logo.png)
56
+
57
+ The python validation engine (`pyvale`) is you virtual engineering laboratory: 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.
58
+
59
+ We provide dedicated tools for simulation and uncertainty quantification of imaging sensors including digital image correlation (DIC) and infra-red thermography (IRT). Check out the [documentation](https://computer-aided-validation-laboratory.github.io/pyvale/index.html) to get started with some of our examples.
54
60
 
55
61
  ## Quick Demo: Simulating Point Sensors
56
62
  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.
57
63
 
58
64
  The code to run the simulated experiments and produce the output shown here comes from [this example](https://computer-aided-validation-laboratory.github.io/pyvale/examples/point/ex4_2.html). You can find more examples and details of `pyvale` python API in the `pyvale` [documentation](https://computer-aided-validation-laboratory.github.io/pyvale/index.html).
59
65
 
60
- |![fig_thermomech3d_tc_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_tc_vis.svg)|![fig_thermomech3d_sg_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|
66
+ |![fig_thermomech3d_tc_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_tc_vis.png)|![fig_thermomech3d_sg_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.png)|
61
67
  |--|--|
62
68
  |*Visualisation of the thermcouple locations.*|*Visualisation of the strain gauge locations.*|
63
69
 
@@ -72,71 +78,19 @@ The code to run the simulated experiments and produce the output shown here come
72
78
  pip install pyvale
73
79
  ```
74
80
 
75
- ## Detailed Install: Ubuntu
76
- ### Managing Python Versions
77
- 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:
78
- ```shell
79
- sudo add-apt-repository ppa:deadsnakes/ppa
80
- sudo apt update && sudo apt upgrade -y
81
- ```
82
-
83
- Install python 3.11:
84
- ```shell
85
- sudo apt install python3.11
86
- ```
87
-
88
- Add `venv` to your python 3.11 install:
89
- ```shell
90
- sudo apt install python3.11-venv
91
- ```
92
-
93
- Check your python 3.11 install is working using the following command which should open an interactive python interpreter:
94
- ```shell
95
- python3.11
96
- ```
97
-
98
- ### Virtual Environment
99
-
100
- 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:
101
-
102
- ```shell
103
- python3.11 -m venv .pyvale-env
104
- source .pyvale-env/bin/activate
105
- ```
106
-
107
- ### Standard Installation
108
- `pyvale` can be installed from pypi. Ensure you virtual environment is activated and run:
109
- ```shell
110
- pip install pyvale
111
- ```
112
-
113
- ### Developer Installation
114
-
115
- Clone `pyvale` to your local system along with submodules using
116
- ```shell
117
- git clone --recurse-submodules git@github.com:Computer-Aided-Validation-Laboratory/pyvale.git
118
- ```
119
-
120
- `cd` to the root directory of `pyvale`. Ensure you virtual environment is activated and run the following commmand from the `pyvale` directory:
121
- ```shell
122
- pip install -e .
123
- pip install -e ./dependencies/mooseherder
124
- ```
125
-
126
- ### Running Physics Simulations with MOOSE
127
- `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.
81
+ We recommend installing `pyvale` into a virtual environment of your choice as `pyvale` requires python 3.11. If you need help setting up your virtual environment and installing `pyvale` head over to the [installation guide](https://computer-aided-validation-laboratory.github.io/pyvale/install.html) in our docs.
128
82
 
129
83
  ## Contributors
130
84
  The Computer Aided Validation Team at UKAEA:
131
85
  - Lloyd Fletcher ([ScepticalRabbit](https://github.com/ScepticalRabbit)), UK Atomic Energy Authority
132
86
  - Joel Hirst ([JoelPhys](https://github.com/JoelPhys)), UK Atomic Energy Authority
133
- - John Charlton ([coolmule0](https://github.com/coolmule0)), UK Atomic Energy Authority
134
87
  - Lorna Sibson ([lornasibson](https://github.com/lornasibson)), UK Atomic Energy Authority
135
88
  - Megan Sampson ([meganasampson](https://github.com/meganasampson)), UK Atomic Energy Authority
136
89
  - Michael Atkinson ([mikesmic](https://github.com/mikesmic)), UK Atomic Energy Authority
137
90
  - Adel Tayeb ([3adelTayeb](https://github.com/3adelTayeb)), UK Atomic Energy Authority
138
91
  - Alex Marsh ([alexmarsh2](https://github.com/alexmarsh2)), UK Atomic Energy Authority
139
92
  - Rory Spencer ([fusmatrs](https://github.com/orgs/Computer-Aided-Validation-Laboratory/people/fusmatrs)), UK Atomic Energy Authority
93
+ - John Charlton ([coolmule0](https://github.com/coolmule0)), UK Atomic Energy Authority
140
94
 
141
95
 
142
96
 
@@ -3,64 +3,90 @@ pyvale/field.py,sha256=C2cfN9L53wk1bXYht_hO1UoUc9Vew-wzAmm5Hj12VvA,4532
3
3
  pyvale/errorrand.py,sha256=YRaEEjMpEyFtk8o8I7P8R0d-0CNONXWSnIomjXHc4sM,22192
4
4
  pyvale/sensordata.py,sha256=LFuROk6CcnDI1-0cSx83mk4sgrt4HnwswLItA8LsLVE,2764
5
5
  pyvale/visualtools.py,sha256=9nDMZHXv0N7HBl0vOL9QLeHlayYl6ng4dx2-5i2TJjw,4816
6
- pyvale/camerastereo.py,sha256=_icc2BvdYnExL9vkuf2adXyejUh2oDFsv6QeKdJ2M3s,9905
6
+ pyvale/renderscene.py,sha256=tkrIWvcL9kOqWZQM499aCcu3bf81MuIsjBXX7np4hEk,1537
7
+ pyvale/camerastereo.py,sha256=a9rfswcwdiKRuj9Hs4GvIY3_LBuUjYn514wc_XmbCxk,9925
7
8
  pyvale/visualexpplotter.py,sha256=szJLchLXWjok3Nia0sl8v2amfePLUFLJbQtjkOWqyWs,7910
9
+ pyvale/dic2dcpp.cpython-311-darwin.so,sha256=kt9eNCD4gvehdskclU6TPao2vH4mefh-IqZcZM993LQ,985280
8
10
  pyvale/sensorarray.py,sha256=HC7DOSQtC1q5XE4hNr0KeWufd7z1qk3HoK_AMw9YRJk,7019
9
11
  pyvale/cameradata2d.py,sha256=O3imDz8BUer6Wxo82KzCQrVLIBDL5RLy8aNoQoKG4b0,2736
10
12
  pyvale/integratortype.py,sha256=jfxdyhgOeowWLkb_ab-OB5G67PmnW-Q_mFENBJ7V9l8,1305
11
13
  pyvale/visualtraceplotter.py,sha256=y-GjToF5U2VIGO-YwR_tKi_vMUO3ayhaohaWrWNUFgQ,5487
12
14
  pyvale/visualsimsensors.py,sha256=hINsI73NQvHunJ3lUZX-F0RrN_u6gzF0tMHZwsxHr34,12405
13
15
  pyvale/pyvaleexceptions.py,sha256=vhXGitvM72L6Iezho14waCOqDGGCPjbW1n7V-r-xCeY,349
16
+ pyvale/dicregionofinterest.py,sha256=RsSjd6ZjcghqpFxDkwmNbJmJ5s96Q7dL1SLNKUDWRbk,32881
14
17
  pyvale/visualimagedef.py,sha256=xlcT51guewx2AlWZlZ70RcfqgcghtO_E51kmM2G0xWM,2823
15
18
  pyvale/integratorfactory.py,sha256=c4YfUuntnPFiXZGKmRrOIKlgtWjLSY5RNeLvv84eLEU,9620
19
+ pyvale/dicchecks.py,sha256=HCgSUiOvGCKjdkASMSWL6DOhYuIN2-X7YLNxJs9fees,16012
16
20
  pyvale/integratorspatial.py,sha256=yN05AONJuy0Ued3pDlmSGo5Yu8NwSLBlSIO-9UV5zxk,3195
17
21
  pyvale/errorcalculator.py,sha256=lvxY-NCnC_oHw7OWh9N0D8IzcE2NvWprVrRBKXzWdsY,3418
18
- pyvale/blenderscene.py,sha256=-S0vCukWavzr8ITtujwzw78RYYzU9AzVj_lHv_1wof8,21262
22
+ pyvale/renderer.py,sha256=F6t9y2fOxSTOK4Y_uSyV-3w7LDbFAPfJaM8Au5oPUDw,1286
23
+ pyvale/dicspecklequality.py,sha256=soZKclWHSuwCsp_P4_EqDRbzTNw21n8rC8kv14i-NCU,9968
24
+ pyvale/blenderscene.py,sha256=YGwP-FpuRlC37u6uFJR_xzW2fpJ_Mqi2JMuJyOegC6U,21329
19
25
  pyvale/fieldsampler.py,sha256=-ukU3tAMtgk6FAehHPWH-ctE9Mh37mRWenQzZ5UDH1Q,4443
20
26
  pyvale/sensorarraypoint.py,sha256=d42O0SRQcK6qVxSx4Zhu-nJNZis1F2ncXPL6xq7fiTU,11214
21
27
  pyvale/errorsysdep.py,sha256=nE4mAnfAK1146_Z5cuEkLvoadXdGw-Tm5IPSb6ydLXE,11571
22
28
  pyvale/blenderrenderdata.py,sha256=8WWuPpUch53QgEwDwjY1-KAGmh-SyUfr2Alg2DYf2PA,889
23
29
  pyvale/analyticmeshgen.py,sha256=tMh8Fo7iJqjaMfhLu2gBLyD4L2SRGaXjCB3w3cVO7KE,3424
30
+ pyvale/imagetools.py,sha256=h4x8LwZqFkCAGdNMTQeqqTA2HyaDJ2WryQXMZAfXxlA,4339
24
31
  pyvale/fieldtransform.py,sha256=dzhHw6SlgdKEUbsy6Uh_8dp0sgx-dTH2TtjO7zSslos,17994
25
- pyvale/__init__.py,sha256=61KOsSmlV9ojm_naGhl4NirlLkhGKeUn6jdbnmHs6Rg,2820
32
+ pyvale/__init__.py,sha256=uOAe4ra5jStUUuyzTP6umzurtsCDYpVzFttEE7uzAIg,3202
26
33
  pyvale/analyticsimdatafactory.py,sha256=WWk1XfigI0q17rTQwZClRvumEGEwHLpameBOXvWHsT4,2703
27
- pyvale/cameradata.py,sha256=ogGlrUqA7uB8JNdLMkpDBTHbGORYqahro21auyS5U1w,1918
34
+ pyvale/cameradata.py,sha256=6rWFenWliIrQazkE4kivttAw6AEsknlINQvVisSNP_A,1939
28
35
  pyvale/blenderlightdata.py,sha256=syeXDH6ggVsUJpkw9yIoDJROBRoQGLQjE5wkLEd6Ifg,734
29
36
  pyvale/errorsysindep.py,sha256=vbRjDoXvqQd4b6B2upcFUm_THTJjw1LtnDmLJWIK2VE,29631
30
- pyvale/blendertools.py,sha256=FBcYb0F5m3WXVAGYFy0fu1Uajko7O8g5lqHADWqXG6w,17120
37
+ pyvale/blendertools.py,sha256=ghRNpf_ggWRDoUk6tl9naeEmj5wXhGdH2PTkgR_M1ic,18112
38
+ pyvale/dicresults.py,sha256=HGZTWNqCsdraUAJSNGYeAcm9ZJT38EeCeAjTYpcTksk,1883
39
+ pyvale/dicstrainresults.py,sha256=pevm78o5WOWy3ByMM78Y-WcBgoAsxWU3yx55K8l9Omk,1053
31
40
  pyvale/fieldvector.py,sha256=VtodQyCTBPoe8L9bdJczoDl42q26qzvaj-lKinYMBT4,7926
32
41
  pyvale/integratorquadrature.py,sha256=0lVMH7NmVNVTuLHQRjp9gOSBpTDd8VFCxlfl8CyufZs,9035
33
42
  pyvale/blendermaterialdata.py,sha256=igb5cZwRq5VVC-9dd-I66hT4Jh2idjxjVgVa6F9YV7k,508
34
43
  pyvale/visualsimanimator.py,sha256=ZhQyxaab82tAN3sVeIUs-Pg-3WggwsF3k-HS9e4MNFk,4456
35
44
  pyvale/analyticsimdatagenerator.py,sha256=H_Ro3L8uih2Ipv63ckPN3LmvUaebysCvtJAz1b8Iefs,12424
36
- pyvale/blendercalibrationdata.py,sha256=N2ntMuYRuic7uDyM7IgOW8VRk75l0zYjvWWtkMiAUGo,487
45
+ pyvale/blendercalibrationdata.py,sha256=80jwkKB8wxuZ2udoGrD-dMTxzQQ9t_vpnK71gLDI-gc,553
37
46
  pyvale/visualopts.py,sha256=1jYi6qKWGcMSwKnFTcBtLdv-GRUJ-pnS3DOq5sr-J-U,14928
38
- pyvale/rastercy.py,sha256=ty-sHAE_OJWEf0P-TJIRmTrRiCTzmDWmHrN11ka_lRk,2881
39
- pyvale/dataset.py,sha256=F9X3rPhOwaAXoJxc-MaNiIf0gNTN0JnHvklT6_lGOTw,12360
40
- pyvale/camera.py,sha256=leH2fd3FbvidZ5v7rf04CMPGT_ozIVQkSIKuvFHRGsw,5331
47
+ pyvale/rastercy.py,sha256=gkyGqe9KrccnEuQbxjwrb6MXjkcbXne_JiDKfdzppYw,3506
48
+ pyvale/dataset.py,sha256=HOAQJ-UEN7yGyJ0Y-OdymneqEkIHBrgzPwGe0lEJrSs,14939
49
+ pyvale/camera.py,sha256=6T-9-bUK5_rLr_qg6VMi-u5gjifHWOMfIHqyqZxL9OQ,5332
50
+ pyvale/camerasensor.py,sha256=6T-9-bUK5_rLr_qg6VMi-u5gjifHWOMfIHqyqZxL9OQ,5332
41
51
  pyvale/sensordescriptor.py,sha256=6-quSWdSMjp7qwcSJULEiOhICyI0TH-tJTH68qbW7dY,7073
52
+ pyvale/visualsimplotter.py,sha256=m5mPIMGvSF4hhefTilkhBhii9t6rcoRKkqSdx5MugSs,6807
53
+ pyvale/dic2d.py,sha256=DWFMOIf2n354iLlCxf-ruO9-_YeOAp1RFgQel4hhnmE,7567
54
+ pyvale/dicstrain.py,sha256=M4bjJaxb3orG3Ftv7P0BVCGnI8eThptns1FiNj8xVx4,12787
42
55
  pyvale/errordriftcalc.py,sha256=T8kqVlVz4GEMOL7WTyv1G7gCJKkulZPHyc5KrVufWAo,4428
43
- pyvale/sensortools.py,sha256=2JDpUDG-18dtXRzEViqg9fdCmAhqrde6H9I5MpP_fC4,5731
56
+ pyvale/sensortools.py,sha256=Qi21qePhiuPoCXdxJJA1Eoc24NJK_Db2qjuo9u9EWmU,4935
44
57
  pyvale/generatorsrandom.py,sha256=Ly4a2CUVj9JgWNwNykXBh6mEJEdaKgH0t24bgyUn800,16604
45
58
  pyvale/integratorrectangle.py,sha256=MaJ5ygSL1H7tDwhzFV86t_MuT21ZeM5b8_WH460Ke3o,6695
46
- pyvale/cameratools.py,sha256=xGim_-SPvOIWvvAjSspT-7VF8gAGyO56IWteVD-fTxI,20318
59
+ pyvale/cameratools.py,sha256=fNulJWAcRpvPQN-TzoNLqCYxrdJFOs37ER4n3OANnJQ,19240
47
60
  pyvale/fieldconverter.py,sha256=f2FbFd_GMhR7W5r8VvuzGVAFwwCA58ZM-a61Zl_vu0Q,12610
48
61
  pyvale/errorsyscalib.py,sha256=bcea3iHwCWY-fqo9hqkFsPX12Ym0sOXjzGVW1VNtiUc,5582
62
+ pyvale/dicdataimport.py,sha256=2hEGEeVTLQwpuQUxV-CVN_PsDgtDRK1v-xf5YuarOJk,7191
63
+ pyvale/rasteropts.py,sha256=oFEy_iol1T10VMctlqA6GG9M-hVlDJyhDk-W9vhx45I,2134
49
64
  pyvale/visualimages.py,sha256=6u0FheaBdSLXYUBGOCTf-Zf7ylAYgY0HKXXj_PH0aIQ,2849
65
+ pyvale/dicspecklegenerator.py,sha256=PohlSC13wZJZ4hOA5Z-GWML-MsN1pBTSA-pqtiLer8s,7819
50
66
  pyvale/errorsysfield.py,sha256=h7zgGETj_YQZQE-SdmL4oas0iSUqESBTRZnvUXHtPxY,17077
51
- pyvale/errorintegrator.py,sha256=mR8hA1dmylWd-jEHT8HkZFdXOxTGwC2OTKk0uBfdiro,13802
67
+ pyvale/errorintegrator.py,sha256=m1VdNvX8cG851KO260_4hlom9KxM5q_QV1bbG2yWksw,13908
52
68
  pyvale/experimentsimulator.py,sha256=hDnyo8tV5SEKjSC0zUZIOQFtEK4UWzOyV0C7mfVoFHo,6898
53
69
  pyvale/fieldtensor.py,sha256=Ssa0R9UOG8C7DUkgUkFLLX-nHFjxxBjFwEXu5UhVFwg,8146
54
70
  pyvale/raster.py,sha256=Z8YowjBPb8p4_c3xGu-CH0DT6Z5uajjTB8xuOZmDj6M,788
55
- pyvale/rasternp.py,sha256=9EVae-M4-jtqr0vfkHQCshpeTO9NKQb0ASOYuGRY9Hc,25993
56
- pyvale/simtools.py,sha256=i9XKHRdw0yymSLydYqV4DBSWgZZS5ea_gmp3m1ny22I,2280
71
+ pyvale/rasternp.py,sha256=trLcFIQis-LHiGJ9JwM2W16S5Lo_Q9ZqEgPOuA5DxXM,25868
72
+ pyvale/simtools.py,sha256=h_5MDg85tHLjkP77JQ_1k1VxU89HCdJosgylPFdruPo,2272
57
73
  pyvale/output.py,sha256=OsAKbXMuSZT1yr_EKsslQsKQano7ge9H_8g9ep4AVt0,504
58
- pyvale/rendermesh.py,sha256=xa5AqbRIqvpVRoi603zKF4JadvojhEIrapG1jZJYdIA,5414
59
- pyvale/imagedef2d.py,sha256=jqjW3mQqz62mxz-gypypA_5QhnMpHevvedpngEhl0e8,25117
60
- pyvale/sensorarrayfactory.py,sha256=3QCpwD_OpoQezoLT35WSzlnqojBoP9cbyLpBecvjUdg,7939
61
- pyvale/cython/rastercyth.py,sha256=ji6XpRUk-POdwI0Oh1PdFBUCnY4RMiZEO77MyXTM6d0,24479
62
- pyvale/cython/rastercyth.c,sha256=21qL22qW2D1IT7HvZv6rC9RsCftD-C5algW6c8ikgOM,1234112
63
- pyvale/cython/rastercyth.cpython-311-darwin.so,sha256=9mSNgh25n3_t8XiFzyTJ7RCGbNIpYMheaElCbM5hgAQ,257760
74
+ pyvale/rendermesh.py,sha256=h2s3SXZOqUETly60TJ5uB6Sz2s_r5HYOSXtm7NoVMR0,5337
75
+ pyvale/imagedef2d.py,sha256=QeAtizLQ-LsjVJnM_fYvPOHaLVDWsX7PxWH2QrfDpgM,25153
76
+ pyvale/sensorarrayfactory.py,sha256=WQIz7U10dhUvbQhnYDYqbOyz9Ee7KYh_zdFt_VjQYSE,7941
77
+ pyvale/dic/cpp/dicsmooth.cpp,sha256=sKOyPTEBAcPzJjSc4jAl_JCLFBz5eJ8EXYh0iT7i0L4,4445
78
+ pyvale/dic/cpp/dicbruteforce.cpp,sha256=9Z9jx-K6_wgGX_Ezp1lf1ulqkLQ6X6EaOLwXAxw_Aeg,11915
79
+ pyvale/dic/cpp/dicinterpolator.cpp,sha256=HkA_qKp70IePO6w50om13L5yqQqYDiYQD2V9i6klhhM,20325
80
+ pyvale/dic/cpp/dicstrain.cpp,sha256=wrcRcx_Jn5EvRLlXc_zVJ15VJVpRBHLLpMbcot8UOCM,14017
81
+ pyvale/dic/cpp/dicmain.cpp,sha256=qZvuC3m42Dg-_cjTVoh8dThtw6enqqTCvhIHSEKwvxA,8860
82
+ pyvale/dic/cpp/dicscanmethod.cpp,sha256=MjzxECbRkn-fR211xJRDB4lsn-lf6dqHYXTOrLr2D-A,26766
83
+ pyvale/dic/cpp/dicrg.cpp,sha256=uicGKxOAgsTZgOpG18NDN-SoD0pJFu2wYGhP1Xg3S9U,4351
84
+ pyvale/dic/cpp/dicutil.cpp,sha256=UEN3_Fm4gB_CRJY1wPvEUGGjjoBNwpPridPz32yPWPA,19829
85
+ pyvale/dic/cpp/dicoptimizer.cpp,sha256=krR7jLdLQEvX8iwNWjMKDseXu5Ka5szJTYrbcjOThak,25929
86
+ pyvale/dic/cpp/dicfourier.cpp,sha256=W3RjzqsbUpNSxfozObFJQnpcAGeqWcJpiSXKoaJr-cs,23548
87
+ pyvale/cython/rastercyth.py,sha256=b-KJDysrc_LxBnWirXkNhKNy6jZ-d4xTFrXGSgDCp34,26411
88
+ pyvale/cython/rastercyth.c,sha256=REIzoMp-ESa70njdOXQ_Qgw1UDKYzAfjwHxVodYv2RI,1250355
89
+ pyvale/cython/rastercyth.cpython-311-darwin.so,sha256=m8BwGkJDQwt3czY3dwfLY3a6kWDzceq7Sw2UJu1_inc,258256
64
90
  pyvale/simcases/case17.i,sha256=G0o57umdzOkzWoroREpV1IH6DA8QM2zAhdemul6-Y7w,3056
65
91
  pyvale/simcases/run_example_cases.py,sha256=l5KOQvPMNRUkJMotaReG2nmrFtVBNWCwKVezNyRwKb0,1910
66
92
  pyvale/simcases/case13.i,sha256=q1KLk_S9AC15-ZNV_PydIp2QZsf_EUE1sth6a3t8cG8,3308
@@ -89,7 +115,7 @@ pyvale/simcases/case19.geo,sha256=nT1Hch8Llv96z3QAPYqzpzIlaV01xXf1sozuA-m0-7I,91
89
115
  pyvale/simcases/case25.geo,sha256=k33GLvsApxTbxDbnOGueA3rTIazqcgYQ5DP37kCAPA4,2492
90
116
  pyvale/simcases/case25.i,sha256=8lArbbZOCJ4aLuJCaEO5FW1kzJI4JquOmbA-nVpNRRI,2994
91
117
  pyvale/simcases/case24.geo,sha256=3qiwipPbwaOjmPySISOZycYKdXCSDFrQpccnXHWhiU0,2408
92
- pyvale/simcases/case21.i,sha256=QjKU97PMsswLkaGkutC7gdJhGY8lRq5VEf5b-gRhT4E,3417
118
+ pyvale/simcases/case21.i,sha256=0W9r02t2sO3ksNvrgnBUr55Aq4gBP7t_MIeU2PxbIHk,3415
93
119
  pyvale/simcases/case26.geo,sha256=7Qj0siF2FqgElxcmtX_7UDp4tdX6scnJgKffpP6iRQY,5468
94
120
  pyvale/simcases/case04.i,sha256=Ao5z2qey2eJrqW1TmCm6LZRDeTwPTOFtMNPocH4zQO4,3757
95
121
  pyvale/simcases/case16.geo,sha256=SHB_GMofxN6WYq8JZ1Ktm8B8F_0L7K5hu4-DHtm3CX4,12554
@@ -106,7 +132,7 @@ pyvale/simcases/case20.i,sha256=wAQGXJbY_VniZPG-PzeL5-Sk6_ZUiwuf8zRV3c8nEz0,6655
106
132
  pyvale/simcases/case07.geo,sha256=DxJjqex1zlQewGEcr_JiwbHSDczhOi-34ogvwAFfx_Q,4442
107
133
  pyvale/simcases/case05.i,sha256=VO2D38xsUrZmEMuEJF6JzjF_InpGAdrf9y_5FhvvvDw,5959
108
134
  pyvale/simcases/case12.geo,sha256=FQ-Ck1LBsqnV4HDdLbIP1U2cRot7dRBTIlQ1n6GnxgE,12477
109
- pyvale/simcases/run_1case.py,sha256=QmmZcawWmfkmImciEqM-8NedwlzuIOgLT2Te3fVb574,1928
135
+ pyvale/simcases/run_1case.py,sha256=Hbj5tkFGs99ZEbQ7raif0IeaUXWmVImPX0Gh3EfSkEQ,2038
110
136
  pyvale/simcases/case16.i,sha256=TJDlkIcdQz2JypfVDobYXg6N86rk03w-AUlIdWV1l7s,8758
111
137
  pyvale/simcases/case00_HEX8.i,sha256=R4NiWVjoyG8_y6Hhh_I_QySYzbEQ70QuiD0I4auA4Bc,5159
112
138
  pyvale/simcases/case18_1.i,sha256=W3Hu6wwWCwOzxwZFmEB2tMlQ1VeCrs-r8erdbFWrqd0,6292
@@ -117,59 +143,71 @@ pyvale/simcases/case08.i,sha256=G4MqwcZWAaKcXD3toDNtaghbJ3rxiZHWvL-zT6n021Y,3253
117
143
  pyvale/simcases/case02.i,sha256=gOPdUDVDnMUgqevcRO7vT5HnXTY64a7rmugSgkUqQ0s,3406
118
144
  pyvale/simcases/case06.i,sha256=DLMHzOp3Kgu4EIXSg58Ltz4NRVTPC-dZbJp-g-vY3Uo,7298
119
145
  pyvale/simcases/case23.i,sha256=0sRJTmiieHxb4YBnYH5foJGteQZfn5Fo0Z3TkDuLSoQ,3188
120
- pyvale/.dylibs/libomp.dylib,sha256=nqEVNMUNH62RjK-sWbrTmcnbXNM4F45if4BrV_193T0,735616
146
+ pyvale/.dylibs/libunwind.1.0.dylib,sha256=sNVBsi4qbyBNoCfaXN_sCXnRHggpH65L3337FgErRxc,109856
147
+ pyvale/.dylibs/libomp.dylib,sha256=MRfC6VLmQJsSTwQ6UM8wrsIsb618EXUguI4wkeRaa0I,735616
121
148
  pyvale/examples/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
122
- pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=SgO_luAOmAY7ZBuMZpPPnIYHwJsaDfhxonnIPh3iwwo,7926
123
- pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=TbdBvL0SmsbbGfylwe-WSKSJmT8yoy-4I5c_fNk6KEg,5442
124
- pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=u81CMU9P9q5vgrnBP1MXo34V_zo3PoN5XAtpi8vzpSU,11163
125
- pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=xTYASxpj5hhvxVoZbcmnGQVOR5_XfM_D-Ei44HttUH4,7344
126
- pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=HVb-d-TPOCjLsNf16N6bIUG35FUkf4Jb9136XANgiNo,4934
127
- pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=5Q2n0aqDzOUheYgchGHWBn-kVPPce8MaEIIl_qcIVQw,5209
128
- pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=1bfgLAFf8M2LwqxEhUqErdc3hrvlEyZU0jrxPhAP7Dg,5071
129
- pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=j9g-rhWf4-gW2DwDr2ur-DOkgVYYx-rH01aAQ87Re5U,6146
130
- pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=BdFijiIzsZwExNq1xQFm8ut-sr3m1cZoUaDd7Eljcf4,6811
131
- pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=xhyVYSBp8LuOuhrGhssaPwF_dyp3qUhg2ZXNMsM-grY,5107
132
- pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=LzI9P4lCAfzuwuE4DdGuw10WnmfS6Qk8CusOiS-zPyI,4439
133
- pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=vH2Trr3VGWhdPJM_3TNdfDXsOk-kDowftphPsqVoep8,4802
134
- pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=HzoJjJ_Pq1ukIeT7nn1Ao7hcywnfxx3K9MImD74eLGw,7145
135
- pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=PuZs3cVeb9Nol_9c6WgyD8TyA8UMDjs78AwdG-vBJqc,5643
136
- pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=0g0hxeIosc8RN7hN2v8qMpN23FOjUlKzjds7-K7M_Dw,8420
137
- pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=IfVtucEdaI-k1CsNwcboOCPmU0kM4tKIOQBoRDfw21M,9765
138
- pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=q6kMdly2b-SSUbeaTRq0w5RZyeSAcwgEWyPKdy4ttI8,8383
139
- pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=hTSeDsDkDywl1M4zYelKE_u8RmX2qR5zwSYVrOoxwxg,2613
140
- pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=oXpVs7kTVsNgJU2ou1SOYOunDKheHaQnLU2vrMBfC7E,5258
141
- pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=5PkiAm6C_Rz5MZvc0uJ76paB8nurh93hq8aqBU0Roro,5458
142
- pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=BeWLlwcVvzH79vZ8bZ8A_a6Cfk4SgQfz7sEcvELanCk,5074
143
- pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=kPCCiTckNAB6taQLiflFWmmtV2fWQKcwmxQmCcf2jmI,5629
144
- pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=EN4hT5gS0wWfj-rthlw6UANCbnKZG_MAG2zJSZ66kcA,5023
149
+ pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=qnr-eWTgwHFTNbqvxsLFWDdH1_Jaerll72Eg5xoNIvE,7465
150
+ pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=K5rqGqggKDDgWJy1Oz9KrXIhuc3RbfmP6ECQMwroN0U,4941
151
+ pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=rbaa85ytr7ZEcO3MrFqvSdvpElMzvZaOr9c8ZgPbiC0,10457
152
+ pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=P8bd7Th5UVfILKeK79Q34GovmmntNPBmLPJLxefu6c0,6742
153
+ pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=zt2o5Cyc65VPVNiq4Et4ldpsvIeKolPQcc-ozb30k60,4474
154
+ pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=ezm3d-JVvOJ269mHKqLn_6ErTe6lry2S1jAAu5WE954,4718
155
+ pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=fQe308dmM5gTHZ78uBjRBwWUZ5sF745rFpPYlg3COGg,4601
156
+ pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=tR8wGXoHUXaOCsJzSTFzgiTJpmoyVg6FCKoLnCmbq-4,5893
157
+ pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=8_atq2znFiaP0f0xC5CmZkTo4fm77uDFxfSX9oXoBfU,6249
158
+ pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=b5aHvgcSCBIFe8RwkXEGFgamc_2W7ySCtEV3HSxqYGw,4813
159
+ pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=YsApZvYMaKW-C7TVuSzPfhxwZyMM07997OG_qvAbmWE,4022
160
+ pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=4f7H7VSWHRoMEIt_WLqjjbVmBml-dmGT5ROS0vFdeb4,4522
161
+ pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=ar7w73Nt1rjZiw8ma3nIf7rTbVHhmCRgAdcNLb7tlUg,5898
162
+ pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=KJ0__mipvtZRbdyg7yrE7lJy4VM7V6y_SzJ0jTSKzk0,5121
163
+ pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=ztMltP5MV9wGjCARALkIf0b78MjYMIAYOtgN8c1AF0c,7902
164
+ pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=vGxK0UxYVD4FgUzf8T-NoWjathH9vKRMzIC6oaGuCGY,8912
165
+ pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=GsbEouFHSEEEikeFWod4ahLMrwdwBXE3Sq668J83QHQ,7710
166
+ pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=VpiUrfQ_LqrMtfleob5rv_1uL6PvZvZqTXxE5URFn0U,2706
167
+ pyvale/examples/dic/ex4_dic_blender.py,sha256=XcKdDyxfvrc4RBXoADIMfD7x-x0HKm20j0VvJJXWQ9k,3152
168
+ pyvale/examples/dic/ex3_plate_with_hole_strain.py,sha256=R_B94dvc5eZHXLTzeZcNpGL6ynWby0ONGTBX_YuRixQ,3436
169
+ pyvale/examples/dic/ex1_region_of_interest.py,sha256=_sM9gshIz_NIRyeu9_EtWYQCfr-FT-X-fbUd4Bo4-vw,3330
170
+ pyvale/examples/dic/ex2_plate_with_hole.py,sha256=xNfotyAzCMRpsaHSUDNp8uxaukAaL3tkeWWGtMN8bUE,6048
171
+ pyvale/examples/dic/ex5_dic_challenge.py,sha256=JJNAVre6evK42_CY6r7-ZDwnEYU7XFZZHyggT82Z0us,3966
172
+ pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=AES91WSQg2hj39vpBlX76t8f-4pdte0bss9C6724UPw,7857
173
+ pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=55QPd21xNAgDHdAiyVE1FUUjLNQHpi6P22Rg_f9CKZc,8619
174
+ pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=iNXeHCvPnP1ZurJsynU4qMbluLugwqYE-cixE3bfgLc,7006
175
+ pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=tqLNvdUpnMVQhHLFMkBCK9Wz6t53fWBXGbLCA0_Yg9A,9067
176
+ pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=cP0edjPmmLdI9fZlYf8T1luzErsEuYudiDgGWhSyceM,6921
145
177
  pyvale/examples/genanalyticdata/ex1_1_scalarvisualisation.py,sha256=4AeQXlzKAgXA3SjXpKoj2Pi9WVHDPlWp2N3tNdYf4M0,938
146
178
  pyvale/examples/genanalyticdata/ex2_1_analyticsensors.py,sha256=-IoroBX6QKvlMUdnHWQLEF9JS56mvKmTk_7f9fpzqbQ,2845
147
179
  pyvale/examples/genanalyticdata/ex1_2_scalarcasebuild.py,sha256=E5eWebp-TQBH-46KqW5JfNZgo7OHpt_D-Yx_bVCsLgk,1272
148
- pyvale/examples/visualisation/ex2_1_animate_sim.py,sha256=OdQpu33z5QZYHYdZdsntBc8K8gXCNFVCylNqoQv5RvA,2985
149
- pyvale/examples/visualisation/ex1_1_plot_traces.py,sha256=Vx4ZWOxwncyUHtXAOOR1YqEUFon8gkaTZ1Ne_K6AfO0,3252
150
- pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=oyZYzYmkEyNUYwTBSHgWcrG4lKml7NKDO1sdlpKk8wE,6674
151
- pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=0n_LDEHspZ5zwWzf5tvpaLhXFxWy_nHXJarl0XaZF5I,6756
152
- pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=TpNMhpixM0OnUT4q2l2eoVqx53j9A-pYLoKIZ7yRKt4,7437
153
- pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=nkw42wsiLmVhNJcZpEySPrnTntJ6f6mS4ov5iLIxsRA,4848
180
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=QQ7Wl98iZb9ulu855uyiZyyli20gwRzHZB_7hiKcdPw,6660
181
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=PseFMWPXQBeYpzmGUIF3_JTiaoJgHhkYgkGQI17cYa8,6740
182
+ pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=bs-gsIEZSMHA16S4Rhfs8TpR-J9ORrVWwsER9QnnWF4,7268
183
+ pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=G2QkitHDF79Hd1cgogsuKy-nint9uT8vzlbCkUds8U4,6211
184
+ pyvale/data/DIC_Challenge_Star_Noise_Def.tiff,sha256=no_q1L4_0plbVmg3TPEpgoRp3iLMrx2vH_X1fBwnLSw,2020090
154
185
  pyvale/data/case00_HEX27_out.e,sha256=XF1nLiBQcCJuZ4bXi8FUG3hbj5hpnno4by_hdyTVm4I,316644
155
186
  pyvale/data/case25_out.e,sha256=LWnCKG7GDUvzCs7GI1h25dhIhq6_qJgXnkhiTmdynPw,93748
156
187
  pyvale/data/case00_HEX8_out.e,sha256=V52yZoQ4egI6v6JVkmA8DUVX6Q0K3AEWG8U3BbGHzSg,148268
188
+ pyvale/data/DIC_Challenge_Star_Noise_Ref.tiff,sha256=y0JSFyHvmO_cgabG8hOej5HioQ_9Bh7O8VYVTfVr_S8,2020102
157
189
  pyvale/data/case00_TET4_out.e,sha256=coeIyrkviOfgpgYauenoXldWnYulKgteOts6FolKYBM,127868
158
190
  pyvale/data/case26_out.e,sha256=UAoxPN0K1bbk9R0r2hDehuQZVCPHcAV5NA1PckRyXDY,225744
159
191
  pyvale/data/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
160
192
  pyvale/data/case00_HEX20_out.e,sha256=wTdEWvGyQBhP1D1bIy5YZKu7I_QISWLEjl9K9VOOnbI,241172
161
193
  pyvale/data/case00_TET10_out.e,sha256=eoIiAiQ5yLgiH2S01eMQRyHWGLfplnIAk6MPPcqEoPs,214036
162
194
  pyvale/data/case18_2_out.e,sha256=Uz8U1TMBSe1YkRE4nRFMQ38Y11UQo9wb1cIbTRPua1Y,1470776
195
+ pyvale/data/plate_rigid_ref0000.tiff,sha256=EolObMm5QzGeewgq3bLhlkHor_6ASuNoYrV2AbYrFro,1601722
163
196
  pyvale/data/case13_out.e,sha256=cqgs7TbyDtrlV4AxXUzULa0Qu50gbp_3VeQkehNT82g,150820
197
+ pyvale/data/plate_hole_def0000.tiff,sha256=R9qDRQxVKnAIQQWDALDM5leIvb3NaGtjXEEuX0ykI_s,1601722
198
+ pyvale/data/plate_rigid_def0001.tiff,sha256=CFIveUYubbbUDpQfnsO0iPaBTzwbjQbcAOCG1mm2040,1601722
199
+ pyvale/data/plate_rigid_def0000.tiff,sha256=YlGU0lIlkh61StQku7lK7P6oDZDa-g5R98fUrR4WnO0,1601722
200
+ pyvale/data/plate_hole_def0001.tiff,sha256=4LmjGiqVCwxEG2rEDf-XU9Lw6f7NaUL3nAkOQ1yrDvE,1601722
164
201
  pyvale/data/case17_out.e,sha256=C5Zx0Xx8_iZqypPFbcutGPQtO5VNQaJmqg9YxWi0FHc,6095004
165
202
  pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff,sha256=cRmbiTzxc8QJ_aO9dc7YT21lV1c9K7pH-L9uQZvUQ8M,5046422
203
+ pyvale/data/plate_hole_ref0000.tiff,sha256=nJ3WP5Aq7sgy02LTW8ThdZkLt_0Jls26e1--TZ1Ub4M,1601722
166
204
  pyvale/data/case00_TET14_out.e,sha256=t9s7WCV6gUlZfNcaj9q4_U7Sct9v9F77NQ0KU596GGk,316996
167
205
  pyvale/data/case18_1_out.e,sha256=4ITunHIxCBCekUPipSv8j7IKDlhlwTaHe1e3wTN4qLE,1470776
168
206
  pyvale/data/case18_3_out.e,sha256=8dTnKLQOSCL-gle-1shL68GBQPW1go05aDvjO6AawAg,1470776
169
207
  pyvale/data/cal_target.tiff,sha256=4dbDIm7h7gYDJOhWOZXO-rs162ZLqxb1bdrbTykMEMk,4718962
170
208
  pyvale/data/case16_out.e,sha256=hmkiJQo4phaAPiEa9mgjggcUMn_yY2h348DSqMIj0pA,11614464
171
- pyvale-2025.5.3.dist-info/RECORD,,
172
- pyvale-2025.5.3.dist-info/WHEEL,sha256=ZIv6xrs0Wq-zq39tS-RmxMt6_N_i3sGmr8zGEo_fbIE,136
173
- pyvale-2025.5.3.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
174
- pyvale-2025.5.3.dist-info/METADATA,sha256=yMGKopF-CTHHsZHzwzS1fv05ArhpJTVFSj4z7QM4S0M,7480
175
- pyvale-2025.5.3.dist-info/licenses/LICENSE,sha256=h2qWsRIazuLLhALyUsCP6aE0DFcswL9SSSt9sgMzZi4,1099
209
+ pyvale-2025.7.1.dist-info/RECORD,,
210
+ pyvale-2025.7.1.dist-info/WHEEL,sha256=IDSs5FX6_bA_Je6GNgVyz6rcn2XC7t_ySnnLoSan-5o,136
211
+ pyvale-2025.7.1.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
212
+ pyvale-2025.7.1.dist-info/METADATA,sha256=Gwjyim_YWdrAB_mdEHljvAVTqMVsbLVw_8QXOsjZ6sc,6387
213
+ pyvale-2025.7.1.dist-info/licenses/LICENSE,sha256=h2qWsRIazuLLhALyUsCP6aE0DFcswL9SSSt9sgMzZi4,1099
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-macosx_14_0_arm64
5
5
  Generator: delocate 0.13.0
@@ -1,102 +0,0 @@
1
- # ==============================================================================
2
- # pyvale: the python validation engine
3
- # License: MIT
4
- # Copyright (C) 2025 The Computer Aided Validation Team
5
- # ==============================================================================
6
-
7
- """
8
- Pyvale example: TODO
9
- --------------------------------------------------------------------------------
10
- TODO
11
-
12
- Test case: TODO
13
- """
14
-
15
- import numpy as np
16
- import matplotlib.pyplot as plt
17
- import mooseherder as mh
18
- import pyvale as pyv
19
-
20
- # TODO: comments and full description for this example like the basics examples
21
-
22
- def main() -> None:
23
-
24
- data_path = pyv.DataSet.thermal_2d_path()
25
- sim_data = mh.ExodusReader(data_path).read_all_sim_data()
26
- sim_data = pyv.scale_length_units(scale=1000.0,
27
- sim_data=sim_data,
28
- disp_comps=None)
29
-
30
- n_sens = (4,1,1)
31
- x_lims = (0.0,100.0)
32
- y_lims = (0.0,50.0)
33
- z_lims = (0.0,0.0)
34
- sens_pos = pyv.create_sensor_pos_array(n_sens,x_lims,y_lims,z_lims)
35
-
36
- sample_times = np.linspace(0.0,np.max(sim_data.time),12)
37
-
38
- sens_data = pyv.SensorData(positions=sens_pos,
39
- sample_times=sample_times)
40
-
41
- field_key = "temperature"
42
- tc_array = pyv.SensorArrayFactory \
43
- .thermocouples_basic_errs(sim_data,
44
- sens_data,
45
- field_key,
46
- elem_dims=2)
47
-
48
- err_int = pyv.ErrIntegrator([pyv.ErrSysOffset(offset=-5.0)],
49
- sens_data,
50
- tc_array.get_measurement_shape())
51
- tc_array.set_error_integrator(err_int)
52
-
53
- measurements = tc_array.get_measurements()
54
-
55
-
56
- print(80*"-")
57
-
58
- sens_print: int = 0
59
- time_print: int = 5
60
- comp_print: int = 0
61
-
62
- print(f"These are the last {time_print} virtual measurements of sensor "
63
- + f"{sens_print}:")
64
-
65
- pyv.print_measurements(sens_array=tc_array,
66
- sensors=(sens_print,sens_print+1),
67
- components=(comp_print,comp_print+1),
68
- time_steps=(measurements.shape[2]-time_print,
69
- measurements.shape[2]))
70
- print(80*"-")
71
-
72
-
73
- trace_props = pyv.TraceOptsSensor()
74
-
75
- trace_props.truth_line = None
76
- trace_props.sim_line = None
77
- pyv.plot_time_traces(tc_array,field_key,trace_props)
78
-
79
- trace_props.meas_line = "--o"
80
- trace_props.truth_line = "-x"
81
- trace_props.sim_line = ":+"
82
- pyv.plot_time_traces(tc_array,field_key,trace_props)
83
-
84
- trace_props.sensors_to_plot = np.arange(measurements.shape[0]-2
85
- ,measurements.shape[0])
86
- pyv.plot_time_traces(tc_array,field_key,trace_props)
87
-
88
- trace_props.sensors_to_plot = None
89
- trace_props.time_min_max = (0.0,100.0)
90
- pyv.plot_time_traces(tc_array,field_key,trace_props)
91
-
92
- plt.show()
93
-
94
- pv_plot = pyv.plot_point_sensors_on_sim(tc_array,field_key)
95
- pv_plot.camera_position = [(-7.547, 59.753, 134.52),
96
- (41.916, 25.303, 9.297),
97
- (0.0810, 0.969, -0.234)]
98
- pv_plot.show()
99
-
100
-
101
- if __name__ == "__main__":
102
- main()
@@ -1,89 +0,0 @@
1
- # ==============================================================================
2
- # pyvale: the python validation engine
3
- # License: MIT
4
- # Copyright (C) 2025 The Computer Aided Validation Team
5
- # ==============================================================================
6
-
7
- """
8
- Pyvale example: TODO
9
- --------------------------------------------------------------------------------
10
- TODO
11
-
12
- Test case: TODO
13
- """
14
-
15
- from pathlib import Path
16
- import numpy as np
17
- import mooseherder as mh
18
- import pyvale as pyv
19
-
20
-
21
- def main() -> None:
22
-
23
- data_path = pyv.DataSet.thermal_3d_path()
24
- sim_data = mh.ExodusReader(data_path).read_all_sim_data()
25
-
26
- sim_data = pyv.scale_length_units(scale=1000.0,
27
- sim_data=sim_data,
28
- disp_comps=None)
29
- sim_data.coords = sim_data.coords*1000.0 # type: ignore
30
-
31
- pyv.print_dimensions(sim_data)
32
-
33
- n_sens = (1,4,1)
34
- x_lims = (12.5,12.5)
35
- y_lims = (0,33.0)
36
- z_lims = (0.0,12.0)
37
- sens_pos = pyv.create_sensor_pos_array(n_sens,x_lims,y_lims,z_lims)
38
-
39
- sens_data = pyv.SensorData(positions=sens_pos)
40
-
41
- field_key = 'temperature'
42
- tc_array = pyv.SensorArrayFactory() \
43
- .thermocouples_basic_errs(sim_data,
44
- sens_data,
45
- field_key,
46
- elem_dims=3)
47
-
48
- measurements = tc_array.get_measurements()
49
- print(f'\nMeasurements for sensor at top of block:\n{measurements[-1,0,:]}\n')
50
-
51
- vis_opts = pyv.VisOptsSimSensors()
52
- vis_opts.window_size_px = (1200,800)
53
- vis_opts.camera_position = np.array([(59.354, 43.428, 69.946),
54
- (-2.858, 13.189, 4.523),
55
- (-0.215, 0.948, -0.233)])
56
-
57
- vis_mode = "vector"
58
- save_dir = Path.cwd() / "exampleoutput"
59
- if not save_dir.is_dir():
60
- save_dir.mkdir()
61
-
62
- if vis_mode == "animate":
63
- anim_opts = pyv.VisOptsAnimation()
64
-
65
- anim_opts.save_path = save_dir / "test_animation"
66
- anim_opts.save_animation = pyv.EAnimationType.MP4
67
-
68
- pv_anim = pyv.animate_sim_with_sensors(tc_array,
69
- field_key,
70
- time_steps=None,
71
- vis_opts=vis_opts,
72
- anim_opts=anim_opts)
73
-
74
- else:
75
- image_save_opts = pyv.VisOptsImageSave()
76
-
77
- image_save_opts.path = save_dir / "test_vector_graphics"
78
- image_save_opts.image_type = pyv.EImageType.SVG
79
-
80
- pv_plot = pyv.plot_point_sensors_on_sim(tc_array,
81
- field_key,
82
- time_step=-1,
83
- vis_opts=vis_opts,
84
- image_save_opts=image_save_opts)
85
- pv_plot.show()
86
-
87
-
88
- if __name__ == '__main__':
89
- main()