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

BROKEN - code compiles and segfaults

parent f6178cb1
Branches
Tags
1 merge request!23WIP: Feature/use cmake
Pipeline #
......@@ -124,6 +124,16 @@ class TEST(_code):
self.parameters['dkz'] = float(1.0)
self.parameters['filter_length'] = float(1.0)
return None
def generate_extra_parameters(
self,
dns_type = None):
pars = {}
if dns_type == 'test_interpolation':
pars['nparticles'] = 10
pars['tracers0_integration_steps'] = int(4)
pars['tracers0_neighbours'] = int(1)
pars['tracers0_smoothness'] = int(1)
return pars
def get_kspace(self):
kspace = {}
if self.parameters['dealias_type'] == 1:
......@@ -254,21 +264,25 @@ class TEST(_code):
parser_filter_test = subparsers.add_parser(
'filter_test',
help = 'plain filter test')
self.simulation_parser_arguments(parser_filter_test)
self.job_parser_arguments(parser_filter_test)
self.parameters_to_parser_arguments(parser_filter_test)
parser_field_test = subparsers.add_parser(
'field_test',
help = 'plain field test')
self.simulation_parser_arguments(parser_field_test)
self.job_parser_arguments(parser_field_test)
self.parameters_to_parser_arguments(parser_field_test)
parser_field_output_test = subparsers.add_parser(
'field_output_test',
help = 'plain field output test')
self.simulation_parser_arguments(parser_field_output_test)
self.job_parser_arguments(parser_field_output_test)
self.parameters_to_parser_arguments(parser_field_output_test)
parser_test_interpolation = subparsers.add_parser(
'test_interpolation',
help = 'test velocity gradient interpolation')
for parser in ['parser_filter_test',
'parser_field_test',
'parser_field_output_test',
'parser_test_interpolation']:
eval('self.simulation_parser_arguments(' + parser + ')')
eval('self.job_parser_arguments(' + parser + ')')
eval('self.parameters_to_parser_arguments(' + parser + ')')
eval('self.parameters_to_parser_arguments(' + parser + ',' +
'parameters = self.generate_extra_parameters(dns_type = \'' + parser + '\'))')
print(self.parameters.keys())
return None
def prepare_launch(
self,
......@@ -285,6 +299,8 @@ class TEST(_code):
args = [],
**kwargs):
opt = self.prepare_launch(args = args)
self.parameters.update(
self.generate_extra_parameters(dns_type = self.dns_type))
self.launch_jobs(opt = opt, **kwargs)
return None
def launch_jobs(
......@@ -293,7 +309,36 @@ class TEST(_code):
particle_initial_condition = None):
if not os.path.exists(os.path.join(self.work_dir, self.simname + '.h5')):
self.write_par(
particle_ic = None)
particle_ic = particle_initial_condition)
if self.dns_type == 'test_interpolation':
if type(particle_initial_condition) == type(None):
pbase_shape = (self.parameters['nparticles'],)
number_of_particles = self.parameters['nparticles']
else:
pbase_shape = particle_initial_condition.shape[:-1]
assert(particle_initial_condition.shape[-1] == 3)
number_of_particles = 1
for val in pbase_shape[1:]:
number_of_particles *= val
ncomponents = 3
with h5py.File(os.path.join(self.work_dir, self.simname + '_input.h5'), 'a') as ofile:
s = 0
ofile.create_group('tracers{0}'.format(s))
ofile.create_group('tracers{0}/rhs'.format(s))
ofile.create_group('tracers{0}/state'.format(s))
ofile['tracers{0}/rhs'.format(s)].create_dataset(
'0',
shape = (
(self.parameters['tracers{0}_integration_steps'.format(s)],) +
pbase_shape +
(ncomponents,)),
dtype = np.float)
ofile['tracers{0}/state'.format(s)].create_dataset(
'0',
shape = (
pbase_shape +
(ncomponents,)),
dtype = np.float)
self.run(
nb_processes = opt.nb_processes,
nb_threads_per_process = opt.nb_threads_per_process,
......
......@@ -5,12 +5,10 @@ template <typename rnumber>
int test_interpolation<rnumber>::read_parameters(void)
{
this->test::read_parameters();
hid_t parameter_file;
hid_t dset, memtype, space;
char fname[256];
hsize_t dims[1];
char *string_data;
sprintf(fname, "%s.h5", this->simname.c_str());
hid_t parameter_file = H5Fopen(
(this->simname + std::string(".h5")).c_str(),
H5F_ACC_RDONLY,
H5P_DEFAULT);
this->nparticles = hdf5_tools::read_value<int>(
parameter_file, "/parameters/nparticles");
this->tracers0_integration_steps = hdf5_tools::read_value<int>(
......@@ -26,8 +24,6 @@ int test_interpolation<rnumber>::read_parameters(void)
template <typename rnumber>
int test_interpolation<rnumber>::initialize(void)
{
this->test::initialize();
this->vorticity = new field<rnumber, FFTW, THREE>(
this->nx, this->ny, this->nz,
this->comm,
......@@ -92,7 +88,6 @@ int test_interpolation<rnumber>::finalize(void)
delete this->velocity;
delete this->vorticity;
this->ps.release();
this->test::finalize();
delete this->kk;
return EXIT_SUCCESS;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment