Skip to content

sirepo radia

Michael Keilman edited this page Aug 11, 2022 · 8 revisions

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.

Clone this wiki locally