pyvale 2025.5.3__cp311-cp311-musllinux_1_2_i686.whl → 2025.7.0__cp311-cp311-musllinux_1_2_i686.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 (96) 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.cpython-311-i386-linux-musl.so +0 -0
  12. pyvale/cython/rastercyth.py +71 -26
  13. pyvale/data/plate_hole_def0000.tiff +0 -0
  14. pyvale/data/plate_hole_def0001.tiff +0 -0
  15. pyvale/data/plate_hole_ref0000.tiff +0 -0
  16. pyvale/data/plate_rigid_def0000.tiff +0 -0
  17. pyvale/data/plate_rigid_def0001.tiff +0 -0
  18. pyvale/data/plate_rigid_ref0000.tiff +0 -0
  19. pyvale/dataset.py +96 -6
  20. pyvale/dic/cpp/dicbruteforce.cpp +370 -0
  21. pyvale/dic/cpp/dicfourier.cpp +648 -0
  22. pyvale/dic/cpp/dicinterpolator.cpp +559 -0
  23. pyvale/dic/cpp/dicmain.cpp +215 -0
  24. pyvale/dic/cpp/dicoptimizer.cpp +675 -0
  25. pyvale/dic/cpp/dicrg.cpp +137 -0
  26. pyvale/dic/cpp/dicscanmethod.cpp +677 -0
  27. pyvale/dic/cpp/dicsmooth.cpp +138 -0
  28. pyvale/dic/cpp/dicstrain.cpp +383 -0
  29. pyvale/dic/cpp/dicutil.cpp +563 -0
  30. pyvale/dic2d.py +164 -0
  31. pyvale/dic2dcpp.cpython-311-i386-linux-musl.so +0 -0
  32. pyvale/dicchecks.py +476 -0
  33. pyvale/dicdataimport.py +247 -0
  34. pyvale/dicregionofinterest.py +887 -0
  35. pyvale/dicresults.py +55 -0
  36. pyvale/dicspecklegenerator.py +238 -0
  37. pyvale/dicspecklequality.py +305 -0
  38. pyvale/dicstrain.py +387 -0
  39. pyvale/dicstrainresults.py +37 -0
  40. pyvale/errorintegrator.py +10 -8
  41. pyvale/examples/basics/ex1_1_basicscalars_therm2d.py +124 -113
  42. pyvale/examples/basics/ex1_2_sensormodel_therm2d.py +124 -132
  43. pyvale/examples/basics/ex1_3_customsens_therm3d.py +199 -195
  44. pyvale/examples/basics/ex1_4_basicerrors_therm3d.py +125 -121
  45. pyvale/examples/basics/ex1_5_fielderrs_therm3d.py +145 -141
  46. pyvale/examples/basics/ex1_6_caliberrs_therm2d.py +96 -101
  47. pyvale/examples/basics/ex1_7_spatavg_therm2d.py +109 -105
  48. pyvale/examples/basics/ex2_1_basicvectors_disp2d.py +92 -91
  49. pyvale/examples/basics/ex2_2_vectorsens_disp2d.py +96 -90
  50. pyvale/examples/basics/ex2_3_sensangle_disp2d.py +88 -89
  51. pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py +172 -171
  52. pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py +88 -86
  53. pyvale/examples/basics/ex3_1_basictensors_strain2d.py +90 -90
  54. pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py +93 -91
  55. pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py +172 -160
  56. pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py +154 -148
  57. pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py +249 -231
  58. pyvale/examples/dic/ex1_region_of_interest.py +98 -0
  59. pyvale/examples/dic/ex2_plate_with_hole.py +149 -0
  60. pyvale/examples/dic/ex3_plate_with_hole_strain.py +93 -0
  61. pyvale/examples/dic/ex4_dic_blender.py +95 -0
  62. pyvale/examples/dic/ex5_dic_challenge.py +102 -0
  63. pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +4 -2
  64. pyvale/examples/renderblender/ex1_1_blenderscene.py +152 -105
  65. pyvale/examples/renderblender/ex1_2_blenderdeformed.py +151 -100
  66. pyvale/examples/renderblender/ex2_1_stereoscene.py +183 -116
  67. pyvale/examples/renderblender/ex2_2_stereodeformed.py +185 -112
  68. pyvale/examples/renderblender/ex3_1_blendercalibration.py +164 -109
  69. pyvale/examples/renderrasterisation/ex_rastenp.py +74 -35
  70. pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py +6 -13
  71. pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py +2 -2
  72. pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py +2 -4
  73. pyvale/imagedef2d.py +3 -2
  74. pyvale/imagetools.py +137 -0
  75. pyvale/rastercy.py +34 -4
  76. pyvale/rasternp.py +300 -276
  77. pyvale/rasteropts.py +58 -0
  78. pyvale/renderer.py +47 -0
  79. pyvale/rendermesh.py +52 -62
  80. pyvale/renderscene.py +51 -0
  81. pyvale/sensorarrayfactory.py +2 -2
  82. pyvale/sensortools.py +19 -35
  83. pyvale/simcases/case21.i +1 -1
  84. pyvale/simcases/run_1case.py +8 -0
  85. pyvale/simtools.py +2 -2
  86. pyvale/visualsimplotter.py +180 -0
  87. {pyvale-2025.5.3.dist-info → pyvale-2025.7.0.dist-info}/METADATA +11 -57
  88. {pyvale-2025.5.3.dist-info → pyvale-2025.7.0.dist-info}/RECORD +94 -56
  89. {pyvale-2025.5.3.dist-info → pyvale-2025.7.0.dist-info}/WHEEL +1 -1
  90. pyvale.libs/libgcc_s-887de51c.so.1 +0 -0
  91. pyvale.libs/libgomp-24921df4.so.1.0.0 +0 -0
  92. pyvale.libs/libstdc++-d6415257.so.6.0.33 +0 -0
  93. pyvale/examples/visualisation/ex1_1_plot_traces.py +0 -102
  94. pyvale/examples/visualisation/ex2_1_animate_sim.py +0 -89
  95. {pyvale-2025.5.3.dist-info → pyvale-2025.7.0.dist-info}/licenses/LICENSE +0 -0
  96. {pyvale-2025.5.3.dist-info → pyvale-2025.7.0.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.0
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=61KOsSmlV9ojm_naGhl4NirlLkhGKeUn6jdbnmHs6Rg,2820
1
+ pyvale/__init__.py,sha256=uOAe4ra5jStUUuyzTP6umzurtsCDYpVzFttEE7uzAIg,3202
2
2
  pyvale/analyticmeshgen.py,sha256=tMh8Fo7iJqjaMfhLu2gBLyD4L2SRGaXjCB3w3cVO7KE,3424
3
3
  pyvale/analyticsimdatafactory.py,sha256=WWk1XfigI0q17rTQwZClRvumEGEwHLpameBOXvWHsT4,2703
4
4
  pyvale/analyticsimdatagenerator.py,sha256=H_Ro3L8uih2Ipv63ckPN3LmvUaebysCvtJAz1b8Iefs,12424
5
- pyvale/blendercalibrationdata.py,sha256=N2ntMuYRuic7uDyM7IgOW8VRk75l0zYjvWWtkMiAUGo,487
5
+ pyvale/blendercalibrationdata.py,sha256=80jwkKB8wxuZ2udoGrD-dMTxzQQ9t_vpnK71gLDI-gc,553
6
6
  pyvale/blenderlightdata.py,sha256=syeXDH6ggVsUJpkw9yIoDJROBRoQGLQjE5wkLEd6Ifg,734
7
7
  pyvale/blendermaterialdata.py,sha256=igb5cZwRq5VVC-9dd-I66hT4Jh2idjxjVgVa6F9YV7k,508
8
8
  pyvale/blenderrenderdata.py,sha256=8WWuPpUch53QgEwDwjY1-KAGmh-SyUfr2Alg2DYf2PA,889
9
- pyvale/blenderscene.py,sha256=-S0vCukWavzr8ITtujwzw78RYYzU9AzVj_lHv_1wof8,21262
10
- pyvale/blendertools.py,sha256=FBcYb0F5m3WXVAGYFy0fu1Uajko7O8g5lqHADWqXG6w,17120
11
- pyvale/camera.py,sha256=leH2fd3FbvidZ5v7rf04CMPGT_ozIVQkSIKuvFHRGsw,5331
12
- pyvale/cameradata.py,sha256=ogGlrUqA7uB8JNdLMkpDBTHbGORYqahro21auyS5U1w,1918
9
+ pyvale/blenderscene.py,sha256=YGwP-FpuRlC37u6uFJR_xzW2fpJ_Mqi2JMuJyOegC6U,21329
10
+ pyvale/blendertools.py,sha256=ghRNpf_ggWRDoUk6tl9naeEmj5wXhGdH2PTkgR_M1ic,18112
11
+ pyvale/camera.py,sha256=6T-9-bUK5_rLr_qg6VMi-u5gjifHWOMfIHqyqZxL9OQ,5332
12
+ pyvale/cameradata.py,sha256=6rWFenWliIrQazkE4kivttAw6AEsknlINQvVisSNP_A,1939
13
13
  pyvale/cameradata2d.py,sha256=O3imDz8BUer6Wxo82KzCQrVLIBDL5RLy8aNoQoKG4b0,2736
14
- pyvale/camerastereo.py,sha256=_icc2BvdYnExL9vkuf2adXyejUh2oDFsv6QeKdJ2M3s,9905
15
- pyvale/cameratools.py,sha256=xGim_-SPvOIWvvAjSspT-7VF8gAGyO56IWteVD-fTxI,20318
16
- pyvale/dataset.py,sha256=F9X3rPhOwaAXoJxc-MaNiIf0gNTN0JnHvklT6_lGOTw,12360
14
+ pyvale/camerasensor.py,sha256=6T-9-bUK5_rLr_qg6VMi-u5gjifHWOMfIHqyqZxL9OQ,5332
15
+ pyvale/camerastereo.py,sha256=a9rfswcwdiKRuj9Hs4GvIY3_LBuUjYn514wc_XmbCxk,9925
16
+ pyvale/cameratools.py,sha256=fNulJWAcRpvPQN-TzoNLqCYxrdJFOs37ER4n3OANnJQ,19240
17
+ pyvale/dataset.py,sha256=HOAQJ-UEN7yGyJ0Y-OdymneqEkIHBrgzPwGe0lEJrSs,14939
18
+ pyvale/dic2d.py,sha256=DWFMOIf2n354iLlCxf-ruO9-_YeOAp1RFgQel4hhnmE,7567
19
+ pyvale/dic2dcpp.cpython-311-i386-linux-musl.so,sha256=dH9odBkpr1vX53qZ43Lnlt5d6_Kpi2lNM_3u0_3T_Vw,51754745
20
+ pyvale/dicchecks.py,sha256=HCgSUiOvGCKjdkASMSWL6DOhYuIN2-X7YLNxJs9fees,16012
21
+ pyvale/dicdataimport.py,sha256=2hEGEeVTLQwpuQUxV-CVN_PsDgtDRK1v-xf5YuarOJk,7191
22
+ pyvale/dicregionofinterest.py,sha256=RsSjd6ZjcghqpFxDkwmNbJmJ5s96Q7dL1SLNKUDWRbk,32881
23
+ pyvale/dicresults.py,sha256=HGZTWNqCsdraUAJSNGYeAcm9ZJT38EeCeAjTYpcTksk,1883
24
+ pyvale/dicspecklegenerator.py,sha256=PohlSC13wZJZ4hOA5Z-GWML-MsN1pBTSA-pqtiLer8s,7819
25
+ pyvale/dicspecklequality.py,sha256=soZKclWHSuwCsp_P4_EqDRbzTNw21n8rC8kv14i-NCU,9968
26
+ pyvale/dicstrain.py,sha256=M4bjJaxb3orG3Ftv7P0BVCGnI8eThptns1FiNj8xVx4,12787
27
+ pyvale/dicstrainresults.py,sha256=pevm78o5WOWy3ByMM78Y-WcBgoAsxWU3yx55K8l9Omk,1053
17
28
  pyvale/errorcalculator.py,sha256=lvxY-NCnC_oHw7OWh9N0D8IzcE2NvWprVrRBKXzWdsY,3418
18
29
  pyvale/errordriftcalc.py,sha256=T8kqVlVz4GEMOL7WTyv1G7gCJKkulZPHyc5KrVufWAo,4428
19
- pyvale/errorintegrator.py,sha256=mR8hA1dmylWd-jEHT8HkZFdXOxTGwC2OTKk0uBfdiro,13802
30
+ pyvale/errorintegrator.py,sha256=m1VdNvX8cG851KO260_4hlom9KxM5q_QV1bbG2yWksw,13908
20
31
  pyvale/errorrand.py,sha256=YRaEEjMpEyFtk8o8I7P8R0d-0CNONXWSnIomjXHc4sM,22192
21
32
  pyvale/errorsyscalib.py,sha256=bcea3iHwCWY-fqo9hqkFsPX12Ym0sOXjzGVW1VNtiUc,5582
22
33
  pyvale/errorsysdep.py,sha256=nE4mAnfAK1146_Z5cuEkLvoadXdGw-Tm5IPSb6ydLXE,11571
@@ -31,7 +42,8 @@ pyvale/fieldtensor.py,sha256=Ssa0R9UOG8C7DUkgUkFLLX-nHFjxxBjFwEXu5UhVFwg,8146
31
42
  pyvale/fieldtransform.py,sha256=dzhHw6SlgdKEUbsy6Uh_8dp0sgx-dTH2TtjO7zSslos,17994
32
43
  pyvale/fieldvector.py,sha256=VtodQyCTBPoe8L9bdJczoDl42q26qzvaj-lKinYMBT4,7926
33
44
  pyvale/generatorsrandom.py,sha256=Ly4a2CUVj9JgWNwNykXBh6mEJEdaKgH0t24bgyUn800,16604
34
- pyvale/imagedef2d.py,sha256=jqjW3mQqz62mxz-gypypA_5QhnMpHevvedpngEhl0e8,25117
45
+ pyvale/imagedef2d.py,sha256=QeAtizLQ-LsjVJnM_fYvPOHaLVDWsX7PxWH2QrfDpgM,25153
46
+ pyvale/imagetools.py,sha256=h4x8LwZqFkCAGdNMTQeqqTA2HyaDJ2WryQXMZAfXxlA,4339
35
47
  pyvale/integratorfactory.py,sha256=c4YfUuntnPFiXZGKmRrOIKlgtWjLSY5RNeLvv84eLEU,9620
36
48
  pyvale/integratorquadrature.py,sha256=0lVMH7NmVNVTuLHQRjp9gOSBpTDd8VFCxlfl8CyufZs,9035
37
49
  pyvale/integratorrectangle.py,sha256=MaJ5ygSL1H7tDwhzFV86t_MuT21ZeM5b8_WH460Ke3o,6695
@@ -40,27 +52,31 @@ pyvale/integratortype.py,sha256=jfxdyhgOeowWLkb_ab-OB5G67PmnW-Q_mFENBJ7V9l8,1305
40
52
  pyvale/output.py,sha256=OsAKbXMuSZT1yr_EKsslQsKQano7ge9H_8g9ep4AVt0,504
41
53
  pyvale/pyvaleexceptions.py,sha256=vhXGitvM72L6Iezho14waCOqDGGCPjbW1n7V-r-xCeY,349
42
54
  pyvale/raster.py,sha256=Z8YowjBPb8p4_c3xGu-CH0DT6Z5uajjTB8xuOZmDj6M,788
43
- pyvale/rastercy.py,sha256=ty-sHAE_OJWEf0P-TJIRmTrRiCTzmDWmHrN11ka_lRk,2881
44
- pyvale/rasternp.py,sha256=9EVae-M4-jtqr0vfkHQCshpeTO9NKQb0ASOYuGRY9Hc,25993
45
- pyvale/rendermesh.py,sha256=xa5AqbRIqvpVRoi603zKF4JadvojhEIrapG1jZJYdIA,5414
55
+ pyvale/rastercy.py,sha256=gkyGqe9KrccnEuQbxjwrb6MXjkcbXne_JiDKfdzppYw,3506
56
+ pyvale/rasternp.py,sha256=trLcFIQis-LHiGJ9JwM2W16S5Lo_Q9ZqEgPOuA5DxXM,25868
57
+ pyvale/rasteropts.py,sha256=oFEy_iol1T10VMctlqA6GG9M-hVlDJyhDk-W9vhx45I,2134
58
+ pyvale/renderer.py,sha256=F6t9y2fOxSTOK4Y_uSyV-3w7LDbFAPfJaM8Au5oPUDw,1286
59
+ pyvale/rendermesh.py,sha256=h2s3SXZOqUETly60TJ5uB6Sz2s_r5HYOSXtm7NoVMR0,5337
60
+ pyvale/renderscene.py,sha256=tkrIWvcL9kOqWZQM499aCcu3bf81MuIsjBXX7np4hEk,1537
46
61
  pyvale/sensorarray.py,sha256=HC7DOSQtC1q5XE4hNr0KeWufd7z1qk3HoK_AMw9YRJk,7019
47
- pyvale/sensorarrayfactory.py,sha256=3QCpwD_OpoQezoLT35WSzlnqojBoP9cbyLpBecvjUdg,7939
62
+ pyvale/sensorarrayfactory.py,sha256=WQIz7U10dhUvbQhnYDYqbOyz9Ee7KYh_zdFt_VjQYSE,7941
48
63
  pyvale/sensorarraypoint.py,sha256=d42O0SRQcK6qVxSx4Zhu-nJNZis1F2ncXPL6xq7fiTU,11214
49
64
  pyvale/sensordata.py,sha256=LFuROk6CcnDI1-0cSx83mk4sgrt4HnwswLItA8LsLVE,2764
50
65
  pyvale/sensordescriptor.py,sha256=6-quSWdSMjp7qwcSJULEiOhICyI0TH-tJTH68qbW7dY,7073
51
- pyvale/sensortools.py,sha256=2JDpUDG-18dtXRzEViqg9fdCmAhqrde6H9I5MpP_fC4,5731
52
- pyvale/simtools.py,sha256=i9XKHRdw0yymSLydYqV4DBSWgZZS5ea_gmp3m1ny22I,2280
66
+ pyvale/sensortools.py,sha256=Qi21qePhiuPoCXdxJJA1Eoc24NJK_Db2qjuo9u9EWmU,4935
67
+ pyvale/simtools.py,sha256=h_5MDg85tHLjkP77JQ_1k1VxU89HCdJosgylPFdruPo,2272
53
68
  pyvale/visualexpplotter.py,sha256=szJLchLXWjok3Nia0sl8v2amfePLUFLJbQtjkOWqyWs,7910
54
69
  pyvale/visualimagedef.py,sha256=xlcT51guewx2AlWZlZ70RcfqgcghtO_E51kmM2G0xWM,2823
55
70
  pyvale/visualimages.py,sha256=6u0FheaBdSLXYUBGOCTf-Zf7ylAYgY0HKXXj_PH0aIQ,2849
56
71
  pyvale/visualopts.py,sha256=1jYi6qKWGcMSwKnFTcBtLdv-GRUJ-pnS3DOq5sr-J-U,14928
57
72
  pyvale/visualsimanimator.py,sha256=ZhQyxaab82tAN3sVeIUs-Pg-3WggwsF3k-HS9e4MNFk,4456
73
+ pyvale/visualsimplotter.py,sha256=m5mPIMGvSF4hhefTilkhBhii9t6rcoRKkqSdx5MugSs,6807
58
74
  pyvale/visualsimsensors.py,sha256=hINsI73NQvHunJ3lUZX-F0RrN_u6gzF0tMHZwsxHr34,12405
59
75
  pyvale/visualtools.py,sha256=9nDMZHXv0N7HBl0vOL9QLeHlayYl6ng4dx2-5i2TJjw,4816
60
76
  pyvale/visualtraceplotter.py,sha256=y-GjToF5U2VIGO-YwR_tKi_vMUO3ayhaohaWrWNUFgQ,5487
61
- pyvale/cython/rastercyth.c,sha256=f6TYhK7o9cC48w9oU8LUrF7eDz7eCZrYGLVNExah1ng,1234060
62
- pyvale/cython/rastercyth.cpython-311-i386-linux-musl.so,sha256=R3oYCY0AWezr00x0mRFLd-i3CpHcztr8avJbkWz-M6s,1358124
63
- pyvale/cython/rastercyth.py,sha256=ji6XpRUk-POdwI0Oh1PdFBUCnY4RMiZEO77MyXTM6d0,24479
77
+ pyvale/cython/rastercyth.c,sha256=qdecKTQ-QfsuTr-5CSN99cnNe7-zxL0fwq9y6oLrhsU,1250303
78
+ pyvale/cython/rastercyth.cpython-311-i386-linux-musl.so,sha256=kkQv8veiQoY5YhLNk6JfPEDMi5YRS75Ktkfisn8tDk4,1347296
79
+ pyvale/cython/rastercyth.py,sha256=b-KJDysrc_LxBnWirXkNhKNy6jZ-d4xTFrXGSgDCp34,26411
64
80
  pyvale/data/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
65
81
  pyvale/data/cal_target.tiff,sha256=4dbDIm7h7gYDJOhWOZXO-rs162ZLqxb1bdrbTykMEMk,4718962
66
82
  pyvale/data/case00_HEX20_out.e,sha256=wTdEWvGyQBhP1D1bIy5YZKu7I_QISWLEjl9K9VOOnbI,241172
@@ -78,39 +94,58 @@ pyvale/data/case18_3_out.e,sha256=8dTnKLQOSCL-gle-1shL68GBQPW1go05aDvjO6AawAg,14
78
94
  pyvale/data/case25_out.e,sha256=LWnCKG7GDUvzCs7GI1h25dhIhq6_qJgXnkhiTmdynPw,93748
79
95
  pyvale/data/case26_out.e,sha256=UAoxPN0K1bbk9R0r2hDehuQZVCPHcAV5NA1PckRyXDY,225744
80
96
  pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff,sha256=cRmbiTzxc8QJ_aO9dc7YT21lV1c9K7pH-L9uQZvUQ8M,5046422
97
+ pyvale/data/plate_hole_def0000.tiff,sha256=R9qDRQxVKnAIQQWDALDM5leIvb3NaGtjXEEuX0ykI_s,1601722
98
+ pyvale/data/plate_hole_def0001.tiff,sha256=4LmjGiqVCwxEG2rEDf-XU9Lw6f7NaUL3nAkOQ1yrDvE,1601722
99
+ pyvale/data/plate_hole_ref0000.tiff,sha256=nJ3WP5Aq7sgy02LTW8ThdZkLt_0Jls26e1--TZ1Ub4M,1601722
100
+ pyvale/data/plate_rigid_def0000.tiff,sha256=YlGU0lIlkh61StQku7lK7P6oDZDa-g5R98fUrR4WnO0,1601722
101
+ pyvale/data/plate_rigid_def0001.tiff,sha256=CFIveUYubbbUDpQfnsO0iPaBTzwbjQbcAOCG1mm2040,1601722
102
+ pyvale/data/plate_rigid_ref0000.tiff,sha256=EolObMm5QzGeewgq3bLhlkHor_6ASuNoYrV2AbYrFro,1601722
103
+ pyvale/dic/cpp/dicbruteforce.cpp,sha256=9Z9jx-K6_wgGX_Ezp1lf1ulqkLQ6X6EaOLwXAxw_Aeg,11915
104
+ pyvale/dic/cpp/dicfourier.cpp,sha256=W3RjzqsbUpNSxfozObFJQnpcAGeqWcJpiSXKoaJr-cs,23548
105
+ pyvale/dic/cpp/dicinterpolator.cpp,sha256=HkA_qKp70IePO6w50om13L5yqQqYDiYQD2V9i6klhhM,20325
106
+ pyvale/dic/cpp/dicmain.cpp,sha256=qZvuC3m42Dg-_cjTVoh8dThtw6enqqTCvhIHSEKwvxA,8860
107
+ pyvale/dic/cpp/dicoptimizer.cpp,sha256=krR7jLdLQEvX8iwNWjMKDseXu5Ka5szJTYrbcjOThak,25929
108
+ pyvale/dic/cpp/dicrg.cpp,sha256=uicGKxOAgsTZgOpG18NDN-SoD0pJFu2wYGhP1Xg3S9U,4351
109
+ pyvale/dic/cpp/dicscanmethod.cpp,sha256=MjzxECbRkn-fR211xJRDB4lsn-lf6dqHYXTOrLr2D-A,26766
110
+ pyvale/dic/cpp/dicsmooth.cpp,sha256=sKOyPTEBAcPzJjSc4jAl_JCLFBz5eJ8EXYh0iT7i0L4,4445
111
+ pyvale/dic/cpp/dicstrain.cpp,sha256=wrcRcx_Jn5EvRLlXc_zVJ15VJVpRBHLLpMbcot8UOCM,14017
112
+ pyvale/dic/cpp/dicutil.cpp,sha256=UEN3_Fm4gB_CRJY1wPvEUGGjjoBNwpPridPz32yPWPA,19829
81
113
  pyvale/examples/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
82
- pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=j9g-rhWf4-gW2DwDr2ur-DOkgVYYx-rH01aAQ87Re5U,6146
83
- pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=HzoJjJ_Pq1ukIeT7nn1Ao7hcywnfxx3K9MImD74eLGw,7145
84
- pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=IfVtucEdaI-k1CsNwcboOCPmU0kM4tKIOQBoRDfw21M,9765
85
- pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=BdFijiIzsZwExNq1xQFm8ut-sr3m1cZoUaDd7Eljcf4,6811
86
- pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=xTYASxpj5hhvxVoZbcmnGQVOR5_XfM_D-Ei44HttUH4,7344
87
- pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=5Q2n0aqDzOUheYgchGHWBn-kVPPce8MaEIIl_qcIVQw,5209
88
- pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=TbdBvL0SmsbbGfylwe-WSKSJmT8yoy-4I5c_fNk6KEg,5442
89
- pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=HVb-d-TPOCjLsNf16N6bIUG35FUkf4Jb9136XANgiNo,4934
90
- pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=xhyVYSBp8LuOuhrGhssaPwF_dyp3qUhg2ZXNMsM-grY,5107
91
- pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=PuZs3cVeb9Nol_9c6WgyD8TyA8UMDjs78AwdG-vBJqc,5643
92
- pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=q6kMdly2b-SSUbeaTRq0w5RZyeSAcwgEWyPKdy4ttI8,8383
93
- pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=LzI9P4lCAfzuwuE4DdGuw10WnmfS6Qk8CusOiS-zPyI,4439
94
- pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=1bfgLAFf8M2LwqxEhUqErdc3hrvlEyZU0jrxPhAP7Dg,5071
95
- pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=vH2Trr3VGWhdPJM_3TNdfDXsOk-kDowftphPsqVoep8,4802
96
- pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=0g0hxeIosc8RN7hN2v8qMpN23FOjUlKzjds7-K7M_Dw,8420
97
- pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=SgO_luAOmAY7ZBuMZpPPnIYHwJsaDfhxonnIPh3iwwo,7926
98
- pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=u81CMU9P9q5vgrnBP1MXo34V_zo3PoN5XAtpi8vzpSU,11163
114
+ pyvale/examples/basics/ex1_1_basicscalars_therm2d.py,sha256=tR8wGXoHUXaOCsJzSTFzgiTJpmoyVg6FCKoLnCmbq-4,5893
115
+ pyvale/examples/basics/ex1_2_sensormodel_therm2d.py,sha256=ar7w73Nt1rjZiw8ma3nIf7rTbVHhmCRgAdcNLb7tlUg,5898
116
+ pyvale/examples/basics/ex1_3_customsens_therm3d.py,sha256=vGxK0UxYVD4FgUzf8T-NoWjathH9vKRMzIC6oaGuCGY,8912
117
+ pyvale/examples/basics/ex1_4_basicerrors_therm3d.py,sha256=8_atq2znFiaP0f0xC5CmZkTo4fm77uDFxfSX9oXoBfU,6249
118
+ pyvale/examples/basics/ex1_5_fielderrs_therm3d.py,sha256=P8bd7Th5UVfILKeK79Q34GovmmntNPBmLPJLxefu6c0,6742
119
+ pyvale/examples/basics/ex1_6_caliberrs_therm2d.py,sha256=ezm3d-JVvOJ269mHKqLn_6ErTe6lry2S1jAAu5WE954,4718
120
+ pyvale/examples/basics/ex1_7_spatavg_therm2d.py,sha256=K5rqGqggKDDgWJy1Oz9KrXIhuc3RbfmP6ECQMwroN0U,4941
121
+ pyvale/examples/basics/ex2_1_basicvectors_disp2d.py,sha256=zt2o5Cyc65VPVNiq4Et4ldpsvIeKolPQcc-ozb30k60,4474
122
+ pyvale/examples/basics/ex2_2_vectorsens_disp2d.py,sha256=b5aHvgcSCBIFe8RwkXEGFgamc_2W7ySCtEV3HSxqYGw,4813
123
+ pyvale/examples/basics/ex2_3_sensangle_disp2d.py,sha256=KJ0__mipvtZRbdyg7yrE7lJy4VM7V6y_SzJ0jTSKzk0,5121
124
+ pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py,sha256=GsbEouFHSEEEikeFWod4ahLMrwdwBXE3Sq668J83QHQ,7710
125
+ pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py,sha256=YsApZvYMaKW-C7TVuSzPfhxwZyMM07997OG_qvAbmWE,4022
126
+ pyvale/examples/basics/ex3_1_basictensors_strain2d.py,sha256=fQe308dmM5gTHZ78uBjRBwWUZ5sF745rFpPYlg3COGg,4601
127
+ pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py,sha256=4f7H7VSWHRoMEIt_WLqjjbVmBml-dmGT5ROS0vFdeb4,4522
128
+ pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py,sha256=ztMltP5MV9wGjCARALkIf0b78MjYMIAYOtgN8c1AF0c,7902
129
+ pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py,sha256=qnr-eWTgwHFTNbqvxsLFWDdH1_Jaerll72Eg5xoNIvE,7465
130
+ pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py,sha256=rbaa85ytr7ZEcO3MrFqvSdvpElMzvZaOr9c8ZgPbiC0,10457
131
+ pyvale/examples/dic/ex1_region_of_interest.py,sha256=_sM9gshIz_NIRyeu9_EtWYQCfr-FT-X-fbUd4Bo4-vw,3330
132
+ pyvale/examples/dic/ex2_plate_with_hole.py,sha256=xNfotyAzCMRpsaHSUDNp8uxaukAaL3tkeWWGtMN8bUE,6048
133
+ pyvale/examples/dic/ex3_plate_with_hole_strain.py,sha256=R_B94dvc5eZHXLTzeZcNpGL6ynWby0ONGTBX_YuRixQ,3436
134
+ pyvale/examples/dic/ex4_dic_blender.py,sha256=XcKdDyxfvrc4RBXoADIMfD7x-x0HKm20j0VvJJXWQ9k,3152
135
+ pyvale/examples/dic/ex5_dic_challenge.py,sha256=JJNAVre6evK42_CY6r7-ZDwnEYU7XFZZHyggT82Z0us,3966
99
136
  pyvale/examples/genanalyticdata/ex1_1_scalarvisualisation.py,sha256=4AeQXlzKAgXA3SjXpKoj2Pi9WVHDPlWp2N3tNdYf4M0,938
100
137
  pyvale/examples/genanalyticdata/ex1_2_scalarcasebuild.py,sha256=E5eWebp-TQBH-46KqW5JfNZgo7OHpt_D-Yx_bVCsLgk,1272
101
138
  pyvale/examples/genanalyticdata/ex2_1_analyticsensors.py,sha256=-IoroBX6QKvlMUdnHWQLEF9JS56mvKmTk_7f9fpzqbQ,2845
102
- pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=hTSeDsDkDywl1M4zYelKE_u8RmX2qR5zwSYVrOoxwxg,2613
103
- pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=EN4hT5gS0wWfj-rthlw6UANCbnKZG_MAG2zJSZ66kcA,5023
104
- pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=BeWLlwcVvzH79vZ8bZ8A_a6Cfk4SgQfz7sEcvELanCk,5074
105
- pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=5PkiAm6C_Rz5MZvc0uJ76paB8nurh93hq8aqBU0Roro,5458
106
- pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=kPCCiTckNAB6taQLiflFWmmtV2fWQKcwmxQmCcf2jmI,5629
107
- pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=oXpVs7kTVsNgJU2ou1SOYOunDKheHaQnLU2vrMBfC7E,5258
108
- pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=nkw42wsiLmVhNJcZpEySPrnTntJ6f6mS4ov5iLIxsRA,4848
109
- pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=TpNMhpixM0OnUT4q2l2eoVqx53j9A-pYLoKIZ7yRKt4,7437
110
- pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=oyZYzYmkEyNUYwTBSHgWcrG4lKml7NKDO1sdlpKk8wE,6674
111
- pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=0n_LDEHspZ5zwWzf5tvpaLhXFxWy_nHXJarl0XaZF5I,6756
112
- pyvale/examples/visualisation/ex1_1_plot_traces.py,sha256=Vx4ZWOxwncyUHtXAOOR1YqEUFon8gkaTZ1Ne_K6AfO0,3252
113
- pyvale/examples/visualisation/ex2_1_animate_sim.py,sha256=OdQpu33z5QZYHYdZdsntBc8K8gXCNFVCylNqoQv5RvA,2985
139
+ pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=VpiUrfQ_LqrMtfleob5rv_1uL6PvZvZqTXxE5URFn0U,2706
140
+ pyvale/examples/renderblender/ex1_1_blenderscene.py,sha256=cP0edjPmmLdI9fZlYf8T1luzErsEuYudiDgGWhSyceM,6921
141
+ pyvale/examples/renderblender/ex1_2_blenderdeformed.py,sha256=iNXeHCvPnP1ZurJsynU4qMbluLugwqYE-cixE3bfgLc,7006
142
+ pyvale/examples/renderblender/ex2_1_stereoscene.py,sha256=55QPd21xNAgDHdAiyVE1FUUjLNQHpi6P22Rg_f9CKZc,8619
143
+ pyvale/examples/renderblender/ex2_2_stereodeformed.py,sha256=tqLNvdUpnMVQhHLFMkBCK9Wz6t53fWBXGbLCA0_Yg9A,9067
144
+ pyvale/examples/renderblender/ex3_1_blendercalibration.py,sha256=AES91WSQg2hj39vpBlX76t8f-4pdte0bss9C6724UPw,7857
145
+ pyvale/examples/renderrasterisation/ex_rastenp.py,sha256=G2QkitHDF79Hd1cgogsuKy-nint9uT8vzlbCkUds8U4,6211
146
+ pyvale/examples/renderrasterisation/ex_rastercyth_oneframe.py,sha256=bs-gsIEZSMHA16S4Rhfs8TpR-J9ORrVWwsER9QnnWF4,7268
147
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_cypara.py,sha256=QQ7Wl98iZb9ulu855uyiZyyli20gwRzHZB_7hiKcdPw,6660
148
+ pyvale/examples/renderrasterisation/ex_rastercyth_static_pypara.py,sha256=PseFMWPXQBeYpzmGUIF3_JTiaoJgHhkYgkGQI17cYa8,6740
114
149
  pyvale/simcases/case00_HEX20.i,sha256=UiKSQOGgAQwS3cWLxSMVixmp-1RzpZS3nKxVaIgWWKg,5149
115
150
  pyvale/simcases/case00_HEX27.i,sha256=MJ3jXHf8hDQP-Y3Ew9FU3EAnD-7E4l8C4QjdeAoRrFc,5149
116
151
  pyvale/simcases/case00_HEX8.i,sha256=R4NiWVjoyG8_y6Hhh_I_QySYzbEQ70QuiD0I4auA4Bc,5159
@@ -152,7 +187,7 @@ pyvale/simcases/case19.i,sha256=jRDSAWaC-bTxCeFgSyj1gapbo6iqteySuPR5QhPLKqo,2191
152
187
  pyvale/simcases/case20.geo,sha256=TKBX8JKDwXKyXfXCi6fmOzDV_7_1Kpfpne9yeute11o,9102
153
188
  pyvale/simcases/case20.i,sha256=wAQGXJbY_VniZPG-PzeL5-Sk6_ZUiwuf8zRV3c8nEz0,6655
154
189
  pyvale/simcases/case21.geo,sha256=AzFNKkQp7-a9PojtR4y0GNI6g12BLvTRvkHDglYPRFQ,2387
155
- pyvale/simcases/case21.i,sha256=QjKU97PMsswLkaGkutC7gdJhGY8lRq5VEf5b-gRhT4E,3417
190
+ pyvale/simcases/case21.i,sha256=0W9r02t2sO3ksNvrgnBUr55Aq4gBP7t_MIeU2PxbIHk,3415
156
191
  pyvale/simcases/case22.geo,sha256=3OHJhFTm9P_G6vIB9fqgcpeT1DQt5xq5tWxOsRhvj2A,2491
157
192
  pyvale/simcases/case22.i,sha256=b3IeO0hs4IU0PJlS_MIkF1gtPkKYQXklfNs5rhy9KNc,3189
158
193
  pyvale/simcases/case23.geo,sha256=53NyuNJrPBgUWRHhgz0zS2fCZ8lavn_flpnfLUO2GNY,5448
@@ -163,12 +198,15 @@ pyvale/simcases/case25.geo,sha256=k33GLvsApxTbxDbnOGueA3rTIazqcgYQ5DP37kCAPA4,24
163
198
  pyvale/simcases/case25.i,sha256=8lArbbZOCJ4aLuJCaEO5FW1kzJI4JquOmbA-nVpNRRI,2994
164
199
  pyvale/simcases/case26.geo,sha256=7Qj0siF2FqgElxcmtX_7UDp4tdX6scnJgKffpP6iRQY,5468
165
200
  pyvale/simcases/case26.i,sha256=V-pS7MeAo9vl3QUDtu-i6MQyeftryxSj0r8n7t6hY0k,2992
166
- pyvale/simcases/run_1case.py,sha256=QmmZcawWmfkmImciEqM-8NedwlzuIOgLT2Te3fVb574,1928
201
+ pyvale/simcases/run_1case.py,sha256=Hbj5tkFGs99ZEbQ7raif0IeaUXWmVImPX0Gh3EfSkEQ,2038
167
202
  pyvale/simcases/run_all_cases.py,sha256=9b3JYcxC8PA2CR-htum7wCICwwnLNeC01xAhk0m6yxw,1903
168
203
  pyvale/simcases/run_build_case.py,sha256=IlyZC_VU095ayi7nz57xSSboTeJB54y7nsQXpBTUXFM,1938
169
204
  pyvale/simcases/run_example_cases.py,sha256=l5KOQvPMNRUkJMotaReG2nmrFtVBNWCwKVezNyRwKb0,1910
170
- pyvale-2025.5.3.dist-info/METADATA,sha256=yMGKopF-CTHHsZHzwzS1fv05ArhpJTVFSj4z7QM4S0M,7480
171
- pyvale-2025.5.3.dist-info/WHEEL,sha256=QrLtnJOm69bF55DVwgTvoZE5XRr5OJ7dg-9DbFKJ2f4,110
172
- pyvale-2025.5.3.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
173
- pyvale-2025.5.3.dist-info/RECORD,,
174
- pyvale-2025.5.3.dist-info/licenses/LICENSE,sha256=h2qWsRIazuLLhALyUsCP6aE0DFcswL9SSSt9sgMzZi4,1099
205
+ pyvale.libs/libgcc_s-887de51c.so.1,sha256=RNCpguSD0HdFtlL1g8NK7PFi5CjUceWeO3d0Hf_dMQ0,218145
206
+ pyvale.libs/libgomp-24921df4.so.1.0.0,sha256=lMjVoH2P173wo6IhKuey57hygWEZMM6EdzQwRh8s4sc,365613
207
+ pyvale.libs/libstdc++-d6415257.so.6.0.33,sha256=meIiZn0YlC5otOd-KKSYWFNdlouafStLQyPhNs_zcYQ,3597909
208
+ pyvale-2025.7.0.dist-info/METADATA,sha256=2EMm9ruK8W9KOWxDCfRibI8tu5dGoemtS5voLp90V8U,6387
209
+ pyvale-2025.7.0.dist-info/WHEEL,sha256=6ltumPE74Em2X1OXYv5iIjaGYcDTCG-wPLy9Dk1DJEw,110
210
+ pyvale-2025.7.0.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
211
+ pyvale-2025.7.0.dist-info/RECORD,,
212
+ pyvale-2025.7.0.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-musllinux_1_2_i686
5
5
 
Binary file
Binary file
Binary file
@@ -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()