OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Track.cpp
Go to the documentation of this file.
1//
2// Class Track
3// Hold data for tracking.
4// Acts as a communication area between the various tracking commands.
5//
6// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
7// All rights reserved
8//
9// This file is part of OPAL.
10//
11// OPAL is free software: you can redistribute it and/or modify
12// it under the terms of the GNU General Public License as published by
13// the Free Software Foundation, either version 3 of the License, or
14// (at your option) any later version.
15//
16// You should have received a copy of the GNU General Public License
17// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
18//
19
20#include "Track/Track.h"
21
24#include "PartBunch/PartBunch.h"
25#include "Utilities/Options.h"
26
28
37 BeamSequence* u, const PartData& ref, const std::vector<double>& dt,
38 const std::vector<unsigned long long>& maxtsteps, int stepsperturn, double zStart,
39 const std::vector<double>& zStop, Steppers::TimeIntegrator timeintegrator, double t0,
40 double dtScInit, double deltaTau, EmissionSourceList* emissionSourcesList,
41 const std::vector<std::string>& beamNames)
42 : bunch(nullptr),
43 reference(ref),
44 use(u),
45 emissionSources(emissionSourcesList),
46 parser(),
47 dT(dt),
48 dtScInit(dtScInit),
49 deltaTau(deltaTau),
50 t0_m(t0),
51 localTimeSteps(maxtsteps),
52 stepsPerTurn(stepsperturn),
53 zstart(zStart),
54 zstop(zStop),
55 timeIntegrator(timeintegrator),
56 truncOrder(1),
57 beamNames_m(beamNames) {
58 if (!OpalData::getInstance()->hasBunchAllocated()) {
61 }
62 // \todo crashes here
63 // bunch = OpalData::getInstance()->getPartBunch();
64}
65
Template PIC bunch: IPPL PicManager, shared field mesh/solver, and multiple particle containers.
The base class for all OPAL beam lines and sequences.
static OpalData * getInstance()
Definition OpalData.cpp:193
Particle reference data.
Definition PartData.h:37
Definition Track.h:35
~Track()
Definition Track.cpp:66
static Track * block
The block of track data.
Definition Track.h:60
TimeIntegrator
Definition Steppers.h:25