pyvale 2025.4.1__py3-none-any.whl → 2025.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyvale might be problematic. Click here for more details.
- pyvale/__init__.py +18 -3
- pyvale/analyticmeshgen.py +1 -0
- pyvale/analyticsimdatafactory.py +18 -13
- pyvale/analyticsimdatagenerator.py +105 -72
- pyvale/blendercalibrationdata.py +15 -0
- pyvale/blenderlightdata.py +26 -0
- pyvale/blendermaterialdata.py +15 -0
- pyvale/blenderrenderdata.py +30 -0
- pyvale/blenderscene.py +488 -0
- pyvale/blendertools.py +420 -0
- pyvale/camera.py +6 -5
- pyvale/cameradata.py +25 -7
- pyvale/cameradata2d.py +6 -4
- pyvale/camerastereo.py +217 -0
- pyvale/cameratools.py +206 -11
- pyvale/cython/rastercyth.py +6 -2
- pyvale/data/cal_target.tiff +0 -0
- pyvale/dataset.py +73 -14
- pyvale/errorcalculator.py +8 -10
- pyvale/errordriftcalc.py +10 -9
- pyvale/errorintegrator.py +19 -21
- pyvale/errorrand.py +33 -39
- pyvale/errorsyscalib.py +134 -0
- pyvale/errorsysdep.py +19 -22
- pyvale/errorsysfield.py +49 -41
- pyvale/errorsysindep.py +79 -175
- pyvale/examples/basics/ex1_1_basicscalars_therm2d.py +131 -0
- pyvale/examples/basics/ex1_2_sensormodel_therm2d.py +158 -0
- pyvale/examples/basics/ex1_3_customsens_therm3d.py +216 -0
- pyvale/examples/basics/ex1_4_basicerrors_therm3d.py +153 -0
- pyvale/examples/basics/ex1_5_fielderrs_therm3d.py +168 -0
- pyvale/examples/basics/ex1_6_caliberrs_therm2d.py +133 -0
- pyvale/examples/basics/ex1_7_spatavg_therm2d.py +123 -0
- pyvale/examples/basics/ex2_1_basicvectors_disp2d.py +112 -0
- pyvale/examples/basics/ex2_2_vectorsens_disp2d.py +111 -0
- pyvale/examples/basics/ex2_3_sensangle_disp2d.py +139 -0
- pyvale/examples/basics/ex2_4_chainfielderrs_disp2d.py +196 -0
- pyvale/examples/basics/ex2_5_vectorfields3d_disp3d.py +109 -0
- pyvale/examples/basics/ex3_1_basictensors_strain2d.py +114 -0
- pyvale/examples/basics/ex3_2_tensorsens2d_strain2d.py +111 -0
- pyvale/examples/basics/ex3_3_tensorsens3d_strain3d.py +182 -0
- pyvale/examples/basics/ex4_1_expsim2d_thermmech2d.py +171 -0
- pyvale/examples/basics/ex4_2_expsim3d_thermmech3d.py +252 -0
- pyvale/examples/{analyticdatagen → genanalyticdata}/ex1_1_scalarvisualisation.py +6 -9
- pyvale/examples/{analyticdatagen → genanalyticdata}/ex1_2_scalarcasebuild.py +8 -11
- pyvale/examples/{analyticdatagen → genanalyticdata}/ex2_1_analyticsensors.py +9 -12
- pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py +8 -15
- pyvale/examples/renderblender/ex1_1_blenderscene.py +121 -0
- pyvale/examples/renderblender/ex1_2_blenderdeformed.py +119 -0
- pyvale/examples/renderblender/ex2_1_stereoscene.py +128 -0
- pyvale/examples/renderblender/ex2_2_stereodeformed.py +131 -0
- pyvale/examples/renderblender/ex3_1_blendercalibration.py +120 -0
- pyvale/examples/{rasterisation → renderrasterisation}/ex_rastenp.py +3 -2
- pyvale/examples/{rasterisation → renderrasterisation}/ex_rastercyth_oneframe.py +2 -2
- pyvale/examples/{rasterisation → renderrasterisation}/ex_rastercyth_static_cypara.py +3 -8
- pyvale/examples/{rasterisation → renderrasterisation}/ex_rastercyth_static_pypara.py +6 -7
- pyvale/examples/{ex1_4_thermal2d.py → visualisation/ex1_1_plot_traces.py} +32 -16
- pyvale/examples/{features/ex_animation_tools_3dmonoblock.py → visualisation/ex2_1_animate_sim.py} +37 -31
- pyvale/experimentsimulator.py +107 -30
- pyvale/field.py +2 -9
- pyvale/fieldconverter.py +98 -22
- pyvale/fieldsampler.py +2 -2
- pyvale/fieldscalar.py +10 -10
- pyvale/fieldtensor.py +15 -17
- pyvale/fieldtransform.py +7 -2
- pyvale/fieldvector.py +6 -7
- pyvale/generatorsrandom.py +25 -47
- pyvale/imagedef2d.py +6 -2
- pyvale/integratorfactory.py +2 -2
- pyvale/integratorquadrature.py +50 -24
- pyvale/integratorrectangle.py +85 -7
- pyvale/integratorspatial.py +4 -4
- pyvale/integratortype.py +3 -3
- pyvale/output.py +17 -0
- pyvale/pyvaleexceptions.py +11 -0
- pyvale/raster.py +6 -5
- pyvale/rastercy.py +6 -4
- pyvale/rasternp.py +6 -4
- pyvale/rendermesh.py +6 -2
- pyvale/sensorarray.py +2 -2
- pyvale/sensorarrayfactory.py +52 -65
- pyvale/sensorarraypoint.py +29 -30
- pyvale/sensordata.py +2 -2
- pyvale/sensordescriptor.py +138 -25
- pyvale/sensortools.py +3 -3
- pyvale/simtools.py +67 -0
- pyvale/visualexpplotter.py +99 -57
- pyvale/visualimagedef.py +11 -7
- pyvale/visualimages.py +6 -4
- pyvale/visualopts.py +372 -58
- pyvale/visualsimanimator.py +42 -13
- pyvale/visualsimsensors.py +318 -0
- pyvale/visualtools.py +69 -13
- pyvale/visualtraceplotter.py +52 -165
- {pyvale-2025.4.1.dist-info → pyvale-2025.5.1.dist-info}/METADATA +17 -14
- pyvale-2025.5.1.dist-info/RECORD +172 -0
- {pyvale-2025.4.1.dist-info → pyvale-2025.5.1.dist-info}/WHEEL +1 -1
- pyvale/examples/analyticdatagen/__init__.py +0 -5
- pyvale/examples/ex1_1_thermal2d.py +0 -86
- pyvale/examples/ex1_2_thermal2d.py +0 -108
- pyvale/examples/ex1_3_thermal2d.py +0 -110
- pyvale/examples/ex1_5_thermal2d.py +0 -102
- pyvale/examples/ex2_1_thermal3d .py +0 -84
- pyvale/examples/ex2_2_thermal3d.py +0 -51
- pyvale/examples/ex2_3_thermal3d.py +0 -106
- pyvale/examples/ex3_1_displacement2d.py +0 -44
- pyvale/examples/ex3_2_displacement2d.py +0 -76
- pyvale/examples/ex3_3_displacement2d.py +0 -101
- pyvale/examples/ex3_4_displacement2d.py +0 -102
- pyvale/examples/ex4_1_strain2d.py +0 -54
- pyvale/examples/ex4_2_strain2d.py +0 -76
- pyvale/examples/ex4_3_strain2d.py +0 -97
- pyvale/examples/ex5_1_multiphysics2d.py +0 -75
- pyvale/examples/ex6_1_multiphysics2d_expsim.py +0 -115
- pyvale/examples/ex6_2_multiphysics3d_expsim.py +0 -160
- pyvale/examples/features/__init__.py +0 -5
- pyvale/examples/features/ex_area_avg.py +0 -89
- pyvale/examples/features/ex_calibration_error.py +0 -108
- pyvale/examples/features/ex_chain_field_errs.py +0 -141
- pyvale/examples/features/ex_field_errs.py +0 -78
- pyvale/examples/features/ex_sensor_single_angle_batch.py +0 -110
- pyvale/optimcheckfuncs.py +0 -153
- pyvale/visualsimplotter.py +0 -182
- pyvale-2025.4.1.dist-info/RECORD +0 -163
- {pyvale-2025.4.1.dist-info → pyvale-2025.5.1.dist-info}/licenses/LICENSE +0 -0
- {pyvale-2025.4.1.dist-info → pyvale-2025.5.1.dist-info}/top_level.txt +0 -0
pyvale/optimcheckfuncs.py
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
OPTIMISATION TEST FUNCTIONS - N DIMS
|
|
3
|
-
https://gist.github.com/denis-bz/da697d8bc74fae4598bf
|
|
4
|
-
https://www.sfu.ca/~ssurjano/optimization.html
|
|
5
|
-
https://en.wikipedia.org/wiki/Test_functions_for_optimization
|
|
6
|
-
"""
|
|
7
|
-
from typing import Callable,Any
|
|
8
|
-
import numpy as np
|
|
9
|
-
import matplotlib.pyplot as plt
|
|
10
|
-
from pyvale.visualopts import PlotOptsGeneral
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def ackley(x: np.ndarray,
|
|
14
|
-
a: float = 20.0,
|
|
15
|
-
b: float = 0.2,
|
|
16
|
-
c: float = 2*np.pi) -> np.ndarray:
|
|
17
|
-
"""ACKLEY
|
|
18
|
-
Dimension: N
|
|
19
|
-
Local Minima: many
|
|
20
|
-
Global Minimum: f(x) = 0 @ (0,0,....,0)
|
|
21
|
-
Eval: [-32.768,32.768] or smaller
|
|
22
|
-
"""
|
|
23
|
-
n = x.shape[1]
|
|
24
|
-
sum1 = np.sum(x**2,axis=1)
|
|
25
|
-
sum2 = np.sum(np.cos(c*x),axis=1)
|
|
26
|
-
f = -a*np.exp(-b*np.sqrt(sum1/n)) - np.exp(sum2/n) + a + np.exp(1)
|
|
27
|
-
return f
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def dixonprice(x: np.ndarray) -> np.ndarray:
|
|
31
|
-
"""DIXON-PRICE
|
|
32
|
-
Dimension: N
|
|
33
|
-
Local Minima: Large valley
|
|
34
|
-
Global Minimum: f(x) = 0 @ x_i = 2^-((2^i-2)/2^i) for i = 1,...,d
|
|
35
|
-
Eval: [-10.0,10.0] or smaller
|
|
36
|
-
"""
|
|
37
|
-
n = x.shape[1]
|
|
38
|
-
j = np.arange( 2, n+1 )
|
|
39
|
-
x2 = 2 * x**2
|
|
40
|
-
f = np.sum( j * (x2[:,1:] - x[:,:-1]) **2, axis=1) + (x[:,0] - 1) **2
|
|
41
|
-
return f
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def griewank(x: np.ndarray, div: float = 4000.0) -> np.ndarray:
|
|
45
|
-
"""GRIEWANK
|
|
46
|
-
Dimension: N
|
|
47
|
-
Local Minima: many
|
|
48
|
-
Global Minimum: f(x) = 0 @ (0,0,....,0)
|
|
49
|
-
Eval: [-600,600] or smaller
|
|
50
|
-
"""
|
|
51
|
-
n = x.shape[1]
|
|
52
|
-
j = np.arange( 1., n+1 )
|
|
53
|
-
sum1 = np.sum( x**2, axis=1 )
|
|
54
|
-
p = np.prod( np.cos( x / np.sqrt(j) ), axis=1)
|
|
55
|
-
f = sum1/div - p + 1
|
|
56
|
-
return f
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def rastrigin(x: np.ndarray, a: float = 10) -> np.ndarray:
|
|
60
|
-
"""RASTRIGIN
|
|
61
|
-
Dimension: N
|
|
62
|
-
Local Minima: many
|
|
63
|
-
Global Minimum: f(x) = 0 @ (0,0,....,0)
|
|
64
|
-
Eval: [-5.12,5.12] or smaller
|
|
65
|
-
"""
|
|
66
|
-
n = x.shape[1]
|
|
67
|
-
sum1 = np.sum(x**2 - a*np.cos(2*np.pi*x),axis=1)
|
|
68
|
-
f = a*n + sum1
|
|
69
|
-
return f
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def rosenbrock(x: np.ndarray, a: float = 100) -> float:
|
|
73
|
-
"""ROSENBROCK
|
|
74
|
-
Dimension: N
|
|
75
|
-
Local Minima: Large valley
|
|
76
|
-
Global minimum: at (x,y) = (1,1) where f(x,y)=0
|
|
77
|
-
Eval: [-5.0,10.0] or smaller
|
|
78
|
-
"""
|
|
79
|
-
x0 = x[:,:-1] # x_(i) ... to n-1
|
|
80
|
-
x1 = x[:,1:] # x_(i+1) ... to n-1
|
|
81
|
-
f = a*np.sum((x1-x0**2)**2,axis=1) + np.sum((1-x0)**2, axis=1)
|
|
82
|
-
return f
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
def sphere(x: np.ndarray) -> np.ndarray:
|
|
86
|
-
"""SPHERE
|
|
87
|
-
Dimension: N
|
|
88
|
-
Local Minima: none
|
|
89
|
-
Global minimum: f(x) = 0 @ (0,0,....,0)
|
|
90
|
-
Eval: [-inf,inf] or smaller
|
|
91
|
-
"""
|
|
92
|
-
f = np.sum(x**2,axis=1)
|
|
93
|
-
return f
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
def get_mesh_x_2d(xlim1: tuple[float,float],
|
|
97
|
-
xlim2: tuple[float,float],
|
|
98
|
-
n: int = 100):
|
|
99
|
-
xv1 = np.linspace(xlim1[0],xlim1[1],n)
|
|
100
|
-
xv2 = np.linspace(xlim2[0],xlim2[1],n)
|
|
101
|
-
(xm1,xm2) = np.meshgrid(xv1,xv2)
|
|
102
|
-
return (xm1,xm2)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
def get_flat_x_2d(xlim1: tuple[float,float],
|
|
106
|
-
xlim2: tuple[float,float],
|
|
107
|
-
n: int = 100) -> np.ndarray:
|
|
108
|
-
|
|
109
|
-
(xm1,xm2) = get_mesh_x_2d(xlim1,xlim2,n)
|
|
110
|
-
xf1 = xm1.flatten()
|
|
111
|
-
xf2 = xm2.flatten()
|
|
112
|
-
return np.column_stack((xf1,xf2))
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
def f_mesh_2d(fun: Callable,
|
|
116
|
-
xlim1: tuple[float,float],
|
|
117
|
-
xlim2: tuple[float,float],
|
|
118
|
-
n: int = 100) -> np.ndarray:
|
|
119
|
-
|
|
120
|
-
(xm1,_) = get_mesh_x_2d(xlim1,xlim2,n)
|
|
121
|
-
xf = get_flat_x_2d(xlim1,xlim2,n)
|
|
122
|
-
f_flat = fun(xf)
|
|
123
|
-
f_mesh = f_flat.reshape(xm1.shape)
|
|
124
|
-
|
|
125
|
-
return f_mesh
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
def plot_fun_2d(tStr: str,
|
|
129
|
-
fun: Callable,
|
|
130
|
-
xlim1: tuple[float,float],
|
|
131
|
-
xlim2: tuple[float,float],
|
|
132
|
-
n: int =100) -> tuple[Any,Any]:
|
|
133
|
-
|
|
134
|
-
(xm1,xm2) = get_mesh_x_2d(xlim1,xlim2,n)
|
|
135
|
-
f_mesh = f_mesh_2d(fun,xlim1,xlim2,n)
|
|
136
|
-
# Plot the function
|
|
137
|
-
pp = PlotOptsGeneral()
|
|
138
|
-
fig, ax = plt.subplots(figsize=pp.single_fig_size_square,
|
|
139
|
-
layout="constrained")
|
|
140
|
-
fig.set_dpi(pp.resolution)
|
|
141
|
-
|
|
142
|
-
plt.contourf(xm1, xm2, f_mesh, 20, cmap=pp.cmap_seq)
|
|
143
|
-
|
|
144
|
-
plt.colorbar()
|
|
145
|
-
plt.title(tStr,fontsize=pp.font_head_size,fontname=pp.font_name)
|
|
146
|
-
plt.xlabel("x1",fontsize=pp.font_ax_size,fontname=pp.font_name)
|
|
147
|
-
plt.ylabel("x2",fontsize=pp.font_ax_size,fontname=pp.font_name)
|
|
148
|
-
|
|
149
|
-
#plt.show()
|
|
150
|
-
#plt.savefig(save_path+save_name, dpi=pp.resolution, format="png", bbox_inches="tight")
|
|
151
|
-
return fig,ax
|
|
152
|
-
|
|
153
|
-
|
pyvale/visualsimplotter.py
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
# ================================================================================
|
|
2
|
-
# pyvale: the python validation engine
|
|
3
|
-
# License: MIT
|
|
4
|
-
# Copyright (C) 2025 The Computer Aided Validation Team
|
|
5
|
-
# ================================================================================
|
|
6
|
-
|
|
7
|
-
# import vtk #NOTE: has to be here to fix latex bug in pyvista/vtk
|
|
8
|
-
# See: https://github.com/pyvista/pyvista/discussions/2928
|
|
9
|
-
#NOTE: causes output to console to be suppressed unfortunately
|
|
10
|
-
import pyvista as pv
|
|
11
|
-
|
|
12
|
-
import mooseherder as mh
|
|
13
|
-
|
|
14
|
-
from pyvale.sensorarraypoint import SensorArrayPoint
|
|
15
|
-
from pyvale.fieldconverter import simdata_to_pyvista
|
|
16
|
-
from pyvale.visualopts import (VisOptsSimSensors,VisOptsImageSave)
|
|
17
|
-
from pyvale.visualtools import (create_pv_plotter,
|
|
18
|
-
get_colour_lims,
|
|
19
|
-
save_image)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
#TODO: Docstrings
|
|
23
|
-
|
|
24
|
-
def add_sim_field(pv_plot: pv.Plotter,
|
|
25
|
-
sensor_array: SensorArrayPoint,
|
|
26
|
-
component: str,
|
|
27
|
-
time_step: int,
|
|
28
|
-
vis_opts: VisOptsSimSensors,
|
|
29
|
-
) -> tuple[pv.Plotter,pv.UnstructuredGrid]:
|
|
30
|
-
|
|
31
|
-
sim_vis = sensor_array.field.get_visualiser()
|
|
32
|
-
sim_data = sensor_array.field.get_sim_data()
|
|
33
|
-
sim_vis[component] = sim_data.node_vars[component][:,time_step]
|
|
34
|
-
comp_ind = sensor_array.field.get_component_index(component)
|
|
35
|
-
|
|
36
|
-
scalar_bar_args = {"title":sensor_array.descriptor.create_label(comp_ind),
|
|
37
|
-
"vertical":vis_opts.colour_bar_vertical,
|
|
38
|
-
"title_font_size":vis_opts.colour_bar_font_size,
|
|
39
|
-
"label_font_size":vis_opts.colour_bar_font_size}
|
|
40
|
-
|
|
41
|
-
pv_plot.add_mesh(sim_vis,
|
|
42
|
-
scalars=component,
|
|
43
|
-
label="sim-data",
|
|
44
|
-
show_edges=vis_opts.show_edges,
|
|
45
|
-
show_scalar_bar=vis_opts.colour_bar_show,
|
|
46
|
-
scalar_bar_args=scalar_bar_args,
|
|
47
|
-
lighting=False,
|
|
48
|
-
clim=vis_opts.colour_bar_lims)
|
|
49
|
-
|
|
50
|
-
if vis_opts.time_label_show:
|
|
51
|
-
pv_plot.add_text(f"Time: {sim_data.time[time_step]} " + \
|
|
52
|
-
f"{sensor_array.descriptor.time_units}",
|
|
53
|
-
position=vis_opts.time_label_position,
|
|
54
|
-
font_size=vis_opts.time_label_font_size,
|
|
55
|
-
name='time-label')
|
|
56
|
-
|
|
57
|
-
return (pv_plot,sim_vis)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
def add_sensor_points_nom(pv_plot: pv.Plotter,
|
|
61
|
-
sensor_array: SensorArrayPoint,
|
|
62
|
-
vis_opts: VisOptsSimSensors,
|
|
63
|
-
) -> pv.Plotter:
|
|
64
|
-
|
|
65
|
-
vis_sens_nominal = pv.PolyData(sensor_array.sensor_data.positions)
|
|
66
|
-
vis_sens_nominal["labels"] = sensor_array.descriptor.create_sensor_tags(
|
|
67
|
-
sensor_array.get_measurement_shape()[0])
|
|
68
|
-
|
|
69
|
-
# Add points to show sensor locations
|
|
70
|
-
pv_plot.add_point_labels(vis_sens_nominal,"labels",
|
|
71
|
-
font_size=vis_opts.sens_label_font_size,
|
|
72
|
-
shape_color=vis_opts.sens_label_colour,
|
|
73
|
-
point_color=vis_opts.sens_colour_nom,
|
|
74
|
-
render_points_as_spheres=True,
|
|
75
|
-
point_size=vis_opts.sens_point_size,
|
|
76
|
-
always_visible=True)
|
|
77
|
-
|
|
78
|
-
return pv_plot
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
def add_sensor_points_pert(pv_plot: pv.Plotter,
|
|
82
|
-
sensor_array: SensorArrayPoint,
|
|
83
|
-
vis_opts: VisOptsSimSensors,
|
|
84
|
-
) -> pv.Plotter:
|
|
85
|
-
|
|
86
|
-
sens_data_perturbed = sensor_array.get_sensor_data_perturbed()
|
|
87
|
-
|
|
88
|
-
if sens_data_perturbed is not None and vis_opts.show_perturbed_pos:
|
|
89
|
-
vis_sens_perturbed = pv.PolyData(sens_data_perturbed.positions)
|
|
90
|
-
vis_sens_perturbed["labels"] = ["",]*sensor_array.get_measurement_shape()[0]
|
|
91
|
-
|
|
92
|
-
pv_plot.add_point_labels(vis_sens_perturbed,"labels",
|
|
93
|
-
font_size=vis_opts.sens_label_font_size,
|
|
94
|
-
shape_color=vis_opts.sens_label_colour,
|
|
95
|
-
point_color=vis_opts.sens_colour_pert,
|
|
96
|
-
render_points_as_spheres=True,
|
|
97
|
-
point_size=vis_opts.sens_point_size,
|
|
98
|
-
always_visible=True)
|
|
99
|
-
|
|
100
|
-
return pv_plot
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
def plot_sim_mesh(sim_data: mh.SimData,
|
|
104
|
-
elem_dims: int,
|
|
105
|
-
vis_opts: VisOptsSimSensors | None = None,
|
|
106
|
-
) -> pv.Plotter:
|
|
107
|
-
|
|
108
|
-
if vis_opts is None:
|
|
109
|
-
vis_opts = VisOptsSimSensors()
|
|
110
|
-
|
|
111
|
-
(_,sim_vis) = simdata_to_pyvista(sim_data=sim_data,
|
|
112
|
-
components=None,
|
|
113
|
-
elem_dims=elem_dims)
|
|
114
|
-
|
|
115
|
-
pv_plot = create_pv_plotter(vis_opts)
|
|
116
|
-
pv_plot.add_mesh(sim_vis,
|
|
117
|
-
label="sim-data",
|
|
118
|
-
show_edges=vis_opts.show_edges,
|
|
119
|
-
lighting=False)
|
|
120
|
-
return pv_plot
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
def plot_sim_data(sim_data: mh.SimData,
|
|
124
|
-
component: str,
|
|
125
|
-
elem_dims: int,
|
|
126
|
-
time_step: int = -1,
|
|
127
|
-
vis_opts: VisOptsSimSensors | None = None
|
|
128
|
-
) -> pv.Plotter:
|
|
129
|
-
|
|
130
|
-
if vis_opts is None:
|
|
131
|
-
vis_opts = VisOptsSimSensors()
|
|
132
|
-
|
|
133
|
-
(_,sim_vis) = simdata_to_pyvista(sim_data,
|
|
134
|
-
(component,),
|
|
135
|
-
elem_dims)
|
|
136
|
-
|
|
137
|
-
sim_vis[component] = sim_data.node_vars[component][:,time_step]
|
|
138
|
-
|
|
139
|
-
pv_plot = create_pv_plotter(vis_opts)
|
|
140
|
-
pv_plot.add_mesh(sim_vis,
|
|
141
|
-
scalars=component,
|
|
142
|
-
label="sim-data",
|
|
143
|
-
show_edges=vis_opts.show_edges,
|
|
144
|
-
show_scalar_bar=vis_opts.colour_bar_show,
|
|
145
|
-
lighting=False,
|
|
146
|
-
clim=vis_opts.colour_bar_lims)
|
|
147
|
-
|
|
148
|
-
return pv_plot
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
def plot_point_sensors_on_sim(sensor_array: SensorArrayPoint,
|
|
152
|
-
component: str,
|
|
153
|
-
time_step: int = -1,
|
|
154
|
-
vis_opts: VisOptsSimSensors | None = None,
|
|
155
|
-
image_save_opts: VisOptsImageSave | None = None,
|
|
156
|
-
) -> pv.Plotter:
|
|
157
|
-
|
|
158
|
-
if vis_opts is None:
|
|
159
|
-
vis_opts = VisOptsSimSensors()
|
|
160
|
-
|
|
161
|
-
sim_data = sensor_array.field.get_sim_data()
|
|
162
|
-
vis_opts.colour_bar_lims = get_colour_lims(
|
|
163
|
-
sim_data.node_vars[component][:,time_step],
|
|
164
|
-
vis_opts.colour_bar_lims)
|
|
165
|
-
|
|
166
|
-
pv_plot = create_pv_plotter(vis_opts)
|
|
167
|
-
|
|
168
|
-
pv_plot = add_sensor_points_pert(pv_plot,sensor_array,vis_opts)
|
|
169
|
-
pv_plot = add_sensor_points_nom(pv_plot,sensor_array,vis_opts)
|
|
170
|
-
(pv_plot,_) = add_sim_field(pv_plot,
|
|
171
|
-
sensor_array,
|
|
172
|
-
component,
|
|
173
|
-
time_step,
|
|
174
|
-
vis_opts)
|
|
175
|
-
|
|
176
|
-
pv_plot.camera_position = vis_opts.camera_position
|
|
177
|
-
|
|
178
|
-
if image_save_opts is not None:
|
|
179
|
-
save_image(pv_plot,image_save_opts)
|
|
180
|
-
|
|
181
|
-
return pv_plot
|
|
182
|
-
|
pyvale-2025.4.1.dist-info/RECORD
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
pyvale/__init__.py,sha256=URV7AtTezLI19PJv359Pajs-TXEtZoQVG0xB8S1uabQ,2425
|
|
2
|
-
pyvale/analyticmeshgen.py,sha256=Mps6YwpM7PACKIIqsZMb9XQ8N8hLde1Xl9FUqgA--kU,3423
|
|
3
|
-
pyvale/analyticsimdatafactory.py,sha256=NIg3VysG-C2V0Eu86mVQbA75kuwaPVL9d7TlDiZkQFs,2590
|
|
4
|
-
pyvale/analyticsimdatagenerator.py,sha256=1T7RUIgHF8qDXVdz_jfgmoD0qClddD5mwwtVhqkwSXE,9998
|
|
5
|
-
pyvale/camera.py,sha256=HaOqqYeItbTGKZ-f50Lqt-U04rjwrMmuZDy5PAsShSM,5330
|
|
6
|
-
pyvale/cameradata.py,sha256=Ury4ARaD3AfAgaxUqz0XLC-rdQojj8PUH1xImZ04zkc,1525
|
|
7
|
-
pyvale/cameradata2d.py,sha256=nOlxNP87mqGbXLbULn7ZiZJFT_zHapRkqnrmitVkG4w,2734
|
|
8
|
-
pyvale/cameratools.py,sha256=EahFPfv54Yssj8kfgT8ZIhdOYu92MFZFh7VPMs8KlaI,13495
|
|
9
|
-
pyvale/dataset.py,sha256=l0tDa8TQebMyU7BVUk5X34ok73jWuLF402jlN_Mc04Q,10055
|
|
10
|
-
pyvale/errorcalculator.py,sha256=jdAfbPx92rWuTjKcjTB-I4inIq83QpSs7BS9CNrXWiw,3495
|
|
11
|
-
pyvale/errordriftcalc.py,sha256=euhCEgbiesRiJ87UHNT5ZVB8p8_grAIwrdwd3bfTuUw,4477
|
|
12
|
-
pyvale/errorintegrator.py,sha256=iQigDo9qNEHlGLwpW9WrVxgZlYlimeIKb-E45u6kNow,14096
|
|
13
|
-
pyvale/errorrand.py,sha256=P793R9RbORCgz08qPsy-9iL8EthCiV-4d7Ql736RbXw,22655
|
|
14
|
-
pyvale/errorsysdep.py,sha256=uEY1J-sqrotKhXJahUkjOv1WhELah5Tf4gGFdTn3K0o,11809
|
|
15
|
-
pyvale/errorsysfield.py,sha256=Sf-CW4Vj1jF5vs2AB962NxPdKX60xHR5Ycbcsn4yWlo,16767
|
|
16
|
-
pyvale/errorsysindep.py,sha256=4ySd2uvJ8CF0_82XYDkindGeq260rDGYrS8qwwF4nFU,33976
|
|
17
|
-
pyvale/experimentsimulator.py,sha256=ZN4WO2vDaGv8HcDl0II922WU_y4wPdP5kga7l2KVJ8k,3577
|
|
18
|
-
pyvale/field.py,sha256=6Iyn_xOghF0KaCfZjOEtCcOmHtb5x_yB-_zfhc6bZOw,4627
|
|
19
|
-
pyvale/fieldconverter.py,sha256=blFRVH1sidiSbd-EY3mSBO5_Q13_W_0BtulAW_G877I,10173
|
|
20
|
-
pyvale/fieldsampler.py,sha256=Euadjj1-ZGUqdRPBK3iQ_2T5QNna7zTWgD_gGO42_hg,4447
|
|
21
|
-
pyvale/fieldscalar.py,sha256=QMf7iPFTRBCo8esSw2GwOGHo5iKSKqOlVQBWiD9wYdU,5958
|
|
22
|
-
pyvale/fieldtensor.py,sha256=wdwAiEXJ8nB87kRLd6hAyIcQnAQvEihuD66aO3feDSk,8259
|
|
23
|
-
pyvale/fieldtransform.py,sha256=bRmTG-vcyGnKoU7rhvqckrZhHrGjOKbScd9d4Uw2u74,17866
|
|
24
|
-
pyvale/fieldvector.py,sha256=fmDJMLFJIm6HnYWM485hIJrcs8oknjs1GubDnqO_77g,7971
|
|
25
|
-
pyvale/generatorsrandom.py,sha256=qjTBa0IkPXrplK1b1wNUu09rTD-z79xBO-P0iO0RMbI,18396
|
|
26
|
-
pyvale/imagedef2d.py,sha256=wYl96CRK6jjekRAbkSOInaVeQjdfUwNRwqHIyj2fvdU,25061
|
|
27
|
-
pyvale/integratorfactory.py,sha256=aCUvTf5h09zwKufE2-QTuZToL3HXZ__kKuxkMTulgkA,9624
|
|
28
|
-
pyvale/integratorquadrature.py,sha256=JohyvmFn4iYehoIOkQRFcU9St3QJ8n1Jbua4PJ-Meo8,6697
|
|
29
|
-
pyvale/integratorrectangle.py,sha256=DRW2i10kpkhUnq6ung5atNnabLoCXnMcXQiA0BehXNA,2939
|
|
30
|
-
pyvale/integratorspatial.py,sha256=NCYxE-qPZTxqV9JckV_I7SGGMoPGKlRs3-6YM4JEpXM,3223
|
|
31
|
-
pyvale/integratortype.py,sha256=5_l9k9_TId_2KvPqbmrCfzHOEi3sj-IDAfW6ytpDnAo,1308
|
|
32
|
-
pyvale/optimcheckfuncs.py,sha256=OPrKXweEgdAuVCUHW3ObrM0Kqf4raq4MsWOeTAwkQ6o,4191
|
|
33
|
-
pyvale/raster.py,sha256=tZNEkUV8Fpasl_65DPgVb_kcgC_LFLt45xo1E42ccBY,787
|
|
34
|
-
pyvale/rastercy.py,sha256=QYOcXlmFVpUVaSx_9hCUViXvI8dwS-LsXdlJkso59W4,2879
|
|
35
|
-
pyvale/rasternp.py,sha256=IWs4qRaZ9kFza5o74j41oQpK5_vqZb5I8RxX8Iro8ik,25991
|
|
36
|
-
pyvale/rendermesh.py,sha256=D7WL8-7E_g-SpbnZb9uX1nFiCLMiMP9IeGJUR_OdF1o,5358
|
|
37
|
-
pyvale/sensorarray.py,sha256=lmdei0U4psrBHKkg8-RbZLFGaCufZct8e61bJj-IUXA,7023
|
|
38
|
-
pyvale/sensorarrayfactory.py,sha256=cmZHipCZIvKE1Y9I_f2vGReP5zRmNS1gnev2VMOhhXE,8311
|
|
39
|
-
pyvale/sensorarraypoint.py,sha256=Tk_FOdCPxR_1eMEo8rAvTbzwqLpP94z8tm2f7dd1OYc,11236
|
|
40
|
-
pyvale/sensordata.py,sha256=iQLc9UTuFyMiXgsOg1C9VZORI25t7SGl-HMm132aw_8,2768
|
|
41
|
-
pyvale/sensordescriptor.py,sha256=IiHLWJ6C6A7pRA_weruQkO366cu2kBFMTuqqQ6XOSHw,2963
|
|
42
|
-
pyvale/sensortools.py,sha256=xWfQCkMYEGYKzJ0sxhIsjn7jPb2pylLkJYAwoStzKOc,5735
|
|
43
|
-
pyvale/visualexpplotter.py,sha256=4tHyoLJ5x6BIJbk41tAiMkmTUjCoKVj1bcI6FhMeCjs,6021
|
|
44
|
-
pyvale/visualimagedef.py,sha256=ZZ115m9egh2TnpwC3_mLFZDvIaSBucRdyhAUY8ZuH3k,2735
|
|
45
|
-
pyvale/visualimages.py,sha256=AvGeek7XTy_C6zZg1WS0ulCdyIonIoIBA5fiRlhXrL4,2847
|
|
46
|
-
pyvale/visualopts.py,sha256=REvKhXpHQVOR8y5Yn7qjOmlshBMygOMHVvJZsTr-o8E,4733
|
|
47
|
-
pyvale/visualsimanimator.py,sha256=mU3gjdFmxwPMAg3jFY2wcmpbcvN2zm5rcZ0xPeEgqus,3208
|
|
48
|
-
pyvale/visualsimplotter.py,sha256=Kr3aPWFVouADqDXFF_LXg21lNlTOjYJYbR1HiArI0Sw,6994
|
|
49
|
-
pyvale/visualtools.py,sha256=GYZAqL4ZkTfdSRzwm9DYuTEp4TA37AWklQMOFFIDShM,2981
|
|
50
|
-
pyvale/visualtraceplotter.py,sha256=_ExBVx8L9EqIsDGcofGS5axSpzAX4mSWjOh2MrRUuWk,10499
|
|
51
|
-
pyvale/cython/rastercyth.py,sha256=rYteBnFIrUyB6jAmUQTv96i02AT42y_0ELDaakAjPEs,24423
|
|
52
|
-
pyvale/data/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
|
|
53
|
-
pyvale/data/case00_HEX20_out.e,sha256=wTdEWvGyQBhP1D1bIy5YZKu7I_QISWLEjl9K9VOOnbI,241172
|
|
54
|
-
pyvale/data/case00_HEX27_out.e,sha256=XF1nLiBQcCJuZ4bXi8FUG3hbj5hpnno4by_hdyTVm4I,316644
|
|
55
|
-
pyvale/data/case00_HEX8_out.e,sha256=V52yZoQ4egI6v6JVkmA8DUVX6Q0K3AEWG8U3BbGHzSg,148268
|
|
56
|
-
pyvale/data/case00_TET10_out.e,sha256=eoIiAiQ5yLgiH2S01eMQRyHWGLfplnIAk6MPPcqEoPs,214036
|
|
57
|
-
pyvale/data/case00_TET14_out.e,sha256=t9s7WCV6gUlZfNcaj9q4_U7Sct9v9F77NQ0KU596GGk,316996
|
|
58
|
-
pyvale/data/case00_TET4_out.e,sha256=coeIyrkviOfgpgYauenoXldWnYulKgteOts6FolKYBM,127868
|
|
59
|
-
pyvale/data/case13_out.e,sha256=cqgs7TbyDtrlV4AxXUzULa0Qu50gbp_3VeQkehNT82g,150820
|
|
60
|
-
pyvale/data/case16_out.e,sha256=hmkiJQo4phaAPiEa9mgjggcUMn_yY2h348DSqMIj0pA,11614464
|
|
61
|
-
pyvale/data/case17_out.e,sha256=C5Zx0Xx8_iZqypPFbcutGPQtO5VNQaJmqg9YxWi0FHc,6095004
|
|
62
|
-
pyvale/data/case18_1_out.e,sha256=4ITunHIxCBCekUPipSv8j7IKDlhlwTaHe1e3wTN4qLE,1470776
|
|
63
|
-
pyvale/data/case18_2_out.e,sha256=Uz8U1TMBSe1YkRE4nRFMQ38Y11UQo9wb1cIbTRPua1Y,1470776
|
|
64
|
-
pyvale/data/case18_3_out.e,sha256=8dTnKLQOSCL-gle-1shL68GBQPW1go05aDvjO6AawAg,1470776
|
|
65
|
-
pyvale/data/case25_out.e,sha256=LWnCKG7GDUvzCs7GI1h25dhIhq6_qJgXnkhiTmdynPw,93748
|
|
66
|
-
pyvale/data/case26_out.e,sha256=UAoxPN0K1bbk9R0r2hDehuQZVCPHcAV5NA1PckRyXDY,225744
|
|
67
|
-
pyvale/data/optspeckle_2464x2056px_spec5px_8bit_gblur1px.tiff,sha256=cRmbiTzxc8QJ_aO9dc7YT21lV1c9K7pH-L9uQZvUQ8M,5046422
|
|
68
|
-
pyvale/examples/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
|
|
69
|
-
pyvale/examples/ex1_1_thermal2d.py,sha256=U9Ga08R5Z4o6VbSdRdAG9gdoWkyD0fLrhaAIlCJimnk,3372
|
|
70
|
-
pyvale/examples/ex1_2_thermal2d.py,sha256=umgsT2sh6CRoVIyyqF-jWG__MZhG5PmZLbjSFg-8U5s,3897
|
|
71
|
-
pyvale/examples/ex1_3_thermal2d.py,sha256=haIYN-u8XNlCIxt06mTHmDk1IWqYB_ZmpXKybWgsmFE,4023
|
|
72
|
-
pyvale/examples/ex1_4_thermal2d.py,sha256=9SJTSuvDDjBr5zVe1aeH-iNNk6pyrjg7KmZg2BpTZeI,3050
|
|
73
|
-
pyvale/examples/ex1_5_thermal2d.py,sha256=kzdxuMa-0lev9FYMreWQOt2a5ePThXWrs81_Vh8KViA,3929
|
|
74
|
-
pyvale/examples/ex2_1_thermal3d .py,sha256=_DX-obv_bBb3dTDvVbC-Lbs6q8pwzmz09KtULUyuGkk,3260
|
|
75
|
-
pyvale/examples/ex2_2_thermal3d.py,sha256=1oH4xmFo-6hpBka0wCzVzr1x7G2XgYRbn_ndhMnAgEY,1674
|
|
76
|
-
pyvale/examples/ex2_3_thermal3d.py,sha256=g4GbSrImy7vpVfdJ_VJwJmqNY443R8msobulBg4rT68,3521
|
|
77
|
-
pyvale/examples/ex3_1_displacement2d.py,sha256=iaHMNmv2sKtsr8QXZQMJxGTq4C-s1wBIpa-anYLOZmY,1577
|
|
78
|
-
pyvale/examples/ex3_2_displacement2d.py,sha256=CDIEkUu_Oo_T3BQzBsOG2dXoV9fexU9hBJxLjO5_84U,2594
|
|
79
|
-
pyvale/examples/ex3_3_displacement2d.py,sha256=VhkjdBdN58KboR9P3ozaVAmJ4oc7hvnY1CtQ4J-3VBE,3607
|
|
80
|
-
pyvale/examples/ex3_4_displacement2d.py,sha256=QxQC-KVuSIbFn0A5r3EpBRNUdUGyWqBrLE9penD6gS0,3949
|
|
81
|
-
pyvale/examples/ex4_1_strain2d.py,sha256=5U7AsUAvUm6QRHrAp9IGVeXl76Z8ZhkUXmPfgA3AK1M,1897
|
|
82
|
-
pyvale/examples/ex4_2_strain2d.py,sha256=d2pD4V603vhsf1tjUSf6t60ErJ8qt8UokD_uGBs6MnA,2699
|
|
83
|
-
pyvale/examples/ex4_3_strain2d.py,sha256=Tl1lwUyptY44cBwJx3FJHUWwAphlusYOj7_WMS7dQzE,3482
|
|
84
|
-
pyvale/examples/ex5_1_multiphysics2d.py,sha256=cI2YxiAQ41YH_CuBe7GAGurGst0BtFFSmixl0-jeG_Y,2787
|
|
85
|
-
pyvale/examples/ex6_1_multiphysics2d_expsim.py,sha256=TwXd2WjmKhWFAIgCuvXpUiNUIMvgiTAfjXA5ZZZbTHI,4284
|
|
86
|
-
pyvale/examples/ex6_2_multiphysics3d_expsim.py,sha256=_pR_8sEJuAEeKJEMmGHuEkPwbqvHve9ZOJh5fa965-M,5958
|
|
87
|
-
pyvale/examples/analyticdatagen/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
|
|
88
|
-
pyvale/examples/analyticdatagen/ex1_1_scalarvisualisation.py,sha256=X8OaNz1bYSiFVj7AZP1u8w7r0T0yTST8C5gHpzf1nE4,973
|
|
89
|
-
pyvale/examples/analyticdatagen/ex1_2_scalarcasebuild.py,sha256=iXY9wqoBUCaDwkLH1zMahxefsvX3TBbPjSrPGYUiuGQ,1317
|
|
90
|
-
pyvale/examples/analyticdatagen/ex2_1_analyticsensors.py,sha256=ln5U4g7XP-oLvtoAhAH_ombM01czEiPeG6pmzGVpyTc,2889
|
|
91
|
-
pyvale/examples/features/__init__.py,sha256=h1zJBQZxFSPPUksp_ErTC1uTQLdSmoc-ry3D_naPKYE,271
|
|
92
|
-
pyvale/examples/features/ex_animation_tools_3dmonoblock.py,sha256=4gNCiX831iankXOZrf_uji4iciRryhiFcaBUUSArvGc,2940
|
|
93
|
-
pyvale/examples/features/ex_area_avg.py,sha256=rNuwLwQwEikZ9Hz8i2AQPqsN8EY8mOTi73f8LDEgCf8,3110
|
|
94
|
-
pyvale/examples/features/ex_calibration_error.py,sha256=CoB2HulJ68XH7K1p6sQSCjKzRsjlUspcu2ELijvB3f8,3566
|
|
95
|
-
pyvale/examples/features/ex_chain_field_errs.py,sha256=BfkwFm9u8iZQfqtmvdZB7qMZzSTexvsKOkxkDREhf1M,4993
|
|
96
|
-
pyvale/examples/features/ex_field_errs.py,sha256=80w8GOpMS_NXay9XinNCx5XsPqwzPVzFWZJRZXm2Iq4,2762
|
|
97
|
-
pyvale/examples/features/ex_sensor_single_angle_batch.py,sha256=oiLKI46PBpluJXRBC9TUaEm709Wknqv-o0To1tY--tc,4295
|
|
98
|
-
pyvale/examples/imagedef2d/ex_imagedef2d_todisk.py,sha256=zA5EE_hq1ZeZijV6mpppqp14tH1VCjgo6m1MHVH2k2k,3039
|
|
99
|
-
pyvale/examples/rasterisation/ex_rastenp.py,sha256=1GJz5IO36fE6K8tREO6fGXd1CzYMcvBLfL946Q0CPes,4847
|
|
100
|
-
pyvale/examples/rasterisation/ex_rastercyth_oneframe.py,sha256=6iJxYQF714B9RQklkBT1dyHa6AGbhRIQmJhlsyOYVlg,7437
|
|
101
|
-
pyvale/examples/rasterisation/ex_rastercyth_static_cypara.py,sha256=NGvt9tRspYtsbILN7eqsQAsVBDKGFKa93rdmOwX2XtE,6951
|
|
102
|
-
pyvale/examples/rasterisation/ex_rastercyth_static_pypara.py,sha256=f7hjUpZF26k_dNsF6IWzWdfFtDSNWK7jH4vCD0qTuEY,6929
|
|
103
|
-
pyvale/simcases/case00_HEX20.i,sha256=UiKSQOGgAQwS3cWLxSMVixmp-1RzpZS3nKxVaIgWWKg,5149
|
|
104
|
-
pyvale/simcases/case00_HEX27.i,sha256=MJ3jXHf8hDQP-Y3Ew9FU3EAnD-7E4l8C4QjdeAoRrFc,5149
|
|
105
|
-
pyvale/simcases/case00_HEX8.i,sha256=R4NiWVjoyG8_y6Hhh_I_QySYzbEQ70QuiD0I4auA4Bc,5159
|
|
106
|
-
pyvale/simcases/case00_TET10.i,sha256=ijpTfoLb7ucLdgLyV7LimdIEnB3lLfykM_QJxAs2B9Q,5149
|
|
107
|
-
pyvale/simcases/case00_TET14.i,sha256=PlMC60P6prgpqCOSWAgU5VZ_0g_2WTxtQUYbAM2EaWk,5149
|
|
108
|
-
pyvale/simcases/case00_TET4.i,sha256=Ot9VqNO0s2RVWVmGqLcFcZ0dg9E3Z00BhfYFsOQkiKE,5159
|
|
109
|
-
pyvale/simcases/case01.i,sha256=R6t_uui6DywA1m5HLt4EsdkGDzobpGrfxBrfIY-5YiI,2184
|
|
110
|
-
pyvale/simcases/case02.i,sha256=gOPdUDVDnMUgqevcRO7vT5HnXTY64a7rmugSgkUqQ0s,3406
|
|
111
|
-
pyvale/simcases/case03.i,sha256=6LkfehTSTXuJ390mdn6tYp2Tkgo15KVpGmFmBrHo-AA,2848
|
|
112
|
-
pyvale/simcases/case04.i,sha256=Ao5z2qey2eJrqW1TmCm6LZRDeTwPTOFtMNPocH4zQO4,3757
|
|
113
|
-
pyvale/simcases/case05.i,sha256=VO2D38xsUrZmEMuEJF6JzjF_InpGAdrf9y_5FhvvvDw,5959
|
|
114
|
-
pyvale/simcases/case06.i,sha256=DLMHzOp3Kgu4EIXSg58Ltz4NRVTPC-dZbJp-g-vY3Uo,7298
|
|
115
|
-
pyvale/simcases/case07.geo,sha256=DxJjqex1zlQewGEcr_JiwbHSDczhOi-34ogvwAFfx_Q,4442
|
|
116
|
-
pyvale/simcases/case07.i,sha256=73YrdZUAGCddorbBBxY-oK0tLOw12lISYR5xzzi3ddc,1921
|
|
117
|
-
pyvale/simcases/case08.geo,sha256=d9QEIzMRRXynWOAHx07i8RxTA-uvKNVvpMAEBVZamKs,4795
|
|
118
|
-
pyvale/simcases/case08.i,sha256=G4MqwcZWAaKcXD3toDNtaghbJ3rxiZHWvL-zT6n021Y,3253
|
|
119
|
-
pyvale/simcases/case09.geo,sha256=zW9w_MQlfdbzXat7XfttiAP5HKIo6aCnUBWyGd8SlQQ,6858
|
|
120
|
-
pyvale/simcases/case09.i,sha256=3tZCH7MtvjE4GPLO-Tsigm8kmvc_Ma8H9kZ2e5wb3uQ,1924
|
|
121
|
-
pyvale/simcases/case10.geo,sha256=y4RRENzZyfzUey-wNK3dr448_j7ta70EgxReoaKP2vY,6839
|
|
122
|
-
pyvale/simcases/case10.i,sha256=5X7xsgqiXAZDx-q5erxiWg1XOdGlmfD9UZ7i4Lqg-nk,6377
|
|
123
|
-
pyvale/simcases/case11.geo,sha256=HDEMxIpANKUrDEgBfokxDohEoVpWMcfAcKJ1Rr8RW8c,10429
|
|
124
|
-
pyvale/simcases/case11.i,sha256=f34kuvrDNKjqjiyV0BmCeH3ZDDJFUTtkKmorK4YbAhc,3093
|
|
125
|
-
pyvale/simcases/case12.geo,sha256=FQ-Ck1LBsqnV4HDdLbIP1U2cRot7dRBTIlQ1n6GnxgE,12477
|
|
126
|
-
pyvale/simcases/case12.i,sha256=N-lJnOenl_PQhhatkjMLhUGNNGKLV0QPjLiWU0QfXGo,7932
|
|
127
|
-
pyvale/simcases/case13.i,sha256=q1KLk_S9AC15-ZNV_PydIp2QZsf_EUE1sth6a3t8cG8,3308
|
|
128
|
-
pyvale/simcases/case14.i,sha256=-Yq-ecGcs153-t-fHNM4kWBR3d4_joxmM7WAnm4O57w,3502
|
|
129
|
-
pyvale/simcases/case15.geo,sha256=Sgat1JQJeBCaSlGEEJ1o_WSZMpLpDkbhIrTaUKDiRX4,10429
|
|
130
|
-
pyvale/simcases/case15.i,sha256=88TAhiFxU9jGKnxJu8Ne4pWnbh9pHKkzSs0e0IjfUDM,3187
|
|
131
|
-
pyvale/simcases/case16.geo,sha256=SHB_GMofxN6WYq8JZ1Ktm8B8F_0L7K5hu4-DHtm3CX4,12554
|
|
132
|
-
pyvale/simcases/case16.i,sha256=TJDlkIcdQz2JypfVDobYXg6N86rk03w-AUlIdWV1l7s,8758
|
|
133
|
-
pyvale/simcases/case17.geo,sha256=lBMnrWGnYYivRqOIg5hfExRVr_jRjs1Zd9-f_ugitwA,4442
|
|
134
|
-
pyvale/simcases/case17.i,sha256=G0o57umdzOkzWoroREpV1IH6DA8QM2zAhdemul6-Y7w,3056
|
|
135
|
-
pyvale/simcases/case18.i,sha256=W3Hu6wwWCwOzxwZFmEB2tMlQ1VeCrs-r8erdbFWrqd0,6292
|
|
136
|
-
pyvale/simcases/case18_1.i,sha256=W3Hu6wwWCwOzxwZFmEB2tMlQ1VeCrs-r8erdbFWrqd0,6292
|
|
137
|
-
pyvale/simcases/case18_2.i,sha256=9Y2F3FCrLUJ78cP95CUKvsdCWGkWQLZbcqQ_WbeWPVs,6292
|
|
138
|
-
pyvale/simcases/case18_3.i,sha256=0K1IDUiK1WSjWJOpJi7hvUqJApFD4Z0m9JkCkivAevM,6292
|
|
139
|
-
pyvale/simcases/case19.geo,sha256=nT1Hch8Llv96z3QAPYqzpzIlaV01xXf1sozuA-m0-7I,9102
|
|
140
|
-
pyvale/simcases/case19.i,sha256=jRDSAWaC-bTxCeFgSyj1gapbo6iqteySuPR5QhPLKqo,2191
|
|
141
|
-
pyvale/simcases/case20.geo,sha256=TKBX8JKDwXKyXfXCi6fmOzDV_7_1Kpfpne9yeute11o,9102
|
|
142
|
-
pyvale/simcases/case20.i,sha256=wAQGXJbY_VniZPG-PzeL5-Sk6_ZUiwuf8zRV3c8nEz0,6655
|
|
143
|
-
pyvale/simcases/case21.geo,sha256=AzFNKkQp7-a9PojtR4y0GNI6g12BLvTRvkHDglYPRFQ,2387
|
|
144
|
-
pyvale/simcases/case21.i,sha256=QjKU97PMsswLkaGkutC7gdJhGY8lRq5VEf5b-gRhT4E,3417
|
|
145
|
-
pyvale/simcases/case22.geo,sha256=3OHJhFTm9P_G6vIB9fqgcpeT1DQt5xq5tWxOsRhvj2A,2491
|
|
146
|
-
pyvale/simcases/case22.i,sha256=b3IeO0hs4IU0PJlS_MIkF1gtPkKYQXklfNs5rhy9KNc,3189
|
|
147
|
-
pyvale/simcases/case23.geo,sha256=53NyuNJrPBgUWRHhgz0zS2fCZ8lavn_flpnfLUO2GNY,5448
|
|
148
|
-
pyvale/simcases/case23.i,sha256=0sRJTmiieHxb4YBnYH5foJGteQZfn5Fo0Z3TkDuLSoQ,3188
|
|
149
|
-
pyvale/simcases/case24.geo,sha256=3qiwipPbwaOjmPySISOZycYKdXCSDFrQpccnXHWhiU0,2408
|
|
150
|
-
pyvale/simcases/case24.i,sha256=6scn1ujqyQ2FUHm30NNZPwTzXD9w7AEDkzbrncah-xQ,2950
|
|
151
|
-
pyvale/simcases/case25.geo,sha256=k33GLvsApxTbxDbnOGueA3rTIazqcgYQ5DP37kCAPA4,2492
|
|
152
|
-
pyvale/simcases/case25.i,sha256=8lArbbZOCJ4aLuJCaEO5FW1kzJI4JquOmbA-nVpNRRI,2994
|
|
153
|
-
pyvale/simcases/case26.geo,sha256=7Qj0siF2FqgElxcmtX_7UDp4tdX6scnJgKffpP6iRQY,5468
|
|
154
|
-
pyvale/simcases/case26.i,sha256=V-pS7MeAo9vl3QUDtu-i6MQyeftryxSj0r8n7t6hY0k,2992
|
|
155
|
-
pyvale/simcases/run_1case.py,sha256=QmmZcawWmfkmImciEqM-8NedwlzuIOgLT2Te3fVb574,1928
|
|
156
|
-
pyvale/simcases/run_all_cases.py,sha256=9b3JYcxC8PA2CR-htum7wCICwwnLNeC01xAhk0m6yxw,1903
|
|
157
|
-
pyvale/simcases/run_build_case.py,sha256=IlyZC_VU095ayi7nz57xSSboTeJB54y7nsQXpBTUXFM,1938
|
|
158
|
-
pyvale/simcases/run_example_cases.py,sha256=l5KOQvPMNRUkJMotaReG2nmrFtVBNWCwKVezNyRwKb0,1910
|
|
159
|
-
pyvale-2025.4.1.dist-info/licenses/LICENSE,sha256=h2qWsRIazuLLhALyUsCP6aE0DFcswL9SSSt9sgMzZi4,1099
|
|
160
|
-
pyvale-2025.4.1.dist-info/METADATA,sha256=Id2viAv30Ni56VjcmT-qWnRuF8tORpbWIsRKQPiGzqA,6923
|
|
161
|
-
pyvale-2025.4.1.dist-info/WHEEL,sha256=ooBFpIzZCPdw3uqIQsOo4qqbA4ZRPxHnOH7peeONza0,91
|
|
162
|
-
pyvale-2025.4.1.dist-info/top_level.txt,sha256=u1d_f4iZ3b3_96Rb_zrs9hyrpC4yE5e1Lg6Ey_Wgr0c,7
|
|
163
|
-
pyvale-2025.4.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|