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

hides particle layout operations

particle file layout is read from input by particle set, and then the
`particle_solver` object gets it from there when it needs it, so:
 - user-facing code is less verbose.
 - generic operating mode is implemented only once.
parent 73fd7927
Branches
Tags
No related merge requests found
...@@ -108,7 +108,6 @@ int test_tracer_set<rnumber>::do_work(void) ...@@ -108,7 +108,6 @@ int test_tracer_set<rnumber>::do_work(void)
"tracers0", "tracers0",
pset.getTotalNumberOfParticles(), pset.getTotalNumberOfParticles(),
0); 0);
particles_output_writer_mpi->setParticleFileLayout(bla.getParticleFileLayout());
fti->set_field(vec_field); fti->set_field(vec_field);
trhs->setVelocity(fti); trhs->setVelocity(fti);
......
...@@ -70,6 +70,8 @@ class abstract_particle_set ...@@ -70,6 +70,8 @@ class abstract_particle_set
virtual partsize_t* getParticlesPerPartition() const = 0; virtual partsize_t* getParticlesPerPartition() const = 0;
virtual const int getStateSize() const = 0; virtual const int getStateSize() const = 0;
virtual std::vector<hsize_t> getParticleFileLayout() = 0;
// get p2p computer // get p2p computer
virtual p2p_distr_mpi<partsize_t, particle_rnumber>* getP2PComputer() = 0; virtual p2p_distr_mpi<partsize_t, particle_rnumber>* getP2PComputer() = 0;
......
...@@ -329,6 +329,8 @@ class particle_set: public abstract_particle_set ...@@ -329,6 +329,8 @@ class particle_set: public abstract_particle_set
std::swap(this->local_index[idx1], this->local_index[idx2]); std::swap(this->local_index[idx1], this->local_index[idx2]);
}); });
assert(this->setParticleFileLayout(particles_input.getParticleFileLayout()) == 0);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
......
...@@ -77,6 +77,7 @@ int particle_solver::writeCheckpoint( ...@@ -77,6 +77,7 @@ int particle_solver::writeCheckpoint(
{ {
TIMEZONE("particle_solver::writeCheckpoint"); TIMEZONE("particle_solver::writeCheckpoint");
particles_output_writer->update_particle_species_name(this->particle_species_name); particles_output_writer->update_particle_species_name(this->particle_species_name);
particles_output_writer->setParticleFileLayout(pset->getParticleFileLayout());
particles_output_writer->template save<state_size>( particles_output_writer->template save<state_size>(
this->pset->getParticleState(), this->pset->getParticleState(),
this->additional_states.data(), this->additional_states.data(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment