def readOpenFoam(sol): import subprocess # # Reading SedFoam results # # proc = subprocess.Popen(['foamListTimes', '-case', sol, '-latestTime'], stdout=subprocess.PIPE) output = proc.stdout.read() tread = output.rstrip() + '/' Nt = 1 Y = fluidfoam.readscalar(sol, '0/', 'ccy') alpha = fluidfoam.readscalar(sol, tread, 'alpha') Ua = fluidfoam.readvector(sol, tread, 'Ua') Ub = fluidfoam.readvector(sol, tread, 'Ub') Tauf = fluidfoam.readtensor(sol, tread, 'Tauf') Taus = fluidfoam.readtensor(sol, tread, 'Taus') return Nt, Y, Ua[0, :], Ub[0, :], alpha, Tauf[1, :], Taus[1, :]
def readOpenFoam(sol): import subprocess # # Reading SedFoam results try: proc = subprocess.Popen(['foamListTimes', '-latestTime', '-case', sol], stdout=subprocess.PIPE) except: print("foamListTimes : command not found") print("Do you have load OpenFoam environement?") sys.exit(0) output = proc.stdout.read() tread = output.decode().rstrip().split('\n')[0] Nt = 1 X, Y, Z = fluidfoam.readmesh(sol) alpha = fluidfoam.readscalar(sol, tread, 'alpha.a') Ua = fluidfoam.readvector(sol, tread, 'U.a') Ub = fluidfoam.readvector(sol, tread, 'U.b') Tauf = fluidfoam.readtensor(sol, tread, 'Taub') Taus = fluidfoam.readtensor(sol, tread, 'Taua') k = fluidfoam.readscalar(sol, tread, 'k.b') Theta = fluidfoam.readscalar(sol, tread, 'Theta') return Nt, Y, Ua[0, :], Ub[0, :], alpha, Tauf[3, :], Taus[3, :], k, Theta
# U # # i = -1 zex = np.linspace(0, h, 200) for data in datalist: i = i + 1 print(data) #ufile=basepath+data+'Uf.xy' #zu,u=np.loadtxt(ufile,unpack=True) Ub = fluidfoam.readvector(sol, data + '/', 'Ub') u = Ub[0, :] Taub = fluidfoam.readtensor(sol, data + '/', 'Taub') Rfw = Taub[3, :] / 1e3 z = y - np.min(y) tex = float(data) uex = U0 * (np.sin(2 * np.pi * tex / T0) - np.exp(-zex / delta) * np.sin(2 * np.pi * tex / T0 - zex / delta)) tauex = viscof*U0/delta*np.exp(-zex/delta)* \ (np.sin(2*np.pi*tex/T0-zex/delta)+np.cos(2*np.pi*tex/T0-zex/delta)) figure(1) ax1 = subplot(1, 1, 1) pO = ax1.plot(u / U0, z / delta, '--r', label="OpenFOAM") # phi="+phi[i]) p = ax1.plot(uex / U0, zex / delta, '-m', label="Stokes") # phi="+phi[i])
#---------------Loading OpenFoam results-------------------- # basepath = '../' # # Loading OpenFoam results # casedir = '1DBoundaryLayer/' tout = '2500' sol = basepath + casedir x, z, y = fluidfoam.readmesh(sol) k = fluidfoam.readscalar(sol, tout, 'k') U = fluidfoam.readvector(sol, tout, 'Ub') Tauf = fluidfoam.readtensor(sol, tout, 'Taub') u = U[0, :] ######################################### # # Physical parameters # rhof = 1 nu = 7.2727e-5 wallShear = np.max(Tauf[3, :]) / rhof H = np.max(z) Umax = np.max(U) Um = np.trapz(u, z) / H
######################################### # Reading SedFoam results ######################################### X,Y,Z = fluidfoam.readmesh(sol) alpha = fluidfoam.readscalar(sol, tread, 'alpha.a') Ua = fluidfoam.readvector(sol, tread, 'U.a') Ub = fluidfoam.readvector(sol, tread, 'U.b') pff = fluidfoam.readscalar(sol, tread, 'pff') pa = fluidfoam.readscalar(sol, tread, 'pa') muI = fluidfoam.readscalar(sol, tread, 'muI') nuEffa = fluidfoam.readscalar(sol, tread, 'nuEffa') nuEffb = fluidfoam.readscalar(sol, tread, 'nuEffb') nuFra = fluidfoam.readscalar(sol, tread, 'nuFra') Tauf = fluidfoam.readtensor(sol, tread, 'Taub') Taus = fluidfoam.readtensor(sol, tread, 'Taua') try: gradUa = fluidfoam.readtensor(sol, tread, 'grad(U.a)') except: print("grad(U.a) was not found -> postProcess -func 'grad(U.a)'") os.system("postProcess -case "+sol+" -func \'grad(U.a)\' -time "+tread) gradUa = fluidfoam.readtensor(sol, tread, 'grad(U.a)') Ny = np.size(Y) U = np.zeros(Ny) U = alpha[:] * Ua[0, :] + (1 - alpha[:]) * Ub[0, :] taua = np.zeros(Ny) taub = np.zeros(Ny)
Nx = 1 Ny = 200 Nz = 1 eps_file = sol + case + '.eps' ######################################### # Reading SedFoam results ######################################### X, Y, Z = fluidfoam.readmesh(sol) alpha = fluidfoam.readscalar(sol, tread, 'alpha_a') Ua = fluidfoam.readvector(sol, tread, 'Ua') Ub = fluidfoam.readvector(sol, tread, 'Ub') pff = fluidfoam.readscalar(sol, tread, 'pff') tau = fluidfoam.readtensor(sol, tread, 'Taua')[3] #p = fluidfoam.readscalar(sol, tread, 'p') Ny = np.size(Y) U = np.zeros(Ny) U = alpha[:] * Ua[0, :] + (1 - alpha[:]) * Ub[0, :] print("max(Ub)=" + str(np.amax(Ub)) + " m/s") ######################################### # figure 1 ######################################### figure(num=1, figsize=(figwidth, figheight), dpi=60,
tread = '16' print('########## Writing averaged data file ##########') # Read vertical coordinates x, y, z = fluidfoam.readmesh(sol, True, precision=12) ny = len(y[0, :, 0]) uny = int(ny / 2) yi = y[0, 0:uny, 0] # Read temporaly averaged variables alpha_ta = fluidfoam.readscalar(sol, tread, 'alpha_aMean', True, precision=12) ubf_ta = fluidfoam.readvector(sol, tread, 'UbMeanF', True, precision=12) uaf_ta = fluidfoam.readvector(sol, tread, 'UaMeanF', True, precision=12) ubprimf_ta = fluidfoam.readtensor(sol, tread, 'UbPrime2MeanF', True, precision=12) uaprimf_ta = fluidfoam.readtensor(sol, tread, 'UaPrime2MeanF', True, precision=12) # Usable data alpha_ta = alpha_ta[:, 0:uny, :] ubf_ta = ubf_ta[:, :, 0:uny, :] uaf_ta = uaf_ta[:, :, 0:uny, :] ubprimf_ta = ubprimf_ta[:, :, 0:uny, :] uaprimf_ta = uaprimf_ta[:, :, 0:uny, :]