def wall_units(yl, Nz, p, Re, plot=False): lstar=.5/Re; As, Bs, Cs, Ds, z, w = sem.semhat(p) y_gll = np.zeros(0) for i in range(len(yl)-1): y_gll = np.append(y_gll, yl[i]+ (z+1.)/2. * (yl[i+1]-yl[i])) ym_vec = (y_gll[1:] - y_gll[:-1]) / lstar y_p = (y_gll-y_gll[0])/lstar ym = np.max(ym_vec) cm = np.min(ym_vec[ym_vec > 0]) y1 = y_p[3] y10=np.max(ym_vec[1:2*p+3]) y10=np.max(ym_vec[1:11]) y10 = y_p[9] if plot: plt.plot(yl,np.ones(yl.size)) plt.plot(y_gll,np.ones(y_gll.size)) z_gll = np.zeros(0) zg = np.linspace(0,24,Nz) for i in range(len(zg)-1): z_gll = np.append(z_gll, zg[i]+ (z+1.)/2. * (zg[i+1]-zg[i])) zn = np.max(z_gll[1:]-z_gll[:-1])/lstar return ym, y1, y10, zn, cm
def wall_units(yl, Nz, p, Re, plot=False): lstar = .5 / Re As, Bs, Cs, Ds, z, w = sem.semhat(p) y_gll = np.zeros(0) for i in range(len(yl) - 1): y_gll = np.append(y_gll, yl[i] + (z + 1.) / 2. * (yl[i + 1] - yl[i])) ym_vec = (y_gll[1:] - y_gll[:-1]) / lstar y_p = (y_gll - y_gll[0]) / lstar ym = np.max(ym_vec) cm = np.min(ym_vec[ym_vec > 0]) y1 = y_p[3] y10 = np.max(ym_vec[1:2 * p + 3]) y10 = np.max(ym_vec[1:11]) y10 = y_p[9] if plot: plt.plot(yl, np.ones(yl.size)) plt.plot(y_gll, np.ones(y_gll.size)) z_gll = np.zeros(0) zg = np.linspace(0, 24, Nz) for i in range(len(zg) - 1): z_gll = np.append(z_gll, zg[i] + (z + 1.) / 2. * (zg[i + 1] - zg[i])) zn = np.max(z_gll[1:] - z_gll[:-1]) / lstar return ym, y1, y10, zn, cm
# In[1]: get_ipython().magic('matplotlib inline') import numpy as np import matplotlib.pyplot as plt import sem import scipy.linalg as la # In[2]: N = 8 p = N - 1 E = 8 Al, Bl, Cl, Dl, zl, wl = sem.semhat(p) Q = np.zeros((N*E, p*E), dtype=np.float64) for j in range(E): for i in range(N): if i+j*p == p*E: continue Q[i+j*N,i+j*p] = 1. Q[-1,0] = 1. Qt = Q.transpose() A = np.dot(Qt, np.dot(np.kron(np.identity(E), Al), Q)) B = np.dot(Qt, np.dot(np.kron(np.identity(E), Bl), Q)) / E D = np.dot(Qt, np.dot(np.kron(np.identity(E), Dl), Q)) * E A = np.dot(D.transpose(), np.dot(B, D)) C = np.dot(B, D) z = np.zeros(p * E, dtype=np.float64 ) for j in range(E):