Scattering Functions#
In general, the scattering function can be anything set by the user. This module is just for convenience and ease of use.
- class elecboltz.scattering.AzimuthalScattering(params)#
Bases:
ScatteringFunctionA class for azimuthal scattering.
This class represents a scattering function that depends on the azimuthal angle of the wavevector in the x-y plane, defined by parameters gamma_k, power, trig, and sym. The scattering function is defined as gamma_k * abs(trig(sym * phi))^power, where phi is the angle of the projection of the wavevector k in the x-y plane with the x axis, and trig is a trigonometric function (cos, sin, tan, or cot) depending on the trig parameter.
- class elecboltz.scattering.IsotropicScattering(params)#
Bases:
ScatteringFunctionA class for isotropic scattering.
This class represents a scattering function that is constant everywhere, defined by the parameter gamma_0.
- class elecboltz.scattering.ScatteringFunction(params)#
Bases:
objectA class to represent a scattering function.
Abstract base class for scattering functions that can be evaluated at a given wavevector (kx, ky, kz). Subclasses should implement the __call__ method.
- class elecboltz.scattering.ScatteringSum(scattering_functions)#
Bases:
ScatteringFunctionA class for summing multiple scattering functions.
This class represents a scattering function that is the sum of multiple scattering functions, each defined by its own parameters. It allows for combining different scattering models into a single function.
- elecboltz.scattering.build_scattering_function(scattering_params: dict[str, float | Sequence[float]], scattering_models: Sequence[str] = ['isotropic'])#
Build a scattering function from the given parameters.
Supported scattering models include:
'isotropic': Constantgamma_0everywhere'cos':gamma_k * abs(cos(sym * phi))^powerwhere phiis the angle of the projection of the wavevector k in the x-yplane with the x axis. The rest are parameters of the model.'sin','tan', and'cot': Same as'cos'butusing different trigonometric functions.'cos[n]phi': Where [n] is some integer, e.g.'cos2phi'.Alias for'cos'with sym being set to the integer in [n].'sin[n]phi','tan[n]phi', and'cot[n]phi': Same as'cos[n]phi'but using different trigonometric functions.
- Parameters:
scattering_params (dict[str, float or Sequence[float]]) – Dictionary mapping the names of the parameters to their value in each scattering model. If the value is a single number, it is assumed to be the parameter for all models.
scattering_models (Sequence['str'], optional) – The type of scattering model to use.
- Returns:
A class that implements the scattering function and is callable on (kx, ky, kz).
- Return type:
Callable