diff options
Diffstat (limited to 'Source/Particles/MultiParticleContainer.H')
-rw-r--r-- | Source/Particles/MultiParticleContainer.H | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/Particles/MultiParticleContainer.H b/Source/Particles/MultiParticleContainer.H index fc5c511f8..b0d543e1f 100644 --- a/Source/Particles/MultiParticleContainer.H +++ b/Source/Particles/MultiParticleContainer.H @@ -11,12 +11,13 @@ #ifndef WARPX_ParticleContainer_H_ #define WARPX_ParticleContainer_H_ +#include "Utils/WarpXUtil.H" #include "WarpXParticleContainer.H" #include "PhysicalParticleContainer.H" #include "PhotonParticleContainer.H" #include "Laser/LaserParticleContainer.H" #include "Parser/WarpXParserWrapper.H" -#include "Particles/Collision/CollisionType.H" +#include "Particles/Collision/CollisionHandler.H" #include "Particles/ParticleCreation/SmartUtils.H" #include "Particles/ParticleCreation/SmartCopy.H" #include "Particles/ParticleCreation/SmartCreate.H" @@ -65,6 +66,14 @@ public: WarpXParticleContainer* GetParticleContainerPtr (int ispecies) const {return allcontainers[ispecies].get();} + WarpXParticleContainer& + GetParticleContainerFromName (std::string name) const { + auto it = std::find(species_names.begin(), species_names.end(), name); + WarpXUtilMsg::AlwaysAssert(it != species_names.end(), "ERROR: Unknown species name"); + int i = std::distance(species_names.begin(), it); + return *allcontainers[i]; + } + #ifdef WARPX_USE_OPENPMD std::unique_ptr<WarpXParticleContainer>& GetUniqueContainer(int ispecies) { return allcontainers[ispecies]; @@ -130,7 +139,7 @@ public: const amrex::MultiFab& Ex, const amrex::MultiFab& Ey, const amrex::MultiFab& Ez, const amrex::MultiFab& Bx, const amrex::MultiFab& By, const amrex::MultiFab& Bz); - void doCoulombCollisions (amrex::Real cur_time); + void doCollisions (amrex::Real cur_time); /** * \brief This function loops over all species and performs resampling if appropriate. @@ -288,9 +297,7 @@ protected: std::vector<std::string> lasers_names; - std::vector<std::string> collision_names; - - amrex::Vector<std::unique_ptr<CollisionType> > allcollisions; + std::unique_ptr<CollisionHandler> collisionhandler; //! instead of depositing (current, charge) on the finest patch level, deposit to the coarsest grid std::vector<bool> m_deposit_on_main_grid; |