ARTEMIS
Resampling.H
Go to the documentation of this file.
1 /* Copyright 2019-2020 Neil Zaim
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_RESAMPLING_H_
8 #define WARPX_RESAMPLING_H_
9 
10 #include "ResamplingTrigger.H"
11 
13 
14 #include <AMReX_REAL.H>
15 
16 #include <memory>
17 #include <string>
18 
23 {
27  virtual void operator() (WarpXParIter& /*pti*/, const int /*lev*/, WarpXParticleContainer* /*pc*/) const = 0;
28 
32  virtual ~ResamplingAlgorithm () = default;
33 };
34 
42 {
43 public:
44 
48  Resampling () = default;
49 
56  Resampling (const std::string species_name);
57 
65  bool triggered (const int timestep, const amrex::Real global_numparts) const;
66 
74  void operator() (WarpXParIter& pti, const int lev, WarpXParticleContainer * const pc) const;
75 
76 private:
78  std::unique_ptr<ResamplingAlgorithm> m_resampling_algorithm;
79 };
80 
81 #endif //WARPX_RESAMPLING_H_
This is a general class used for resampling that is instantiated as a member of MultiParticleContaine...
Definition: Resampling.H:42
void operator()(WarpXParIter &pti, const int lev, WarpXParticleContainer *const pc) const
A method that uses the ResamplingAlgorithm object to perform resampling.
Definition: Resampling.cpp:35
bool triggered(const int timestep, const amrex::Real global_numparts) const
A method that returns true if resampling should be done for the considered species at the considered ...
Definition: Resampling.cpp:30
ResamplingTrigger m_resampling_trigger
Definition: Resampling.H:77
Resampling()=default
Default constructor of the Resampling class.
std::unique_ptr< ResamplingAlgorithm > m_resampling_algorithm
Definition: Resampling.H:78
This class is used to determine if resampling should be done at a given timestep for a given species....
Definition: ResamplingTrigger.H:24
Definition: WarpXParticleContainer.H:52
Definition: WarpXParticleContainer.H:104
An empty base class from which specific resampling algorithms are derived.
Definition: Resampling.H:23
virtual void operator()(WarpXParIter &, const int, WarpXParticleContainer *) const =0
Virtual operator() of the abstract ResamplingAlgorithm class.
virtual ~ResamplingAlgorithm()=default
Virtual destructor of the abstract ResamplingAlgorithm class.