Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
S
src
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
71
Issues
71
List
Boards
Labels
Service Desk
Milestones
Merge Requests
5
Merge Requests
5
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Code Review
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OPAL
src
Commits
6424d1da
Commit
6424d1da
authored
Mar 11, 2015
by
kraus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
first version of parallelTTracker that supports multiple dt in single track
parent
cf8e1878
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1386 additions
and
1391 deletions
+1386
-1391
src/Algorithms/ParallelTTracker.cpp
src/Algorithms/ParallelTTracker.cpp
+1370
-1373
src/Algorithms/ParallelTTracker.h
src/Algorithms/ParallelTTracker.h
+16
-18
No files found.
src/Algorithms/ParallelTTracker.cpp
View file @
6424d1da
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/Algorithms/ParallelTTracker.h
View file @
6424d1da
...
...
@@ -59,6 +59,7 @@ class CyclotronValley;
#include <list>
#include <vector>
#include <queue>
class
BorisPusher
;
...
...
@@ -240,14 +241,6 @@ private:
Amr
*
amrptr
;
#endif
void
checkCavity
(
double
s
,
Component
*&
comp
,
double
&
cavity_start_pos
);
void
doOneStep
(
BorisPusher
&
pusher
);
inline
double
getEnergyMeV
(
Vector_t
p
)
{
return
(
sqrt
(
dot
(
p
,
p
)
+
1.0
)
-
1.0
)
*
itsBunch
->
getM
()
*
1e-6
;
}
/******************** STATE VARIABLES ***********************************/
PartBunch
*
itsBunch
;
...
...
@@ -286,7 +279,7 @@ private:
bool
nEmissionMode_m
;
/// where to stop
std
::
vector
<
double
>
zStop_m
;
std
::
queue
<
double
>
zStop_m
;
/// The scale factor for dimensionless variables (FIXME: move to PartBunch)
double
scaleFactor_m
;
...
...
@@ -299,7 +292,7 @@ private:
double
rescale_coeff_m
;
double
dtCurrentTrack_m
;
std
::
vector
<
double
>
dtAllTracks_m
;
std
::
queue
<
double
>
dtAllTracks_m
;
double
surfaceEmissionStop_m
;
...
...
@@ -329,7 +322,7 @@ private:
unsigned
int
emissionSteps_m
;
/// The maximal number of steps the system is integrated per TRACK
std
::
vector
<
unsigned
long
long
>
localTrackSteps_m
;
std
::
queue
<
unsigned
long
long
>
localTrackSteps_m
;
size_t
maxNparts_m
;
size_t
numberOfFieldEmittedParticles_m
;
...
...
@@ -375,6 +368,10 @@ private:
void
applyExitFringe
(
double
edge
,
double
curve
,
const
BMultipoleField
&
field
,
double
scale
);
inline
double
getEnergyMeV
(
Vector_t
p
)
{
return
(
sqrt
(
dot
(
p
,
p
)
+
1.0
)
-
1.0
)
*
itsBunch
->
getM
()
*
1e-6
;
}
void
kickParticles
(
const
BorisPusher
&
pusher
);
void
kickParticlesAutophase
(
const
BorisPusher
&
pusher
);
void
kickParticles
(
const
BorisPusher
&
pusher
,
const
int
&
flg
);
...
...
@@ -388,26 +385,27 @@ private:
void
kickReferenceParticle
(
const
Vector_t
&
externalE
,
const
Vector_t
&
externalB
);
void
writePhaseSpace
(
const
long
long
step
,
const
double
&
sposRef
,
bool
psDump
,
bool
statDump
);
void
showCavities
(
Inform
&
m
);
/********** BEGIN AUTOPHSING STUFF **********/
void
checkCavity
(
double
s
,
Component
*&
comp
,
double
&
cavity_start_pos
);
void
updateRFElement
(
std
::
string
elName
,
double
maxPhi
);
void
updateAllRFElements
(
double
phiShift
);
void
executeAutoPhase
(
int
numRefs
,
double
zStop
);
double
ptoEMeV
(
Vector_t
p
);
inline
double
APtrack
(
Component
*
cavity
,
double
cavity_start
,
const
double
&
phi
)
const
;
double
APtrack
(
Component
*
cavity
,
double
cavity_start
,
const
double
&
phi
)
const
;
double
getGlobalPhaseShift
();
void
handleOverlappingMonitors
();
void
prepareSections
();
void
doAutoPhasing
();
/************ END AUTOPHSING STUFF **********/
double
ptoEMeV
(
Vector_t
p
);
void
bgf_main_collision_test
();
void
timeIntegration1
(
BorisPusher
&
pusher
);
void
timeIntegration1_bgf
(
BorisPusher
&
pusher
);
void
timeIntegration2
(
BorisPusher
&
pusher
);
void
timeIntegration2_bgf
(
BorisPusher
&
pusher
);
void
selectDT
();
void
changeDT
();
void
emitParticles
(
long
long
step
);
void
computeExternalFields
();
void
handleBends
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment