-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSFED_routines.py
62 lines (49 loc) · 3.08 KB
/
SFED_routines.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
from gridData import Grid, OpenDX
import numpy as np
kB=0.00198721587 #CONSTANT
NA=6.022142E23 #CONSTANT
np.set_printoptions(suppress=True)
""" def mu_gf_3drism(h_o, c_o, h_h, c_h, d, rho=0.03342285869, kB=0.00198721587, T=300, Na=6.022142E23):
mu = rho * np.sum(-0.5 * h_o * c_o - c_o) * d + 2 * rho * np.sum(-0.5 * h_h * c_h - c_h) * d
return mu*kB*T
def mu_kh_3drism(h_o, c_o, h_h, c_h, d, rho=0.03342285869, kB=0.00198721587, T=300, Na=6.022142E23):
mu = rho*np.sum(0.5*np.power(h_o, 2)*np.heaviside(-h_o, 1) - 0.5*h_o*c_o - c_o)*d + 2*rho*np.sum(0.5*np.power(h_h, 2)*np.heaviside(-h_h, 0.5) - 0.5*h_h*c_h - c_h)*d
return mu*kB*T """
def sfed_gf_3drism(h_o, c_o, h_h, c_h, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23):
wr = rho * (-0.5 * h_o * c_o - c_o) + 2 * rho * (-0.5 * h_h * c_h - c_h)
return wr*kB*T
def sfed_hnc_3drism(h_o, c_o, h_h, c_h, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23):
wr = rho * (0.5 * np.power(h_o, 2) - c_o - 0.5 * h_o * c_o) + 2.0 * rho * (0.5 * np.power(h_h, 2) - c_h - 0.5 * h_h * c_h)
return wr*kB*T
def sfed_kh_3drism(h_o, c_o, h_h, c_h, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23):
wr = rho*(0.5*np.power(h_o, 2)*np.heaviside(-h_o, 1) - 0.5*h_o*c_o - c_o) + 2*rho*(0.5*np.power(h_h, 2)*np.heaviside(-h_h, 0.5) - 0.5*h_h*c_h - c_h)
return wr*kB*T
def sfed_psen_3drism(h_o, c_o, h_h, c_h, u_o, u_h, n, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23):
ts_o = (-u_o) + (h_o - c_o)
ts_h = (-u_h) + (h_h - c_h)
sfed_hnc = sfed_hnc_3drism(h_o, c_o, h_h, c_h, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23)
wr = rho*(np.heaviside(h_o, 0.5)*np.power(ts_o, n+1)/np.math.factorial(n+1)) + 2*rho*(np.heaviside(h_h, 0.5)*np.power(ts_h, n+1)/np.math.factorial(n+1))
return (sfed_hnc - wr*kB*T)
""" def mu_kh_3drism_g(g_o, c_o, g_h, c_h, d, rho=3.3422858685000001E-02, kB=0.00198721587, T=300, Na=6.022142E23):
h_o = g_o - 1.0
h_h = g_h - 1.0
mu = rho*np.sum(0.5*np.power(h_o, 2)*np.heaviside(-h_o, 1) - 0.5*h_o*c_o - c_o)*d + 2*rho*np.sum(0.5*np.power(h_h, 2)*np.heaviside(-h_h, 0.5) - 0.5*h_h*c_h - c_h)*d
return mu*kB*T
def sfed_kh_3drism_g(g_o, c_o, g_h, c_h, rho=0.03342285869, kB=0.00198721587, T=300, Na=6.022142E23):
h_o = g_o - 1.0
h_h = g_h - 1.0
wr = rho*(0.5*np.power(h_o, 2)*np.heaviside(-h_o, 1) - 0.5*h_o*c_o - c_o) + 2*rho*(0.5*np.power(h_h, 2)*np.heaviside(-h_h, 0.5) - 0.5*h_h*c_h - c_h)
return wr*kB*T
def sfed_gf_3drism_g(h_o, c_o, h_h, c_h, rho=0.03332834, kB=1.9872041E-3, T=300, Na=6.022142E23):
h_o = g_o - 1.0
h_h = g_h - 1.0
wr = rho * (-0.5 * h_o * c_o - c_o) + 2 * rho * (-0.5 * h_h * c_h - c_h)
return wr*kB*T """
def integrate_sfed(sfed, d):
return np.sum(sfed * d)
def writedx(sfed_o, ho, fname):
sfed = OpenDX.field('SFED')
sfed.add('positions', OpenDX.gridpositions(1, sfed_o.shape, ho.origin, ho.delta))
sfed.add('connections', OpenDX.gridconnections(2, sfed_o.shape))
sfed.add('data', OpenDX.array(3, sfed_o))
sfed.write(fname + ".dx")