#include <ImpactX.H>
An ImpactX simulation
This is the central ImpactX simulation class
◆ ImpactX() [1/3]
impactx::ImpactX::ImpactX |
( |
| ) |
|
Construct an ImpactX simulation object
◆ ImpactX() [2/3]
impactx::ImpactX::ImpactX |
( |
ImpactX const & |
| ) |
|
|
delete |
◆ ImpactX() [3/3]
impactx::ImpactX::ImpactX |
( |
ImpactX && |
| ) |
|
|
delete |
◆ ~ImpactX()
impactx::ImpactX::~ImpactX |
( |
| ) |
|
Destruct the ImpactX simulation object
◆ add_particles()
Generate and add n particles to the particle container
Will also resize the geometry based on the updated particle distribution's extent and then redistribute particles in according AMReX grid boxes.
- Parameters
-
bunch_charge | bunch charge (C) |
distr | distribution function to draw from (object) |
npart | number of particles to draw |
◆ early_param_check()
bool impactx::ImpactX::early_param_check |
( |
| ) |
|
Check inputs for unused parameters (e.g. typos) after step 1
- Returns
- true if successful
◆ evolve()
void impactx::ImpactX::evolve |
( |
| ) |
|
Run the main simulation loop for a number of steps
◆ finalize()
void impactx::ImpactX::finalize |
( |
| ) |
|
Deallocate all contexts and data
◆ init_grids()
void impactx::ImpactX::init_grids |
( |
| ) |
|
Initialize AMReX blocks/grids for domain decomposition & space charge mesh.
This must come first, before particle beams and lattice elements are initialized.
◆ init_warning_logger()
void impactx::ImpactX::init_warning_logger |
( |
| ) |
|
Query input for warning logger variables and set up warning logger accordingly
Input variables are: always_warn_immediately
and abort_on_warning_threshold
.
◆ initBeamDistributionFromInputs()
void impactx::ImpactX::initBeamDistributionFromInputs |
( |
| ) |
|
Initialize the particle beam distribution
This clears and initialized the particle beam from input file and command-line options, as parsed by amrex::ParmParse.
◆ initialized()
bool impactx::ImpactX::initialized |
( |
| ) |
|
|
inline |
Was init_grids already called?
Some operations, like resizing a simulation in terms of cells and changing blocking factors are not possible after they were initialized in AMReX. This keeps track of this.
◆ initLatticeElementsFromInputs()
void impactx::ImpactX::initLatticeElementsFromInputs |
( |
| ) |
|
Initialize the list of lattice elements
This clears and initialized the accelerator lattice elements from input file and command-line options, as parsed by amrex::ParmParse.
◆ operator=() [1/2]
void impactx::ImpactX::operator= |
( |
ImpactX && |
| ) |
|
|
delete |
◆ operator=() [2/2]
void impactx::ImpactX::operator= |
( |
ImpactX const & |
| ) |
|
|
delete |
◆ ResizeMesh()
void impactx::ImpactX::ResizeMesh |
( |
| ) |
|
Resize the mesh, based on the extent of the bunch of particle
This only changes the physical extent of the mesh, but not the number of grid cells.
◆ validate()
void impactx::ImpactX::validate |
( |
| ) |
|
Validate the simulation is ready to run via
- See also
- evolve
◆ amr_data
The AMReX core object that contains AMR hierarchy,
- See also
- amrex::AmrCore
Inside here, we store our particle containers and space charge fields.
◆ m_grids_initialized
bool impactx::ImpactX::m_grids_initialized = false |
|
private |
Keeps track if init_grids was called.
Some operations, like resizing a simulation in terms of cells and changing blocking factors are not possible after they were initialized in AMReX. This keeps track of this.
◆ m_lattice
these are elements defining the accelerator lattice
The documentation for this class was generated from the following files:
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/ImpactX.H
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/ImpactX.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/initialization/InitDistribution.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/initialization/InitElement.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/initialization/InitMeshRefinement.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/initialization/Validate.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/latest/src/initialization/Warnings.cpp