Base Scattering#
- class osaft.solutions.base_scattering.BaseScattering(N_max=5)[source]#
Bases:
ABC
Base class for the scattering field that defines the common interface.
Note
This base class can be used for axisymmetric models only.
- Parameters:
N_max (
int
, optional) – End of the infinite series for the scattering coefficientsDefault:5
- V_r(n, r, scattered, incident)[source]#
Superposition of
V_r_sc()
andV_r_i()
depending onscattered
andincident
At least one of the two must be True.
- Parameters:
n (
int
) – moder (
float
) – radial coordinate [m]scattered (
bool
) – add scattered fieldincident (
bool
) – add incident
- Return type:
complex
- V_r_i(n, r)[source]#
Radial incident field velocity term of mode n without Legendre coefficients
Returns radial incident field velocity in [m/s]
- Parameters:
n (int) – mode
r (float | Sequence) – radial coordinate [m]
- Return type:
complex
- abstract V_r_sc(n, r)[source]#
Radial scattering field velocity term of mode n without Legendre coefficients
Returns radial scattering field velocity in [m/s]
- Parameters:
n (int) – mode
r (float | Sequence) – radial coordinate [m]
- Return type:
complex
- V_theta(n, r, scattered, incident)[source]#
Superposition of
V_theta_sc()
andV_theta_i()
depending onscattered
andincident
At least one of the two must be True.
- Parameters:
n (
int
) – moder (
float
) – radial coordinate [m]scattered (
bool
) – add scattered fieldincident (
bool
) – add incident
- Return type:
complex
- V_theta_i(n, r)[source]#
Tangential incident field velocity term of mode n without Legendre coefficients
Returns tangential incident field velocity in [m/s]
- Parameters:
n (int) – mode
r (float | Sequence) – radial coordinate [m]
- Return type:
complex
- abstract V_theta_sc(n, r)[source]#
Tangential scattering field velocity term of mode n without Legendre coefficients
Returns tangential scattering field velocity in [m/s]
- Parameters:
n (int) – mode
r (float | Sequence) – radial coordinate [m]
- Return type:
complex
- __init__(N_max=5)[source]#
Constructor method
- Parameters:
N_max (
int
, optional) –Default:5
- abstract potential_coefficient(n)[source]#
Wrapper to the fluid scattering coefficients for an inviscid fluid
This method must be implemented by every theory to have a common interface for other modules.
- Parameters:
n (
int
) – mode- Return type:
complex
- pressure(r, theta, t, scattered, incident, mode=None)[source]#
Returns the acoustic pressure [Pa].
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
scattered (bool) – add scattered field
incident (bool) – add incident
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex
- radial_acoustic_fluid_velocity(r, theta, t, scattered, incident, mode=None)[source]#
Returns the value for the radial acoustic velocity in [m/s].
This method must be implemented by every theory to have a common interface for other modules.
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
scattered (bool) – scattered field contribution
incident (bool) – incident field contribution
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex | NDArray
- radial_mode_superposition(radial_func, r, theta, t, mode=None)[source]#
Returns either a single mode (
mode=int
) or a the sum untilN_max
(mode=None
).If
mode=int
the formula is\[e^{-i\omega t}\, f_{\text{mode}}(r) \,P_{\text{mode}}(\cos\theta)\]If
mode=None
the formula is\[e^{-i\omega t} \sum_{n=0}^{\text{N}_{\text{max}}} \,f_n(r) \,P_n(\cos\theta)\]where \(f_\text{n}(r)\) is the
radial_func(n, r)
passed to the method.- Parameters:
radial_func (Callable[[int, float], complex]) – radial function dependent on
r
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex | NDArray
- radial_particle_displacement(r, theta, t, mode=None)[source]#
Particle displacement in radial direction
Returns the value of the particle displacement in radial direction in [m]
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (None | int, optional) – specific mode number of interest; if None that all modes until
N_max
Default:None
- Return type:
complex | NDArray
- abstract radial_particle_velocity(r, theta, t, mode=None)[source]#
Returns the value for the radial particle velocity in [m/s].
This method must be implemented by every theory to have a common interface for other modules.
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex
- tangential_acoustic_fluid_velocity(r, theta, t, scattered, incident, mode=None)[source]#
Returns the value for the tangential acoustic velocity in [m/s].
This method must be implemented by every theory to have a common interface for other modules.
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
scattered (bool) – scattered field contribution
incident (bool) – incident field contribution
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex | NDArray
- tangential_mode_superposition(tangential_func, r, theta, t, mode)[source]#
Returns either a single mode (
mode=int
) or a the sum untilN_max
(mode=None
).If
mode=int
the formula is\[e^{-i\omega t}\, f_\text{mode}(r) \,P^1_{\text{mode}}(\cos\theta)\]If
mode=None
the formula is\[e^{-i\omega t}\sum_{n=0}^{\text{N}_{\text{max}}} \,f_n(r) \,P^1_n(\cos\theta)\]where \(f_n(r)\) is the
tangential_func(n, r)
passed to the method.- Parameters:
tangential_func (Callable[[int, float], complex]) – tangential function dependent on
r
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (int) – specific mode number of interest; if None then all modes until
N_max
- Return type:
complex | NDArray
- tangential_particle_displacement(r, theta, t, mode=None)[source]#
Particle displacement in tangential direction
Returns the value of the particle displacement in tangential direction in [m]
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (None | int, optional) – specific mode number of interest; if None that all modes until
N_max
Default:None
- Return type:
complex | NDArray
- abstract tangential_particle_velocity(r, theta, t, mode=None)[source]#
Returns the value for the tangential particle velocity in [m/s].
This method must be implemented by every theory to have a common interface for other modules.
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex
- velocity_potential(r, theta, t, scattered, incident, mode=None)[source]#
Returns the velocity potential of the fluid in [m^2/s].
- Parameters:
r (float | Sequence) – radial coordinate [m]
theta (float | Sequence) – tangential coordinate [rad]
t (float | Sequence) – time [s]
scattered (bool) – add scattered field
incident (bool) – add incident
mode (None | int, optional) – specific mode number of interest; if None then all modes until
N_max
Default:None
- Return type:
complex
- property N_max#
Cutoff mode number for infinite sums
- Getter:
returns number of infinite sum term
- Setter:
automatically invokes
osaft.core.variable.BaseVariable.notify()
- __weakref__#
list of weak references to the object (if defined)