18#ifndef OPAL_TrackRun_HH
19#define OPAL_TrackRun_HH
63 Inform&
print(Inform& os)
const;
85 std::vector<std::vector<std::unique_ptr<GlobalProcess>>> globalProcessesLists);
97 const std::vector<EmissionSource*>& sources,
Beam* beam,
115 const std::vector<std::vector<EmissionSource*>>& emissionSourcesLists);
120 Beam* beam,
const std::vector<EmissionSource*>& sources)
const;
PartBunch< double, 3 > PartBunch_t
Template PIC bunch: IPPL PicManager, shared field mesh/solver, and multiple particle containers.
Inform & operator<<(Inform &os, const TrackRun &b)
The base class for all OPAL actions.
Simple bidirectional map with lookup in both directions.
virtual void print(std::ostream &) const
Print the object.
The global OPAL structure.
void wireDaughterContainers(const std::vector< Beam * > &beams)
Wire daughter containers to cross-container processes (e.g. muon decay -> electron).
void setupBoundaryGeometry()
size_t computeTotalAllocationForBunch(Beam *beam, const std::vector< EmissionSource * > &sources) const
virtual void execute()
Execute the command.
std::vector< H5PartWrapper * > borrowedPhaseSpaceSinks() const
std::vector< Distribution * > distrs_m
Distributions referenced by all emission sources (non-owning raw pointers).
void setupDistributionsAndSamplers(const std::vector< EmissionSource * > &sources, Beam *beam, emittingSamplers_t &emittingSamplers, size_t index=0)
void operator=(const TrackRun &)
TrackRun(const TrackRun &)
TrackRun()
Exemplar constructor.
void setupGlobalProcesses(std::vector< std::vector< std::unique_ptr< GlobalProcess > > > globalProcessesLists)
Attach prebuilt global process vector to each particle container.
virtual TrackRun * clone(const std::string &name)
Make clone.
static const BiMap< RunMethod, std::string > stringMethod_s
std::vector< std::shared_ptr< SamplingBase > > emittingSamplers_t
FieldSolverCmd * fs_m
Samplers for time-dependent (emitting) sources; tracker calls emitParticles(t, dt) on each.
std::string getRunMethodName() const
std::unique_ptr< Tracker > itsTracker_m
std::unique_ptr< bunch_type > bunch_m
void configureImageChargeFromSources(const std::vector< std::vector< EmissionSource * > > &emissionSourcesLists)
Configure image-charge mode from all configured emission sources.
std::vector< std::unique_ptr< H5PartWrapper > > phaseSpaceSinks_m
void initDataSink(size_t numParticleContainers)
Inform & print(Inform &os) const