Program Listing for File MagneticFieldGrid.cpp
↰ Return to documentation for file (src/magneticField/MagneticFieldGrid.cpp
)
#include "crpropa/magneticField/MagneticFieldGrid.h"
namespace crpropa {
MagneticFieldGrid::MagneticFieldGrid(ref_ptr<Grid3f> grid) {
setGrid(grid);
}
void MagneticFieldGrid::setGrid(ref_ptr<Grid3f> grid) {
this->grid = grid;
}
ref_ptr<Grid3f> MagneticFieldGrid::getGrid() {
return grid;
}
Vector3d MagneticFieldGrid::getField(const Vector3d &pos) const {
return grid->interpolate(pos);
}
ModulatedMagneticFieldGrid::ModulatedMagneticFieldGrid(ref_ptr<Grid3f> grid,
ref_ptr<Grid1f> modGrid) {
grid->setReflective(false);
modGrid->setReflective(true);
setGrid(grid);
setModulationGrid(modGrid);
}
void ModulatedMagneticFieldGrid::setGrid(ref_ptr<Grid3f> g) {
grid = g;
}
ref_ptr<Grid3f> ModulatedMagneticFieldGrid::getGrid() {
return grid;
}
void ModulatedMagneticFieldGrid::setModulationGrid(ref_ptr<Grid1f> g) {
modGrid = g;
}
ref_ptr<Grid1f> ModulatedMagneticFieldGrid::getModulationGrid() {
return modGrid;
}
void ModulatedMagneticFieldGrid::setReflective(bool gridReflective,
bool modGridReflective) {
grid->setReflective(gridReflective);
modGrid->setReflective(modGridReflective);
}
Vector3d ModulatedMagneticFieldGrid::getField(const Vector3d &pos) const {
float m = modGrid->interpolate(pos);
Vector3d b = grid->interpolate(pos);
return b * m;
}
} // namespace crpropa