Example #1
0
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, :]
Example #2
0
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)
Example #6
0
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,
Example #7
0
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, :]