BaseScatteringDoinikov1994#

Examples using this class are:

Frontiers: Copper Particle in Viscous Oil

Frontiers: Copper Particle in Viscous Oil

Frontiers: Copper Particle in Viscous Oil
Doinikov Rigid (1994): Sandstone in Glycerin

Doinikov Rigid (1994): Sandstone in Glycerin

Doinikov Rigid (1994): Sandstone in Glycerin
Pressure Plots for different theories

Pressure Plots for different theories

Pressure Plots for different theories
Doinikov 1994 Models

Doinikov 1994 Models

Doinikov 1994 Models
Possible Numerical Problems

Possible Numerical Problems

Possible Numerical Problems
class osaft.solutions.basedoinikov1994.scattering.BaseScatteringDoinikov1994(N_max)[source]#

Bases: BaseScattering, ABC

Base scattering class for Doinikov solutions from 1994

Parameters:

N_max (int) – Highest order mode included in the computation [-]

Public Data Attributes:

k_f

Returns the wave number in the fluid \(k_f\) [1/m]

k_v

Returns the viscous wave number in the fluid \(k_v\) [1/m]

Inherited from BaseScattering

N_max

Cutoff mode number for infinite sums

field

omega

R_0

rho_f

k_f

Public Methods:

potential_coefficient(n)

Wrapper to the fluid scattering coefficients for an inviscid fluid

V_r_sc(n, r)

Radial scattering field velocity term of mode n without Legendre coefficients

V_theta_sc(n, r)

Tangential scattering field velocity term of mode n without Legendre coefficients

A_in(n)

Incoming wave amplitude

alpha_n(n)

\(\alpha_n\) coefficient

beta_n(n)

\(\beta_n\) coefficient

Inherited from BaseScattering

radial_acoustic_fluid_velocity(r, theta, t, ...)

Returns the value for the radial acoustic velocity in [m/s].

tangential_acoustic_fluid_velocity(r, theta, ...)

Returns the value for the tangential acoustic velocity in [m/s].

pressure(r, theta, t, scattered, incident[, ...])

Returns the acoustic pressure [Pa].

potential_coefficient(n)

Wrapper to the fluid scattering coefficients for an inviscid fluid

velocity_potential(r, theta, t, scattered, ...)

Returns the velocity potential of the fluid in [m^2/s].

radial_particle_velocity(r, theta, t[, mode])

Returns the value for the radial particle velocity in [m/s].

tangential_particle_velocity(r, theta, t[, mode])

Returns the value for the tangential particle velocity in [m/s].

radial_particle_displacement(r, theta, t[, mode])

Particle displacement in radial direction

tangential_particle_displacement(r, theta, t)

Particle displacement in tangential direction

radial_mode_superposition(radial_func, r, ...)

Returns either a single mode (mode=int) or a the sum until N_max (mode=None).

tangential_mode_superposition(...)

Returns either a single mode (mode=int) or a the sum until N_max (mode=None).

V_r_i(n, r)

Radial incident field velocity term of mode n without Legendre coefficients

V_theta_i(n, r)

Tangential incident field velocity term of mode n without Legendre coefficients

V_r_sc(n, r)

Radial scattering field velocity term of mode n without Legendre coefficients

V_theta_sc(n, r)

Tangential scattering field velocity term of mode n without Legendre coefficients

V_r(n, r, scattered, incident)

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

V_theta(n, r, scattered, incident)

Superposition of V_theta_sc() and V_theta_i() depending on scattered and incident


abstract A_in(n)[source]#

Incoming wave amplitude

Parameters:

n (int) – mode

V_r(n, r, scattered, incident)#

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)#

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

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) – radial coordinate [m]

Return type:

complex

V_theta(n, r, scattered, incident)#

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)#

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

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) – radial coordinate [m]

Return type:

complex

abstract alpha_n(n)[source]#

\(\alpha_n\) coefficient

Parameters:

n (int) – mode

Return type:

complex

abstract beta_n(n)[source]#

\(\beta_n\) coefficient

Parameters:

n (int) – mode

Return type:

complex

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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)#

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()

abstract property k_f: complex#

Returns the wave number in the fluid \(k_f\) [1/m]

abstract property k_v: complex#

Returns the viscous wave number in the fluid \(k_v\) [1/m]