This documentation was converted from the CW18 and CW23 workshop slide decks and grounded in the example directories that ship with them. The slides, the example files, and the stored results do not always agree with each other, and some of the stored results no longer match what the current ACE3P build produces. This page records every such discrepancy found during conversion, what the documentation says instead, and why.
Keep adding to this list. When a reader reports that a value in the docs does not match what they see, check here first; if it is a new case, add it.
The example file on disk wins over the slide. When the slide listing and the file in examples/ differ, the docs show the file, because that is what a user will run.
Stored results are quoted as stored, with their build date. When a tutorial quotes a number from an omega3p.out or track3p_results/ in the example directory, that number came from whichever ACE3P build produced the stored file, which may be a decade old.
Reruns on current builds are labelled as such. Where the same input has been rerun recently, both results are shown and the difference is discussed rather than hidden.
No numbers are invented. Where an earlier draft of these pages contained an illustrative value that did not come from a file, it has been replaced with the real value or removed. Those cases are listed below under "Errors in earlier drafts of this documentation".
Earlier draft invented a mode summary with Qext of 4100 and Q0 of 28,500
Qext = 1,024,236, Q0 = 28,815, f = 1.3137561 GHz + j641 Hz, quoted verbatim from the stored result
examples/omega3p/pillbox-rtop+coax/omega3p_results/omega3p.out. The 30 mm tip offset gives very weak coupling, which the slides never state.
Mesh journal curve ID
Slide: modify curve 11 blend radius 1
modify curve 12 blend radius 1
step1-Make-90DegreeBend.jou on disk (this is actually in the S3P bend journal; listed here because the same curve-ID caution applies to the coax journal)
Practice 3b first-run results
Slide table shows mode 2 at 2.062 GHz with Qext 496
Reproduced as stated; no stored omega3p.out for the in1 run exists in the example directory to verify against
Verified only against the slide
Lossy load and periodic boundaries (CW18 slides 75 to 83)¶
Item
Slide said
Documentation now says
Source of correction
Load input PostProcess block
Slide shows it commented out with Compute Total Energy: 1
File on disk has _PostProcess: { Toggle: off }, which disables the block by renaming it
pillbox+recWG+load.omega3p on disk. Both forms disable post-processing; the docs mention neither and show the file as is.
PBC input HFormulation: 0
Slide includes it in BoundaryCondition
Omitted from docs
Not present in dlwg-pbc4-m0.omega3p on disk, and not documented anywhere else
Pillbox multipacting (CW18 cw18-Track3P-Tutorial.pdf, example Pillbox)¶
Item
Slide said
Documentation now says
Source of correction
MinimumEC in scan input
Slide 24: MinimumEC: 1
MinimumEC: 0.01
Pillbox.track3p on disk
TotalTime for scan
Not set, default 20
Default 20 noted explicitly
InputParameters in stored results
Trajectory run TotalTime
Slide 46: TotalTime: 5
Reproduced
Pillbox2.3MV.track3p on disk has TotalTime absent; the slide value is shown with the file's EmissionOutput: 1. Treat as the slide's intent.
Omega3P mode 2 frequency
Slide 20: 1.7499342e+09
Confirmed correct: mode 1 at 1.31381 GHz (Q0 28,877), mode 2 at 1.74993 GHz (Q0 27,463)
Stored omega3p_results/omega3p.out. An earlier draft of this page wrongly called the slide value suspicious by comparing against the quarter model's 2.329 GHz. The full model has no symmetry planes, so the first dipole mode appears as mode 2; the quarter model with two magnetic planes excludes it.
Both the 2016 stored result and a 2026 S3DF rerun are shown
Rerun July 2026 on S3DF with ACE3P commit 92b97112, same input: 522, 392, 528
Impact energy range
Stored 2016 results: 11 to 84 eV
Both shown
2026 rerun: 24 to 42 eV
Maximum enhancement counter
Stored 2016 results: 1.40
Both shown
2026 rerun: 0.98. The 2016 build predicts a soft multipacting barrier for copper in this range; the 2026 build does not. The documentation presents this as an open discrepancy to be resolved against measurement, not as a settled value.
enhancementCounter columns
7 columns
2026 build appends three columns, FinalImpactLocationX/Y/Z
Header line of the 2026 output
ParaView version in slide 39
ParaView-5.2.0 alias
Omitted
Obsolete
Slide 52 trajectory IDs
"select ... output file 2300 and 7011"
16100 and 15400
Pillbox.acdtool on disk and the files present in the example directory
Typo is present in the files on disk too. A misspelled block name is silently ignored by the parser, which means the stored Muon runs had no primary emitter material declared. The docs show the corrected spelling and this note. Users rerunning the example should fix the file.
Muon field map file name
Slide 98: File: Bfield
File: BField
File on disk and the directory name BField/
Muon Emitter type
Not given, so default type 2
Default noted
InputParameters
Tesla secondary SEY data
Slide 123 shows the niobium table in the input
Reproduced; the commented-out copper table in the file is omitted
Tesla-SEmission.track3p on disk
Tesla run script account
Slide: not shown; file: #SBATCH -A m669 with m349 commented
Not reproduced; docs point to Getting Started for account settings
Allocation names are site- and time-specific
Window emitter Type: 5 comment
Slide and file comment: "5: Window MP emission mode"
Named SolidElectronicSurface
EmitterManager.C in the ACE3P source
Emitter type list
Slide 30 lists types 2, 5, 7 only
Full list of ten types from source given in the module page, with the three tutorial-relevant ones described
The slides predate OpenMP support in Track3P. The source now has OpenMP pragmas in the particle loop, field interpolation, and material manager, and the S3DF build enables -fopenmp. The docs recommend one rank per socket with threads filling the cores. The 2026 rerun used 1 rank and 16 threads.
Results directory for the rerun
The S3DF workflow run stored results in track3p_results/ inside a Maestro workspace at maestro/ace3p-multi-solver_20260728-133254/track3p-solve/ in the s3df-workflow repository checkout on S3DF
Source deck: T3P-Tutorial.pptx (CW23, March 2023). Stored results were produced with the March 2023 ACE3P build, so unlike Track3P there is no build-age gap between slides and results. The discrepancies are between the slides and the files, and between the slides' acdtool listings and the meshes actually stored.
The acdtool statistics shown on the slides were captured from meshes that differ from the .ncdf files now in the example directories. The documentation quotes the count from t3p.log of the stored run.
Example
Slide acdtool listing
Stored mesh and t3p.log
cavity-quarter
8,537
7,552
cavity-half
17,703
15,516
BPM
68,326
68,720
taper
9,795
8,536
The stored acdtool.log in each directory agrees with t3p.log, so the slides were made from an earlier mesh. Loss and kick factors in the docs are from the stored wakefield.out and therefore correspond to the stored meshes.
pillboxwg-open.t3p on disk. Noted in Tutorial 1 since it affects comparability of the 0.386 V/pC loss factor.
cavity-half slide 24 ModelInfo.File
./pillboxwg.ncdf
./pillboxwg2.ncdf
File on disk. The slide copied the quarter-model file name.
cavity-half CheckPoint block
Not shown on slide
Shown, Action: none, Ntimesteps: 500
File on disk
BPM LinearSolver
Slide 41: Solver: MUMPS // CG for large problems
File has Slover: CG, a misspelled key
File on disk. The parser ignores the unknown key; NML_ITLLinearSolver.C then selects MUMPS when compiled in. The stored BPM run used MUMPS, not CG. Docs say so.
BPM batch script
Slide 42: srun -n 128 -c 2
Reproduced
Matches disk
SIBC CheckPoint.Action
Slide: not shown
restart
File on disk
SIBC LinearSolver
Slide 65: Solver: CG
Reproduced
Matches disk
SymmetricFactor vs SymmetryFactor
Both appear on slides without comment
Documented as two distinct keys: SymmetryFactor in LoadingInfo (beam), SymmetricFactor in Loading.Port (port excitation)
BeamLoading.C and WaveguidePortBC.C in source. Application.C also accepts SymmetryFactor placed in the wrong block "in case someone puts it into the wrong place".
Alternate key spellings
Slides use Number of sigmas, Nsigmas, StartContour, Start contour, CurvedSurfaces, Curved Surfaces interchangeably
Documented as accepted alternates
fillAutomaticMovingWindow.C checks both Nsigmas and Number of sigmas; the contour and curved-surface spellings both appear in source reads
Whether the BPM ModeVoltage monitor's ESolver.Frequency: 1.e9 matters for a TEM mode with zero cutoff, or is a placeholder.
The physical meaning of negative inputPower values: documented as the Poynting flux referenced to the outward normal, inferred from the sign pattern, not confirmed in MON_SurfacePoynting.
Slide 5's dipole benchmark numbers (11.024 and 11.037 GHz); no example directory corresponds to it.
Both the slide and all three elastic inputs on disk spell it AbsoluteTolerante
Shown as Tolerance only, with a note
The misspelled key is silently ignored. Only Tolerance is read in the solver source; AbsoluteTolerance does not appear in tem3p/src or solver/src either, so neither spelling has any effect.
NeumanValue in SRFCell.tem3p
File on disk has NeumanValue: 0. for sidesets 3 and 4
Shown as NeumannValue
Source reads NeumannValue. Since the value is zero and zero is the default traction, the typo has no effect on the stored result.
RunId: 3 in ThermoElasticProblem
Present in slide and file
Documented as not read by the code
grep RunId tem3p/src finds nothing. The block's presence is what matters.
Slide 20 names the two mode files, 2.8533884 and 2.8534358 GHz, without stating the shift
+47.4 kHz, computed from omega3p.out in both result directories
2,853,435,826.2 − 2,853,388,398.9 Hz
RF gun power balance
Not discussed
215.6 W in through RF wall, 213.1 W out through cooling; 1.2 percent imbalance noted as discretization leakage
ResultFile
SRF cell frequency shift
Slide 52 names mode files 1.3009577 and 1.3009506 GHz
−7.17 kHz and a coefficient of −5.85 Hz/(MV/m)² at 35 MV/m
omega3p.out in both directories. The mode file names on the slide are rounded; the docs use the full values from omega3p.out.
SRF cell Omega3P Q0
Not shown
Reported as infinite, since the wall is Electric
omega3p.out prints QualityFactor : inf
Coupler shell sideset power
ResultFile shows P (SideSet 6) = 0 and P (SideSet 7) = 0 for the heated shell surfaces
Noted with an explanation that shell heat does not appear in the boundary flux tally
ResultFile; the mechanism is inferred, not traced in source
Tesla eigenmode frequencies in tem3p.log
Log prints Frequency: 18833843948 for the 62.8 Hz mode
Flagged as wrong: the log applies the electromagnetic conversion. ResultFile and the file names are correct.
ElasticProblem.C line 1392 multiplies FrequencyShift by Support::C "to be consistent with the EM solvers", and the same scaling leaks into the printed frequency. \(\sqrt{155810.34}/2\pi = 62.823\) Hz matches ResultFile.
Which elastic displacement components a plain Dirichlet boundary fixes. The source reads a DirichletType key that no example uses; the docs assume all three components, which is what the examples' use of Mixed for partial constraints implies.
The sign convention of the RF gun frequency shift (+47 kHz). The docs say it reflects the balance of thermal expansion, Lorentz pressure, and the constraints, but do not decompose it. Rerunning with LFDetuning removed would separate the two contributions.
The statement that shell heat appears in the symmetry-plane power tally.
Slide 29 shows a cleaned, parameterized journal with reset and #{} variables
Reproduced as on the slide, since it is the intended teaching form
The file on disk is the raw transcript: it begins with cd "/Users/lge/cw23/examples/cubit/pillbox (a user-specific path with an unclosed quote), has no reset, no variables, and unite 1 2 rather than unite volume 1 2. The docs say the slide version is what you should write.
Mesh journal sizing
Slide 33 template has volume 1 sizing function type skeleton with no arguments and placeholder X surface IDs
min_size 3 max_size 12 with real surface IDs 2, 4, 3, 1
Shown as min_size 3 max_size 12 max_gradient 1.2 scale 5 on the Cubit page
The slide values appear only as a commented-out line in the file on disk; the active line is min_size 3 max_size 12. The docs use the active values with a typical gradient.
Pillbox mode frequency
Slide 11: "TM010: f ~ 1.2GHz, λ ~ 250mm"
"near 1.2 GHz"
Slide only; this pillbox has no stored Omega3P run in examples/cubit. The rounded-top pillbox of the same radius in the Omega3P tutorials gives 1.3138 GHz, so 1.2 GHz is an approximation.
Element count
Slide 39 command line: "Generated 5549 tets for Volume 1"
5,863
acdtool.log on disk for the stored pillbox.gen. The slide screenshot is from a different sizing.
acdtool quality thresholds
Slide 48: "If aspect ratio > 20, shape measure <0.01, it might take longer"
Reproduced on the mesh page, attributed to the slides
Not found as thresholds in source. The GREAT and GOOD labels are printed by mesh_stats.C; the numeric cutoffs behind them were not traced.
acdtool mesh subcommands
Not listed on slides
Full list of 19 subcommands given on the mesh page
tools/src/mesh.C string comparisons and the mesh_*.C file names. Note shuntimpedence is spelled that way in the source.
ParaView version in screenshots
Slides show ParaView 5.11.0 and Cubit 16.04
Versions not quoted
Cosmetic
Webcut plane naming
Slide 23 says "Choose YZ Plane" in the GUI and "webcut vol 1 with xplane" in the command
Both reproduced
Cubit names the plane by its normal in the command (xplane is normal to x) and by the two in-plane axes in the GUI (YZ). Same plane, two conventions.
Source: cw18-Pic3P-Tutorial.ppt (legacy binary format, text and images extracted directly from the OLE stream since no PDF exists), pic3p-commands.pdf from the CW23 command references, and the LCLSGun example. Stored results are from an October 2018 build.
Item
Slide or file said
Documentation now says
Source of correction
Executable
README: "Run t3p"; slides: t3p startupfile
Stated explicitly that there is no pic3p binary and that t3p enters PIC mode on a Loading block containing Particles
Application.C line 709
README input file name
"LCLSgun.t3p" in the run step
LCLSGun.pic3p
File on disk
Batch script
Personal copy: run-pic3p.sl with srun -n 24 on Edison
Group copy's run-pic3p.batch with srun -n 32 -c 8 on Perlmutter
Group copy is current
Ekin column of particles.stat
Not documented
MeV
ParticlesIO.C line 977: (gamma-1)*e_mass_MeV(). Cross-checked: γ = 1.00944 gives 4.8 keV, matching the stored value 0.00482.
Emittance units
Not documented
m·rad, RMS
Inferred from magnitude (2.5e-5 m·rad = 25 mm·mrad is plausible for 1 nC with 1000 macroparticles and no solenoid); the exact normalization was not traced in source
Final-row statistics
Slide shows the stat file without comment
Noted that the particle count falls from 996 to 413 after 300 ps as particles exit the absorbing pipe, so end-of-run moments describe a partial bunch
Source: Gun3P-Tutorial.pdf and gun3p-commands.pdf (both CW23, dated 9/29/2026 in the reference footer), and the LSBK example. These exist only in the group copy at /sdf/group/rfar/ace3p/cw23/; the personal copy used for the other modules has an empty examples/gun3p/.
Item
Slide or file said
Documentation now says
Source of correction
Iteration count and convergence
Slide 15 shows iterations 3 and 4 only
Full history from the stored output: current 562.6 A at iteration 0 falling to 128.4 A by iteration 8 and steady thereafter; E relative change 2.4e-3 to 1.6e-5 over 31 iterations
ace3p.o6436083 (70,979 lines). The run ended on MaxIterations: 32, not on tolerance.
Tolerance
Input: ElectricRelativeTolerance: 1.00e-12
Documented as unreachable; 1e-5 reached after 32 iterations
Stored output
Emitted current
Benchmark table: 129.3 A on a 1.3M-element mesh
128.4 A on the 459k-element tutorial mesh, 0.7 percent lower
Stored output vs. SLAC-PUB-13097 table on slide 15
Max allowed total current units
Not stated in the reference
μA
EMT_ChildLangmuir.C line 28 comment "in micro-amperes"
The CW23 Track3P deck (Track3P-Tutorial.pdf, 144 pages) extends the CW18 version (134 pages) used for the original Track3P pages. A page-title diff found the additions, which are now in the Track3P pages:
Addition
Where in docs
LoadParticles emitter type 10 with ParticlesFile and scale/offset keys (also in the 2025 updates deck)
Track3P module page, Emitter table
SymmetryPlane material with Domain.SymmetryFactor and Domain.SymmetryPlane
Material and Domain tables
ElectroStaticFieldMap in Domain, loading a Gun3P Cartesian field
Domain table and Tutorial 6
TW7Cell traveling-wave dark current example replacing the Tesla example
Tutorial 5
Coax-StaticField example chaining S3P, Gun3P, Track3P
Tutorial 6
Not changed: the pillbox, window, muon, and Tesla tutorials remain as written from the CW18 deck, since their example directories are unchanged except that Tesla is absent from the group copy.
The CW23 Omega3P deck is 76 pages against the CW18 version's 84; practices 3b and 4 were condensed into two slides, "Important TIPs" and "Non-linear Eigensolver Parameters". The TIPs slide adds guidance not in the CW18 deck: a multi-port problem is quadratic (and solvable without CORK) when every port has one mode and all ports share the same cutoff; otherwise use the 1D absorbing boundary as an approximation, PML as a better approximation, or CORK for accuracy. The CORK example gains an OneRKSShift: 1 key not present in the CW18 deck or the example files. These points are now in the Omega3P module page (tip box in the input section) and in the Omega3P command syntax page, where OneRKSShift was confirmed to be read by solver/src/CORK_RationalNewton.C.
Found during this pass, in /sdf/group/rfar/ace3p/cw23/:
commands/*.pdf: per-module command references dated 9/29/2026, 13 to 32 pages each. Converted on 2026-10-19 into the eight pages under Reference > Command syntax. Discrepancies found are in the section below.
news/ace3p-updates-032525.pdf: 2025 release notes with a Perlmutter resource-allocation table for Omega3P and S3P and the acdtool resource tool.
presentations/ACE3P-Introduction.pptx (126 MB) and A3PI-Tutorial.pptx.
mmode/: mechanical-mode animation scripts for ParaView.
examples/a3pi/: the ACE3P-IMPACT workflow with its own 22-page user guide.
The nine command reference PDFs in commands/ (Omega3P, S3P, T3P, Pic3P, Track3P, TEM3P, Gun3P, acdtool, and the A3PI user guide) were converted into the pages under Reference > Command syntax. Every keyword the references describe was searched for in the ACE3P source checkout at /sdf/group/rfar/lge/sdf/ace3p/. Findings:
Source has 14 more (boundary, merge, partition, ...)
Listed by name only, as undocumented
acdtool resource table
2025 release notes give a six-row Perlmutter table for Omega3P
Not checked against the tool's code
Reproduced from the notes, labeled as such
Not converted from this set: the A3PI user guide (22 pages), which belongs with the Interfaces page and the examples/a3pi/ workflow rather than the Reference section.
Formula and layout figures were taken from the PDFs rather than retyped: the PML conductivity profile, the PML face/edge/corner and waveguide layouts, and the direct wake-integration contour. The Lamé relation and the niobium conductivity figure from the TEM3P reference were replaced by inline formulas or omitted.
The extractor was extended from one call pattern to six (Get, find with a default assigned after, find followed by kvcError, indexed find, findSwitch, findContainer) plus the string-compare parser of the rf post-processor, and was run against ACE3P master at the first release tag v2026.10 instead of the working branch Track3p-GPU. Effects on the published tables:
Limits of the method, so readers know what a blank cell means:
Block membership for bare keys is inferred from the variable the key is read from. When the variable is bound by findContainer("Domain", domainkvc) in the same file the block is exact; otherwise a name heuristic is used, and keys from generic variables land in the final top level or unspecified block section.
Defaults are captured only when they are literals in the Get call or in the statement following a failed find. Defaults set elsewhere show as blank.
Test, regression, and example directories inside each module are skipped, as is multipacting/poisson2d.
The tables describe v2026.10. The command syntax pages and module guides were written from the CW23 materials dated 2026-09-29 and from the Track3p-GPU working branch; a keyword present in one and not the other is a version difference, not an error, until checked.
These were introduced during conversion and fixed on 2026-10-19 after a verification pass against the example directories.
Omega3P Tutorial 2, coax coupler. The first draft contained a mode summary with Qext 4100 and Q0 28,500 that was written as an illustration, not taken from a file. Replaced with the stored result, Qext 1,024,236. The difference is more than two orders of magnitude and would have misled anyone using the example to check their installation.
Omega3P Tutorial 1, convergence study. Stated the mesh journals went from fine to coarse as mesh0 to mesh3; the opposite is true.
Omega3P Tutorial 1, Q0. Quoted as "about 28,900"; the stored value is 28,885.
Omega3P post-processing page, R/Q convention. The note stating acdtool uses the circuit convention V²/(ωU) per cavity was inferred from the output header comment RoverQ=V^2/(omega*U) and not independently confirmed in source. It remains in the docs but is flagged here as unverified against code.
Module index. S3P, Track3P, and T3P were listed as outline stubs after their guides were written. Fixed when each guide landed.
T3P tutorials, element counts. The first draft quoted the slide acdtool counts (8,537; 17,703; 68,326; 9,795). Replaced with the stored-mesh counts from t3p.log on 2026-10-19 before publication.
T3P tutorials, BPM solver. The first draft said the misspelled Slover key made T3P use "the default" without naming it. Traced in NML_ITLLinearSolver.C: the default is the best direct solver compiled in, MUMPS on these builds.
T3P tutorials, SIBC power. The first draft said "roughly 40%" transmitted from eyeballing the plot. Replaced with 46% from integrating the monitor files.
TEM3P module page, LF pressure. First draft gave the pressure formula without its sign convention. Checked LFDetuning.C: pressure is \(\tfrac{1}{4}(\mu_0 H^2 - \varepsilon_0 E^2)\) and the load vector is scaled by −1 times the outward normal, so a positive (magnetic-dominated) pressure pushes the wall outward from the vacuum, which is inward on the metal. Wording adjusted.
Getting Started, example paths. The first draft pointed at the personal copy /sdf/data/rfar/nfs/acd/u01/userspace/cho/cw23/, which lacks Gun3P and the CW23 Track3P additions. Changed to the group copy /sdf/group/rfar/ace3p/cw23/ on 2026-10-19 when the difference was discovered.
This page, Track3P section. The first draft flagged the slide's Omega3P mode 2 frequency of 1.75 GHz as suspicious. It is correct; the stored output confirms it, and the physics (a dipole mode visible only in the full model) explains it. The entry now says so.
Items the documentation states that have not been checked against source code or a fresh run. Contributions welcome.
acdtool R/Q convention (see above).
Omega3P Practice 3b first-run table (in1.omega3p); no stored output exists.
Default values quoted for Port.NumberOfModes (one mode when the block is absent), from the slide comment only.
FrequencyScan.Interval default of one tenth of the range: from SParameter.C line 1674, but the warning path was not traced.
The Track3P Voltage keyword format a ra rb with V = a / log(rb/ra): from the InputParameters comment only.
Whether the Muon example results in the directory (RF-*.png, RL-*.png) were produced with the misspelled Mat1erial block and therefore without a declared primary surface, or with a corrected file.