ARF#

Examples using this class are:

Acoustofluidics 2022: ARF Comparison

Acoustofluidics 2022: ARF Comparison

Acoustofluidics 2022: ARF Comparison
Frontiers: Air Bubble in Water

Frontiers: Air Bubble in Water

Frontiers: Air Bubble in Water
Frontiers: HFE Droplet in Water

Frontiers: HFE Droplet in Water

Frontiers: HFE Droplet in Water
Frontiers: PS Particle in Water

Frontiers: PS Particle in Water

Frontiers: PS Particle in Water
Yosioka and Kawasima (1955) Figure 2

Yosioka and Kawasima (1955) Figure 2

Yosioka and Kawasima (1955) Figure 2
Multicore ARF Computation

Multicore ARF Computation

Multicore ARF Computation
class osaft.solutions.yosioka1955.arf.ARF(f, R_0, rho_s, c_s, rho_f, c_f, p_0, wave_type, position=None, N_max=5, small_particle=False, bubble_solution=False)[source]#

Bases: ScatteringField, BaseARF

ARF class for Yosioka & Kawasima (1955)

Parameters:
  • f (Frequency | float | int) – Frequency [Hz]

  • R_0 (Sphere | float | int) – Radius of the sphere [m]

  • rho_s (float) – Density of the fluid-like sphere [kg/m^3]

  • c_s (float) – Speed of sound of the particle [m/s]

  • rho_f (float) – Density of the fluid [kg/m^3]

  • c_f (float) – Speed of sound of the fluid [m/s]

  • p_0 (float) – Pressure amplitude of the field [Pa]

  • position (None | float, optional) – Position in the standing wave field [rad]

    Default: None

  • wave_type (WaveType) – either standing or progressive wave

  • N_max (int, optional) –

    Default: 5

  • small_particle (bool, optional) –

    Default: False

  • bubble_solution (bool, optional) –

    Default: False

Public Data Attributes:

small_particle

Small particle limit option.

bubble_solution

Bubble solution option.

F

Density-compressibility factor \(F\) [-]

Inherited from BaseYosioka
Inherited from BaseSphereFrequencyComposite
Inherited from BaseFrequencyComposite
Inherited from BaseSolution

supported_wavetypes

wave_type

returns the wave type of the solution

Inherited from BaseScattering

N_max

Cutoff mode number for infinite sums

field

omega

R_0

rho_f

k_f

Public Methods:

compute_arf()

Acoustic radiation force [N]

K_n(n)

Coefficient \(K_n\) [m^2/s]

M_n(n)

Coefficient \(M_n\) [m^2/s]

Inherited from ScatteringField

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

Radial particle velocity [m/s]

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

Tangential particle velocity [m/s]

potential_coefficient(n)

Wrapper to the fluid scattering coefficients for an inviscid fluid

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

Fluid velocity potential \(\Phi_1\) [m^2/s]

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

Fluid velocity potential of the incident field \(\Phi_i\) [m^2/s]

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

Fluid velocity potential of the scattered field \(\Phi_s\) [m^2/s]

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

Particle velocity potential \(\Phi^*\) [m^2/s]

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

Coefficient \(A_n\) [m^2/s]

B_n(n)

Coefficient \(B_n\) [m^2/s]

Inherited from BaseYosioka
Inherited from BaseFrequencyComposite

input_variables()

Returns all properties that are settable.

Inherited from BaseSolution

copy()

Returns a copy of the object

check_wave_type()

Checks if wave_type is in supported_wavetypes

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

Inherited from BaseARF

compute_arf()

Returns the value for the ARF in Newton [N].


A_in(n)#

Wraps to osaft.core.backgroundfields.BackgroundField.A_in

Return type:

complex

A_n(n)#

Coefficient \(A_n\) [m^2/s]

(Eq. 22)

Parameters:

n (int) – mode [-]

Return type:

complex

B_n(n)#

Coefficient \(B_n\) [m^2/s]

(Eq. 23)

Parameters:

n (int) – mode [-]

Return type:

complex

K_n(n)[source]#

Coefficient \(K_n\) [m^2/s]

(Eq. 43)

Parameters:

n (int) – mode [-]

Return type:

complex

Returns:

coefficient [m^2/s]

M_n(n)[source]#

Coefficient \(M_n\) [m^2/s]

(Eq. 42)

Parameters:

n (int) – mode [-]

Return type:

complex

Returns:

coefficient [m^2/s]

Phi_1(r, theta, t, mode=None)#

Fluid velocity potential \(\Phi_1\) [m^2/s]

(Eq. 17)

Parameters:
  • r (float) – radial coordinate [m]

  • theta (float) – tangential coordinate [rad]

  • t (float) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

complex

Phi_i(r, theta, t, mode=None)#

Fluid velocity potential of the incident field \(\Phi_i\) [m^2/s]

(Eq. 16, 27)

Parameters:
  • r (float) – radial coordinate [m]

  • theta (float) – tangential coordinate [rad]

  • t (float) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

complex

Phi_s(r, theta, t, mode=None)#

Fluid velocity potential of the scattered field \(\Phi_s\) [m^2/s]

(Eq. 18, 29)

Parameters:
  • r (float) – radial coordinate [m]

  • theta (float) – tangential coordinate [rad]

  • t (float) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

complex

Phi_star(r, theta, t, mode=None)#

Particle velocity potential \(\Phi^*\) [m^2/s]

Parameters:
  • r (float) – radial coordinate [m]

  • theta (float) – tangential coordinate [rad]

  • t (float) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

complex

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

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

Return type:

complex | Sequence[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)#

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

Return type:

complex | Sequence[complex]

check_wave_type()#

Checks if wave_type is in supported_wavetypes

Raises:

WrongWaveTypeError – If wave_type is not supported

Return type:

None

compute_arf()[source]#

Acoustic radiation force [N]

Computes the ARF, based on the general solution (Eq. 44), or the approximation for either small particles (Eq. 59, 62) or small bubbles (Eq. 68, 73), if the respective options are selected.

Raises:
Return type:

float

copy()#

Returns a copy of the object

Return type:

BaseSolution

classmethod input_variables()#

Returns all properties that are settable.

Returns a list of the names of all properties that are settable, i.e. all properties that wrap a PassiveVariable.

Return type:

list[str]

potential_coefficient(n)#

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

radial_particle_velocity(r, theta, t, mode=None)#

Radial particle velocity [m/s]

Parameters:
  • r (float | Sequence[float]) – radial coordinate [m]

  • theta (float | Sequence[float]) – tangential coordinate [rad]

  • t (float | Sequence[float]) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

float | Sequence[float]

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

tangential_particle_velocity(r, theta, t, mode=None)#

Tangential particle velocity [m/s]

Parameters:
  • r (float | Sequence[float]) – radial coordinate [m]

  • theta (float | Sequence[float]) – tangential coordinate [rad]

  • t (float | Sequence[float]) – time [s]

  • mode (None | int, optional) – mode

    Default: None

Return type:

float | Sequence[float]

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 E_ac: float#

Wraps to osaft.core.backgroundfields.BackgroundField.E_ac

property F: float#

Density-compressibility factor \(F\) [-]

(Eq. 60, 63, 75)

Acoustic contrast factor for small particle solutions. The error from the article in the factor for a bubble in standing wave has been corrected. :return: contrast factor [-]

property I_ac: float#

Wraps to osaft.core.backgroundfields.BackgroundField.I_ac

property N_max#

Cutoff mode number for infinite sums

Getter:

returns number of infinite sum term

Setter:

automatically invokes osaft.core.variable.BaseVariable.notify()

property R_0: float#

Wrapper for osaft.core.geometries.Sphere.R_0

property area: float#

Wrapper for osaft.core.geometries.Sphere.area

property bubble_solution: bool#

Bubble solution option.

Getter:

returns the setting for the bubble solution

Return type:

bool

Setter:

automatically invokes osaft.core.variable.BaseVariable.notify()

Type:

bool

property c_f: float#

Wraps to osaft.core.fluids.InviscidFluid.c_f

property c_s: float#

Wraps to osaft.core.fluids.InviscidFluid.c_f

property f: float#

wrapper for osaft.core.frequency.Frequency.f

property k_f: float#

Wraps to osaft.core.fluids.InviscidFluid.k_f

property k_s: float#

Wraps to osaft.core.fluids.InviscidFluid.k_f

property kappa_f: float#

Wraps to osaft.core.fluids.InviscidFluid.kappa_f

property lambda_rho: float#

ratio of densities [-]

property omega: float#

wrapper for osaft.core.frequency.Frequency.omega

property p_0: float#

Wraps to osaft.core.backgroundfields.BackgroundField.p_0

property position: float#

Wraps to osaft.core.backgroundfields.BackgroundField.position

property rho_f: float#

Wraps to osaft.core.fluids.InviscidFluid.rho_f

property rho_s: float#

Wraps to osaft.core.fluids.InviscidFluid.rho_f

property sigma: float#

ratio of speeds of sound [-].

property small_particle: bool#

Small particle limit option.

Getter:

returns the setting for the small particle limit

Return type:

bool

Setter:

automatically invokes osaft.core.variable.BaseVariable.notify()

Type:

bool

property volume: float#

Wrapper for osaft.core.geometries.Sphere.volume

property wave_type: WaveType#

Wraps to osaft.core.backgroundfields.BackgroundField.wave_type

property x_f: float#

dimensionless wavenumber in the fluid [-]

property x_s: float#

dimensionless wavenumber in the particle