SHiP Field Service
Framework-agnostic C++20 library exposing SHiP magnetic field maps.
Loading...
Searching...
No Matches
FieldMap.cpp File Reference
#include "SHiP/FieldService/FieldMap.h"
#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <filesystem>
#include <limits>
#include <memory>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for FieldMap.cpp:

Namespaces

namespace  SHiP
 

Functions

std::string SHiP::resolveFieldMapPath (std::string const &path)
 Canonical path of a map file.
 
void SHiP::validate (FieldMap const &map)
 Throw std::invalid_argument unless map is well formed: non-empty name, at least two nodes and a positive extent per axis, value arrays of grid.size() finite entries, mirrored axes starting at 0, parities of +-1.
 
FieldBox SHiP::extent (FieldMap const &map)
 Region map covers in its local frame.
 
std::shared_ptr< IFieldEvaluator > SHiP::translated (std::shared_ptr< IFieldEvaluator > inner, std::array< double, 3 > const &offset)
 Evaluator for inner placed with its origin at offset (mm): the field at p is inner's field at p - offset.
 
std::shared_ptr< IFieldEvaluator > SHiP::zeroOutside (std::shared_ptr< IFieldEvaluator > inner, FieldBox const &box)
 Evaluator that returns inner's field inside box, given in inner's frame, and 0 outside it, where map evaluators would clamp.