-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroundReferenceSolutions.py
71 lines (55 loc) · 3.77 KB
/
roundReferenceSolutions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""Reference solutions from Bancroft 1941 and Davies 1948 articles for the
dispersion of elastic waves in round bars for the longitudinal mode
Bancroft, D. (1941). The Velocity of Longitudinal Waves in Cylindrical Bars.
*Physical Review*, 59(7), 588‑593. https://doi.org/10.1103/PhysRev.59.588
Davies, R. M. (1948). A Critical Study of the Hopkinson Pressure Bar.
*Philosophical Transactions of the Royal Society of London A:
Mathematical, Physical and Engineering Sciences*,
240(821), 375‑457.
https://doi.org/10.1098/rsta.1948.0001
See the original articles for the notations.
Usage:
- put the file in the same directory as the other scripts
- use `import dispRefSol as drs`
- call a given variable with e.g. `drs.bancroft`
"""
import numpy as np
# %% Database coming from BANCROFT 1941
nusB = np.array([0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4]) # Poisson's ratio
dL = np.array([0.00, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45,
0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95,
1.00, 1.20, 1.40, 1.60, 1.80, 2.00, ]) # d/L, d:diameter, L:wavelength
bancroft = np.array([[1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000, 1.00000],
[0.99994, 0.99986, 0.99975, 0.99961, 0.99944, 0.99924, 0.99901],
[0.99975, 0.99943, 0.99899, 0.99843, 0.99774, 0.99694, 0.99602],
[0.99941, 0.99868, 0.99766, 0.99638, 0.99482, 0.99302, 0.99097],
[0.99890, 0.99754, 0.99568, 0.99333, 0.99054, 0.98732, 0.98373],
[0.99816, 0.99591, 0.99287, 0.98909, 0.98466, 0.97967, 0.97418],
[0.99710, 0.99362, 0.98899, 0.98337, 0.97691, 0.96979, 0.96214],
[0.99556, 0.99038, 0.98366, 0.97572, 0.96688, 0.95739, 0.94747],
[0.99323, 0.98569, 0.97627, 0.96559, 0.95410, 0.94218, 0.93007],
[0.98951, 0.97866, 0.96592, 0.95220, 0.93810, 0.92397, 0.91001],
[0.98296, 0.96771, 0.95133, 0.93479, 0.91854, 0.90277, 0.88758],
[0.97014, 0.95037, 0.93119, 0.91288, 0.89549, 0.87899, 0.86333],
[0.94487, 0.92436, 0.90502, 0.88681, 0.86964, 0.85341, 0.83806],
[0.90658, 0.89086, 0.87432, 0.85800, 0.84222, 0.82709, 0.81265],
[0.86493, 0.85471, 0.84201, 0.82841, 0.81466, 0.80110, 0.78792],
[0.82653, 0.82009, 0.81074, 0.79982, 0.78818, 0.77632, 0.76452],
[0.79306, 0.78893, 0.78202, 0.77332, 0.76357, 0.75330, 0.74284],
[0.76445, 0.76167, 0.75644, 0.74943, 0.74125, 0.73236, 0.72310],
[0.74013, 0.73812, 0.73402, 0.72826, 0.72130, 0.71355, 0.70532],
[0.71949, 0.71791, 0.71454, 0.70967, 0.70365, 0.69682, 0.68946],
[0.70196, 0.70058, 0.69768, 0.69344, 0.68814, 0.68203, 0.67537],
[0.65419, 0.65266, 0.65030, 0.64712, 0.64321, 0.63869, 0.63368],
[0.62836, 0.62623, 0.62361, 0.62048, 0.61687, 0.61284, 0.60844],
[0.61393, 0.61118, 0.60815, 0.60479, 0.60111, 0.59713, 0.59289],
[0.60565, 0.60236, 0.59892, 0.59526, 0.59139, 0.58731, 0.58304],
[0.60080, 0.59707, 0.59326, 0.58932, 0.58524, 0.58101, 0.57664]]) # c/c_0
Vinf = np.array([0.60213, 0.59491, 0.58804, 0.58148, 0.57516, 0.56903, 0.56307])
# %% DAVIES 1948
nuD = 0.29
asurLD = np.array([0.000, 0.1259, 0.1505, 0.1968, 0.2875, 0.3625, 0.4550, 0.5049, 0.5868,
0.8191, 0.9355, 1.17940, 1.22398, 1.28151, 1.35497, 1.45756, 1.61885, 2.09364]) # a/L, a:radius, L:wavelength
ccoD = np.array([1.000, 0.9853, 0.978, 0.958, 0.886, 0.809, 0.724, 0.687, 0.650,
0.600, 0.590, 0.580, 0.579, 0.578, 0.577, 0.576, 0.575, 0.574]) # c/c_0
VinfD = 0.5764