ARF

Examples using this class are:

Acoustofluidics 2022: ARF Comparison

Acoustofluidics 2022: ARF Comparison

Frontiers: Air Bubble in Water

Frontiers: Air Bubble in Water

Frontiers: HFE Droplet in Water

Frontiers: HFE Droplet in Water

Frontiers: PS Particle in Water

Frontiers: PS Particle in Water

Yosioka and Kawasima (1955) Figure 2

Yosioka and Kawasima (1955) Figure 2

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 (Union[Frequency, float, int]) – Frequency [Hz]

  • R_0 (Union[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 (Optional[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 (Optional[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 (Optional[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 (Optional[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 (Optional[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 (Union[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 (Union[float, Sequence[float]]) – radial coordinate [m]

Return type:

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

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • scattered (bool) – add scattered field

  • incident (bool) – add incident

  • mode (Optional[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 (Union[float, Sequence]) – radial coordinate [m]

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

  • t (Union[float, Sequence]) – time [s]

  • scattered (bool) – scattered field contribution

  • incident (bool) – incident field contribution

  • mode (Optional[int], optional) – specific mode number of interest; if None then all modes until N_max

    Default: None

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • mode (Optional[int], optional) – specific mode number of interest; if None then all modes until N_max

    Default: None

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • mode (Optional[int], optional) – specific mode number of interest; if None that all modes until N_max

    Default: None

Return type:

Union[complex, ndarray]

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

Radial particle velocity [m/s]

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

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

  • t (Union[float, Sequence[float]]) – time [s]

  • mode (Optional[int], optional) – mode

    Default: None

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • scattered (bool) – scattered field contribution

  • incident (bool) – incident field contribution

  • mode (Optional[int], optional) – specific mode number of interest; if None then all modes until N_max

    Default: None

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • mode (int) – specific mode number of interest; if None then all modes until N_max

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • mode (Optional[int], optional) – specific mode number of interest; if None that all modes until N_max

    Default: None

Return type:

Union[complex, ndarray]

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

Tangential particle velocity [m/s]

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

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

  • t (Union[float, Sequence[float]]) – time [s]

  • mode (Optional[int], optional) – mode

    Default: None

Return type:

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

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

  • t (Union[float, Sequence]) – time [s]

  • scattered (bool) – add scattered field

  • incident (bool) – add incident

  • mode (Optional[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