hydrac.model.scattering.dwba

Distorted Wave Born Approximation model (hydrac.model.scattering.dwba)

class hydrac.model.scattering.dwba.DWBA(obj, f, a, theta)[source]

Bases: object

DWBA class.

This class is meant to describe the scattering properties of fluid-like elongated objects with circular cross secton whatever their shape and physical properties.

Parameters:
obj : object
Scattering object from :class:

hydrac.model.scattering.scattering.Scattering

f : float (numpy.array)

Instrument frequencies

a : float (numpy.array)

Size vector

theta : float

Object orientation in the indicdent field

dwba_ellispoid(self, param, ka)[source]

This method computes the DWBA model for ellisposidal fluid-like particles. This model is valid regardless of the particle body properties yet hasn’t been implemented here for simplicity.

Note that here, a is the semi-minor axis of the animal.

Parameters:
param : object

Modified dictionnary from hydrac.util.parameters containing the particles parameters.

ka : float (numpy.ndarray)

vector of products of wave number and particle size; where the model is computed.

Returns:
f_inf : float (numpy.array)

Model form function \(f_{\infty}\)

c_inf : float (numpy.array)

Model total scattering cross-secton \(\chi_{\infty}\)

dwba_bentcylinder(self, param, ka)[source]

This method computes the DWBA model for elongated fluid-like particles. This model is valid regardless of the particle body properties yet if it is possible to make the body properties vary, this requires additionnal method to input the body properties along the lengthwise axis of the animal. Similarly, the lengthwise radius can vary, yet this requires additional method to input these values. Maybe think of inputing this information using a txt file in the future.

Note that here, a is the radius of the circular cross section, that can vary along the length of the animal.

This method performs an integration of the scattering form function over the length of the animal. This requires a lot of computing time and the integration scheme (DWBAintegrand()) needs to be fastend in the future.

Parameters:
param : object

Modified dictionnary from hydrac.util.parameters containing the particles parameters.

ka : float (numpy.ndarray)

vector of products of wave number and particle size; where the model is computed.

Returns:
f_inf : float (numpy.array)

Model form function \(f_{\infty}\)

c_inf : float (numpy.array)

Model total scattering cross-secton \(\chi_{\infty}\)

findfbs(self, avec, rposvec, gvec, hvec, k1)[source]

Calculates the form function over the length of the animal for one particular ka value and one particular angle of orientation since the form function may be averaged over angle distribution.

complex_quadrature(self, func, a, b, **kwargs)[source]

Calculates the integral of a complex function, since scipy.quad doesn’t allow it.

Parameters:
func : python function

Integrand function

a, b : float (numpy.ndarray)

Boundaries for intergation

Returns:
f_int : complex128

Integrated function

buildpos(self, param)[source]

Method not used here but will be to design the animage shape, hence the radius variation along the lengthwise axis of the animal.

orient_ave(self, ang, f, pdf_type, ori_para)[source]

Performs average over the angle distribution.

Parameters:
ang : float

Angles of orientation for which the model has been computed

f : float (numpy.ndarray)

Form function

pdf_type : str, {uniform, gaussian}

Type of pdf to consider, input by the user during model parameters definition in hydrac.model.particle

ori_para : float

Standard deviation and mean values

Returns:
outy : float (numpy.array)

Averaged model

Classes

DWBA(obj, f, a, theta) DWBA class.
Memoize(f)

Exceptions

ModelNonExistent