2023-07-22 18:00:22 +03:00

54 lines
1.0 KiB
Python

# %%
import numpy as np
def dr(*x, p = 3):
print(np.round(x, p))
def vol(x):
return np.dot(x[0], np.cross(x[1], x[2]))
# %%
A_metal = 4.08
# a_general = np.array(((1/np.sqrt(2), 1/np.sqrt(2), 0), (1/np.sqrt(2), 0, 1/np.sqrt(2)), (0, 1/np.sqrt(2), 1/np.sqrt(2))))
a_metal = A_metal/2 * np.array(((0, 1, 1), (1, 0, 1), (1, 1, 0)))
dr(a_metal)
a = a_metal
V_metal = np.dot(a[0], np.cross(a[1], a[2]))
dr(V_metal, A_metal**3/4)
a_ = 2*np.pi/V_metal * np.array((np.cross(a[1],a[2]), np.cross(a[0], a[2]), np.cross(a[0], a[1])))
dr(a_)
dr(a_[0][0], 2*np.pi/A)
X = np.array((0, 0, 1)) * A
L = np.array((0.5, 0.5, 0.5)) * A
K = np.array((0.75, 0.75, 0)) * A
dr(X, L, K)
dr(vol(a_))
# %%
A_diel = 6.48
a_diel = a_general * A_diel
dr(a_diel)
a = a_diel
V_diel = np.dot(a[0], np.cross(a[1], a[2]))
dr(V_diel)
a_ = 2*np.pi/np.abs(V_diel) * np.array((np.cross(a[1],a[2]), np.cross(a[0], a[2]), np.cross(a[0], a[1])))
dr(a_)
# %%
a = a_general
dr(2*np.pi/(np.dot(a[0], np.cross(a[1], a[2])))*np.cross(a[1], a[2]))