1 #ifndef _PARTICLE_DATA_H_
2 #define _PARTICLE_DATA_H_
8 #include <AMReX_Particles.H>
9 #include <AMReX_ParmParse.H>
10 #include <AMReX_Print.H>
11 #include <AMReX_Gpu.H>
29 void init_particles(amrex::ParGDBBase* a_gdb,
const amrex::Vector<std::unique_ptr<amrex::MultiFab>>& z_phys_nd)
36 amrex::Print() <<
"Initialized " <<
tracer_particles->TotalNumberOfParticles() <<
" tracer particles." << std::endl;
47 void Restart(amrex::ParGDBBase* a_gdb, std::string& restart_file)
52 std::string tracer_file(
"tracer_particles");
58 amrex::MultiFab* xvel, amrex::MultiFab* yvel, amrex::MultiFab* zvel,
59 const amrex::Vector<std::unique_ptr<amrex::MultiFab>>& z_phys_nd)
63 amrex::Array<amrex::MultiFab const*, AMREX_SPACEDIM> mac_vel = {xvel, yvel, zvel};
64 bool use_terrain = (z_phys_nd[lev] !=
nullptr);
66 tracer_particles->AdvectWithUmac(mac_vel, lev, dt_lev, use_terrain, *z_phys_nd[lev]);
68 amrex::MultiFab dummy;
Definition: ParticleData.H:19
void Restart(amrex::ParGDBBase *a_gdb, std::string &restart_file)
Definition: ParticleData.H:47
void Redistribute()
Definition: ParticleData.H:74
void advance_particles(int lev, amrex::Real dt_lev, amrex::MultiFab *xvel, amrex::MultiFab *yvel, amrex::MultiFab *zvel, const amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd)
Definition: ParticleData.H:57
void Checkpoint(const std::string &filename)
Definition: ParticleData.H:40
amrex::Vector< std::string > tracer_particle_varnames
Definition: ParticleData.H:85
std::string pp_prefix
Definition: ParticleData.H:81
void init_particles(amrex::ParGDBBase *a_gdb, const amrex::Vector< std::unique_ptr< amrex::MultiFab >> &z_phys_nd)
Definition: ParticleData.H:29
void init_particle_params()
Definition: ParticleData.H:21
int use_tracer_particles
Definition: ParticleData.H:83
std::unique_ptr< TracerPC > tracer_particles
Definition: ParticleData.H:84