Source code for atomsmltr.environment.fields.magnetic.magnetic
"""
magnetic fields
=======================
This module implements Magnetic field classes, which are mostly bare implementations of
generic fields defined in ``atomsmltr.environment.fields``.
See also
---------
atomsmltr.environment.fields.generic
atomsmltr.environment.fields.interpolated
"""
# % LOCAL IMPORTS
from ..generic import (
Field,
GradientField,
ConstantField,
QuadrupoleFieldX,
QuadrupoleFieldZ,
QuadrupoleFieldY,
QuadrupoleField,
)
from ..interpolated import InterpolatedField1D1D, InterpolatedField3D3D
# % CLASSES
# -- MAG FIELDs PARENT CLASS
# not really used currently, but will be useful if we need to
# implement features specific to mag. fields.
# > will also allow to check that the field is indeed a magnetic field
# in the configuration object
[docs]
class MagneticField(Field):
"""A generic magnetic field class. Used to set some properties common to all magnetic
fields objects, and to have a way to identify magnetic field objects."""
@property
def type(self):
return "magnetic field"
@property
def unit(self):
return "T"
# -- PERFECT FIELDS CLASSES
[docs]
class MagneticOffset(MagneticField, ConstantField):
"""A perfect magnetic field offset
See also
---------
atomsmltr.environment.fields.generic.ConstantField
"""
@property
def type(self):
return "magnetic field offset"
[docs]
class MagneticGradient(MagneticField, GradientField):
"""A perfect magnetic field gradient
See also
---------
atomsmltr.environment.fields.generic.GradientField
"""
@property
def type(self):
return "magnetic field gradient"
[docs]
class MagneticQuadrupoleX(MagneticField, QuadrupoleFieldX):
"""A perfect magnetic field quadrupole, with strong axis along X
See also
---------
atomsmltr.environment.fields.generic.QuadrupoleFieldX
"""
@property
def type(self):
return "magnetic quadrupole x"
[docs]
class MagneticQuadrupoleY(MagneticField, QuadrupoleFieldY):
"""A perfect magnetic field quadrupole, with strong axis along Y
See also
---------
atomsmltr.environment.fields.generic.QuadrupoleFieldY
"""
@property
def type(self):
return "magnetic quadrupole y"
[docs]
class MagneticQuadrupoleZ(MagneticField, QuadrupoleFieldZ):
"""A perfect magnetic field quadrupole, with strong axis along Z
See also
---------
atomsmltr.environment.fields.generic.QuadrupoleFieldZ
"""
@property
def type(self):
return "magnetic quadrupole z"
[docs]
class MagneticQuadrupole(MagneticField, QuadrupoleField):
"""A perfect magnetic field quadrupole, with strong axis along a given vector (x,y,z)
See also
---------
atomsmltr.environment.fields.generic.QuadrupoleField
"""
@property
def type(self):
return "magnetic quadrupole"
# -- INTERPOLATED
[docs]
class InterpMag1D1D(MagneticField, InterpolatedField1D1D):
"""An interpolated field 1D / 1D
See also
---------
atomsmltr.environment.fields.interpolated.InterpolatedField1D1D
"""
@property
def type(self):
return "interpolated mag. field (1D-1D)"
# -- INTERPOLATED
[docs]
class InterpMag3D3D(MagneticField, InterpolatedField3D3D):
"""An interpolated field 3D/3D
See also
---------
atomsmltr.environment.fields.interpolated.InterpolatedField3D3D
"""
@property
def type(self):
return "interpolated mag. field (3D-3D)"