diff options
author | 2021-07-20 21:31:48 -0700 | |
---|---|---|
committer | 2021-07-21 04:31:48 +0000 | |
commit | 04a2b5163f636eba6ed32fcdfd311c42dd4c3c21 (patch) | |
tree | 917da8ac976d97b4def49ab405606fd828f70fc9 /Source/Python | |
parent | 30a7f5ef5a561f59c70d127b54c17b5bcd82ede8 (diff) | |
download | WarpX-04a2b5163f636eba6ed32fcdfd311c42dd4c3c21.tar.gz WarpX-04a2b5163f636eba6ed32fcdfd311c42dd4c3c21.tar.zst WarpX-04a2b5163f636eba6ed32fcdfd311c42dd4c3c21.zip |
Use only species name in libwarpx (#2119)
* changed all particle interacting functions in libwarpx to use the species name rather than id, also changed the functions to get particle array data to use the component name rather than index
* removed unneeded function declaration
Diffstat (limited to 'Source/Python')
-rw-r--r-- | Source/Python/WarpXWrappers.cpp | 48 | ||||
-rw-r--r-- | Source/Python/WarpXWrappers.h | 18 |
2 files changed, 24 insertions, 42 deletions
diff --git a/Source/Python/WarpXWrappers.cpp b/Source/Python/WarpXWrappers.cpp index 618829fb5..16005ed43 100644 --- a/Source/Python/WarpXWrappers.cpp +++ b/Source/Python/WarpXWrappers.cpp @@ -220,13 +220,16 @@ extern "C" warpx.Evolve(numsteps); } - void warpx_addNParticles(int speciesnumber, int lenx, - amrex::ParticleReal const * x, amrex::ParticleReal const * y, amrex::ParticleReal const * z, - amrex::ParticleReal const * vx, amrex::ParticleReal const * vy, amrex::ParticleReal const * vz, - int nattr, amrex::ParticleReal const * attr, int uniqueparticles) + void warpx_addNParticles( + const char* char_species_name, int lenx, amrex::ParticleReal const * x, + amrex::ParticleReal const * y, amrex::ParticleReal const * z, + amrex::ParticleReal const * vx, amrex::ParticleReal const * vy, + amrex::ParticleReal const * vz, int nattr, + amrex::ParticleReal const * attr, int uniqueparticles) { auto & mypc = WarpX::GetInstance().GetPartContainer(); - auto & myspc = mypc.GetParticleContainer(speciesnumber); + const std::string species_name(char_species_name); + auto & myspc = mypc.GetParticleContainerFromName(species_name); const int lev = 0; myspc.AddNParticles(lev, lenx, x, y, z, vx, vy, vz, nattr, attr, uniqueparticles); } @@ -265,9 +268,10 @@ extern "C" return dx[dir]; } - long warpx_getNumParticles(int speciesnumber) { + long warpx_getNumParticles(const char* char_species_name) { const auto & mypc = WarpX::GetInstance().GetPartContainer(); - const auto & myspc = mypc.GetParticleContainer(speciesnumber); + const std::string species_name(char_species_name); + auto & myspc = mypc.GetParticleContainerFromName(species_name); return myspc.TotalNumberOfParticles(); } @@ -377,10 +381,12 @@ extern "C" WARPX_GET_LOVECTS_PML(warpx_getCurrentDensityCPLoVects_PML, Getj_cp) WARPX_GET_LOVECTS_PML(warpx_getCurrentDensityFPLoVects_PML, Getj_fp) - amrex::ParticleReal** warpx_getParticleStructs(int speciesnumber, int lev, - int* num_tiles, int** particles_per_tile) { + amrex::ParticleReal** warpx_getParticleStructs( + const char* char_species_name, int lev, + int* num_tiles, int** particles_per_tile) { const auto & mypc = WarpX::GetInstance().GetPartContainer(); - auto & myspc = mypc.GetParticleContainer(speciesnumber); + const std::string species_name(char_species_name); + auto & myspc = mypc.GetParticleContainerFromName(species_name); int i = 0; for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {} @@ -399,17 +405,7 @@ extern "C" return data; } - amrex::ParticleReal** warpx_getParticleArrays(int speciesnumber, int comp, int lev, - int* num_tiles, int** particles_per_tile) { - const auto & mypc = WarpX::GetInstance().GetPartContainer(); - auto & myspc = mypc.GetParticleContainer(speciesnumber); - - return warpx_getParticleArraysUsingPC( - myspc, comp, lev, num_tiles, particles_per_tile - ); - } - - amrex::ParticleReal** warpx_getParticleArraysFromCompName ( + amrex::ParticleReal** warpx_getParticleArrays ( const char* char_species_name, const char* char_comp_name, int lev, int* num_tiles, int** particles_per_tile ) { @@ -417,16 +413,8 @@ extern "C" const std::string species_name(char_species_name); auto & myspc = mypc.GetParticleContainerFromName(species_name); - return warpx_getParticleArraysUsingPC( - myspc, - warpx_getParticleCompIndex(char_species_name, char_comp_name), lev, - num_tiles, particles_per_tile - ); - } + int comp = warpx_getParticleCompIndex(char_species_name, char_comp_name); - amrex::ParticleReal** warpx_getParticleArraysUsingPC ( - WarpXParticleContainer& myspc, int comp, - int lev, int* num_tiles, int** particles_per_tile ) { int i = 0; for (WarpXParIter pti(myspc, lev); pti.isValid(); ++pti, ++i) {} diff --git a/Source/Python/WarpXWrappers.h b/Source/Python/WarpXWrappers.h index 1672b01ae..a7d389750 100644 --- a/Source/Python/WarpXWrappers.h +++ b/Source/Python/WarpXWrappers.h @@ -63,7 +63,7 @@ extern "C" { void warpx_evolve (int numsteps); // -1 means the inputs parameter will be used. - void warpx_addNParticles(int speciesnumber, + void warpx_addNParticles(const char* char_species_name, int lenx, amrex::ParticleReal const * x, amrex::ParticleReal const * y, @@ -85,22 +85,16 @@ extern "C" { amrex::Real warpx_getProbHi(int dir); - long warpx_getNumParticles(int speciesnumber); + long warpx_getNumParticles(const char* char_species_name); - amrex::ParticleReal** warpx_getParticleStructs(int speciesnumber, int lev, - int* num_tiles, int** particles_per_tile); + amrex::ParticleReal** warpx_getParticleStructs( + const char* char_species_name, int lev, int* num_tiles, + int** particles_per_tile); - amrex::ParticleReal** warpx_getParticleArrays(int speciesnumber, int comp, int lev, - int* num_tiles, int** particles_per_tile); - - amrex::ParticleReal** warpx_getParticleArraysFromCompName( + amrex::ParticleReal** warpx_getParticleArrays( const char* char_species_name, const char* char_comp_name, int lev, int* num_tiles, int** particles_per_tile); - amrex::ParticleReal** warpx_getParticleArraysUsingPC( - WarpXParticleContainer& myspc, int comp, - int lev, int* num_tiles, int** particles_per_tile); - int warpx_getParticleCompIndex( const char* char_species_name, const char* char_comp_name); |