pyvale 2025.5.3__cp311-cp311-win_amd64.whl → 2025.7.1__cp311-cp311-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.

Potentially problematic release.


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

Files changed (95) hide show
  1. pyvale/__init__.py +12 -0
  2. pyvale/blendercalibrationdata.py +3 -1
  3. pyvale/blenderscene.py +7 -5
  4. pyvale/blendertools.py +27 -5
  5. pyvale/camera.py +1 -0
  6. pyvale/cameradata.py +3 -0
  7. pyvale/camerasensor.py +147 -0
  8. pyvale/camerastereo.py +4 -4
  9. pyvale/cameratools.py +23 -61
  10. pyvale/cython/rastercyth.c +1657 -1352
  11. pyvale/cython/rastercyth.cp311-win_amd64.pyd +0 -0
  12. pyvale/cython/rastercyth.py +71 -26
  13. pyvale/data/DIC_Challenge_Star_Noise_Def.tiff +0 -0
  14. pyvale/data/DIC_Challenge_Star_Noise_Ref.tiff +0 -0
  15. pyvale/data/plate_hole_def0000.tiff +0 -0
  16. pyvale/data/plate_hole_def0001.tiff +0 -0
  17. pyvale/data/plate_hole_ref0000.tiff +0 -0
  18. pyvale/data/plate_rigid_def0000.tiff +0 -0
  19. pyvale/data/plate_rigid_def0001.tiff +0 -0
  20. pyvale/data/plate_rigid_ref0000.tiff +0 -0
  21. pyvale/dataset.py +96 -6
  22. pyvale/dic/cpp/dicbruteforce.cpp +370 -0
  23. pyvale/dic/cpp/dicfourier.cpp +648 -0
  24. pyvale/dic/cpp/dicinterpolator.cpp +559 -0
  25. pyvale/dic/cpp/dicmain.cpp +215 -0
  26. pyvale/dic/cpp/dicoptimizer.cpp +675 -0
  27. pyvale/dic/cpp/dicrg.cpp +137 -0
  28. pyvale/dic/cpp/dicscanmethod.cpp +677 -0
  29. pyvale/dic/cpp/dicsmooth.cpp +138 -0
  30. pyvale/dic/cpp/dicstrain.cpp +383 -0
  31. pyvale/dic/cpp/dicutil.cpp +563 -0
  32. pyvale/dic2d.py +164 -0
  33. pyvale/dic2dcpp.cp311-win_amd64.pyd +0 -0
  34. pyvale/dicchecks.py +476 -0
  35. pyvale/dicdataimport.py +247 -0
  36. pyvale/dicregionofinterest.py +887 -0
  37. pyvale/dicresults.py +55 -0
  38. pyvale/dicspecklegenerator.py +238 -0
  39. pyvale/dicspecklequality.py +305 -0
  40. pyvale/dicstrain.py +387 -0
  41. pyvale/dicstrainresults.py +37 -0
  42. pyvale/errorintegrator.py +10 -8
  43. pyvale/examples/basics/ex1_1_basicscalars_therm2d.py +124 -113
  44. pyvale/examples/basics/ex1_2_sensormodel_therm2d.py +124 -132
  45. pyvale/examples/basics/ex1_3_customsens_therm3d.py +199 -195
  46. pyvale/examples/basics/ex1_4_basicerrors_therm3d.py +125 -121
  47. pyvale/examples/basics/ex1_5_fielderrs_therm3d.py +145 -141
  48. pyvale/examples/basics/ex1_6_caliberrs_therm2d.py +96 -101
  49. pyvale/examples/basics/ex1_7_spatavg_therm2d.py +109 -105
  50. pyvale/examples/basics/ex2_1_basicvectors_disp2d.py +92 -91
  51. pyvale/examples/basics/ex2_2_vectorsens_disp2d.py +96 -90
  52. pyvale/examples/basics/ex2_3_sensangle_disp2d.py +88 -89
  53. pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py +172 -171
  54. pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py +88 -86
  55. pyvale/examples/basics/ex3_1_basictensors_strain2d.py +90 -90
  56. pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py +93 -91
  57. pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py +172 -160
  58. pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py +154 -148
  59. pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py +249 -231
  60. pyvale/examples/dic/ex1_region_of_interest.py +98 -0
  61. pyvale/examples/dic/ex2_plate_with_hole.py +149 -0
  62. pyvale/examples/dic/ex3_plate_with_hole_strain.py +93 -0
  63. pyvale/examples/dic/ex4_dic_blender.py +95 -0
  64. pyvale/examples/dic/ex5_dic_challenge.py +102 -0
  65. pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +4 -2
  66. pyvale/examples/renderblender/ex1_1_blenderscene.py +152 -105
  67. pyvale/examples/renderblender/ex1_2_blenderdeformed.py +151 -100
  68. pyvale/examples/renderblender/ex2_1_stereoscene.py +183 -116
  69. pyvale/examples/renderblender/ex2_2_stereodeformed.py +185 -112
  70. pyvale/examples/renderblender/ex3_1_blendercalibration.py +164 -109
  71. pyvale/examples/renderrasterisation/ex_rastenp.py +74 -35
  72. pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py +6 -13
  73. pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py +2 -2
  74. pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py +2 -4
  75. pyvale/imagedef2d.py +3 -2
  76. pyvale/imagetools.py +137 -0
  77. pyvale/rastercy.py +34 -4
  78. pyvale/rasternp.py +300 -276
  79. pyvale/rasteropts.py +58 -0
  80. pyvale/renderer.py +47 -0
  81. pyvale/rendermesh.py +52 -62
  82. pyvale/renderscene.py +51 -0
  83. pyvale/sensorarrayfactory.py +2 -2
  84. pyvale/sensortools.py +19 -35
  85. pyvale/simcases/case21.i +1 -1
  86. pyvale/simcases/run_1case.py +8 -0
  87. pyvale/simtools.py +2 -2
  88. pyvale/visualsimplotter.py +180 -0
  89. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/METADATA +11 -57
  90. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/RECORD +93 -56
  91. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/WHEEL +1 -1
  92. pyvale/examples/visualisation/ex1_1_plot_traces.py +0 -102
  93. pyvale/examples/visualisation/ex2_1_animate_sim.py +0 -89
  94. {pyvale-2025.5.3.dist-info → pyvale-2025.7.1.dist-info}/licenses/LICENSE +0 -0
  95. {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
 
@@ -1,22 +1,33 @@
1
- pyvale/__init__.py,sha256=y0gLgJPkYXHC05f_PljTCshI0BXym2s9sw7-b5Utnq8,2909
1
+ pyvale/__init__.py,sha256=_EdHJFTk0NEjusOdFUMZ-VZI9CVe5NUmQY3ibJ-AmGI,3303
2
2
  pyvale/analyticmeshgen.py,sha256=mNVmPpfPi--uSBTp1IMp5r8cEqYZUaK-ucsGRN-WQcI,3525
3
3
  pyvale/analyticsimdatafactory.py,sha256=SMfATyTmRRm7oS-W4tHEtHAtxLipaTdYbLkvqWfjMtg,2794
4
4
  pyvale/analyticsimdatagenerator.py,sha256=-c4sZo2YFkj9CV8jxK6eW6Y1DEl_Teb37KrQraH7Aho,12747
5
- pyvale/blendercalibrationdata.py,sha256=QnB_5ZYT0WJtZb56MnRJ_93IfvrDHB8JObkrEb2awUo,501
5
+ pyvale/blendercalibrationdata.py,sha256=xcPMX3VuNPxZEKwpdESxzsY-7qTlC1nt-x9UFxH18oo,569
6
6
  pyvale/blenderlightdata.py,sha256=e5UmMy7hdmf-5IOS4sA8-TcoD1XQg8N1yZ845zfYJmk,760
7
7
  pyvale/blendermaterialdata.py,sha256=KI-T4IFdfJaEjYQWgF-fV3SzShYBT5lhSZSUvb8FrSU,522
8
8
  pyvale/blenderrenderdata.py,sha256=OPlnd5-dSjXQeYLxIiyA9A-usfImWQWeYtNFHrpnG_g,918
9
- pyvale/blenderscene.py,sha256=-KrKsvRz1jcWGf_D8rWaLbnzcuDBwlwRAdMC2Rk3G6I,21750
10
- pyvale/blendertools.py,sha256=yDd0ZCAUGw8ArDrLMRFDRTQiun1mGwHWVXUYHd89Qno,17540
11
- pyvale/camera.py,sha256=tj_drrDXXgqc85E7ucrMiPfd6fFiVvAfy1i4E_eC_1U,5477
12
- pyvale/cameradata.py,sha256=4ViK_Y4QvB7lJd0ZwiJX-uYVfm9rR3OS3FmAKaMM1a0,1987
9
+ pyvale/blenderscene.py,sha256=C9QmDUsJ-UBoJ-IFK30fYwVz8ICZj6h5m3cNaI4pm-o,21819
10
+ pyvale/blendertools.py,sha256=VBxzSIXC2yPwO_IrpchQYkGaKgj2ZDGh0ncU55N2AFk,18554
11
+ pyvale/camera.py,sha256=3j44NG5Odk4AzspXqHfJx5vWzAHDPg3dg4xoHWIpdiI,5479
12
+ pyvale/cameradata.py,sha256=l2-WaQCzT6pvTrL-7xiUQFf697D0V1qUKG9kzQeka_o,2011
13
13
  pyvale/cameradata2d.py,sha256=SZW4EwP2maaJDoVywPvJ5CIzxE9M0T00v6YFMMXbXIY,2819
14
- pyvale/camerastereo.py,sha256=D_w05HiUQN5-OFgBn1afG2h4ir7KZdlQKWOA2b614K8,10122
15
- pyvale/cameratools.py,sha256=j9fSS9FZd-G9HUa_6TPFUZW-AGOPss4C6vR9Im5eT7E,20839
16
- pyvale/dataset.py,sha256=Hd1r9zc5O1exvuoBn3A1O8AgxjMIxHVHgxAkOoZuGwY,12685
14
+ pyvale/camerasensor.py,sha256=3j44NG5Odk4AzspXqHfJx5vWzAHDPg3dg4xoHWIpdiI,5479
15
+ pyvale/camerastereo.py,sha256=L_HBN3JIGLkAMk1ZIvDye3xqwyVaudsM9NgyybD5rJM,10142
16
+ pyvale/cameratools.py,sha256=_DTrvLMop2QoEdkUkr4dkiwZmNhxgnHv2Te7EKg0knM,19723
17
+ pyvale/dataset.py,sha256=OzjDrqSee5jSV8y4AhQ_aSedqDftSBlCKH92Lk304NM,15354
18
+ pyvale/dic2d.py,sha256=oisTCqSxRULme-5r2YfvNJe9mS1vw0yqvpRc9bNYe-U,7731
19
+ pyvale/dic2dcpp.cp311-win_amd64.pyd,sha256=lmR3oJ7ochauSQC6A1TdBGCeC9Tc_KTjMNGD2o3eRus,623104
20
+ pyvale/dicchecks.py,sha256=cmJbgCLjaEblBnP45R_bnrwAXTUqO91b8Diz0wimKdg,16488
21
+ pyvale/dicdataimport.py,sha256=2Qht6OoLXO9nK7_jt1POR3qbn0thWYedBFJ-w9YwGkU,7438
22
+ pyvale/dicregionofinterest.py,sha256=1d3tqnvQTQU88Qz7ISpOsUPMrdm8Ty9RJXzC0J-_kqs,33768
23
+ pyvale/dicresults.py,sha256=bZnA9Yu348DYVE80DkcNeSu-Ddh7GQNnENz5_e1bPZU,1938
24
+ pyvale/dicspecklegenerator.py,sha256=IvAuEXXn_B8aKlDORFylXMcvVoMYnsqeqDFcyFg9Ktw,8057
25
+ pyvale/dicspecklequality.py,sha256=_-Ym4eloquvqWYBWwXtp-u6bbUYkIAgAKwb6lj2LItM,10273
26
+ pyvale/dicstrain.py,sha256=IV2F7eEkRRkmmEIhtmCWar_k7mMq-VFUYldTC4FYd_I,13174
27
+ pyvale/dicstrainresults.py,sha256=hTP4RqxJg_sdee1vCNcMR42SUQNlHnnsUaw16umwtqg,1090
17
28
  pyvale/errorcalculator.py,sha256=7jOfQEZwFzjfupO24jrogoDn3HeN_DDoHgW2uH0BwaU,3527
18
29
  pyvale/errordriftcalc.py,sha256=HRpsYQwhSM_LCdOA9EN9doj9UWHBcR-Tni9dbYDPgnI,4573
19
- pyvale/errorintegrator.py,sha256=ncHCJNoNAToNU6-GvANPKs4E94MzbLdGZ4t1cRveJdg,14138
30
+ pyvale/errorintegrator.py,sha256=JpW_kUzOgP5a7v7mx3gnPt9geGaB5aH28xNinhjYR-w,14246
20
31
  pyvale/errorrand.py,sha256=5SUu-aqCRlmKiQaS20y2Ch-8yBIPvHJsGHntv2VsU5Y,22799
21
32
  pyvale/errorsyscalib.py,sha256=uEG3gtTjF6OcritiEPVFdZbizv6omzIqcUVafEOyFkc,5716
22
33
  pyvale/errorsysdep.py,sha256=5mxvijHbX712JyA0CjZ9MRltu1SRkDhdx79TuIAvPrE,11898
@@ -31,7 +42,8 @@ pyvale/fieldtensor.py,sha256=abobYgvPz2wRsS77g1oCxnu8qTf5L8ETnTxGd1q5xQA,8364
31
42
  pyvale/fieldtransform.py,sha256=prc_qrkNwbBC72MSsoKxx7F11A5sRsp8eReTuC3FYcI,18381
32
43
  pyvale/fieldvector.py,sha256=b-AD32kip6CvGoMzKnvX6XvVhESp0ehsLanjGfvZlCk,8139
33
44
  pyvale/generatorsrandom.py,sha256=4wSx9QseslMG-WOjxl7_AvX0tBw6hynoPs6hD41ByMU,17108
34
- pyvale/imagedef2d.py,sha256=6oQiEibCakOYnpJMd6W1zLmlIxsdzzpItu7crEETXss,25686
45
+ pyvale/imagedef2d.py,sha256=La3G3Ukt-ncAB-1imdsCxQetbL9wBb-A3xFTFjYKSqc,25723
46
+ pyvale/imagetools.py,sha256=ONdFGmfdQsmhtn96Z8I3TNWIr2lmvsWzG12EVAwFvpw,4476
35
47
  pyvale/integratorfactory.py,sha256=TAnSb2zSyiIzJ9TuWjC9h6Nrv8zKdhmuPpTHRmOd9n4,9859
36
48
  pyvale/integratorquadrature.py,sha256=2h5RfCPaUdRcRoAQK46MHD25mglyJ3HosZGE_7G_KS0,9252
37
49
  pyvale/integratorrectangle.py,sha256=kj0YX5IQ6kVFqF0zsk4uv9naiKozQhrOdrphLGKjivc,6860
@@ -40,27 +52,33 @@ pyvale/integratortype.py,sha256=AzO6Ra6wO6JNif0crnxy79i1fpwGDYqhJN9MzT_yLrQ,1348
40
52
  pyvale/output.py,sha256=5VB7oK7RI1etVH_SkO9vN0aFQw6ktbmkmY7db5y7A8I,520
41
53
  pyvale/pyvaleexceptions.py,sha256=ga8lnVxdnCQeTbMe2tN_ThMy8W8r4jL2opcveCO1_OU,359
42
54
  pyvale/raster.py,sha256=21y1fyi0oyvIJ6BHGOvoxruTFs0WA8G7m3zH56N9CTc,819
43
- pyvale/rastercy.py,sha256=eOGH7cWKmbClk0InpdTlwpMU43Gm5K7E4PAGYywHRwQ,2958
44
- pyvale/rasternp.py,sha256=i6iat_9i7joCMiZ20lx1A-8PYAdIP3Gv545xADpD3vc,26596
45
- pyvale/rendermesh.py,sha256=y8z1APwqJ_-Jhg1BHMhVI-itu8T44Y2-TH7Pdb7RZYM,5560
55
+ pyvale/rastercy.py,sha256=ev7pDOLM4wvBcEMag-k1Lw7mgfdVYeYA-C1LzjmpDAM,3613
56
+ pyvale/rasternp.py,sha256=nZuSqMhEdaAfAGz_4rgO263de7i_3qlAfH3BGoXhcIM,26495
57
+ pyvale/rasteropts.py,sha256=jXughaYmPNRVeOmztD7-5GCCj0cSltEK6gqkzEGGHT8,2191
58
+ pyvale/renderer.py,sha256=-scDJLzKSCvqhSfCnVCBv-eJnW1f3ojEOygXXGTql1s,1333
59
+ pyvale/rendermesh.py,sha256=bh6EEx_dzpxBIBerehioXkCDe6IrZ0FbWX3Ql3yMY54,5474
60
+ pyvale/renderscene.py,sha256=tcvn1M4XKjRdOGabWGAKwQGoOm3X6Jf7AQm37YnBRp4,1588
46
61
  pyvale/sensorarray.py,sha256=QTKGNWYzTOL8CmWm_TJ710qK0qOtRrjfNoiXQpQA1ig,7197
47
- pyvale/sensorarrayfactory.py,sha256=AMIa3rTvxus1TPdJ8fiS2WnXrtiQeg7C8NviQOPXWB4,8134
62
+ pyvale/sensorarrayfactory.py,sha256=mjTRC2TYWyojY7IABIXIqJQx9ABBIgba-jp8Rdo8svg,8136
48
63
  pyvale/sensorarraypoint.py,sha256=Ek6ymJielcilDqULS-7lpLHtqGzu9muKMvdG8wFqfBg,11492
49
64
  pyvale/sensordata.py,sha256=srhJEbyW_skUKtVvqFmJRnmkUw6qIEqL4gcYiqnV6t8,2835
50
65
  pyvale/sensordescriptor.py,sha256=w_-Z1K7UC9vempDFAKQcYN-fJScM_aaN_WX2nLVGvHw,7286
51
- pyvale/sensortools.py,sha256=vTyMJ2eVM2l5p-SG3vF1uYG8YBohYYDn6pvlfb0j-gE,5873
52
- pyvale/simtools.py,sha256=0z_bmff8iIMe7HwCATq0WzJaWtKT5Wl9E01W79YBjnk,2347
66
+ pyvale/sensortools.py,sha256=tQkxnNEPAdt2z_--7R0q9zSC6NBhectvorXlnWwNrIA,5061
67
+ pyvale/simtools.py,sha256=0kKlEx7qgcJR0GJy9E-gPpdFeJy_fn3AqCf0iF4RSto,2339
53
68
  pyvale/visualexpplotter.py,sha256=e_R-rvY6So6n-Bi9K5QYTnfarkzhpQo7Xpx8_Px9E3E,8100
54
69
  pyvale/visualimagedef.py,sha256=ltX4LLMaSpRrH9fGWUI5yT9lwYiPYewnwt44XB4eNqo,2897
55
70
  pyvale/visualimages.py,sha256=lrkzaUih2lWJrPz5VbWOKzLXWyfbqPNBx39JGOKnI6E,2925
56
71
  pyvale/visualopts.py,sha256=gzbiw-5aiPGSwp4j3p4Nk5Fjq4c_PEnQCOIqJ1YyN-o,15421
57
72
  pyvale/visualsimanimator.py,sha256=z42X8d0juA4UBKJQKUxrXfdP98KIRAAx1RK09turv3k,4567
73
+ pyvale/visualsimplotter.py,sha256=yF11R-m9NSz4WPMjpN5qJqZm1fzhn5l6SnXIeJQ9Pmg,6987
58
74
  pyvale/visualsimsensors.py,sha256=t-2tJJoown9xGezrub-EWJSRgoOH7On1FI3gIPvPPu0,12723
59
75
  pyvale/visualtools.py,sha256=CfrRYFIKEBl66kZuhLchG-tgDQiUp-nC2sTCylQqejs,4952
60
76
  pyvale/visualtraceplotter.py,sha256=1u9x3AfnzXS0fF8EAUm-v_E-xYXor7STlsoWob_-iCc,5629
61
- pyvale/cython/rastercyth.c,sha256=gH3r5BbhBnhdvXDXX5Mmi-eel2viUoFFQcGLIqgvalI,1266305
62
- pyvale/cython/rastercyth.cp311-win_amd64.pyd,sha256=UM_8pH1JsIFxmDYDPXBgHNCsAeRW_B4e2eQYdrJwlKk,178688
63
- pyvale/cython/rastercyth.py,sha256=TvUVvdQXKpWUnayX-qQylZugVG4ga49g9IJJrcCLD24,25119
77
+ pyvale/cython/rastercyth.c,sha256=xzcOTja1xUG3jKidN3hGqXzZoxsWwmDLLcKEKmqyyVU,1282853
78
+ pyvale/cython/rastercyth.cp311-win_amd64.pyd,sha256=zxVONAbgYpiZWq1m-AMjdItnS1MhN76-TwrLPFUeqy4,179200
79
+ pyvale/cython/rastercyth.py,sha256=sifuWGmgB0Z8MhQTigNt9lMEMwY3oI9G0Q9a1vQQEYw,27096
80
+ pyvale/data/DIC_Challenge_Star_Noise_Def.tiff,sha256=no_q1L4_0plbVmg3TPEpgoRp3iLMrx2vH_X1fBwnLSw,2020090
81
+ pyvale/data/DIC_Challenge_Star_Noise_Ref.tiff,sha256=y0JSFyHvmO_cgabG8hOej5HioQ_9Bh7O8VYVTfVr_S8,2020102
64
82
  pyvale/data/__init__.py,sha256=qCiIGOM2Oxw7TsjsIvYR054rhhoHzLKX2mCJve9NaJk,275
65
83
  pyvale/data/cal_target.tiff,sha256=4dbDIm7h7gYDJOhWOZXO-rs162ZLqxb1bdrbTykMEMk,4718962
66
84
  pyvale/data/case00_HEX20_out.e,sha256=wTdEWvGyQBhP1D1bIy5YZKu7I_QISWLEjl9K9VOOnbI,241172
@@ -78,39 +96,58 @@ pyvale/data/case18_3_out.e,sha256=8dTnKLQOSCL-gle-1shL68GBQPW1go05aDvjO6AawAg,14
78
96
  pyvale/data/case25_out.e,sha256=LWnCKG7GDUvzCs7GI1h25dhIhq6_qJgXnkhiTmdynPw,93748
79
97
  pyvale/data/case26_out.e,sha256=UAoxPN0K1bbk9R0r2hDehuQZVCPHcAV5NA1PckRyXDY,225744
80
98
  pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff,sha256=cRmbiTzxc8QJ_aO9dc7YT21lV1c9K7pH-L9uQZvUQ8M,5046422
99
+ pyvale/data/plate_hole_def0000.tiff,sha256=R9qDRQxVKnAIQQWDALDM5leIvb3NaGtjXEEuX0ykI_s,1601722
100
+ pyvale/data/plate_hole_def0001.tiff,sha256=4LmjGiqVCwxEG2rEDf-XU9Lw6f7NaUL3nAkOQ1yrDvE,1601722
101
+ pyvale/data/plate_hole_ref0000.tiff,sha256=nJ3WP5Aq7sgy02LTW8ThdZkLt_0Jls26e1--TZ1Ub4M,1601722
102
+ pyvale/data/plate_rigid_def0000.tiff,sha256=YlGU0lIlkh61StQku7lK7P6oDZDa-g5R98fUrR4WnO0,1601722
103
+ pyvale/data/plate_rigid_def0001.tiff,sha256=CFIveUYubbbUDpQfnsO0iPaBTzwbjQbcAOCG1mm2040,1601722
104
+ pyvale/data/plate_rigid_ref0000.tiff,sha256=EolObMm5QzGeewgq3bLhlkHor_6ASuNoYrV2AbYrFro,1601722
105
+ pyvale/dic/cpp/dicbruteforce.cpp,sha256=_LbVdgrRrErF-h3AxwUYAz5bpw2KduA035BCOEWyXdo,12285
106
+ pyvale/dic/cpp/dicfourier.cpp,sha256=bs-t4koUz5Pd-UTnEC4wzhboHLJcD7GbPYjwQ9Ps78M,24196
107
+ pyvale/dic/cpp/dicinterpolator.cpp,sha256=BzO3atEcu-ouGjBjhKeEttKgTlG5GcesJ5KYvvRF8MA,20884
108
+ pyvale/dic/cpp/dicmain.cpp,sha256=BL7-02_ZByZLC_c5rjecVAM1N6DgJQAi6eGT2LJS8vk,9075
109
+ pyvale/dic/cpp/dicoptimizer.cpp,sha256=6Q4hcqqolO1MGhvXGTGDrdpAfNJeghVrpsu3z151FRw,26604
110
+ pyvale/dic/cpp/dicrg.cpp,sha256=ZAgXQnPP55HAU7VhPVcchtvIgQVy3ele7-zZKPAc04k,4488
111
+ pyvale/dic/cpp/dicscanmethod.cpp,sha256=-hXZ3YMc03HlMvCMIFD2A203Bjy8_FhDTv0_Tqb_WzI,27443
112
+ pyvale/dic/cpp/dicsmooth.cpp,sha256=voV7Ge1jqaW3A-87ORxVMv_JFfBlW9_pFoi6NZfoUAs,4583
113
+ pyvale/dic/cpp/dicstrain.cpp,sha256=Sr8sHi3T6Sly0P6h6eTH-K9u5CiQU1ZWjaj6XKtEYhQ,14400
114
+ pyvale/dic/cpp/dicutil.cpp,sha256=TxBwxa89xEaduDxxq8JPeRpj-dSi8Pb-xlI7dY_-J7I,20392
81
115
  pyvale/examples/__init__.py,sha256=qCiIGOM2Oxw7TsjsIvYR054rhhoHzLKX2mCJve9NaJk,275
82
- pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=xAzS8sos2DWH-IrTgU28YqXObMXMKAN5qyARo4Q3oXM,6277
83
- pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=1JGxy34lPFVq0_4uz_oYDJO-_OmmqesiPMbED2gS5CU,7303
84
- pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=Ze_wb04hY57XgFo9V3BWz2P_Q94wWoAHSK_3NFyIdmw,9981
85
- pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=4AZXxc6X3tWDr7zGtl7oju4IAMi33lK0DSY3yzyUKhI,6964
86
- pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=N5xRMyleU4_ux3uI5JNAncokxgyec-zitpHiKCuJwOM,7512
87
- pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=UdrhJ28cZNri2AqmvWtqLQGoFdN1q9-5zKAThtGi0Cc,5341
88
- pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=ux0bMbgnU07CBhfL4baHT_uvtF9xyQlnUodeBgc1rjM,5565
89
- pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=YfU6bBrFcgUOWZ2QtvZKDnSRDzwTd1THeWYX0gMoUs0,5045
90
- pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=Rmj1L0tH4ydqqR7y-sDV6Cu87-kKg8ZdkZubyKvukUY,5217
91
- pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=eBL6Bh44yMNIgmKwMkwcFnUQu3R4W3UZDFontkNFtrU,5781
92
- pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=bkCrlXnmPd6t9M3WAXY9cjWHwFLxhPCZOlHDOcQSIs0,8578
93
- pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=jmHsmP4ACmMGfGT7fT0opP-ZK5emijB-iApZBgpUi0g,4547
94
- pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=-aiPrAalQpmlJyD3wy-FHEnTsIQUxa2GYWO-uolTVQo,5184
95
- pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=ORrpCksBAqk2ERD3vU7REtme3a5gcS57YSadCvW6AR8,4912
96
- pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=g3gV5rHg74s0swNvVxKnB-TK2sAlQ5Y15h9zZSDFK2I,8601
97
- pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=R_E_qG4yXnUZ7dGmt0m0d4cLcAAxi52W8-9e5oBQDYA,8096
98
- pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=JwKKsfMtpFQ9C3B77962vbzA1jMN0AxnNvrrAugZuy8,11414
116
+ pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=IlGUDXAXqWycEV7TUiUoy_TmYv6-1YbuLas1n7xpDcc,6035
117
+ pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=zDrcPY_z8yeXHtlBzFV-l5CIVn-CBc_IDhJtBU0Sz8M,6048
118
+ pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=Y_ZYrv5kk_bwb9LMNM4U96c--9TXfUZhBFUVRpj1XH0,9132
119
+ pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=v6Yn2_f2lpp9P42_zvcPhky74NtAYnPcp5gxTHwSNqk,6406
120
+ pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=ivTWApsZXBQGPiyWWhD4am7mjJb4tquppF-v3UN4TIo,6914
121
+ pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=639VCc7Hq3MLPsYuBKV8AmbCltX5E-x8b8V3CtI6Zhg,4846
122
+ pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=4pSo3hmuZWSaDkeTOfBZm_7oy7JFj-zxh1hXmAETaI4,5068
123
+ pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=vk19M1uef37KrS6lmDWk8FMmTAxLdeeezZPpLEteo5c,4587
124
+ pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=UWTqSHPP4gDw7sjOo5SWggyu2SXiQJXh9OczCl_QxAE,4930
125
+ pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=CNxrdMnGokL-2ZZPrarZmM6DZS3R7MgihHip86TpAH8,5259
126
+ pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=8zC_9x8vRHyzuKYgGni1MOn_n_heT6l8Q-mYoGSHAXk,7907
127
+ pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=yns9PN3iBwE8hYpGFsqKP2jtbKVoMd37Ra5w-tUy3L4,4133
128
+ pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=ukoCDfjxWKyRy4YWyQnhElLKVYwMiWFhOFuOsnrhJx4,4715
129
+ pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=wIXx3aOzyRSP-n9cyjHcDOsacgRuQ5T5K3ACYr8p6W0,4635
130
+ pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=yw67THdSkiM-FQYcyGpDpyLbqG9gHNekelJkxlYsc34,8096
131
+ pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=Dtsdc9RD56QGurOsr5BSMyK86OItQBbUu_GUZ6Ozb4M,7642
132
+ pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=ep61fOYU0c5sYjIr8azZCxqNSKNgJ_KdWjS0BERYMOY,10727
133
+ pyvale/examples/dic/ex1_region_of_interest.py,sha256=-26B5FCvB9SbuWI3m6uokDDiLrc5dZZJMcVzZb4Ev28,3428
134
+ pyvale/examples/dic/ex2_plate_with_hole.py,sha256=KvoHqPcFdv--QwQLJkBrFgGaSH05RyXy97HVl5vit_w,6197
135
+ pyvale/examples/dic/ex3_plate_with_hole_strain.py,sha256=u6h17gLkH27fzMrGkB_tBwkNPhYoS-1b2rx4Vr0r8Rs,3529
136
+ pyvale/examples/dic/ex4_dic_blender.py,sha256=tbjxlj65Kyqo71CMk2sfvz5wunnxyBGgbCB2Cvf_dhI,3247
137
+ pyvale/examples/dic/ex5_dic_challenge.py,sha256=vJL1m9P6XtedAHplbOtjTyf4byWEGB1ovJIBEv_02s8,4068
99
138
  pyvale/examples/genanalyticdata/ex1_1_scalarvisualisation.py,sha256=iN8HLF6LVwssvzuRTn6uRVf1w7r5GQ--WPZUVpnAVmM,973
100
139
  pyvale/examples/genanalyticdata/ex1_2_scalarcasebuild.py,sha256=rTIuTVDiu88s0GaxFD4bkNgSb7J-UJX4q1I3KWzjS6U,1315
101
140
  pyvale/examples/genanalyticdata/ex2_1_analyticsensors.py,sha256=N6shzllnpyvHrDxwFI4M6fAp_aJJgXeB3xlw7GQkgrg,2925
102
- pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=4wG5LD-TV9ZXXyNOjpWgp4VD1EQYsQaOgS0ydsq5yh4,2692
103
- pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=36_YKB8znPRAf0Zz62Z0piSvA9H1-JK6gmDIHW8jr0k,5143
104
- pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=pTuxuaN00uMU8bCbjar9I27nIHDdJnjRFAAwJuLcd8Q,5192
105
- pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=aIPmql7s0Y4dc0ca0RO0TrcpfwphYwxPE2Xq7iDJOk4,5585
106
- pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=WdoINWolEoi-vdTCKpIwXellSyQGsgyQhEAp5MeYbdg,5760
107
- pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=gNPL95mlKj2RCrXV5wAPdTesqGell3rnJgrub-0sDBU,5377
108
- pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=p6MzAys5Xf53v6NLlxonZos7gNIOm_n9ZqV8QBbLwQA,5000
109
- pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=rTmZ2mJiQJO3dzay1Jpq5f14bXywf62Ki7vKBVY4d30,7654
110
- pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=WLrDPBfypdHLyW-Yvg06OLsw8u-mKF5WG4EBhxvokvU,6860
111
- pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=jNx_4wXmm5d2nrqcVyjqpH1U93wg2FIvQm-EJqIbRDw,6945
112
- pyvale/examples/visualisation/ex1_1_plot_traces.py,sha256=TNmPCzY04iGsI5OmObrJhw7waCunmUp6-GcajpWwOQM,3354
113
- pyvale/examples/visualisation/ex2_1_animate_sim.py,sha256=2n3YWoB2tMaberBLaT82AsdIHW45e3Fqvg9y1OzHyyY,3074
141
+ pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=5HAvV3P9REvF0HU2nK2-SZofcqRJIyC0qk1JaCQd_sU,2787
142
+ pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=IQwEIXpokYk6eSFvWfkQ3gnURNzsp_mEbkwsAjsPeNA,7089
143
+ pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=KjDnpM6r0MzDOqHVQsKyYCZ-IYTMNVqt033ZnN9rU1w,7176
144
+ pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=ZgTTsafTn6neyRI_zWKN928beNjqGvl4frqwhg1eQ6o,8814
145
+ pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=i8R_4FeVH8mfXdvGnPkWrFT0MI16EmtMrqvnbk4ZIGE,9271
146
+ pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=H4twmey5e_-yD_d4AfeHxxof8euPfDCj_L0-6OEoiQQ,8032
147
+ pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=ZaEtSC0Az4TuifP_1eYUp44XfYZ-X8zaHSbt415sCb8,6402
148
+ pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=F9SUGFIAMRoYKQh5lF1so3BN1CJxwuQ8iUPfq9ozm6g,7478
149
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=59RURzuD5w2pyzeIJy_9TNoYQVJiSnOlsU4URjDYyFk,6846
150
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=rysuCwFDlFZrXx8BdWkGKTIbpEsmO4oy9h2cWVeqL5o,6927
114
151
  pyvale/simcases/case00_HEX20.i,sha256=qehBfWhV5DE5U7MNmroH7oiAfy25wRDpq8THQ_5OS0Y,5390
115
152
  pyvale/simcases/case00_HEX27.i,sha256=6FtMb0iZWqF0H7UHQxcYWvkhBA1cKzGxDIrShSmuYjg,5390
116
153
  pyvale/simcases/case00_HEX8.i,sha256=XIQS6BZ632F68fSvwN9YT-5OZHM8-2qV-tqPEJORKII,5400
@@ -152,7 +189,7 @@ pyvale/simcases/case19.i,sha256=ZifW8iHiQNfS7j-dzwnYxs36rC1blqaBdidMORWCWBU,2289
152
189
  pyvale/simcases/case20.geo,sha256=Lp80dI_3VMiZC_hHdo-CDyz0x9F6i8ZR8w7D-IRGZes,9354
153
190
  pyvale/simcases/case20.i,sha256=JBLT1QwVs1m7Xx5rgrZ6XgkenuPbXDaHzyWTAgELgGE,6904
154
191
  pyvale/simcases/case21.geo,sha256=OKwOAfRlqObHjCBTX8vc79cSXUlAaHVEOdOftVc4_u4,2461
155
- pyvale/simcases/case21.i,sha256=r7k9Hd3YLxJblKQqsv4bF9I0Obeo3NFk97yzYSPEeQ4,3571
192
+ pyvale/simcases/case21.i,sha256=rLjlSngH4ynvagx1nP4RLs3lfk3iUQ9CPIuenXKDgqo,3569
156
193
  pyvale/simcases/case22.geo,sha256=qjk6tu3F5nRLwHEaanJgW6UeWQoXLFlZ-64F7q9Fn5Y,2573
157
194
  pyvale/simcases/case22.i,sha256=jTVA1PDKfZTkUP6xmutNwE-kCh8-QhOArOCsUmRA4pI,3328
158
195
  pyvale/simcases/case23.geo,sha256=2OkhLsqW3Kb8ykAbx1WGPbtak4dO-CGuS3nI2LwccT4,5612
@@ -163,12 +200,12 @@ pyvale/simcases/case25.geo,sha256=THnjoyxc61jG9u7JEdOj1SenyaH-TR1lPom6ATHfMbI,25
163
200
  pyvale/simcases/case25.i,sha256=zfck508vXblNTNWFwo7RUuu6U3raE4_4hU9KS1RlJBo,3133
164
201
  pyvale/simcases/case26.geo,sha256=yMPZn5sM6JiBEfFTfaTrrjeOjkxOLauXJ1WJs_M0yBE,5634
165
202
  pyvale/simcases/case26.i,sha256=EE70fWv4eljTYW7WHRLLepwTWLWM0Q8dkI89rV02EEo,3131
166
- pyvale/simcases/run_1case.py,sha256=sW6G-iMlV1mph0rTmchgCPqcNbeCYLPgrurX9-KSCvg,1989
203
+ pyvale/simcases/run_1case.py,sha256=srR8bs3pKhPaF_E4nqLsMXO1ivtK5WKRWIZ0O6pXGRs,2107
167
204
  pyvale/simcases/run_all_cases.py,sha256=x6IhG7jalAPuZRFdNTH9oof9L_Nol5vWjjU_lPi5i0Q,1972
168
205
  pyvale/simcases/run_build_case.py,sha256=3FaSjQrYxVmmKAC_CvORAvFr6Xwo0pEOjiWTzG7fMbU,2002
169
206
  pyvale/simcases/run_example_cases.py,sha256=6-gUDPqPmBj01q4CcsG5MiVWqt71BP4J85fWGOuS3Eg,1979
170
- pyvale-2025.5.3.dist-info/licenses/LICENSE,sha256=PLyswAYGHdw3qwnrd4I8glj6pc89FgAgY6W1VtK0NT0,1119
171
- pyvale-2025.5.3.dist-info/METADATA,sha256=baSv8lR8etWv3hzIdpxmvAZQETMM2ZeDczn8Ms3Hd-g,7624
172
- pyvale-2025.5.3.dist-info/WHEEL,sha256=w9Xlqjb4P__1xPosTTDG8Ieqhmo6FNdeoRaV5xSg6-o,101
173
- pyvale-2025.5.3.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
174
- pyvale-2025.5.3.dist-info/RECORD,,
207
+ pyvale-2025.7.1.dist-info/licenses/LICENSE,sha256=PLyswAYGHdw3qwnrd4I8glj6pc89FgAgY6W1VtK0NT0,1119
208
+ pyvale-2025.7.1.dist-info/METADATA,sha256=i6Quq3QBuJ3oPcGjTuZzDeIM1uxeQBHNfQNz4zG5mnE,6485
209
+ pyvale-2025.7.1.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
210
+ pyvale-2025.7.1.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
211
+ pyvale-2025.7.1.dist-info/RECORD,,
@@ -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-win_amd64
5
5
 
@@ -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()