Magnetics

The magnetics module provides magnetic field computation capabilities including Biot-Savart coil fields, dipole fields, and field interpolation.

Overview

The magnetic field system in FusionSC supports several types of field sources:

  • Coil filament fields based on the Biot-Savart law (with finite-wire regularization)

  • Dipole fields from magnetized spheres (constant field within sphere)

  • Interpolation of 3D fields corresponding to 2D equilibria (e.g. EFIT files)

  • Cross-interpolation between different grids

  • Geometric operations (rotation, shift) applied to fields

Fields are resolved through a FieldResolver service that expands high-level field specifications into low-level computational descriptions.

API Reference

namespace fsc

The FSC library.

Simple interface module for ZLib

struct FieldCache

Public Functions

virtual Maybe<Promise<LocalDataRef<Float64Tensor>>> check(kj::ArrayPtr<const byte> pointsHash, kj::ArrayPtr<const byte> fieldKey) = 0
virtual void put(kj::ArrayPtr<const byte> pointsHash, kj::ArrayPtr<const byte> fieldKey, Promise<LocalDataRef<Float64Tensor>>) = 0

Public Static Functions

static kj::Array<const byte> hashPoints(Eigen::TensorMap<Eigen::Tensor<double, 2>>)
class FieldResolverBase : public FieldResolver::Server

Public Functions

Promise<void> resolveField(ResolveFieldContext context) override
Promise<void> resolveFilament(ResolveFilamentContext context) override
virtual Promise<void> processField(MagneticField::Reader input, MagneticField::Builder output, ResolveFieldContext context)
virtual Promise<void> processFilament(Filament::Reader input, Filament::Builder output, ResolveFieldContext context)