WarpX
Loading...
Searching...
No Matches
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#include <AMReX_Geometry.H>
16
17#include <memory>
18#include <string>
19
24{
28 virtual void operator() (
29 const amrex::Geometry& /*geom_lev*/, WarpXParIter& /*pti*/,
30 int /*lev*/, WarpXParticleContainer* /*pc*/) const = 0;
31
35 virtual ~ResamplingAlgorithm () = default;
36
38 ResamplingAlgorithm () = default;
39
40
45};
46
54{
55public:
56
60 Resampling () = default;
61
68 Resampling (const std::string& species_name);
69
77 bool triggered (int timestep, amrex::Real global_numparts) const;
78
87 void operator() (
88 const amrex::Geometry& geom_lev, WarpXParIter& pti,
89 int lev, WarpXParticleContainer* pc) const;
90
91private:
93 std::unique_ptr<ResamplingAlgorithm> m_resampling_algorithm;
94};
95
96#endif //WARPX_RESAMPLING_H_
bool triggered(int timestep, 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:36
void operator()(const amrex::Geometry &geom_lev, WarpXParIter &pti, int lev, WarpXParticleContainer *pc) const
A method that uses the ResamplingAlgorithm object to perform resampling.
Definition Resampling.cpp:41
ResamplingTrigger m_resampling_trigger
Definition Resampling.H:92
Resampling()=default
Default constructor of the Resampling class.
std::unique_ptr< ResamplingAlgorithm > m_resampling_algorithm
Definition Resampling.H:93
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:112
Definition WarpXParticleContainer.H:195
ResamplingAlgorithm(ResamplingAlgorithm const &)=default
ResamplingAlgorithm()=default
ResamplingAlgorithm & operator=(ResamplingAlgorithm const &)=default
virtual ~ResamplingAlgorithm()=default
Virtual destructor of the abstract ResamplingAlgorithm class.
ResamplingAlgorithm(ResamplingAlgorithm &&)=default
virtual void operator()(const amrex::Geometry &, WarpXParIter &, int, WarpXParticleContainer *) const =0
Virtual operator() of the abstract ResamplingAlgorithm class.