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 coefficients

Default: 5

V_r(n, r, scattered, incident)[source]#

Superposition of V_r_sc() and V_r_i() depending on scattered and incident

At least one of the two must be True.

Parameters:
  • n (int) – mode

  • r (float) – radial coordinate [m]

  • scattered (bool) – add scattered field

  • incident (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() and V_theta_i() depending on scattered and incident

At least one of the two must be True.

Parameters:
  • n (int) – mode

  • r (float) – radial coordinate [m]

  • scattered (bool) – add scattered field

  • incident (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 until N_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 until N_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)