Field Line Tracing
The field line tracing module computes magnetic field line trajectories, Poincare plots, and connection lengths using reversible mapping techniques.
Overview
The field line tracer supports:
Computation of reversible field line mappings and usage of these mappings to accelerate all field line calculations
Calculation of Poincare plots with forward- and backward-connection-lengths (at no extra cost)
Convective-diffusive and doubly-diffusive field line tracing
Calculation of connection lengths, strike positions, and geometry tags (module numbers, finger IDs, etc.) on impact points
API Reference
-
namespace fsc
The FSC library.
Simple interface module for ZLib
-
namespace fsc
The FSC library.
Simple interface module for ZLib
-
struct RFLM
Public Functions
- inline EIGEN_DEVICE_FUNC Vec3d unmap (double phi)
Computes the real-space coordinates of the last-mapped position projected to the given phi plane.
- inline EIGEN_DEVICE_FUNC Vec3d unmap (double phi, double u, double v)
Computes the real-space coordinates of a phi-u-v coordinate in the current section.
- inline EIGEN_DEVICE_FUNC double map (const Vec3d &x, bool goingCcw)
Captures a position for mapping using the closest mapping filament.
- inline EIGEN_DEVICE_FUNC double mapInSection (uint64_t section, double phi, double z, double r)
Maps using a pre-selected section.
- inline EIGEN_DEVICE_FUNC Vec3d advance (double newPhi, cupnp::List< cu::FLTKernelEvent >::Builder eventBuffer, uint32_t eventCount, uint32_t &newEventCount, uint32_t collisionLimit)
Advances to a new phi position, remapping if neccessary. Returns new real-space position.
- inline EIGEN_DEVICE_FUNC Vec3d advance (double newPhi)
- inline EIGEN_DEVICE_FUNC double getFieldlinePosition (double phi)
- inline EIGEN_DEVICE_FUNC void setFieldlinePosition (double newValue)
-
inline EIGEN_DEVICE_FUNC RFLM(cu::ReversibleFieldlineMapping::Reader mapping)
-
inline EIGEN_DEVICE_FUNC RFLM(cu::ReversibleFieldlineMapping::Reader mapping, cu::GeometryMapping::MappingData::Reader)
- inline EIGEN_DEVICE_FUNC void save (cu::ReversibleFieldlineMapping::State::Builder)
- inline EIGEN_DEVICE_FUNC void load (cu::ReversibleFieldlineMapping::State::Reader)
-
inline void save(ReversibleFieldlineMapping::State::Builder)
-
inline void load(ReversibleFieldlineMapping::State::Reader)
-
inline void activateSection(uint64_t iSection)
-
inline cu::ReversibleFieldlineMapping::Section::Reader activeSection()
-
inline cu::GeometryMapping::SectionData::Reader activeGeoSection()
Public Members
-
cu::ReversibleFieldlineMapping::Reader mapping
-
cu::GeometryMapping::MappingData::Reader geoMapping
-
uint64_t currentSection
-
uint64_t currentSectionRaw
-
double phi
-
double lenOffset
-
uint32_t nPad
-
uint64_t nPhi
-
uint64_t nZ
-
uint64_t nR
-
double phi1
-
double phi2
Public Static Attributes
-
static constexpr double SECTION_TOL = 0.001
Private Functions
- inline EIGEN_DEVICE_FUNC void interpolate (double phi, Vec2d &rz, Mat2d &jacobian)
Private Static Functions
-
static inline double unwrap(double phiWrapped)
-
struct RFLM