|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <PartBunch.h>
Public Types | |
| enum | { Dim = Dimension } |
| typedef IpplParticleBase< Layout_t > | pbase_t |
| enum | UnitState_t |
| typedef AbstractParticle< double, Dim >::ParticlePos_t | ParticlePos_t |
| typedef AbstractParticle< double, Dim >::ParticleIndex_t | ParticleIndex_t |
| typedef AbstractParticle< double, Dim >::UpdateFlags | UpdateFlags_t |
| typedef AbstractParticle< double, Dim >::Position_t | Position_t |
| typedef std::pair< Vector_t, Vector_t > | VectorPair_t |
Public Member Functions | |
| PartBunch (const PartData *ref) | |
| Default constructor. | |
| PartBunch ()=delete | |
| PartBunch (const PartBunch &)=delete | |
| PartBunch & | operator= (const PartBunch &)=delete |
| ~PartBunch () | |
| void | initialize (FieldLayout_t *fLayout) |
| void | do_binaryRepart () |
| double | getRho (int x, int y, int z) |
| const Mesh_t & | getMesh () const |
| Mesh_t & | getMesh () |
| FieldLayout_t & | getFieldLayout () |
| void | setBCAllPeriodic () |
| void | setBCAllOpen () |
| void | setBCForDCBeam () |
| VectorPair_t | getEExtrema () |
| void | computeSelfFields () |
| void | computeSelfFields (int b) |
| void | computeSelfFields_cycl (double gamma) |
| Calculates the self electric field from the charge density distribution for use in cyclotrons. | |
| void | computeSelfFields_cycl (int b) |
| Calculates the self electric field from the charge density distribution for use in cyclotrons. | |
| void | resetInterpolationCache (bool clearCache=false) |
| void | swap (unsigned int i, unsigned int j) |
| Inform & | print (Inform &os) |
| bool | getIfBeamEmitting () |
| int | getLastEmittedEnergyBin () |
| size_t | getNumberOfEmissionSteps () |
| int | getNumberOfEnergyBins () |
| void | Rebin () |
| void | setEnergyBins (int numberOfEnergyBins) |
| bool | weHaveEnergyBins () |
| void | switchToUnitlessPositions (bool use_dt_per_particle=false) |
| void | switchOffUnitlessPositions (bool use_dt_per_particle=false) |
| void | setDistribution (Distribution *d, std::vector< Distribution * > addedDistributions, size_t &np) |
| bool | isGridFixed () const |
| bool | hasBinning () const |
| void | setTEmission (double t) |
| double | getTEmission () |
| bool | doEmission () |
| bool | weHaveBins () const |
| void | setPBins (PartBins *pbin) |
| size_t | emitParticles (double eZ) |
| Emit particles in the given bin i.e. copy the particles from the bin structure into the particle container. | |
| void | updateNumTotal () |
| void | rebin () |
| int | getLastemittedBin () |
| void | setLocalBinCount (size_t num, int bin) |
| void | calcGammas () |
| Compute the gammas of all bins. | |
| void | calcGammas_cycl () |
| void | calcDebyeLength () |
| Compute the (global) Debye length for the beam. | |
| double | getBinGamma (int bin) |
| Get gamma of one bin. | |
| virtual void | setBinCharge (int bin, double q) |
| Set the charge of one bin to the value of q and all other to zero. | |
| size_t | calcNumPartsOutside (Vector_t x) |
| returns the number of particles outside of a box defined by x | |
| void | calcLineDensity (unsigned int nBins, std::vector< double > &lineDensity, std::pair< double, double > &meshInfo) |
| calculates the 1d line density (not normalized) and append it to a file. | |
| void | setBeamFrequency (double v) |
| virtual void | boundp () |
| void | boundp_destroyCycl () |
| size_t | boundp_destroyT () |
| size_t | destroyT () |
| virtual double | getPx (int i) |
| virtual double | getPy (int i) |
| virtual double | getPz (int i) |
| virtual double | getPx0 (int i) |
| virtual double | getPy0 (int i) |
| virtual double | getX (int i) |
| virtual double | getY (int i) |
| virtual double | getZ (int i) |
| virtual double | getX0 (int i) |
| virtual double | getY0 (int i) |
| virtual void | setZ (int i, double zcoo) |
| void | get_bounds (Vector_t &rmin, Vector_t &rmax) const |
| void | getLocalBounds (Vector_t &rmin, Vector_t &rmax) const |
| std::pair< Vector_t, double > | getBoundingSphere () |
| std::pair< Vector_t, double > | getLocalBoundingSphere () |
| void | push_back (OpalParticle const &p) |
| void | setParticle (FVector< double, 6 > z, int ii) |
| OpalParticle | getParticle (int ii) |
| ConstIterator | begin () const |
| ConstIterator | end () const |
| void | maximumAmplitudes (const FMatrix< double, 6, 6 > &D, double &axmax, double &aymax) |
| Return maximum amplitudes. | |
| void | setdT (double dt) |
| double | getdT () const |
| void | setT (double t) |
| void | incrementT () |
| double | getT () const |
| double | get_sPos () const |
| void | set_sPos (double s) |
| double | get_gamma () const |
| double | get_meanKineticEnergy () const |
| double | get_temperature () const |
| double | get_debyeLength () const |
| double | get_plasmaParameter () const |
| double | get_rmsDensity () const |
| Vector_t | get_origin () const |
| Vector_t | get_maxExtent () const |
| Vector_t | get_centroid () const |
| Vector_t | get_rrms () const |
| Vector_t | get_rprms () const |
| Vector_t | get_rmean () const |
| Vector_t | get_prms () const |
| Vector_t | get_pmean () const |
| Vector_t | get_pmean_Distribution () const |
| Vector_t | get_emit () const |
| Vector_t | get_norm_emit () const |
| Vector_t | get_halo () const |
| Vector_t | get_68Percentile () const |
| Vector_t | get_95Percentile () const |
| Vector_t | get_99Percentile () const |
| Vector_t | get_99_99Percentile () const |
| Vector_t | get_normalizedEps_68Percentile () const |
| Vector_t | get_normalizedEps_95Percentile () const |
| Vector_t | get_normalizedEps_99Percentile () const |
| Vector_t | get_normalizedEps_99_99Percentile () const |
| virtual Vector_t | get_hr () const |
| double | get_Dx () const |
| double | get_Dy () const |
| double | get_DDx () const |
| double | get_DDy () const |
| virtual void | set_meshEnlargement (double dh) |
| void | gatherLoadBalanceStatistics () |
| size_t | getLoadBalance (int p) const |
| void | get_PBounds (Vector_t &min, Vector_t &max) const |
| void | calcBeamParameters () |
| void | calcBeamParametersInitial () |
| double | getCouplingConstant () const |
| void | setCouplingConstant (double c) |
| void | setCharge (double q) |
| void | setChargeZeroPart (double q) |
| void | setMass (double mass) |
| void | setMassZeroPart (double mass) |
| double | getCharge () const |
| get the total charge per simulation particle | |
| double | getChargePerParticle () const |
| get the macro particle charge | |
| double | getMassPerParticle () const |
| virtual void | setSolver (FieldSolver *fs) |
| bool | hasFieldSolver () |
| FieldSolverType | getFieldSolverType () const |
| Return the fieldsolver type if we have a fieldsolver. | |
| void | setStepsPerTurn (int n) |
| int | getStepsPerTurn () const |
| void | setGlobalTrackStep (long long n) |
| step in multiple TRACK commands | |
| long long | getGlobalTrackStep () const |
| void | setLocalTrackStep (long long n) |
| step in a TRACK command | |
| void | incTrackSteps () |
| long long | getLocalTrackStep () const |
| void | setNumBunch (short n) |
| short | getNumBunch () const |
| void | setTotalNumPerBunch (size_t numpart, short n) |
| size_t | getTotalNumPerBunch (short n) const |
| void | setLocalNumPerBunch (size_t numpart, short n) |
| size_t | getLocalNumPerBunch (short n) const |
| void | countTotalNumPerBunch () |
| void | setGlobalMeanR (Vector_t globalMeanR) |
| Vector_t | getGlobalMeanR () |
| void | setGlobalToLocalQuaternion (Quaternion_t globalToLocalQuaternion) |
| Quaternion_t | getGlobalToLocalQuaternion () |
| void | setSteptoLastInj (int n) |
| int | getSteptoLastInj () const |
| double | calcMeanPhi () |
| calculate average angle of longitudinal direction of bins | |
| bool | resetPartBinID2 (const double eta) |
| reset Bin[] for each particle according to the method given in paper PAST-AB(064402) by G. Fubiani et al. | |
| bool | resetPartBinBunch () |
| double | getdE () const |
| virtual double | getGamma (int i) |
| virtual double | getBeta (int i) |
| virtual void | actT () |
| const PartData * | getReference () const |
| double | getEmissionDeltaT () |
| DistributionType | getDistType () const |
| double | getMomentumTolerance () const |
| Quaternion_t | getQKs3D () |
| void | setQKs3D (Quaternion_t q) |
| Vector_t | getKs3DRefr () |
| void | setKs3DRefr (Vector_t r) |
| Vector_t | getKs3DRefp () |
| void | setKs3DRefp (Vector_t p) |
| void | iterateEmittedBin (int binNumber) |
| void | calcEMean () |
| virtual void | runTests () |
| size_t | getTotalNum () const |
| void | setTotalNum (size_t n) |
| void | setLocalNum (size_t n) |
| size_t | getLocalNum () const |
| size_t | getDestroyNum () const |
| size_t | getGhostNum () const |
| bool | getUpdateFlag (UpdateFlags_t f) const |
| void | setUpdateFlag (UpdateFlags_t f, bool val) |
| ParticleBConds< Position_t, Dimension > & | getBConds () |
| void | setBConds (const ParticleBConds< Position_t, Dimension > &bc) |
| bool | singleInitNode () const |
| void | resetID () |
| void | update () |
| void | createWithID (unsigned id) |
| void | create (size_t M) |
| void | globalCreate (size_t np) |
| void | destroy (size_t M, size_t I, bool doNow=false) |
| void | performDestroy (bool updateLocalNum=false) |
| void | ghostDestroy (size_t M, size_t I) |
| FMatrix< double, 2 *Dim, 2 *Dim > | getSigmaMatrix () const |
| double | getQ () const |
| Access to reference data. | |
| double | getM () const |
| double | getP () const |
| double | getE () const |
| ParticleOrigin | getPOrigin () const |
| ParticleType | getPType () const |
| double | getInitialBeta () const |
| double | getInitialGamma () const |
| void | resetQ (double q) |
| Set reference data. | |
| void | resetM (double m) |
| void | setPOrigin (ParticleOrigin) |
| void | setPType (const std::string &type) |
Public Attributes | |
| Field_t | rho_m |
| scalar potential | |
| VField_t | eg_m |
| vector field on the grid | |
| ParticlePos_t & | R |
| ParticleIndex_t & | ID |
| ParticleAttrib< Vector_t > | P |
| ParticleAttrib< double > | Q |
| ParticleAttrib< double > | M |
| ParticleAttrib< double > | Phi |
| ParticleAttrib< Vector_t > | Ef |
| ParticleAttrib< Vector_t > | Eftmp |
| ParticleAttrib< Vector_t > | Bf |
| ParticleAttrib< int > | Bin |
| ParticleAttrib< double > | dt |
| ParticleAttrib< ParticleType > | PType |
| ParticleAttrib< ParticleOrigin > | POrigin |
| ParticleAttrib< int > | TriID |
| ParticleAttrib< short > | cavityGapCrossed |
| ParticleAttrib< short > | bunchNum |
| Vector_t | RefPartR_m |
| Vector_t | RefPartP_m |
| CoordinateSystemTrafo | toLabTrafo_m |
| ParticleOrigin | refPOrigin_m |
| ParticleType | refPType_m |
| PartBins * | pbin_m |
| IpplTimings::TimerRef | distrReload_m |
| timer for IC, can not be in Distribution.h | |
| IpplTimings::TimerRef | distrCreate_m |
| double | dtScInit_m |
| double | deltaTau_m |
Static Public Attributes | |
| static const unsigned | Dimension |
Protected Member Functions | |
| size_t | calcMoments () |
| void | calcMomentsInitial () |
| double | calculateAngle (double x, double y) |
| angle range [0~2PI) degree | |
Protected Attributes | |
| IpplTimings::TimerRef | boundpTimer_m |
| IpplTimings::TimerRef | boundpBoundsTimer_m |
| IpplTimings::TimerRef | boundpUpdateTimer_m |
| IpplTimings::TimerRef | statParamTimer_m |
| IpplTimings::TimerRef | histoTimer_m |
| IpplTimings::TimerRef | selfFieldTimer_m |
| timer for selfField calculation | |
| const PartData * | reference |
| UnitState_t | unit_state_ |
| UnitState_t | stateOfLastBoundP_ |
| double | centroid_m [2 *Dim] |
| holds the centroid of the beam | |
| double | dt_m |
| holds the timestep in seconds | |
| double | t_m |
| holds the actual time of the integration | |
| double | spos_m |
| the position along design trajectory | |
| Vector_t | globalMeanR_m |
| Quaternion_t | globalToLocalQuaternion_m |
| Vector_t | rmax_m |
| maximal extend of particles | |
| Vector_t | rmin_m |
| minimal extend of particles | |
| double | rmsDensity_m |
| Vector_t | hr_m |
| meshspacing of cartesian mesh | |
| Vektor< int, 3 > | nr_m |
| meshsize of cartesian mesh | |
| FieldSolver * | fs_m |
| stores the used field solver | |
| double | couplingConstant_m |
| double | qi_m |
| double | massPerParticle_m |
| int | distDump_m |
| counter to store the distribution dump | |
| double | dh_m |
| Mesh enlargement. | |
| double | tEmission_m |
| relative enlargement of the mesh | |
| std::unique_ptr< double[]> | bingamma_m |
| holds the gamma of the bin | |
| std::unique_ptr< size_t[]> | binemitted_m |
| int | stepsPerTurn_m |
| steps per turn for OPAL-cycl | |
| long long | localTrackStep_m |
| step in a TRACK command | |
| long long | globalTrackStep_m |
| if multiple TRACK commands | |
| short | numBunch_m |
| current bunch number | |
| std::vector< size_t > | bunchTotalNum_m |
| number of particles per bunch | |
| std::vector< size_t > | bunchLocalNum_m |
| int | SteptoLastInj_m |
| std::unique_ptr< size_t[]> | globalPartPerNode_m |
| Distribution * | dist_m |
| DistributionMoments | momentsComputer_m |
| bool | dcBeam_m |
| double | periodLength_m |
| std::shared_ptr< AbstractParticle< double, Dim > > | pbase_m |
Private Member Functions | |
| void | updateDomainLength (Vektor< int, 3 > &grid) |
| void | updateFields (const Vector_t &hr, const Vector_t &origin) |
| void | resizeMesh () |
| resize mesh to geometry specified | |
| ParticleLayout< double, 3 > & | getLayout () |
| const ParticleLayout< double, 3 > & | getLayout () const |
| void | setup (AbstractParticle< double, Dim > *pb) |
Private Attributes | |
| BConds< double, 3, Mesh_t, Center_t > | bc_m |
| for defining the boundary conditions | |
| BConds< Vector_t, 3, Mesh_t, Center_t > | vbc_m |
| bool | interpolationCacheSet_m |
| ParticleAttrib< CacheDataCIC< double, 3U > > | interpolationCache_m |
| std::unique_ptr< Inform > | pmsg_m |
| std::unique_ptr< std::ofstream > | f_stream |
| bool | fixed_grid |
| if the grid does not have to adapt | |
Definition at line 24 of file PartBunch.h.
|
inherited |
Definition at line 53 of file PartBunchBase.h.
|
inherited |
Definition at line 52 of file PartBunchBase.h.
| typedef IpplParticleBase<Layout_t> PartBunch::pbase_t |
Definition at line 27 of file PartBunch.h.
|
inherited |
Definition at line 55 of file PartBunchBase.h.
|
inherited |
Definition at line 54 of file PartBunchBase.h.
|
inherited |
Definition at line 57 of file PartBunchBase.h.
| anonymous enum |
| Enumerator | |
|---|---|
| Dim | |
Definition at line 28 of file PartBunch.h.
|
inherited |
Definition at line 61 of file PartBunchBase.h.
|
explicit |
Default constructor.
Definition at line 40 of file PartBunch.cpp.
References interpolationCacheSet_m, PartBunch(), and PartBunchBase< double, 3 >::PartBunchBase().
Referenced by operator=(), PartBunch(), and PartBunch().
|
delete |
|
delete |
| PartBunch::~PartBunch | ( | ) |
Definition at line 48 of file PartBunch.cpp.
|
virtualinherited |
Definition at line 442 of file PartBunchBase.hpp.
References getLocalNum().
|
inlineinherited |
Definition at line 279 of file PartBunchBase.h.
|
virtualinherited |
In case of dcBeam_m && hr_m < 0 this is the first call to boundp and we have to set hr completely i.e. x,y and z.
Reimplemented in AmrPartBunch.
Definition at line 168 of file PartBunchBase.hpp.
Referenced by PartBunch::do_binaryRepart(), and PartBunch::resizeMesh().
|
inherited |
delete particles which are too far away from the center of beam
Definition at line 171 of file PartBunchBase.hpp.
References getLocalNum(), and R.
|
inherited |
This is only temporary in order to get the collimator and pepperpot working
Definition at line 174 of file PartBunchBase.hpp.
|
inherited |
Definition at line 351 of file PartBunchBase.hpp.
References binemitted_m, and bingamma_m.
|
inherited |
|
inherited |
Compute the (global) Debye length for the beam.
Definition at line 145 of file PartBunchBase.hpp.
References binemitted_m, and bingamma_m.
Referenced by PartBunch::computeSelfFields(), and PartBunch::computeSelfFields_cycl().
|
inherited |
Definition at line 461 of file PartBunchBase.hpp.
|
inherited |
Compute the gammas of all bins.
Definition at line 140 of file PartBunchBase.hpp.
|
inherited |
Definition at line 142 of file PartBunchBase.hpp.
|
inherited |
calculates the 1d line density (not normalized) and append it to a file.
\method calcLineDensity()
DETAILED TODO
Definition at line 159 of file PartBunchBase.hpp.
|
inherited |
calculate average angle of longitudinal direction of bins
Definition at line 416 of file PartBunchBase.hpp.
|
protectedinherited |
|
protectedinherited |
|
inherited |
returns the number of particles outside of a box defined by x
Definition at line 157 of file PartBunchBase.hpp.
References dist_m.
|
protectedinherited |
|
virtual |
Magnetic field in x and y direction induced by the electric field
\[ B_x = \gamma(B_x^{'} - \frac{beta}{c}E_y^{'}) = -\gamma \frac{beta}{c}E_y^{'} = -\frac{beta}{c}E_y \]
\[ B_y = \gamma(B_y^{'} - \frac{beta}{c}E_x^{'}) = +\gamma \frac{beta}{c}E_x^{'} = +\frac{beta}{c}E_x \]
\[ B_z = B_z^{'} = 0 \]
Implements PartBunchBase< double, 3 >.
Definition at line 349 of file PartBunch.cpp.
References PartBunchBase< double, 3 >::Bf, Physics::c, PartBunchBase< double, 3 >::calcDebyeLength(), PartBunchBase< double, 3 >::dt, FieldWriter::dumpField(), PartBunchBase< double, 3 >::Ef, eg_m, endl(), FFT, FFTBOX, PartBunchBase< double, 3 >::fs_m, PartBunchBase< double, 3 >::getCouplingConstant(), PartBunchBase< double, 3 >::getdT(), PartBunchBase< double, 3 >::getTotalNum(), gmsg, Grad(), PartBunchBase< double, 3 >::hr_m, PartBunchBase< double, 3 >::localTrackStep_m, PartBunchBase< double, 3 >::nr_m, PartBunchBase< double, 3 >::P, P3M, PartBunchBase< double, 3 >::Q, Physics::q_e, PartBunchBase< double, 3 >::R, resizeMesh(), rho_m, PartBunchBase< double, 3 >::rmsDensity_m, PartBunchBase< double, 3 >::selfFieldTimer_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), and sum().
| void PartBunch::computeSelfFields | ( | int | b | ) |
/brief used for self fields with binned distribution
Set initial charge density to zero. Create image charge potential field.
Set initial E field to zero.
Mesh the whole domain
Scatter charge onto space charge grid.
Calculate mesh-scale factor and get gamma for this specific slice (bin).
Scale charge density to get charge density in real units. Account for Lorentz transformation in longitudinal direction.
Scale mesh spacing to real units (meters). Lorentz transform the longitudinal direction.
Find potential from charge in this bin (no image yet) using Poisson's equation (without coefficient: -1/(eps)).
Scale mesh back (to same units as particle locations.)
The scalar potential is given back in rho_m and must be converted to the right units.
IPPL Grad numerical computes gradient to find the electric field (in bin rest frame).
Scale field. Combine Lorentz transform with conversion to proper field units.
Interpolate electric field at particle positions. We reuse the cached information about where the particles are relative to the field, since the particles have not moved since this the most recent scatter operation.
Magnetic field in x and y direction induced by the electric field.
\[ B_x = \gamma(B_x^{'} - \frac{beta}{c}E_y^{'}) = -\gamma \frac{beta}{c}E_y^{'} = -\frac{beta}{c}E_y \]
\[ B_y = \gamma(B_y^{'} - \frac{beta}{c}E_x^{'}) = +\gamma \frac{beta}{c}E_x^{'} = +\frac{beta}{c}E_x \]
\[ B_z = B_z^{'} = 0 \]
Now compute field due to image charge. This is done separately as the image charge is moving to -infinity (instead of +infinity) so the Lorentz transform is different.
Find z shift for shifted Green's function.
Find potential from image charge in this bin using Poisson's equation (without coefficient: -1/(eps)).
Scale mesh back (to same units as particle locations.)
The scalar potential is given back in rho_m and must be converted to the right units.
IPPL Grad numerical computes gradient to find the electric field (in rest frame of this bin's image charge).
Scale field. Combine Lorentz transform with conversion to proper field units.
Interpolate electric field at particle positions. We reuse the cached information about where the particles are relative to the field, since the particles have not moved since this the most recent scatter operation.
Magnetic field in x and y direction induced by the image charge electric field. Note that beta will have the opposite sign from the bunch charge field, as the image charge is moving in the opposite direction.
\[ B_x = \gamma(B_x^{'} - \frac{beta}{c}E_y^{'}) = -\gamma \frac{beta}{c}E_y^{'} = -\frac{beta}{c}E_y \]
\[ B_y = \gamma(B_y^{'} - \frac{beta}{c}E_x^{'}) = +\gamma \frac{beta}{c}E_x^{'} = +\frac{beta}{c}E_x \]
\[ B_z = B_z^{'} = 0 \]
Definition at line 76 of file PartBunch.cpp.
References PartBunchBase< double, 3 >::Bf, Physics::c, PartBunchBase< double, 3 >::dt, FieldWriter::dumpField(), PartBunchBase< double, 3 >::Ef, PartBunchBase< double, 3 >::Eftmp, eg_m, endl(), PartBunchBase< double, 3 >::fs_m, PartBunchBase< double, 3 >::getBinGamma(), PartBunchBase< double, 3 >::getCouplingConstant(), FieldLayout< Dim >::getDomain(), PartBunchBase< double, 3 >::getdT(), getFieldLayout(), PartBunchBase< double, 3 >::getLocalNum(), gmsg, Grad(), PartBunchBase< double, 3 >::hr_m, interpolationCache_m, interpolationCacheSet_m, PartBunchBase< double, 3 >::localTrackStep_m, PartBunchBase< double, 3 >::nr_m, P3M, PartBunchBase< double, 3 >::Q, PartBunchBase< double, 3 >::R, resizeMesh(), rho_m, PartBunchBase< double, 3 >::selfFieldTimer_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().
|
virtual |
Calculates the self electric field from the charge density distribution for use in cyclotrons.
\method computeSelfFields_cycl()
Comments -DW: I have made some changes in here: -) Some refacturing to make more similar to computeSelfFields() -) Added meanR and quaternion to be handed to the function so that SAAMG solver knows how to rotate the boundary geometry correctly. -) Fixed an error where gamma was not taken into account correctly in direction of movement (y in cyclotron) -) Comment: There is no account for image charges in the cyclotron tracker (yet?)!
set initial charge density to zero.
set initial E field to zero
mesh the whole domain
scatter particles charge onto grid.
Lorentz transformation In particle rest frame, the longitudinal length (y for cyclotron) enlarged
from charge (C) to charge density (C/m^3).
now charge density is in rho_m calculate Possion equation (without coefficient: -1/(eps))
retrive coefficient: -1/(eps)
calculate electric field vectors from field potential
Back Lorentz transformation CAVE: y coordinate needs 1/gamma factor because IPPL function Grad() divides by hr_m which is not scaled appropriately with Lorentz contraction in y direction only hr_scaled is! -DW
interpolate electric field at particle positions.
calculate coefficient
calculate B field from E field
Implements PartBunchBase< double, 3 >.
Definition at line 481 of file PartBunch.cpp.
References PartBunchBase< double, 3 >::Bf, Physics::c, PartBunchBase< double, 3 >::calcDebyeLength(), FieldWriter::dumpField(), PartBunchBase< double, 3 >::Ef, eg_m, endl(), FFT, FFTBOX, PartBunchBase< double, 3 >::fs_m, PartBunchBase< double, 3 >::getCouplingConstant(), gmsg, Grad(), PartBunchBase< double, 3 >::hr_m, PartBunchBase< double, 3 >::localTrackStep_m, PartBunchBase< double, 3 >::nr_m, P3M, PartBunchBase< double, 3 >::Q, Physics::q_e, PartBunchBase< double, 3 >::R, resizeMesh(), rho_m, PartBunchBase< double, 3 >::rmsDensity_m, PartBunchBase< double, 3 >::selfFieldTimer_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), and sum().
| void PartBunch::computeSelfFields_cycl | ( | int | bin | ) |
Calculates the self electric field from the charge density distribution for use in cyclotrons.
\method computeSelfFields_cycl()
Overloaded version for having multiple bins with separate gamma for each bin. This is necessary For multi-bunch mode.
Comments -DW: I have made some changes in here: -) Some refacturing to make more similar to computeSelfFields() -) Added meanR and quaternion to be handed to the function (TODO: fall back to meanR = 0 and unit quaternion if not specified) so that SAAMG solver knows how to rotate the boundary geometry correctly. -) Fixed an error where gamma was not taken into account correctly in direction of movement (y in cyclotron) -) Comment: There is no account for image charges in the cyclotron tracker (yet?)!
set initial charge dentsity to zero.
set initial E field to zero
get gamma of this bin
mesh the whole domain
scatter particles charge onto grid.
Lorentz transformation In particle rest frame, the longitudinal length (y for cyclotron) enlarged
from charge (C) to charge density (C/m^3).
now charge density is in rho_m calculate Possion equation (without coefficient: -1/(eps))
retrive coefficient: -1/(eps)
calculate electric field vectors from field potential
Back Lorentz transformation CAVE: y coordinate needs 1/gamma factor because IPPL function Grad() divides by hr_m which is not scaled appropriately with Lorentz contraction in y direction only hr_scaled is! -DW
Interpolate electric field at particle positions.
Calculate coefficient
Calculate B_bin field from E_bin field accumulate B and E field
Definition at line 621 of file PartBunch.cpp.
References PartBunchBase< double, 3 >::Bf, Physics::c, FieldWriter::dumpField(), PartBunchBase< double, 3 >::Ef, PartBunchBase< double, 3 >::Eftmp, eg_m, endl(), FFT, FFTBOX, PartBunchBase< double, 3 >::fs_m, PartBunchBase< double, 3 >::getBinGamma(), PartBunchBase< double, 3 >::getCouplingConstant(), gmsg, Grad(), PartBunchBase< double, 3 >::hr_m, PartBunchBase< double, 3 >::localTrackStep_m, PartBunchBase< double, 3 >::nr_m, P3M, PartBunchBase< double, 3 >::Q, PartBunchBase< double, 3 >::R, resizeMesh(), rho_m, PartBunchBase< double, 3 >::selfFieldTimer_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().
|
inherited |
Definition at line 405 of file PartBunchBase.hpp.
|
inherited |
Definition at line 543 of file PartBunchBase.hpp.
|
inherited |
Definition at line 542 of file PartBunchBase.hpp.
|
inherited |
Definition at line 546 of file PartBunchBase.hpp.
References hr_m, nr_m, rmax_m, and rmin_m.
Referenced by PartBunch::resizeMesh().
|
inherited |
Definition at line 176 of file PartBunchBase.hpp.
References Physics::c, dt, and R.
|
virtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 63 of file PartBunch.cpp.
References BinaryRepartition(), PartBunchBase< double, 3 >::boundp(), PartBunchBase< double, 3 >::get_bounds(), PartBunchBase< double, 3 >::pbase_m, PartBunchBase< double, 3 >::rmax_m, PartBunchBase< double, 3 >::rmin_m, and PartBunchBase< double, 3 >::update().
|
inherited |
Definition at line 117 of file PartBunchBase.hpp.
References dist_m.
|
inherited |
Emit particles in the given bin i.e. copy the particles from the bin structure into the particle container.
Definition at line 129 of file PartBunchBase.hpp.
References dist_m.
|
inlineinherited |
Definition at line 283 of file PartBunchBase.h.
|
inherited |
Definition at line 346 of file PartBunchBase.hpp.
References bingamma_m.
|
inherited |
Definition at line 329 of file PartBunchBase.hpp.
|
inherited |
Definition at line 330 of file PartBunchBase.hpp.
|
inherited |
Definition at line 332 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 331 of file PartBunchBase.hpp.
|
inherited |
Definition at line 197 of file PartBunchBase.hpp.
References dt, getdT(), and getLocalNum().
Referenced by PartBunch::do_binaryRepart(), resetInterpolationCache(), PartBunch::resizeMesh(), and setUpdateFlag().
|
inherited |
Definition at line 319 of file PartBunchBase.hpp.
|
inherited |
Definition at line 341 of file PartBunchBase.hpp.
References dist_m.
|
inherited |
Definition at line 342 of file PartBunchBase.hpp.
|
inherited |
Definition at line 314 of file PartBunchBase.hpp.
References Bin.
|
inherited |
Definition at line 339 of file PartBunchBase.hpp.
|
inherited |
Definition at line 340 of file PartBunchBase.hpp.
|
inherited |
Definition at line 326 of file PartBunchBase.hpp.
|
inherited |
Definition at line 311 of file PartBunchBase.hpp.
Referenced by AmrPartBunch::updateLorentzFactor().
|
inherited |
Definition at line 328 of file PartBunchBase.hpp.
|
virtualinherited |
Reimplemented in AmrPartBunch.
Definition at line 337 of file PartBunchBase.hpp.
|
inherited |
Definition at line 318 of file PartBunchBase.hpp.
|
inherited |
Definition at line 312 of file PartBunchBase.hpp.
|
inherited |
Definition at line 327 of file PartBunchBase.hpp.
|
inherited |
Definition at line 333 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 334 of file PartBunchBase.hpp.
|
inherited |
Definition at line 336 of file PartBunchBase.hpp.
|
inherited |
Definition at line 335 of file PartBunchBase.hpp.
|
inherited |
Definition at line 317 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 349 of file PartBunchBase.hpp.
References Bin, bingamma_m, and P.
|
inherited |
Definition at line 315 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 324 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 325 of file PartBunchBase.hpp.
|
inherited |
Definition at line 323 of file PartBunchBase.hpp.
References pbin_m.
|
inherited |
Definition at line 322 of file PartBunchBase.hpp.
Referenced by getBeta().
|
inherited |
Definition at line 316 of file PartBunchBase.hpp.
|
inherited |
Definition at line 321 of file PartBunchBase.hpp.
|
inherited |
Definition at line 320 of file PartBunchBase.hpp.
|
inherited |
get the spos of the primary beam
| none |
Definition at line 307 of file PartBunchBase.hpp.
References setTotalNum().
|
inherited |
Definition at line 313 of file PartBunchBase.hpp.
|
inlineinherited |
Definition at line 527 of file PartBunchBase.h.
Referenced by PartBunch::setBCAllOpen(), PartBunch::setBCAllPeriodic(), and PartBunch::setBCForDCBeam().
|
virtualinherited |
Definition at line 441 of file PartBunchBase.hpp.
References get_rmean().
|
inherited |
Get gamma of one bin.
Definition at line 148 of file PartBunchBase.hpp.
References binemitted_m.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), and AmrPartBunch::updateLorentzFactor().
|
inherited |
Definition at line 201 of file PartBunchBase.hpp.
References Physics::c, dt, and R.
|
inherited |
get the total charge per simulation particle
Definition at line 367 of file PartBunchBase.hpp.
|
inherited |
get the macro particle charge
Definition at line 370 of file PartBunchBase.hpp.
|
inherited |
Definition at line 354 of file PartBunchBase.hpp.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), and PartBunch::computeSelfFields_cycl().
|
inherited |
Definition at line 439 of file PartBunchBase.hpp.
|
inherited |
Definition at line 517 of file PartBunchBase.hpp.
References ID, R, stateOfLastBoundP_, and unit_state_.
|
inherited |
Definition at line 448 of file PartBunchBase.hpp.
|
inherited |
Definition at line 295 of file PartBunchBase.hpp.
Referenced by boundp_destroyT(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), and get_bounds().
|
inherited |
Definition at line 427 of file PartBunchBase.hpp.
|
inlinevirtual |
Implements PartBunchBase< double, 3 >.
Definition at line 838 of file PartBunch.cpp.
References eg_m, max(), and min().
|
inherited |
Definition at line 446 of file PartBunchBase.hpp.
References R.
|
virtual |
Implements PartBunchBase< double, 3 >.
Definition at line 760 of file PartBunch.cpp.
References getFieldLayout(), getLayout(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout().
Referenced by computeSelfFields(), getFieldLayout(), resizeMesh(), updateDomainLength(), and updateFields().
|
inherited |
Return the fieldsolver type if we have a fieldsolver.
Definition at line 378 of file PartBunchBase.hpp.
References bingamma_m, endl(), and level2().
|
virtualinherited |
Definition at line 440 of file PartBunchBase.hpp.
|
inherited |
Definition at line 518 of file PartBunchBase.hpp.
References stateOfLastBoundP_, and unit_state_.
|
inherited |
Definition at line 408 of file PartBunchBase.hpp.
|
inherited |
Definition at line 410 of file PartBunchBase.hpp.
|
inherited |
Definition at line 385 of file PartBunchBase.hpp.
|
inherited |
Definition at line 77 of file PartBunchBase.hpp.
References dist_m, and globalPartPerNode_m.
|
inherited |
Definition at line 430 of file PartBunchBase.hpp.
|
inherited |
Definition at line 431 of file PartBunchBase.hpp.
|
inherited |
|
inherited |
|
inherited |
Definition at line 135 of file PartBunchBase.hpp.
References endl().
|
inherited |
Definition at line 79 of file PartBunchBase.hpp.
References c, dcBeam_m, and periodLength_m.
|
inlineprivate |
Definition at line 120 of file PartBunch.h.
References PartBunchBase< double, 3 >::pbase_m.
Referenced by getFieldLayout(), getMesh(), getMesh(), and initialize().
|
inlineprivate |
Definition at line 125 of file PartBunch.h.
References PartBunchBase< double, 3 >::pbase_m.
|
inherited |
Definition at line 347 of file PartBunchBase.hpp.
References getLocalNum().
|
inherited |
Definition at line 203 of file PartBunchBase.hpp.
|
inherited |
Definition at line 199 of file PartBunchBase.hpp.
References dt.
|
inherited |
Definition at line 515 of file PartBunchBase.hpp.
References boundpTimer_m.
Referenced by actT(), boundp_destroyCycl(), PartBunch::computeSelfFields(), get_bounds(), getLoadBalance(), PartBunch::resizeMesh(), setNumBunch(), and swap().
|
inherited |
Definition at line 400 of file PartBunchBase.hpp.
References bingamma_m, and pbin_m.
|
inherited |
Definition at line 390 of file PartBunchBase.hpp.
References bingamma_m.
|
inherited |
Definition at line 425 of file PartBunchBase.hpp.
|
inherited |
Definition at line 372 of file PartBunchBase.hpp.
References endl(), OpalData::getInstance(), and getTotalNum().
|
inline |
Definition at line 144 of file PartBunch.h.
References getLayout(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout().
|
inline |
Definition at line 138 of file PartBunch.h.
References getLayout(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout().
Referenced by resizeMesh(), and updateFields().
|
inherited |
Definition at line 450 of file PartBunchBase.hpp.
References IpplInfo::getNodes(), and globalPartPerNode_m.
|
inherited |
Definition at line 81 of file PartBunchBase.hpp.
References pbase_m.
|
inherited |
Definition at line 83 of file PartBunchBase.hpp.
References setup().
|
inherited |
Definition at line 393 of file PartBunchBase.hpp.
References Bin, bingamma_m, dot(), and P.
|
inherited |
Definition at line 426 of file PartBunchBase.hpp.
|
inherited |
Definition at line 215 of file PartBunchBase.hpp.
|
inherited |
Definition at line 428 of file PartBunchBase.hpp.
|
inherited |
Definition at line 429 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 181 of file PartBunchBase.hpp.
References unit_state_, and unitless.
|
virtualinherited |
Definition at line 185 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 182 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 186 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 183 of file PartBunchBase.hpp.
References R.
|
inherited |
Access to reference data.
Definition at line 424 of file PartBunchBase.hpp.
|
inherited |
|
inherited |
Definition at line 444 of file PartBunchBase.hpp.
References R.
|
inlinevirtual |
Implements PartBunchBase< double, 3 >.
Definition at line 133 of file PartBunch.h.
References rho_m.
|
inherited |
Definition at line 611 of file PartBunchBase.hpp.
|
inherited |
Definition at line 381 of file PartBunchBase.hpp.
|
inherited |
Definition at line 413 of file PartBunchBase.hpp.
|
inherited |
Definition at line 299 of file PartBunchBase.hpp.
|
inherited |
Definition at line 115 of file PartBunchBase.hpp.
|
inherited |
Definition at line 512 of file PartBunchBase.hpp.
Referenced by PartBunch::computeSelfFields(), and getMassPerParticle().
|
inherited |
Definition at line 397 of file PartBunchBase.hpp.
References bingamma_m.
|
inherited |
Definition at line 523 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 188 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 192 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 189 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 193 of file PartBunchBase.hpp.
|
virtualinherited |
Definition at line 190 of file PartBunchBase.hpp.
References unit_state_, and units.
|
inherited |
Definition at line 548 of file PartBunchBase.hpp.
References dcBeam_m, hr_m, nr_m, periodLength_m, rmax_m, and rmin_m.
|
inherited |
Definition at line 544 of file PartBunchBase.hpp.
|
inherited |
Definition at line 106 of file PartBunchBase.hpp.
References dist_m.
|
inherited |
Definition at line 376 of file PartBunchBase.hpp.
References binemitted_m.
|
inherited |
Definition at line 298 of file PartBunchBase.hpp.
|
inherited |
Definition at line 389 of file PartBunchBase.hpp.
|
virtual |
Implements PartBunchBase< double, 3 >.
Definition at line 57 of file PartBunch.cpp.
References getLayout(), and ParticleSpatialLayout< T, Dim, Mesh, CachingPolicy >::getLayout().
|
inherited |
Definition at line 104 of file PartBunchBase.hpp.
Referenced by getLayout().
|
inherited |
Definition at line 459 of file PartBunchBase.hpp.
|
inherited |
Return maximum amplitudes.
Definition at line 291 of file PartBunchBase.hpp.
|
inherited |
Definition at line 547 of file PartBunchBase.hpp.
Definition at line 865 of file PartBunch.cpp.
References PartBunchBase< T, Dim >::print().
Referenced by operator<<().
|
inherited |
Definition at line 209 of file PartBunchBase.hpp.
|
inherited |
Definition at line 85 of file PartBunchBase.hpp.
|
inherited |
|
inherited |
Definition at line 537 of file PartBunchBase.hpp.
|
inlinevirtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 848 of file PartBunch.cpp.
References interpolationCache_m, and interpolationCacheSet_m.
|
inherited |
Definition at line 435 of file PartBunchBase.hpp.
|
inherited |
Definition at line 421 of file PartBunchBase.hpp.
References bingamma_m.
|
inherited |
reset Bin[] for each particle according to the method given in paper PAST-AB(064402) by G. Fubiani et al.
Definition at line 419 of file PartBunchBase.hpp.
|
inherited |
Set reference data.
Definition at line 434 of file PartBunchBase.hpp.
|
privatevirtual |
resize mesh to geometry specified
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 297 of file PartBunch.cpp.
References bc_m, PartBunchBase< double, 3 >::boundp(), PartBunchBase< double, 3 >::destroy(), PartBunchBase< double, 3 >::dh_m, eg_m, endl(), PartBunchBase< double, 3 >::fs_m, PartBunchBase< double, 3 >::get_bounds(), getFieldLayout(), PartBunchBase< double, 3 >::getLocalNum(), getMesh(), PartBunchBase< double, 3 >::hr_m, PartBunchBase< double, 3 >::ID, INFOMSG, level2(), PartBunchBase< double, 3 >::R, rho_m, PartBunchBase< double, 3 >::rmax_m, PartBunchBase< double, 3 >::rmin_m, SAAMG, UniformCartesian< Dim, MFLOAT >::set_meshSpacing(), UniformCartesian< Dim, MFLOAT >::set_origin(), PartBunchBase< double, 3 >::update(), and vbc_m.
Referenced by computeSelfFields(), computeSelfFields(), computeSelfFields_cycl(), and computeSelfFields_cycl().
|
virtualinherited |
Definition at line 469 of file PartBunchBase.hpp.
|
virtualinherited |
Reimplemented in AmrPartBunch.
Definition at line 344 of file PartBunchBase.hpp.
|
inherited |
Definition at line 309 of file PartBunchBase.hpp.
|
virtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 784 of file PartBunch.cpp.
References bc_m, PartBunchBase< double, 3 >::dcBeam_m, endl(), PartBunchBase< double, 3 >::getBConds(), INFOMSG, level3(), ParticleNoBCond(), and vbc_m.
|
virtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 765 of file PartBunch.cpp.
References bc_m, PartBunchBase< double, 3 >::dcBeam_m, endl(), PartBunchBase< double, 3 >::getBConds(), IpplInfo::getNodes(), INFOMSG, level3(), ParticlePeriodicBCond(), and vbc_m.
|
virtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 794 of file PartBunch.cpp.
References bc_m, PartBunchBase< double, 3 >::dcBeam_m, endl(), PartBunchBase< double, 3 >::getBConds(), IpplInfo::getNodes(), INFOMSG, level3(), ParticleNoBCond(), ParticlePeriodicBCond(), and vbc_m.
|
inlineinherited |
Definition at line 531 of file PartBunchBase.h.
|
inherited |
Definition at line 162 of file PartBunchBase.hpp.
|
virtualinherited |
Set the charge of one bin to the value of q and all other to zero.
Reimplemented in AmrPartBunch.
Definition at line 151 of file PartBunchBase.hpp.
|
inherited |
Definition at line 358 of file PartBunchBase.hpp.
References level2().
|
inherited |
Definition at line 360 of file PartBunchBase.hpp.
References bingamma_m, and endl().
|
inherited |
Definition at line 355 of file PartBunchBase.hpp.
References bingamma_m.
|
inherited |
Definition at line 97 of file PartBunchBase.hpp.
|
inherited |
Definition at line 294 of file PartBunchBase.hpp.
References pbin_m, and setEnergyBins().
|
inherited |
Definition at line 87 of file PartBunchBase.hpp.
Referenced by setdT().
|
inherited |
Definition at line 407 of file PartBunchBase.hpp.
References bingamma_m, and endl().
|
inherited |
Definition at line 409 of file PartBunchBase.hpp.
|
inherited |
step in multiple TRACK commands
Definition at line 384 of file PartBunchBase.hpp.
|
inherited |
|
inherited |
|
inherited |
Definition at line 137 of file PartBunchBase.hpp.
|
inherited |
Definition at line 514 of file PartBunchBase.hpp.
|
inherited |
Definition at line 399 of file PartBunchBase.hpp.
|
inherited |
|
inherited |
Definition at line 363 of file PartBunchBase.hpp.
|
inherited |
Definition at line 364 of file PartBunchBase.hpp.
References bingamma_m, endl(), and level2().
|
inherited |
Definition at line 392 of file PartBunchBase.hpp.
References getLocalNum().
|
inherited |
Definition at line 211 of file PartBunchBase.hpp.
|
inherited |
Definition at line 121 of file PartBunchBase.hpp.
|
inherited |
Definition at line 436 of file PartBunchBase.hpp.
|
inherited |
Definition at line 437 of file PartBunchBase.hpp.
|
inherited |
|
virtualinherited |
CAN not re-inizialize ParticleLayout this is an IPPL issue
Reimplemented in AmrPartBunch.
Definition at line 374 of file PartBunchBase.hpp.
|
inherited |
Definition at line 380 of file PartBunchBase.hpp.
|
inherited |
Definition at line 412 of file PartBunchBase.hpp.
|
inherited |
Definition at line 297 of file PartBunchBase.hpp.
|
inherited |
Definition at line 113 of file PartBunchBase.hpp.
|
inherited |
Definition at line 513 of file PartBunchBase.hpp.
Referenced by get_sPos().
|
inherited |
Definition at line 396 of file PartBunchBase.hpp.
|
privateinherited |
Definition at line 566 of file PartBunchBase.hpp.
References dh_m, hr_m, nr_m, rmax_m, and rmin_m.
Referenced by getNumberOfEnergyBins().
|
inherited |
Definition at line 524 of file PartBunchBase.hpp.
References boundpBoundsTimer_m, get_bounds(), nr_m, rmax_m, rmin_m, and updateDomainLength().
|
virtualinherited |
Definition at line 195 of file PartBunchBase.hpp.
References R.
|
inherited |
Definition at line 535 of file PartBunchBase.hpp.
|
virtual |
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 855 of file PartBunch.cpp.
References interpolationCache_m, interpolationCacheSet_m, and PartBunchBase< T, Dim >::swap().
|
inherited |
Definition at line 95 of file PartBunchBase.hpp.
|
inherited |
Definition at line 92 of file PartBunchBase.hpp.
References dist_m, and reduce().
|
inherited |
Definition at line 539 of file PartBunchBase.hpp.
References rmax_m, and rmin_m.
Referenced by AmrPartBunch::boundp(), AmrPartBunch::do_binaryRepart(), PartBunch::do_binaryRepart(), and PartBunch::resizeMesh().
|
privatevirtual |
Implements PartBunchBase< double, 3 >.
Definition at line 817 of file PartBunch.cpp.
References PartBunchBase< double, 3 >::Dimension, FieldLayout< Dim >::getDomain(), and getFieldLayout().
Reimplemented from PartBunchBase< double, 3 >.
Definition at line 824 of file PartBunch.cpp.
References bc_m, eg_m, getFieldLayout(), getMesh(), PartBunchBase< double, 3 >::hr_m, rho_m, UniformCartesian< Dim, MFLOAT >::set_meshSpacing(), UniformCartesian< Dim, MFLOAT >::set_origin(), and vbc_m.
|
inherited |
Definition at line 131 of file PartBunchBase.hpp.
|
inherited |
Definition at line 119 of file PartBunchBase.hpp.
Referenced by AmrPartBunch::updateLorentzFactor().
|
inherited |
Definition at line 89 of file PartBunchBase.hpp.
for defining the boundary conditions
Definition at line 111 of file PartBunch.h.
Referenced by resizeMesh(), setBCAllOpen(), setBCAllPeriodic(), setBCForDCBeam(), and updateFields().
|
inherited |
Definition at line 583 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), and PartBunch::computeSelfFields_cycl().
|
inherited |
Definition at line 584 of file PartBunchBase.h.
Referenced by get_debyeLength(), get_PBounds(), getE(), and getNumBunch().
|
protectedinherited |
Definition at line 694 of file PartBunchBase.h.
Referenced by calcBeamParameters(), calcDebyeLength(), getBinGamma(), hasFieldSolver(), and PartBunchBase().
|
protectedinherited |
holds the gamma of the bin
Definition at line 689 of file PartBunchBase.h.
Referenced by calcBeamParameters(), calcDebyeLength(), gatherLoadBalanceStatistics(), get_PBounds(), getFieldSolverType(), getLocalNumPerBunch(), getLocalTrackStep(), getNumBunch(), getTotalNumPerBunch(), PartBunchBase(), resetPartBinBunch(), setChargeZeroPart(), setCouplingConstant(), setGlobalMeanR(), and setMassZeroPart().
|
protectedinherited |
Definition at line 622 of file PartBunchBase.h.
Referenced by setUpdateFlag().
|
protectedinherited |
Definition at line 621 of file PartBunchBase.h.
Referenced by AmrPartBunch::boundp(), and getLocalNum().
|
protectedinherited |
Definition at line 623 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 710 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
inherited |
Definition at line 590 of file PartBunchBase.h.
|
protectedinherited |
number of particles per bunch
Definition at line 709 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
inherited |
Definition at line 589 of file PartBunchBase.h.
|
protectedinherited |
holds the centroid of the beam
Definition at line 641 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 674 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 727 of file PartBunchBase.h.
Referenced by getLastEmittedEnergyBin(), getLayout(), ghostDestroy(), PartBunch::setBCAllOpen(), PartBunch::setBCAllPeriodic(), and PartBunch::setBCForDCBeam().
|
inherited |
Definition at line 608 of file PartBunchBase.h.
|
protectedinherited |
Mesh enlargement.
Definition at line 683 of file PartBunchBase.h.
Referenced by calculateAngle(), create(), globalCreate(), PartBunchBase(), resetInterpolationCache(), PartBunch::resizeMesh(), and setup().
|
staticinherited |
Definition at line 59 of file PartBunchBase.h.
Referenced by PartBunch::updateDomainLength().
|
protectedinherited |
Definition at line 723 of file PartBunchBase.h.
Referenced by calcNumPartsOutside(), calculateAngle(), doEmission(), emitParticles(), get_DDx(), getIfBeamEmitting(), hasBinning(), and switchToUnitlessPositions().
|
protectedinherited |
counter to store the distribution dump
Definition at line 680 of file PartBunchBase.h.
|
inherited |
Definition at line 605 of file PartBunchBase.h.
|
inherited |
timer for IC, can not be in Distribution.h
Definition at line 604 of file PartBunchBase.h.
|
inherited |
Definition at line 585 of file PartBunchBase.h.
Referenced by boundp_destroyT(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), destroyT(), get_bounds(), getBoundingSphere(), and getLocalBounds().
|
protectedinherited |
holds the timestep in seconds
Definition at line 644 of file PartBunchBase.h.
|
inherited |
Definition at line 608 of file PartBunchBase.h.
|
inherited |
Definition at line 580 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), and PartBunch::computeSelfFields_cycl().
|
inherited |
Definition at line 581 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), and PartBunch::computeSelfFields_cycl().
| VField_t PartBunch::eg_m |
vector field on the grid
Definition at line 97 of file PartBunch.h.
Referenced by computeSelfFields(), computeSelfFields(), computeSelfFields_cycl(), computeSelfFields_cycl(), getEExtrema(), resizeMesh(), and updateFields().
|
privateinherited |
Definition at line 616 of file PartBunchBase.h.
|
privateinherited |
if the grid does not have to adapt
Definition at line 618 of file PartBunchBase.h.
|
protectedinherited |
stores the used field solver
Definition at line 672 of file PartBunchBase.h.
Referenced by AmrPartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), AmrPartBunch::getFieldSolver(), AmrPartBunch::getFieldSolver(), and PartBunch::resizeMesh().
|
protectedinherited |
Initialize the translation vector and rotation quaternion here. Cyclotron tracker will reset these values each timestep TTracker can just use 0 translation and 0 rotation (quat[1 0 0 0]).
Definition at line 655 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 721 of file PartBunchBase.h.
Referenced by getIfBeamEmitting(), and getMomentumTolerance().
|
protectedinherited |
Definition at line 656 of file PartBunchBase.h.
|
protectedinherited |
if multiple TRACK commands
Definition at line 703 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
protectedinherited |
Definition at line 626 of file PartBunchBase.h.
|
protectedinherited |
meshspacing of cartesian mesh
Definition at line 667 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), destroy(), AmrPartBunch::get_hr(), ghostDestroy(), PartBunch::resizeMesh(), AmrPartBunch::setBaseLevelMeshSpacing(), setup(), and PartBunch::updateFields().
|
inherited |
Definition at line 573 of file PartBunchBase.h.
Referenced by AmrPartBunch::boundp(), getDestroyNum(), and PartBunch::resizeMesh().
|
private |
Definition at line 117 of file PartBunch.h.
Referenced by computeSelfFields(), resetInterpolationCache(), and swap().
|
private |
Definition at line 115 of file PartBunch.h.
Referenced by computeSelfFields(), PartBunch(), resetInterpolationCache(), and swap().
|
protectedinherited |
step in a TRACK command
Definition at line 700 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), and PartBunchBase().
|
inherited |
Definition at line 578 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 677 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 724 of file PartBunchBase.h.
|
protectedinherited |
meshsize of cartesian mesh
Definition at line 669 of file PartBunchBase.h.
Referenced by calculateAngle(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), destroy(), ghostDestroy(), setup(), and setUpdateFlag().
|
protectedinherited |
|
inherited |
Definition at line 576 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), get_PBounds(), and getNumBunch().
|
protectedinherited |
Definition at line 729 of file PartBunchBase.h.
Referenced by AmrPartBunch::AmrPartBunch(), AmrPartBunch::AmrPartBunch(), PartBunch::do_binaryRepart(), PartBunch::getLayout(), PartBunch::getLayout(), and getNumberOfEmissionSteps().
|
inherited |
Definition at line 601 of file PartBunchBase.h.
Referenced by get_99_99Percentile(), get_normalizedEps_68Percentile(), get_origin(), get_plasmaParameter(), get_pmean(), get_prms(), getLocalNumPerBunch(), setdT(), and setLocalTrackStep().
|
protectedinherited |
Definition at line 728 of file PartBunchBase.h.
Referenced by getLastEmittedEnergyBin(), and ghostDestroy().
|
inherited |
Definition at line 579 of file PartBunchBase.h.
|
privateinherited |
Definition at line 615 of file PartBunchBase.h.
|
inherited |
Definition at line 587 of file PartBunchBase.h.
|
inherited |
Definition at line 586 of file PartBunchBase.h.
|
inherited |
Definition at line 577 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), getE(), and setBCForDCBeam().
|
protectedinherited |
Definition at line 676 of file PartBunchBase.h.
|
inherited |
Definition at line 572 of file PartBunchBase.h.
Referenced by AmrPartBunch::boundp(), boundp_destroyCycl(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), destroyT(), getBoundingSphere(), getDestroyNum(), getEmissionDeltaT(), getPz(), getReference(), PartBunch::resizeMesh(), setBCAllPeriodic(), and setZ().
|
protectedinherited |
Definition at line 630 of file PartBunchBase.h.
|
inherited |
Definition at line 593 of file PartBunchBase.h.
|
inherited |
Definition at line 592 of file PartBunchBase.h.
|
inherited |
Definition at line 597 of file PartBunchBase.h.
|
inherited |
Definition at line 598 of file PartBunchBase.h.
| Field_t PartBunch::rho_m |
scalar potential
Definition at line 94 of file PartBunch.h.
Referenced by computeSelfFields(), computeSelfFields(), computeSelfFields_cycl(), computeSelfFields_cycl(), getRho(), resizeMesh(), and updateFields().
|
protectedinherited |
maximal extend of particles
Definition at line 659 of file PartBunchBase.h.
Referenced by calculateAngle(), create(), destroy(), PartBunch::do_binaryRepart(), ghostDestroy(), resetID(), PartBunch::resizeMesh(), setup(), setUpdateFlag(), and update().
|
protectedinherited |
minimal extend of particles
Definition at line 661 of file PartBunchBase.h.
Referenced by calculateAngle(), destroy(), PartBunch::do_binaryRepart(), ghostDestroy(), globalCreate(), resetID(), PartBunch::resizeMesh(), setup(), setUpdateFlag(), and update().
|
protectedinherited |
Definition at line 664 of file PartBunchBase.h.
Referenced by PartBunch::computeSelfFields(), and PartBunch::computeSelfFields_cycl().
|
protectedinherited |
timer for selfField calculation
Definition at line 628 of file PartBunchBase.h.
Referenced by AmrPartBunch::computeSelfFields(), AmrPartBunch::computeSelfFields(), PartBunch::computeSelfFields(), PartBunch::computeSelfFields(), AmrPartBunch::computeSelfFields_cycl(), AmrPartBunch::computeSelfFields_cycl(), PartBunch::computeSelfFields_cycl(), and PartBunch::computeSelfFields_cycl().
|
protectedinherited |
the position along design trajectory
Definition at line 648 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 638 of file PartBunchBase.h.
Referenced by AmrPartBunch::boundp(), getDestroyNum(), and getGhostNum().
|
protectedinherited |
Definition at line 624 of file PartBunchBase.h.
|
protectedinherited |
steps per turn for OPAL-cycl
Definition at line 697 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
protectedinherited |
this parameter records the current steps since last bunch injection it helps to inject new bunches correctly in the restart run of OPAL-cycl it is stored during phase space dump.
Definition at line 715 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
protectedinherited |
holds the actual time of the integration
Definition at line 646 of file PartBunchBase.h.
|
protectedinherited |
relative enlargement of the mesh
if larger than 0, emitt particles for tEmission_m [s]
Definition at line 686 of file PartBunchBase.h.
Referenced by PartBunchBase().
|
inherited |
Definition at line 595 of file PartBunchBase.h.
|
inherited |
Definition at line 588 of file PartBunchBase.h.
|
protectedinherited |
Definition at line 637 of file PartBunchBase.h.
Referenced by AmrPartBunch::boundp(), getDestroyNum(), getGhostNum(), getPx(), and getZ().
Definition at line 112 of file PartBunch.h.
Referenced by resizeMesh(), setBCAllOpen(), setBCAllPeriodic(), setBCForDCBeam(), and updateFields().