diff --git a/bfps/DNS.py b/bfps/DNS.py index 7a97e2f1132ea9862e2a8476bcd03acacd72296c..b9e960f749f83cc0c7d42b30ded44fb294156b97 100644 --- a/bfps/DNS.py +++ b/bfps/DNS.py @@ -665,13 +665,7 @@ class DNS(_code): if self.dns_type in extra_parameters.keys(): for k in extra_parameters[self.dns_type].keys(): self.parameters[k] = extra_parameters[self.dns_type][k] - self.parameters['nu'] = (opt.kMeta * 2 / opt.n)**(4./3) self.parameters['dt'] = (opt.dtfactor / opt.n) - # custom famplitude for 288 and 576 - if opt.n == 288: - self.parameters['famplitude'] = 0.45 - elif opt.n == 576: - self.parameters['famplitude'] = 0.47 if ((self.parameters['niter_todo'] % self.parameters['niter_out']) != 0): self.parameters['niter_out'] = self.parameters['niter_todo'] if len(opt.src_work_dir) == 0: @@ -688,6 +682,21 @@ class DNS(_code): opt.ny = opt.n if type(opt.nz) == type(None): opt.nz = opt.n + self.parameters['nu'] = (opt.kMeta * 2 / opt.n)**(4./3) + if self.parameters['forcing_type'] == 'linear': + # custom famplitude for 288 and 576 + if opt.n == 288: + self.parameters['famplitude'] = 0.45 + elif opt.n == 576: + self.parameters['famplitude'] = 0.47 + if self.parameters['forcing_type'] == 'fixed_energy_injection_rate': + kM = opt.n * 0.5 + if self.parameters['dealias_type'] == 1: + kM *= 0.8 + # use the fact that mean dissipation rate is equal to injection rate + self.parameters['nu'] = ( + self.parameters['injection_rate'] * + (opt.kMeta / kM)**4)**(1./3) if type(opt.checkpoints_per_file) == type(None): # hardcoded FFTW complex representation size field_size = 3*(opt.nx+2)*opt.ny*opt.nz*self.fluid_dtype.itemsize