ARF#
Examples using this class are:
Acoustofluidics 2022: ARF Comparison
Frontiers: Air Bubble in Water
Frontiers: HFE Droplet in Water
Frontiers: PS Particle in Water
Yosioka and Kawasima (1955) Figure 2
- 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 limit option.
Bubble solution option.
Density-compressibility factor \(F\) [-]
Inherited from
BaseYosioka
supported_wavetypes
ratio of speeds of sound [-].
ratio of densities [-]
dimensionless wavenumber in the fluid [-]
dimensionless wavenumber in the particle
Wraps to
osaft.core.backgroundfields.BackgroundField.position
Wraps to
osaft.core.backgroundfields.BackgroundField.wave_type
Wraps to
osaft.core.fluids.InviscidFluid.c_f
Wraps to
osaft.core.fluids.InviscidFluid.c_f
Wraps to
osaft.core.fluids.InviscidFluid.k_f
Wraps to
osaft.core.fluids.InviscidFluid.k_f
Inherited from
BaseSphereFrequencyComposite
Wrapper for
osaft.core.geometries.Sphere.R_0
Wrapper for
osaft.core.geometries.Sphere.area
Wrapper for
osaft.core.geometries.Sphere.volume
Inherited from
BaseFrequencyComposite
wrapper for
osaft.core.frequency.Frequency.f
wrapper for
osaft.core.frequency.Frequency.omega
Inherited from
BaseSolution
supported_wavetypes
returns the wave type of the solution
Inherited from
BaseScattering
Cutoff mode number for infinite sums
field
omega
R_0
rho_f
k_f
Public Methods:
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]
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
A_in
(n)Inherited from
BaseFrequencyComposite
Returns all properties that are settable.
Inherited from
BaseSolution
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].
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 untilN_max
(mode=None
).Returns either a single mode (
mode=int
) or a the sum untilN_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()
andV_r_i()
depending onscattered
andincident
V_theta
(n, r, scattered, incident)Superposition of
V_theta_sc()
andV_theta_i()
depending onscattered
andincident
Inherited from
BaseARF
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()
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)#
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()
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)#
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 insupported_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:
WrongWaveTypeError – if wrong
wave_type
AssumptionWarning – if the used parameters might not be valid for the chosen limiting case
- Return type:
float
- copy()#
Returns a copy of the object
- Return type:
- 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 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)#
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 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)#
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#
- 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#
- 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#
- property lambda_rho: float#
ratio of densities [-]
- property omega: float#
wrapper for
osaft.core.frequency.Frequency.omega
- property p_0: float#
- property position: float#
Wraps to
osaft.core.backgroundfields.BackgroundField.position
- property rho_f: float#
- property rho_s: float#
- 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