Source code for festim.sources.source_implantation_flux
from festim import Source, x
import sympy as sp
import numpy as np
[docs]
class ImplantationFlux(Source):
"""
Implantation flux represented by a volumetric mobile particle source
with a 1D gaussian distribution in the x direction.
Args:
flux (float, sympy.Expr): The flux of the implatation source (m-2 s-1)
imp_depth (float, sympy.Expr): The implantation depth (m)
width (float, sympy.Expr): The standard deviation of the ion beam (m)
volume (int): the volume in which the source is applied
Attributes:
flux (float, sympy.Expr): The flux of the implatation source (m-2 s-1)
imp_depth (float, sympy.Expr): The implantation depth (m)
width (float, sympy.Expr): The standard deviation of the ion beam (m)
Example::
my_source = ImplantationFlux(
flux=2*festim.x * (festim.t < 10),
imp_depth=5e-9,
width=5e-9,
volume=1,
)
"""
def __init__(self, flux, imp_depth, width, volume):
self.flux = flux
self.imp_depth = imp_depth
self.width = width
distribution = (
1
/ (self.width * (2 * np.pi) ** 0.5)
* sp.exp(-0.5 * ((x - self.imp_depth) / self.width) ** 2)
)
value = self.flux * distribution
super().__init__(value, volume, field="0")