BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Public Member Functions | Protected Member Functions | Private Member Functions
BDSInterpolator4DLinearMag Class Reference

Linear interpolation over 4d array including magnitude interpolation. More...

#include <BDSInterpolator4DLinearMag.hh>

Inheritance diagram for BDSInterpolator4DLinearMag:
Inheritance graph
Collaboration diagram for BDSInterpolator4DLinearMag:
Collaboration graph

Public Member Functions

 BDSInterpolator4DLinearMag (BDSArray4DCoords *arrayIn)
 
- Public Member Functions inherited from BDSInterpolator4D
 BDSInterpolator4D (BDSArray4DCoords *arrayIn)
 
G4ThreeVector GetInterpolatedValue (G4double x, G4double y, G4double z, G4double t) const
 Public interface to a 4D interpolator. Returns Geant4 type as that's what will be needed. More...
 
const BDSArray4DCoordsArray () const
 
virtual BDSExtent Extent () const
 Extent of field. More...
 
- Public Member Functions inherited from BDSInterpolator
 BDSInterpolator (BDSArray4DCoords *arrayIn=nullptr)
 
virtual BDSExtent Extent () const =0
 Interface each derived class must provide. More...
 
G4double SmallestSpatialStep () const
 

Protected Member Functions

virtual BDSFieldValue GetInterpolatedValueT (G4double x, G4double y, G4double z, G4double t) const
 
virtual BDSFieldValue GetInterpolatedValueT (G4double x, G4double y, G4double z, G4double t) const =0
 

Private Member Functions

 BDSInterpolator4DLinearMag ()=delete
 Private default constructor to force use of provided one.
 

Additional Inherited Members

- Protected Attributes inherited from BDSInterpolator4D
BDSArray4DCoordsarray
 The field data. More...
 
- Protected Attributes inherited from BDSInterpolator
G4double smallestSpatialStep
 

Detailed Description

Linear interpolation over 4d array including magnitude interpolation.

Does not own array - so multiple interpolators could be used on same data.

This uses a quad-linear algorithm to interpolate a 3d array and return the value at any arbitrary point. If the point lies outside the array the default value for the templated parameter is returned (typically 0). Therefore, the field drops to 0 outside the specified region.

This is based on an extension of the trilinear algorithm described in BDSInterpolator3DLinear.hh.

Author
Laurie Nevay

Definition at line 45 of file BDSInterpolator4DLinearMag.hh.

Constructor & Destructor Documentation

◆ BDSInterpolator4DLinearMag()

BDSInterpolator4DLinearMag::BDSInterpolator4DLinearMag ( BDSArray4DCoords arrayIn)
explicit

Definition at line 26 of file BDSInterpolator4DLinearMag.cc.

◆ ~BDSInterpolator4DLinearMag()

BDSInterpolator4DLinearMag::~BDSInterpolator4DLinearMag ( )
virtual

Definition at line 30 of file BDSInterpolator4DLinearMag.cc.

Member Function Documentation

◆ GetInterpolatedValueT()

BDSFieldValue BDSInterpolator4DLinearMag::GetInterpolatedValueT ( G4double  x,
G4double  y,
G4double  z,
G4double  t 
) const
protectedvirtual

Each derived class should implement this function. Note T suffix (was templated) to distinguish it from GetInterpolatedValue which returns Geant4 types and is the main interface to should have the clean name.

Implements BDSInterpolator4D.

Definition at line 33 of file BDSInterpolator4DLinearMag.cc.

References BDSInterpolator4D::array, BDSArray4DCoords::ExtractSection2x2x2x2(), and BDS::Linear4DMag().

Here is the call graph for this function:

The documentation for this class was generated from the following files: