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: ScatteringFunction

A 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: ScatteringFunction

A 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: object

A 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: ScatteringFunction

A 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': Constant gamma_0 everywhere

  • 'cos': gamma_k * abs(cos(sym * phi))^power where phi
    is the angle of the projection of the wavevector k in the x-y
    plane with the x axis. The rest are parameters of the model.
  • 'sin', 'tan', and 'cot': Same as 'cos' but
    using 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