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:
objectDWBA 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.parameterscontaining 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.parameterscontaining 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 |