|
IPPL (Independent Parallel Particle Layer)
IPPL
|
A template class for managing Particle-in-Cell (PIC) simulations. More...
#include <PicManager.h>
Public Member Functions | |
| PicManager () | |
| virtual | ~PicManager ()=default |
| virtual void | par2grid ()=0 |
| Particle-to-grid operation. | |
| virtual void | grid2par ()=0 |
| Grid-to-particle operation. | |
| std::shared_ptr< pc > | getParticleContainer () |
| void | setParticleContainer (std::shared_ptr< pc > pcontainer) |
| std::shared_ptr< fc > | getFieldContainer () |
| void | setFieldContainer (std::shared_ptr< fc > fcontainer) |
| std::shared_ptr< ippl::FieldSolverBase< T, Dim > > | getFieldSolver () |
| void | setFieldSolver (std::shared_ptr< ippl::FieldSolverBase< T, Dim > > fsolver) |
| std::shared_ptr< orb > | getLoadBalancer () |
| void | setLoadBalancer (std::shared_ptr< orb > loadbalancer) |
| virtual void | pre_run () |
| A method that should be used for setting up the simulation. | |
| virtual void | pre_step () |
| A method that should be used for preparation before perfoming a step of simulation. | |
| virtual void | post_step () |
| A method that should be used after perfoming a step of simulation. | |
| virtual void | advance ()=0 |
| A method that should be used to execute/advance a step of simulation. | |
| void | run (int nt) |
| The main for loop fro running a simulation. | |
Protected Attributes | |
| std::shared_ptr< fc > | fcontainer_m |
| std::shared_ptr< pc > | pcontainer_m |
| std::shared_ptr< orb > | loadbalancer_m |
| std::shared_ptr< ippl::FieldSolverBase< T, Dim > > | fsolver_m |
A template class for managing Particle-in-Cell (PIC) simulations.
The PicManager class is a template class that extends the functionality of the BaseManager class for Particle-in-Cell simulations. It provides methods for particle-to-grid and grid-to-particle operations, as well as a method for dumping simulation data.
| T | The data type for simulation variables. |
| Dim | The dimensionality of the simulation (e.g., 2D or 3D). |
| pc | The particle container type. |
| fc | The field container type. |
| orb | The load balancer type. |
Definition at line 27 of file PicManager.h.
|
inline |
Definition at line 29 of file PicManager.h.
References ippl::BaseManager::BaseManager(), fcontainer_m, loadbalancer_m, and pcontainer_m.
|
virtualdefault |
|
pure virtualinherited |
A method that should be used to execute/advance a step of simulation.
In a derived class, the user must override this method to implement their time integration method for solving the considered governing equation.
Implemented in BumponTailInstabilityManager< T, Dim >, LandauDampingManager< T, Dim >, and PenningTrapManager< T, Dim >.
Referenced by run().
|
inline |
Definition at line 57 of file PicManager.h.
References fcontainer_m.
|
inline |
Definition at line 61 of file PicManager.h.
References fsolver_m.
|
inline |
Definition at line 67 of file PicManager.h.
References loadbalancer_m.
|
inline |
Definition at line 53 of file PicManager.h.
References pcontainer_m.
|
pure virtual |
Grid-to-particle operation.
In a derived class, the user must override this method to perform grid-to-particle operations.
Implemented in AlpineManager< T, Dim >.
|
pure virtual |
Particle-to-grid operation.
In a derived class, the user must override this method to perform particle-to-grid operations.
Implemented in AlpineManager< T, Dim >.
|
inlinevirtualinherited |
A method that should be used after perfoming a step of simulation.
Derived classes can override this method to dump data, increment time, etc. The default implementation does nothing.
Reimplemented in AlpineManager< T, Dim >.
Definition at line 44 of file BaseManager.h.
Referenced by run().
|
inlinevirtualinherited |
A method that should be used for setting up the simulation.
Derived classes can override this method to allocate memory, initialize variables, etc. The default implementation does nothing.
Reimplemented in BumponTailInstabilityManager< T, Dim >, LandauDampingManager< T, Dim >, and PenningTrapManager< T, Dim >.
Definition at line 25 of file BaseManager.h.
|
inlinevirtualinherited |
A method that should be used for preparation before perfoming a step of simulation.
The default implementation does nothing.
Reimplemented in AlpineManager< T, Dim >.
Definition at line 35 of file BaseManager.h.
Referenced by run().
|
inlineinherited |
The main for loop fro running a simulation.
This method performs a simulation run by calling pre_step, advance, and post_step in a loop for a specified number of time steps.
| nt | The number of time steps to run the simulation. |
Definition at line 63 of file BaseManager.h.
References advance(), post_step(), and pre_step().
Referenced by main().
|
inline |
Definition at line 59 of file PicManager.h.
References fcontainer_m.
|
inline |
Definition at line 63 of file PicManager.h.
References fsolver_m.
|
inline |
Definition at line 69 of file PicManager.h.
References loadbalancer_m.
|
inline |
Definition at line 55 of file PicManager.h.
References pcontainer_m.
|
protected |
Definition at line 72 of file PicManager.h.
Referenced by getFieldContainer(), PicManager(), and setFieldContainer().
|
protected |
Definition at line 78 of file PicManager.h.
Referenced by getFieldSolver(), and setFieldSolver().
|
protected |
Definition at line 76 of file PicManager.h.
Referenced by getLoadBalancer(), PicManager(), and setLoadBalancer().
|
protected |
Definition at line 74 of file PicManager.h.
Referenced by getParticleContainer(), PicManager(), and setParticleContainer().