pyvale 2025.4.0__tar.gz → 2025.5.1__tar.gz

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 (219) hide show
  1. {pyvale-2025.4.0/src/pyvale.egg-info → pyvale-2025.5.1}/PKG-INFO +17 -14
  2. {pyvale-2025.4.0 → pyvale-2025.5.1}/README.md +14 -13
  3. {pyvale-2025.4.0 → pyvale-2025.5.1}/pyproject.toml +4 -2
  4. pyvale-2025.5.1/src/pyvale/__init__.py +89 -0
  5. pyvale-2025.5.1/src/pyvale/analyticmeshgen.py +102 -0
  6. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/analyticsimdatafactory.py +44 -16
  7. pyvale-2025.5.1/src/pyvale/analyticsimdatagenerator.py +323 -0
  8. pyvale-2025.5.1/src/pyvale/blendercalibrationdata.py +15 -0
  9. pyvale-2025.5.1/src/pyvale/blenderlightdata.py +26 -0
  10. pyvale-2025.5.1/src/pyvale/blendermaterialdata.py +15 -0
  11. pyvale-2025.5.1/src/pyvale/blenderrenderdata.py +30 -0
  12. pyvale-2025.5.1/src/pyvale/blenderscene.py +488 -0
  13. pyvale-2025.5.1/src/pyvale/blendertools.py +420 -0
  14. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/camera.py +15 -15
  15. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/cameradata.py +27 -22
  16. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/cameradata2d.py +8 -6
  17. pyvale-2025.5.1/src/pyvale/camerastereo.py +217 -0
  18. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/cameratools.py +220 -26
  19. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/cython/rastercyth.py +11 -7
  20. pyvale-2025.5.1/src/pyvale/data/__init__.py +5 -0
  21. pyvale-2025.5.1/src/pyvale/data/cal_target.tiff +0 -0
  22. pyvale-2025.5.1/src/pyvale/data/case00_HEX20_out.e +0 -0
  23. pyvale-2025.5.1/src/pyvale/data/case00_HEX27_out.e +0 -0
  24. pyvale-2025.5.1/src/pyvale/data/case00_HEX8_out.e +0 -0
  25. pyvale-2025.5.1/src/pyvale/data/case00_TET10_out.e +0 -0
  26. pyvale-2025.5.1/src/pyvale/data/case00_TET14_out.e +0 -0
  27. pyvale-2025.5.1/src/pyvale/data/case00_TET4_out.e +0 -0
  28. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/dataset.py +91 -16
  29. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorcalculator.py +13 -16
  30. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errordriftcalc.py +14 -14
  31. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorintegrator.py +25 -28
  32. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorrand.py +39 -46
  33. pyvale-2025.5.1/src/pyvale/errorsyscalib.py +134 -0
  34. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorsysdep.py +25 -29
  35. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorsysfield.py +59 -52
  36. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/errorsysindep.py +85 -182
  37. pyvale-2025.5.1/src/pyvale/examples/__init__.py +5 -0
  38. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_1_basicscalars_therm2d.py +131 -0
  39. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_2_sensormodel_therm2d.py +158 -0
  40. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_3_customsens_therm3d.py +216 -0
  41. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_4_basicerrors_therm3d.py +153 -0
  42. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_5_fielderrs_therm3d.py +168 -0
  43. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_6_caliberrs_therm2d.py +133 -0
  44. pyvale-2025.5.1/src/pyvale/examples/basics/ex1_7_spatavg_therm2d.py +123 -0
  45. pyvale-2025.5.1/src/pyvale/examples/basics/ex2_1_basicvectors_disp2d.py +112 -0
  46. pyvale-2025.5.1/src/pyvale/examples/basics/ex2_2_vectorsens_disp2d.py +111 -0
  47. pyvale-2025.5.1/src/pyvale/examples/basics/ex2_3_sensangle_disp2d.py +139 -0
  48. pyvale-2025.5.1/src/pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py +196 -0
  49. pyvale-2025.5.1/src/pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py +109 -0
  50. pyvale-2025.5.1/src/pyvale/examples/basics/ex3_1_basictensors_strain2d.py +114 -0
  51. pyvale-2025.5.1/src/pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py +111 -0
  52. pyvale-2025.5.1/src/pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py +182 -0
  53. pyvale-2025.5.1/src/pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py +171 -0
  54. pyvale-2025.5.1/src/pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py +252 -0
  55. {pyvale-2025.4.0/src/pyvale/examples/analyticdatagen → pyvale-2025.5.1/src/pyvale/examples/genanalyticdata}/ex1_1_scalarvisualisation.py +6 -9
  56. {pyvale-2025.4.0/src/pyvale/examples/analyticdatagen → pyvale-2025.5.1/src/pyvale/examples/genanalyticdata}/ex1_2_scalarcasebuild.py +8 -11
  57. {pyvale-2025.4.0/src/pyvale/examples/analyticdatagen → pyvale-2025.5.1/src/pyvale/examples/genanalyticdata}/ex2_1_analyticsensors.py +9 -12
  58. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +8 -15
  59. pyvale-2025.5.1/src/pyvale/examples/renderblender/ex1_1_blenderscene.py +121 -0
  60. pyvale-2025.5.1/src/pyvale/examples/renderblender/ex1_2_blenderdeformed.py +119 -0
  61. pyvale-2025.5.1/src/pyvale/examples/renderblender/ex2_1_stereoscene.py +128 -0
  62. pyvale-2025.5.1/src/pyvale/examples/renderblender/ex2_2_stereodeformed.py +131 -0
  63. pyvale-2025.5.1/src/pyvale/examples/renderblender/ex3_1_blendercalibration.py +120 -0
  64. {pyvale-2025.4.0/src/pyvale/examples/rasterisation → pyvale-2025.5.1/src/pyvale/examples/renderrasterisation}/ex_rastenp.py +6 -7
  65. {pyvale-2025.4.0/src/pyvale/examples/rasterisation → pyvale-2025.5.1/src/pyvale/examples/renderrasterisation}/ex_rastercyth_oneframe.py +5 -7
  66. {pyvale-2025.4.0/src/pyvale/examples/rasterisation → pyvale-2025.5.1/src/pyvale/examples/renderrasterisation}/ex_rastercyth_static_cypara.py +6 -13
  67. {pyvale-2025.4.0/src/pyvale/examples/rasterisation → pyvale-2025.5.1/src/pyvale/examples/renderrasterisation}/ex_rastercyth_static_pypara.py +9 -12
  68. pyvale-2025.4.0/src/pyvale/examples/ex1_4_thermal2d.py → pyvale-2025.5.1/src/pyvale/examples/visualisation/ex1_1_plot_traces.py +33 -20
  69. pyvale-2025.4.0/src/pyvale/examples/features/ex_animation_tools_3dmonoblock.py → pyvale-2025.5.1/src/pyvale/examples/visualisation/ex2_1_animate_sim.py +37 -31
  70. pyvale-2025.5.1/src/pyvale/experimentsimulator.py +175 -0
  71. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/field.py +6 -14
  72. pyvale-2025.5.1/src/pyvale/fieldconverter.py +351 -0
  73. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/fieldsampler.py +9 -10
  74. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/fieldscalar.py +17 -18
  75. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/fieldtensor.py +23 -26
  76. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/fieldtransform.py +9 -5
  77. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/fieldvector.py +14 -16
  78. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/generatorsrandom.py +29 -52
  79. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/imagedef2d.py +11 -8
  80. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/integratorfactory.py +12 -13
  81. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/integratorquadrature.py +57 -32
  82. pyvale-2025.5.1/src/pyvale/integratorrectangle.py +165 -0
  83. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/integratorspatial.py +9 -10
  84. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/integratortype.py +7 -8
  85. pyvale-2025.5.1/src/pyvale/output.py +17 -0
  86. pyvale-2025.5.1/src/pyvale/pyvaleexceptions.py +11 -0
  87. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/raster.py +8 -8
  88. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/rastercy.py +11 -10
  89. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/rasternp.py +12 -13
  90. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/rendermesh.py +10 -19
  91. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/sensorarray.py +7 -8
  92. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/sensorarrayfactory.py +64 -78
  93. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/sensorarraypoint.py +39 -41
  94. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/sensordata.py +7 -8
  95. pyvale-2025.5.1/src/pyvale/sensordescriptor.py +213 -0
  96. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/sensortools.py +8 -9
  97. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case00_HEX20.i +5 -5
  98. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case00_HEX27.i +5 -5
  99. pyvale-2025.5.1/src/pyvale/simcases/case00_HEX8.i +242 -0
  100. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case00_TET10.i +2 -2
  101. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case00_TET14.i +2 -2
  102. pyvale-2025.5.1/src/pyvale/simcases/case00_TET4.i +242 -0
  103. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/run_1case.py +1 -1
  104. pyvale-2025.5.1/src/pyvale/simtools.py +67 -0
  105. pyvale-2025.5.1/src/pyvale/visualexpplotter.py +191 -0
  106. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/visualimagedef.py +13 -10
  107. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/visualimages.py +10 -9
  108. pyvale-2025.5.1/src/pyvale/visualopts.py +493 -0
  109. {pyvale-2025.4.0/src/pyvale/core → pyvale-2025.5.1/src/pyvale}/visualsimanimator.py +47 -19
  110. pyvale-2025.5.1/src/pyvale/visualsimsensors.py +318 -0
  111. pyvale-2025.5.1/src/pyvale/visualtools.py +136 -0
  112. pyvale-2025.5.1/src/pyvale/visualtraceplotter.py +142 -0
  113. {pyvale-2025.4.0 → pyvale-2025.5.1/src/pyvale.egg-info}/PKG-INFO +17 -14
  114. pyvale-2025.5.1/src/pyvale.egg-info/SOURCES.txt +175 -0
  115. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale.egg-info/requires.txt +2 -0
  116. pyvale-2025.4.0/src/pyvale/__init__.py +0 -75
  117. pyvale-2025.4.0/src/pyvale/core/__init__.py +0 -7
  118. pyvale-2025.4.0/src/pyvale/core/analyticmeshgen.py +0 -59
  119. pyvale-2025.4.0/src/pyvale/core/analyticsimdatagenerator.py +0 -160
  120. pyvale-2025.4.0/src/pyvale/core/cython/rastercyth.c +0 -32267
  121. pyvale-2025.4.0/src/pyvale/core/experimentsimulator.py +0 -99
  122. pyvale-2025.4.0/src/pyvale/core/fieldconverter.py +0 -154
  123. pyvale-2025.4.0/src/pyvale/core/integratorrectangle.py +0 -88
  124. pyvale-2025.4.0/src/pyvale/core/optimcheckfuncs.py +0 -153
  125. pyvale-2025.4.0/src/pyvale/core/sensordescriptor.py +0 -101
  126. pyvale-2025.4.0/src/pyvale/core/visualexpplotter.py +0 -151
  127. pyvale-2025.4.0/src/pyvale/core/visualopts.py +0 -180
  128. pyvale-2025.4.0/src/pyvale/core/visualsimplotter.py +0 -182
  129. pyvale-2025.4.0/src/pyvale/core/visualtools.py +0 -81
  130. pyvale-2025.4.0/src/pyvale/core/visualtraceplotter.py +0 -256
  131. pyvale-2025.4.0/src/pyvale/data/__init__.py +0 -7
  132. pyvale-2025.4.0/src/pyvale/examples/__init__.py +0 -7
  133. pyvale-2025.4.0/src/pyvale/examples/analyticdatagen/__init__.py +0 -7
  134. pyvale-2025.4.0/src/pyvale/examples/ex1_1_thermal2d.py +0 -89
  135. pyvale-2025.4.0/src/pyvale/examples/ex1_2_thermal2d.py +0 -111
  136. pyvale-2025.4.0/src/pyvale/examples/ex1_3_thermal2d.py +0 -113
  137. pyvale-2025.4.0/src/pyvale/examples/ex1_5_thermal2d.py +0 -105
  138. pyvale-2025.4.0/src/pyvale/examples/ex2_1_thermal3d .py +0 -87
  139. pyvale-2025.4.0/src/pyvale/examples/ex2_2_thermal3d.py +0 -51
  140. pyvale-2025.4.0/src/pyvale/examples/ex2_3_thermal3d.py +0 -109
  141. pyvale-2025.4.0/src/pyvale/examples/ex3_1_displacement2d.py +0 -47
  142. pyvale-2025.4.0/src/pyvale/examples/ex3_2_displacement2d.py +0 -79
  143. pyvale-2025.4.0/src/pyvale/examples/ex3_3_displacement2d.py +0 -104
  144. pyvale-2025.4.0/src/pyvale/examples/ex3_4_displacement2d.py +0 -105
  145. pyvale-2025.4.0/src/pyvale/examples/ex4_1_strain2d.py +0 -57
  146. pyvale-2025.4.0/src/pyvale/examples/ex4_2_strain2d.py +0 -79
  147. pyvale-2025.4.0/src/pyvale/examples/ex4_3_strain2d.py +0 -100
  148. pyvale-2025.4.0/src/pyvale/examples/ex5_1_multiphysics2d.py +0 -78
  149. pyvale-2025.4.0/src/pyvale/examples/ex6_1_multiphysics2d_expsim.py +0 -118
  150. pyvale-2025.4.0/src/pyvale/examples/ex6_2_multiphysics3d_expsim.py +0 -158
  151. pyvale-2025.4.0/src/pyvale/examples/features/__init__.py +0 -7
  152. pyvale-2025.4.0/src/pyvale/examples/features/ex_area_avg.py +0 -89
  153. pyvale-2025.4.0/src/pyvale/examples/features/ex_calibration_error.py +0 -108
  154. pyvale-2025.4.0/src/pyvale/examples/features/ex_chain_field_errs.py +0 -141
  155. pyvale-2025.4.0/src/pyvale/examples/features/ex_field_errs.py +0 -78
  156. pyvale-2025.4.0/src/pyvale/examples/features/ex_sensor_single_angle_batch.py +0 -110
  157. pyvale-2025.4.0/src/pyvale.egg-info/SOURCES.txt +0 -160
  158. {pyvale-2025.4.0 → pyvale-2025.5.1}/LICENSE +0 -0
  159. {pyvale-2025.4.0 → pyvale-2025.5.1}/setup.cfg +0 -0
  160. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case13_out.e +0 -0
  161. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case16_out.e +0 -0
  162. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case17_out.e +0 -0
  163. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case18_1_out.e +0 -0
  164. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case18_2_out.e +0 -0
  165. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case18_3_out.e +0 -0
  166. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case25_out.e +0 -0
  167. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/case26_out.e +0 -0
  168. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff +0 -0
  169. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case01.i +0 -0
  170. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case02.i +0 -0
  171. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case03.i +0 -0
  172. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case04.i +0 -0
  173. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case05.i +0 -0
  174. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case06.i +0 -0
  175. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case07.geo +0 -0
  176. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case07.i +0 -0
  177. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case08.geo +0 -0
  178. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case08.i +0 -0
  179. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case09.geo +0 -0
  180. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case09.i +0 -0
  181. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case10.geo +0 -0
  182. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case10.i +0 -0
  183. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case11.geo +0 -0
  184. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case11.i +0 -0
  185. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case12.geo +0 -0
  186. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case12.i +0 -0
  187. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case13.i +0 -0
  188. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case14.i +0 -0
  189. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case15.geo +0 -0
  190. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case15.i +0 -0
  191. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case16.geo +0 -0
  192. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case16.i +0 -0
  193. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case17.geo +0 -0
  194. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case17.i +0 -0
  195. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case18.i +0 -0
  196. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case18_1.i +0 -0
  197. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case18_2.i +0 -0
  198. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case18_3.i +0 -0
  199. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case19.geo +0 -0
  200. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case19.i +0 -0
  201. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case20.geo +0 -0
  202. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case20.i +0 -0
  203. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case21.geo +0 -0
  204. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case21.i +0 -0
  205. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case22.geo +0 -0
  206. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case22.i +0 -0
  207. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case23.geo +0 -0
  208. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case23.i +0 -0
  209. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case24.geo +0 -0
  210. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case24.i +0 -0
  211. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case25.geo +0 -0
  212. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case25.i +0 -0
  213. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case26.geo +0 -0
  214. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/case26.i +0 -0
  215. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/run_all_cases.py +0 -0
  216. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/run_build_case.py +0 -0
  217. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale/simcases/run_example_cases.py +0 -0
  218. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale.egg-info/dependency_links.txt +0 -0
  219. {pyvale-2025.4.0 → pyvale-2025.5.1}/src/pyvale.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyvale
3
- Version: 2025.4.0
3
+ Version: 2025.5.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
@@ -44,15 +44,19 @@ Requires-Dist: numba>=0.59.1
44
44
  Requires-Dist: pymoo>=0.6.1.3
45
45
  Requires-Dist: Cython>=3.0.0
46
46
  Requires-Dist: bpy>=4.2.0
47
+ Requires-Dist: pyyaml>=6.0.2
48
+ Requires-Dist: pytest>=8.3.5
47
49
  Dynamic: license-file
48
50
 
49
51
  # pyvale
50
52
  The python validation engine (`pyvale`): An all-in-one package for sensor simulation, sensor uncertainty quantification, sensor placement optimisation and simulation calibration/validation.​ Used to simulate experimental data from an input multi-physics simulation by explicitly modelling sensors with realistic uncertainties. Useful for experimental design, sensor placement optimisation, testing simulation validation metrics and virtually testing digital shadows/twins.
51
53
 
52
54
  ## Quick Demo: Simulating Point Sensors
53
- Here we demonstrate how `pyvale` can be used to simulate thermocouples and strain gauges applied to a [MOOSE](https://mooseframework.inl.gov/index.html) thermo-mechanical simulation of a fusion divertor armour heatsink. The figures below show visualisations of the virtual thermocouple and strain gauge locations on the simualtion mesh as well as time traces for each sensor over a series of simulated experiments. The code to run the simulated experiments and produce the output shown here comes from [this example](https://github.com/Computer-Aided-Validation-Laboratory/pyvale/blob/main/src/pyvale/examples/ex6_2_multiphysics3d_expsim.py).
55
+ 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.
54
56
 
55
- |![fig_thermomech3d_tc_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|![fig_thermomech3d_sg_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|
57
+ 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).
58
+
59
+ |![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)|
56
60
  |--|--|
57
61
  |*Visualisation of the thermcouple locations.*|*Visualisation of the strain gauge locations.*|
58
62
 
@@ -118,21 +122,20 @@ pip install -e .
118
122
  pip install -e ./dependencies/mooseherder
119
123
  ```
120
124
 
121
- ### MOOSE
125
+ ### Running Physics Simulations with MOOSE
122
126
  `pyvale` come pre-packaged with example `moose` physics simulation outputs (as *.e exodus files) to demonstrate its functionality. If you need to run additional simulation cases we recommend `proteus` (https://github.com/aurora-multiphysics/proteus) which has build scripts for common linux distributions.
123
127
 
124
- ## Getting Started
125
- The examples folder in "pyvale/examples" includes a sequence of examples of increasing complexity that demonstrate the functionality of `pyvale`.
126
-
127
128
  ## Contributors
128
129
  The Computer Aided Validation Team at UKAEA:
129
- - Lloyd Fletcher (ScepticalRabbit), UK Atomic Energy Authority
130
- - John Charlton (coolmule0), UK Atomic Energy Authority
131
- - Joel Hirst (JoelPhys), UK Atomic Energy Authority
132
- - Lorna Sibson (lornasibson), UK Atomic Energy Authority
133
- - Adel Tayeb (3adelTayeb), UK Atomic Energy Authority
134
- - Alex Marsh (alexmarsh2), UK Atomic Energy Authority
135
- - Rory Spencer (fusmatrs), UK Atomic Energy Authority
130
+ - Lloyd Fletcher ([ScepticalRabbit](https://github.com/ScepticalRabbit)), UK Atomic Energy Authority
131
+ - Joel Hirst ([JoelPhys](https://github.com/JoelPhys)), UK Atomic Energy Authority
132
+ - John Charlton ([coolmule0](https://github.com/coolmule0)), UK Atomic Energy Authority
133
+ - Lorna Sibson ([lornasibson](https://github.com/lornasibson)), UK Atomic Energy Authority
134
+ - Megan Sampson ([meganasampson](https://github.com/meganasampson)), UK Atomic Energy Authority
135
+ - Michael Atkinson ([mikesmic](https://github.com/mikesmic)), UK Atomic Energy Authority
136
+ - Adel Tayeb ([3adelTayeb](https://github.com/3adelTayeb)), UK Atomic Energy Authority
137
+ - Alex Marsh ([alexmarsh2](https://github.com/alexmarsh2)), UK Atomic Energy Authority
138
+ - Rory Spencer ([fusmatrs](https://github.com/orgs/Computer-Aided-Validation-Laboratory/people/fusmatrs)), UK Atomic Energy Authority
136
139
 
137
140
 
138
141
 
@@ -2,9 +2,11 @@
2
2
  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.
3
3
 
4
4
  ## Quick Demo: Simulating Point Sensors
5
- Here we demonstrate how `pyvale` can be used to simulate thermocouples and strain gauges applied to a [MOOSE](https://mooseframework.inl.gov/index.html) thermo-mechanical simulation of a fusion divertor armour heatsink. The figures below show visualisations of the virtual thermocouple and strain gauge locations on the simualtion mesh as well as time traces for each sensor over a series of simulated experiments. The code to run the simulated experiments and produce the output shown here comes from [this example](https://github.com/Computer-Aided-Validation-Laboratory/pyvale/blob/main/src/pyvale/examples/ex6_2_multiphysics3d_expsim.py).
5
+ 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.
6
6
 
7
- |![fig_thermomech3d_tc_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|![fig_thermomech3d_sg_vis](https://raw.githubusercontent.com/Computer-Aided-Validation-Laboratory/pyvale/main/images/thermomech3d_sg_vis.svg)|
7
+ 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).
8
+
9
+ |![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)|
8
10
  |--|--|
9
11
  |*Visualisation of the thermcouple locations.*|*Visualisation of the strain gauge locations.*|
10
12
 
@@ -70,21 +72,20 @@ pip install -e .
70
72
  pip install -e ./dependencies/mooseherder
71
73
  ```
72
74
 
73
- ### MOOSE
75
+ ### Running Physics Simulations with MOOSE
74
76
  `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.
75
77
 
76
- ## Getting Started
77
- The examples folder in "pyvale/examples" includes a sequence of examples of increasing complexity that demonstrate the functionality of `pyvale`.
78
-
79
78
  ## Contributors
80
79
  The Computer Aided Validation Team at UKAEA:
81
- - Lloyd Fletcher (ScepticalRabbit), UK Atomic Energy Authority
82
- - John Charlton (coolmule0), UK Atomic Energy Authority
83
- - Joel Hirst (JoelPhys), UK Atomic Energy Authority
84
- - Lorna Sibson (lornasibson), UK Atomic Energy Authority
85
- - Adel Tayeb (3adelTayeb), UK Atomic Energy Authority
86
- - Alex Marsh (alexmarsh2), UK Atomic Energy Authority
87
- - Rory Spencer (fusmatrs), UK Atomic Energy Authority
80
+ - Lloyd Fletcher ([ScepticalRabbit](https://github.com/ScepticalRabbit)), UK Atomic Energy Authority
81
+ - Joel Hirst ([JoelPhys](https://github.com/JoelPhys)), UK Atomic Energy Authority
82
+ - John Charlton ([coolmule0](https://github.com/coolmule0)), UK Atomic Energy Authority
83
+ - Lorna Sibson ([lornasibson](https://github.com/lornasibson)), UK Atomic Energy Authority
84
+ - Megan Sampson ([meganasampson](https://github.com/meganasampson)), UK Atomic Energy Authority
85
+ - Michael Atkinson ([mikesmic](https://github.com/mikesmic)), UK Atomic Energy Authority
86
+ - Adel Tayeb ([3adelTayeb](https://github.com/3adelTayeb)), UK Atomic Energy Authority
87
+ - Alex Marsh ([alexmarsh2](https://github.com/alexmarsh2)), UK Atomic Energy Authority
88
+ - Rory Spencer ([fusmatrs](https://github.com/orgs/Computer-Aided-Validation-Laboratory/people/fusmatrs)), UK Atomic Energy Authority
88
89
 
89
90
 
90
91
 
@@ -1,10 +1,10 @@
1
1
  [build-system]
2
- requires = ["setuptools>=61.0", "wheel"]
2
+ requires = ["setuptools>=61.0", "wheel", "Cython", "numpy"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pyvale"
7
- version = "2025.4.0"
7
+ version = "2025.5.1"
8
8
  description = "An all-in-one package for sensor simulation, sensor uncertainty quantification, sensor placement optimisation and simulation calibration or validation."
9
9
  authors = [
10
10
  { name = "scepticalrabbit et al.", email = "thescepticalrabbit@gmail.com" },
@@ -28,6 +28,8 @@ dependencies = [
28
28
  "pymoo>=0.6.1.3",
29
29
  "Cython>=3.0.0",
30
30
  "bpy>=4.2.0",
31
+ "pyyaml>=6.0.2",
32
+ "pytest>=8.3.5",
31
33
  ]
32
34
 
33
35
  [project.urls]
@@ -0,0 +1,89 @@
1
+ # ==============================================================================
2
+ # pyvale: the python validation engine
3
+ # License: MIT
4
+ # Copyright (C) 2025 The Computer Aided Validation Team
5
+ # ==============================================================================
6
+
7
+ """
8
+ `pyvale`: the python validation engine. Used to simulate experimental data from
9
+ an input multi-physics simulation by explicitly modelling sensors with realistic
10
+ uncertainties. Useful for experimental design, sensor placement optimisation,
11
+ testing simulation validation metrics and testing digital shadows/twins.
12
+ """
13
+
14
+ # NOTE: this simplifies and decouples how the user calls pyvale from the
15
+ # underlying project structure: the user should be able to use 'pyvale.'
16
+ # and access everything in one layer without multiple import dots
17
+
18
+
19
+ from pyvale.dataset import *
20
+
21
+ from pyvale.field import *
22
+ from pyvale.fieldscalar import *
23
+ from pyvale.fieldvector import *
24
+ from pyvale.fieldtensor import *
25
+ from pyvale.fieldconverter import *
26
+ from pyvale.fieldtransform import *
27
+
28
+ from pyvale.integratorspatial import *
29
+ from pyvale.integratorquadrature import *
30
+ from pyvale.integratorrectangle import *
31
+ from pyvale.integratorfactory import *
32
+
33
+ from pyvale.sensordescriptor import *
34
+ from pyvale.sensortools import *
35
+ from pyvale.sensorarray import *
36
+ from pyvale.sensorarrayfactory import *
37
+ from pyvale.sensorarraypoint import *
38
+ from pyvale.sensordata import *
39
+
40
+ from pyvale.camera import *
41
+ from pyvale.cameradata import *
42
+ from pyvale.cameradata2d import *
43
+ from pyvale.cameratools import *
44
+ from pyvale.camerastereo import *
45
+
46
+ import pyvale.cython.rastercyth as rastercyth
47
+ from pyvale.rastercy import *
48
+
49
+ from pyvale.rendermesh import *
50
+ from pyvale.rasternp import *
51
+
52
+ from pyvale.imagedef2d import *
53
+
54
+ from pyvale.errorintegrator import *
55
+ from pyvale.errorrand import *
56
+ from pyvale.errorsysindep import *
57
+ from pyvale.errorsysdep import *
58
+ from pyvale.errorsysfield import *
59
+ from pyvale.errorsyscalib import *
60
+ from pyvale.errordriftcalc import *
61
+
62
+ from pyvale.generatorsrandom import *
63
+
64
+ from pyvale.visualopts import *
65
+ from pyvale.visualtools import *
66
+ from pyvale.visualsimsensors import *
67
+ from pyvale.visualsimanimator import *
68
+ from pyvale.visualexpplotter import *
69
+ from pyvale.visualtraceplotter import *
70
+ from pyvale.visualimages import *
71
+ from pyvale.visualimagedef import *
72
+
73
+ from pyvale.analyticmeshgen import *
74
+ from pyvale.analyticsimdatagenerator import *
75
+ from pyvale.analyticsimdatafactory import *
76
+
77
+ from pyvale.experimentsimulator import *
78
+
79
+ from pyvale.blendercalibrationdata import *
80
+ from pyvale.blenderlightdata import *
81
+ from pyvale.blendermaterialdata import *
82
+ from pyvale.blenderrenderdata import *
83
+ from pyvale.blenderscene import *
84
+ from pyvale.blendertools import *
85
+ from pyvale.simtools import *
86
+
87
+ from pyvale.output import *
88
+ from pyvale.pyvaleexceptions import *
89
+
@@ -0,0 +1,102 @@
1
+ #===============================================================================
2
+ # pyvale: the python validation engine
3
+ # License: MIT
4
+ # Copyright (C) 2025 The Computer Aided Validation Team
5
+ #===============================================================================
6
+
7
+ """
8
+ Analytic mesh creation tools for testing pyvale sensor simulation and
9
+ uncertainty quantification functionality with a known analytic function for the
10
+ scalar/vector/tensor field of interest.
11
+ """
12
+ import numpy as np
13
+
14
+
15
+ def rectangle_mesh_2d(leng_x: float,
16
+ leng_y: float,
17
+ n_elem_x: int,
18
+ n_elem_y: int) -> tuple[np.ndarray,np.ndarray]:
19
+ """Creates the nodal coordinates and element connectivity table for a simple
20
+ 2D quad mesh for a rectangular plate.
21
+
22
+ Parameters
23
+ ----------
24
+ leng_x : float
25
+ Length of the plate in the x direction.
26
+ leng_y : float
27
+ Length of the plate in the y direction.
28
+ n_elem_x : int
29
+ Number of elements along the x axis
30
+ n_elem_y : int
31
+ Number of elements along the y axis
32
+
33
+ Returns
34
+ -------
35
+ tuple[np.ndarray,np.ndarray]
36
+ The coordinates and connectivity table as numpy arrays. The coordinates
37
+ have shape=(n_nodes,coord[x,y,z]). The connectivity tables has shape=
38
+ (nodes_per_elem,num_elems).
39
+ """
40
+ n_elems = n_elem_x*n_elem_y
41
+ n_node_x = n_elem_x+1
42
+ n_node_y = n_elem_y+1
43
+ nodes_per_elem = 4
44
+
45
+ coord_x = np.linspace(0,leng_x,n_node_x)
46
+ coord_y = np.linspace(0,leng_y,n_node_y)
47
+ (coord_grid_x,coord_grid_y) = np.meshgrid(coord_x,coord_y)
48
+
49
+ coord_x = np.atleast_2d(coord_grid_x.flatten()).T
50
+ coord_y = np.atleast_2d(coord_grid_y.flatten()).T
51
+ coord_z = np.zeros_like(coord_x)
52
+ coords = np.hstack((coord_x,coord_y,coord_z))
53
+
54
+ connect = np.zeros((n_elems,nodes_per_elem)).astype(np.int64)
55
+ row = 1
56
+ nn = 0
57
+ for ee in range(n_elems):
58
+ nn += 1
59
+ if nn >= row*n_node_x:
60
+ row += 1
61
+ nn += 1
62
+
63
+ connect[ee,:] = np.array([nn,nn+1,nn+n_node_x+1,nn+n_node_x])
64
+ connect = connect.T
65
+
66
+ return (coords,connect)
67
+
68
+
69
+ def fill_dims_2d(coord_x: np.ndarray,
70
+ coord_y: np.ndarray,
71
+ time: np.ndarray) -> tuple[np.ndarray,np.ndarray,np.ndarray]:
72
+ """Helper function to generate 2D filled arrays tih consistent dimensions
73
+ for array based maths operations. Takes 1D input vectors for the x, y and
74
+ time dimensions and returns 2D arrays with shape=(num_coords,num_timesteps).
75
+ Useful for evaluating analytical functions in space and time.
76
+
77
+ Parameters
78
+ ----------
79
+ coord_x : np.ndarray
80
+ 1D flattened coordinate list for the x axis.
81
+ coord_y : np.ndarray
82
+ 1D flattened coordinate list for the y axis.
83
+ time : np.ndarray
84
+ 1D array of time steps.
85
+
86
+
87
+ Returns
88
+ -------
89
+ tuple[np.ndarray,np.ndarray,np.ndarray]
90
+ Filled 2D arrays with shape=(num_coords,num_timesteps) for the x, y and
91
+ time parameters respectively.
92
+ """
93
+ full_x = np.repeat(np.atleast_2d(coord_x).T,
94
+ time.shape[0],
95
+ axis=1)
96
+ full_y = np.repeat(np.atleast_2d(coord_y).T,
97
+ time.shape[0],
98
+ axis=1)
99
+ full_time = np.repeat(np.atleast_2d(time),
100
+ coord_x.shape[0],
101
+ axis=0)
102
+ return (full_x,full_y,full_time)
@@ -1,20 +1,32 @@
1
+ # ==============================================================================
2
+ # pyvale: the python validation engine
3
+ # License: MIT
4
+ # Copyright (C) 2025 The Computer Aided Validation Team
5
+ # ==============================================================================
6
+
1
7
  """
2
- ================================================================================
3
- pyvale: the python validation engine
4
- License: MIT
5
- Copyright (C) 2025 The Computer Aided Validation Team
6
- ================================================================================
8
+ Helper functions and mini factory for building standard test meshes with
9
+ analytic functions for the physical fields.
7
10
  """
11
+
8
12
  import numpy as np
9
13
  import sympy
10
14
  import mooseherder as mh
11
- from pyvale.core.analyticsimdatagenerator import (AnalyticCaseData2D,
12
- AnalyticSimDataGenerator)
15
+ from pyvale.analyticsimdatagenerator import (AnalyticData2D,
16
+ AnalyticSimDataGen)
17
+
13
18
 
14
- # NOTE: This module is a feature under developement.
19
+ def standard_case_2d() -> AnalyticData2D:
20
+ """Created the standard 2D analytic test case which is a plate with
21
+ dimensions 10x7.5 (x,y), number of elements 40x30 (x,y), and time steps of
22
+ 0 to 10 in increments of 1.
15
23
 
16
- def standard_case_2d() -> AnalyticCaseData2D:
17
- case_data = AnalyticCaseData2D()
24
+ Returns
25
+ -------
26
+ AnalyticCaseData2D
27
+ _description_
28
+ """
29
+ case_data = AnalyticData2D()
18
30
  case_data.length_x = 10.0
19
31
  case_data.length_y = 7.5
20
32
  n_elem_mult = 10
@@ -25,10 +37,20 @@ def standard_case_2d() -> AnalyticCaseData2D:
25
37
 
26
38
 
27
39
  class AnalyticCaseFactory:
40
+ """Namespace for function used to build pre-defined 2D meshes and fields
41
+ based on analytic functions for testing the sensor simulation functionality
42
+ of pyvale.
43
+ """
28
44
 
29
45
  @staticmethod
30
- def scalar_linear_2d() -> tuple[mh.SimData,AnalyticSimDataGenerator]:
31
-
46
+ def scalar_linear_2d() -> tuple[mh.SimData,AnalyticSimDataGen]:
47
+ """_summary_
48
+
49
+ Returns
50
+ -------
51
+ tuple[mh.SimData,AnalyticSimDataGenerator]
52
+ _description_
53
+ """
32
54
  case_data = standard_case_2d()
33
55
  (sym_y,sym_x,sym_t) = sympy.symbols("y,x,t")
34
56
  case_data.funcs_x = (20.0/case_data.length_x * sym_x,)
@@ -37,22 +59,28 @@ class AnalyticCaseFactory:
37
59
  case_data.offsets_space = (20.0,)
38
60
  case_data.offsets_time = (0.0,)
39
61
 
40
- data_gen = AnalyticSimDataGenerator(case_data)
62
+ data_gen = AnalyticSimDataGen(case_data)
41
63
 
42
64
  sim_data = data_gen.generate_sim_data()
43
65
 
44
66
  return (sim_data,data_gen)
45
67
 
46
68
  @staticmethod
47
- def scalar_quadratic_2d() -> tuple[mh.SimData,AnalyticSimDataGenerator]:
48
-
69
+ def scalar_quadratic_2d() -> tuple[mh.SimData,AnalyticSimDataGen]:
70
+ """_summary_
71
+
72
+ Returns
73
+ -------
74
+ tuple[mh.SimData,AnalyticSimDataGenerator]
75
+ _description_
76
+ """
49
77
  case_data = standard_case_2d()
50
78
  (sym_y,sym_x,sym_t) = sympy.symbols("y,x,t")
51
79
  case_data.funcs_x = (sym_x*(sym_x - case_data.length_x),)
52
80
  case_data.funcs_y = (sym_y*(sym_y - case_data.length_y),)
53
81
  case_data.funcs_t = (sym_t,)
54
82
 
55
- data_gen = AnalyticSimDataGenerator(case_data)
83
+ data_gen = AnalyticSimDataGen(case_data)
56
84
 
57
85
  sim_data = data_gen.generate_sim_data()
58
86