aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/MultiParticleContainer.H')
-rw-r--r--Source/Particles/MultiParticleContainer.H17
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;