Skip to content
Snippets Groups Projects
Commit 3309a4f6 authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

put postprocessing in separate file

parent 0b26bc91
No related branches found
No related tags found
No related merge requests found
...@@ -472,7 +472,9 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base): ...@@ -472,7 +472,9 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
self.particle_species += 1 self.particle_species += 1
return None return None
def get_data_file(self): def get_data_file(self):
return h5py.File(os.path.join(self.work_dir, self.simname + '.h5'), 'a') return h5py.File(os.path.join(self.work_dir, self.simname + '.h5'), 'r')
def get_postprocess_file_name(self):
return os.path.join(self.work_dir, self.simname + '_postprocess.h5')
def compute_statistics(self, iter0 = 0, iter1 = None): def compute_statistics(self, iter0 = 0, iter1 = None):
if len(list(self.statistics.keys())) > 0: if len(list(self.statistics.keys())) > 0:
return None return None
...@@ -496,39 +498,42 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base): ...@@ -496,39 +498,42 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
iter0//self.parameters['niter_part']:iter1//self.parameters['niter_part']+1] iter0//self.parameters['niter_part']:iter1//self.parameters['niter_part']+1]
for key in data_file['particles'].keys()] for key in data_file['particles'].keys()]
computation_needed = True computation_needed = True
if 'postprocess' in data_file.keys(): pp_file = h5py.File(self.get_postprocess_file_name(), 'a')
computation_needed = not (ii0 == data_file['postprocess/ii0'].value and if 'ii0' in pp_file.keys():
ii1 == data_file['postprocess/ii1'].value) computation_needed = not (ii0 == pp_file['ii0'].value and
ii1 == pp_file['ii1'].value)
if computation_needed: if computation_needed:
del data_file['postprocess'] pp_file.close()
os.remove(self.get_postprocess_file_name())
pp_file = h5py.File(self.get_postprocess_file_name(), 'a')
if computation_needed: if computation_needed:
data_file['postprocess/iter0'] = iter0 pp_file['iter0'] = iter0
data_file['postprocess/iter1'] = iter1 pp_file['iter1'] = iter1
data_file['postprocess/ii0'] = ii0 pp_file['ii0'] = ii0
data_file['postprocess/ii1'] = ii1 pp_file['ii1'] = ii1
data_file['postprocess/t'] = (self.parameters['dt']* pp_file['t'] = (self.parameters['dt']*
self.parameters['niter_stat']* self.parameters['niter_stat']*
(np.arange(ii0, ii1+1).astype(np.float))) (np.arange(ii0, ii1+1).astype(np.float)))
data_file['postprocess/energy(t, k)'] = ( pp_file['energy(t, k)'] = (
data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 0, 0] + data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 0, 0] +
data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 1, 1] + data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 1, 1] +
data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 2, 2])/2 data_file['statistics/spectra/velocity_velocity'][ii0:ii1+1, :, 2, 2])/2
data_file['postprocess/enstrophy(t, k)'] = ( pp_file['enstrophy(t, k)'] = (
data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 0, 0] + data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 0, 0] +
data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 1, 1] + data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 1, 1] +
data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 2, 2])/2 data_file['statistics/spectra/vorticity_vorticity'][ii0:ii1+1, :, 2, 2])/2
data_file['postprocess/vel_max(t)'] = data_file['statistics/moments/velocity'] [ii0:ii1+1, 9, 3] pp_file['vel_max(t)'] = data_file['statistics/moments/velocity'] [ii0:ii1+1, 9, 3]
data_file['postprocess/renergy(t)'] = data_file['statistics/moments/velocity'][ii0:ii1+1, 2, 3]/2 pp_file['renergy(t)'] = data_file['statistics/moments/velocity'][ii0:ii1+1, 2, 3]/2
if 'trS2_Q_R' in data_file['statistics/moments'].keys(): if 'trS2_Q_R' in data_file['statistics/moments'].keys():
data_file['postprocess/mean_trS2(t)'] = data_file['statistics/moments/trS2_Q_R'][:, 1, 0] pp_file['mean_trS2(t)'] = data_file['statistics/moments/trS2_Q_R'][:, 1, 0]
for k in ['t', for k in ['t',
'energy(t, k)', 'energy(t, k)',
'enstrophy(t, k)', 'enstrophy(t, k)',
'vel_max(t)', 'vel_max(t)',
'renergy(t)', 'renergy(t)',
'mean_trS2(t)']: 'mean_trS2(t)']:
if k in data_file['postprocess'].keys(): if k in pp_file.keys():
self.statistics[k] = data_file['postprocess/' + k].value self.statistics[k] = pp_file[k].value
self.compute_time_averages() self.compute_time_averages()
return None return None
def compute_time_averages(self): def compute_time_averages(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment