Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
# 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):