sirepo radia - radiasoft/sirepo GitHub Wiki
Radia C++ code is here - we are concerned with the python implementation
move high-level descriptions to Radia page when complete Simulation types
- freehand
- Dipole
- basic
- c-bend
- h-bend
- Undulator
- basic
- hybrid
Freehand
Dipole
Undulator
GUI
Freehand vs. parameterized
freehand has an "elevations" view - a workspace to drop objects into. xy, yx, zx. Toolbar with different shapes. The shapes are defined in the schema under constants.toolbarItems
vtk.js does not implement axes - we use d3
Back end
wraps Radia
all Radia calls in radia_util.py, e.g. radia.Solve()
Radia subdivides objects and calculates fields in parallel but does not solve relaxation in parallel. Uses MPI
solver code in geometryReport.py.jinja
Many object types - uses dispatch methods to build or update them
freehand objects are built on the client. parameterized magnets get assembled on the server, based on the parameters.