#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
◆ finalize()
| void impactx::ImpactX::finalize |
( |
| ) |
|
Deallocate all contexts and data
◆ finalize_elements()
| void impactx::ImpactX::finalize_elements |
( |
| ) |
|
◆ 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.
◆ track_envelope()
| void impactx::ImpactX::track_envelope |
( |
| ) |
|
Run the envelope tracking simulation loop
Modeled as linear transport of the covariance matrix.
◆ track_particles()
| void impactx::ImpactX::track_particles |
( |
| ) |
|
Run the particle tracking simulation loop
◆ track_reference()
| void impactx::ImpactX::track_reference |
( |
RefPart & | ref | ) |
|
Run the reference orbit tracking simulation loop
◆ validate()
| void impactx::ImpactX::validate |
( |
| ) |
|
Validate the simulation is ready to run the particle tracking loop via
- See also
- track_particles
◆ 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/1182/src/ImpactX.H
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/ImpactX.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/initialization/InitDistribution.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/initialization/InitElement.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/initialization/InitMeshRefinement.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/initialization/Validate.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/initialization/Warnings.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/tracking/envelope.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/tracking/particles.cpp
- /home/docs/checkouts/readthedocs.org/user_builds/impactx/checkouts/1182/src/tracking/reference.cpp