fibomat.mill.ionbeam module#
Provide the abstract class IonBeam and a implementation GaussBeam.
- class fibomat.mill.ionbeam.IonBeam(beam_cutoff: int)[source]#
Bases:
ABCBase class to model an ion beam.
- __init__(beam_cutoff: int)[source]#
- Args:
beam_cutoff (int): beam_cutoff * std is used as cut-off length for flux calculations.
- Raises:
ValueError: Raised if beam_cutoff < 1.
- abstract property std: Quantity#
Standard deviation of ion beam distribution.
- Access:
get
- Returns:
QuantityType
- abstract flux_at(position: Vector | Iterable[float], beam_maxima: Vector | Iterable[float], position_unit: Unit) Quantity[source]#
- abstract flux_at(position: Vector | Iterable[float], beam_maxima: List[Vector | Iterable[float]], position_unit: Unit) Tuple[ndarray, Quantity]
Calculate the ion flux at position if the ion beam maximus is at beam_maximum.
- Args:
position (VectorLike): position at which the flux is calculated. beam_maxima (VectorArrayLike, VectorLike): position of beam maximum/maxima position_unit (UnitType): length unit of positions and beam_maximum
- Returns:
- Union[QuantityType, Tuple[np.ndarray, QuantityType]]:
QuantityType is returned if position is VectorLike and Tuple[np.ndarray, QuantityType] if positions is VectorArrayLike.
- nominal_flux_per_spot() Quantity[source]#
Calculate the ion flux of a single, isolated spot.
- Returns:
QuantityType
- class fibomat.mill.ionbeam.GaussBeam(fwhm: Quantity, current: Quantity, beam_cutoff: int = 10)[source]#
Bases:
IonBeamGauss function model of an ion beam.
- __init__(fwhm: Quantity, current: Quantity, beam_cutoff: int = 10)[source]#
- Args:
fwhm (QuantityType): full width half maximum of the beam profile. current (QuantityType): total beam current beam_cutoff (int, optional): beam cut-off, default to 10.
- nominal_flux_per_spot() Quantity#
Calculate the ion flux of a single, isolated spot.
- Returns:
QuantityType
- nominal_flux_per_spot_in_rect(pitch_x: Quantity, pitch_y: Quantity) Quantity#
Calculate the ion flux of a spot on rectangular grid with pitches pitch_x and pitch_y.
- Args:
pitch_x (QuantityType): pitch in x direction pitch_y (QuantityType): pitch in y direction
- Returns:
QuantityType
- nominal_flux_per_spot_on_line(pitch: Quantity) Quantity#
Calculate the ion flux of a spot on line with pitch pitch.
- Args:
pitch (QuantityType): pitch on line
- Returns:
QuantityType
- property std: Quantity#
Standard deviation of ion beam distribution.
- Access:
get
- Returns:
QuantityType
- flux_at(position: Vector | Iterable[float], beam_maxima: List[Vector | Iterable[float]] | Vector | Iterable[float], position_unit: Unit) Tuple[ndarray, Unit] | Quantity[source]#
Calculate the ion flux at position if the ion beam maximus is at beam_maximum.
- Args:
position (VectorLike): position at which the flux is calculated. beam_maxima (VectorArrayLike, VectorLike): position of beam maximum/maxima position_unit (UnitType): length unit of positions and beam_maximum
- Returns:
- Union[QuantityType, Tuple[np.ndarray, QuantityType]]:
QuantityType is returned if position is VectorLike and Tuple[np.ndarray, QuantityType] if positions is VectorArrayLike.