Field

The field currently allows a few hard-coded options. It will be extended to additional field types and may allow completely custom field implementations.

struct NoField

Build a problem without magnetic fields.

struct UniformField

Create a uniform nonzero field.

Todo:

Field driver options will be separate from the magnetic field. They, plus the field type, will be specified in a FieldParams that maps region/particle/energy to field setup.

Public Members

UnitSystem units = {UnitSystem::si}

Default field units are tesla.

Real3 strength = {0, 0, 0}

Field strength.

FieldDriverOptions driver_options

Field driver options.

using celeritas::inp::RZMapField = ::celeritas::RZMapFieldInput

Build a separable R-Z magnetic field from a file.

Todo:

Move field input here

The field type is selected with a variant:

using celeritas::inp::Field = std::variant<NoField, UniformField, RZMapField>

Field type.