48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import argparse
|
|
import datetime
|
|
import numpy as np
|
|
import dnstool
|
|
from pycompact import CompactScheme
|
|
|
|
|
|
program_description = '''\
|
|
Read all DNS data files and extract u, c and ddx(c) to single array.
|
|
New array dimension is (nx, time, ny, nz)
|
|
'''
|
|
|
|
# Commandline argument parser
|
|
parser = argparse.ArgumentParser(description=program_description)
|
|
parser.add_argument("-c", "--case", help="target case name", required=True)
|
|
args = parser.parse_args()
|
|
params = vars(args)
|
|
|
|
casename = params["case"]
|
|
u_idx = 1
|
|
y_idx = 4
|
|
|
|
cases = dnstool.case_library()
|
|
|
|
case = cases[casename]
|
|
|
|
nx, ny, nz = case.shape
|
|
|
|
cs = CompactScheme(nx, ny, nz, False, True, True, 4, 2, 2)
|
|
|
|
file1 = "u.dat"
|
|
file2 = "c.dat"
|
|
file3 = "ddxc.dat"
|
|
|
|
storage1 = np.memmap(file1, mode='w+', dtype=np.double, shape=(nx, len(case.data_files), ny, nz))
|
|
storage2 = np.memmap(file2, mode='w+', dtype=np.double, shape=(nx, len(case.data_files), ny, nz))
|
|
storage3 = np.memmap(file3, mode='w+', dtype=np.double, shape=(nx, len(case.data_files), ny, nz))
|
|
|
|
for i, fname in enumerate(case.data_files):
|
|
print(datetime.datetime.now(), i, fname)
|
|
time, u = case.read_single_field(fname, u_idx)
|
|
time, y = case.read_single_field(fname, y_idx)
|
|
c = (1. - y)
|
|
storage1[:,i,:,:] = u.T
|
|
storage2[:,i,:,:] = c.T
|
|
storage3[:,i,:,:] = cs.ddx(c).T
|
|
|
|
storage.flush()
|