Doinikov Rigid (1994): Sandstone in Glycerin

6.b.ii. Doinikov compute the acoustic radiation force on a sandstone particle in water and in glycerin. Doinikov shows that the acoustic radiation force will change sign in the case \(|x| \ll |x_v| \ll 1\), i.e. if the particle and the viscous boundary layer are small compared to the wavelength and the boundary layer is much larger than the particle.

First we need to get an instance of our solution class. In this case osaft.king1934.ARF() and osaft.doinikov1994rigid.ARF(). The steps are the same as in the earlier examples.

 16 import matplotlib.pyplot as plt
 17 import numpy as np
 18
 19 import osaft
 20
 21 # --------
 22 # Geometry
 23 # --------
 24 # Radius
 25 R_0 = 1e-6  # [m]
 26
 27 # -----------------------
 28 # Properties of Sandstone
 29 # -----------------------
 30 # Density
 31 rho_sandstone = 7.8e3  # [kg/m^3]
 32
 33 # ----------------------
 34 # Properties of Glycerin
 35 # ----------------------
 36 # Speed of sound
 37 c_glycerin = 1_964  # [c/m]
 38 # Density
 39 rho_glycerin = 1.26e3  # [kg/m^3]
 40 # dynamic viscosity
 41 eta_glycerin = 0.950  # [Pa s]
 42
 43
 44 # -------------------
 45 # Properties of Water
 46 # -------------------
 47 # Speed of sound
 48 c_water = 1_492  # [m/s]
 49 # Density
 50 rho_water = 997  # [kg/m^3]
 51 # dynamic viscosity
 52 eta_water = 8.9e-4  # [Pa s]
 53
 54 # --------------------------------
 55 # Properties of the Acoustic Field
 56 # --------------------------------
 57 # Frequency
 58 f = 1e6  # [Hz]
 59 # Pressure
 60 p_0 = 1e5  # [Pa]
 61 # Wave type
 62 wave_type = osaft.WaveType.STANDING
 63
 64 # Theory of Doinikov with glycerin as medium
 65 D_glycerin = osaft.doinikov1994rigid.ARF(
 66     f=f,
 67     R_0=R_0,
 68     rho_s=rho_sandstone,
 69     rho_f=rho_glycerin, c_f=c_glycerin,
 70     eta_f=eta_glycerin, zeta_f=0,
 71     p_0=p_0,
 72     wave_type=wave_type,
 73     position=0,
 74     long_wavelength=True,
 75     large_boundary_layer=True,
 76 )
 77 D_glycerin.name = 'Doinikov: Glycerin'
 78
 79 # Theory of Doinikov with water as medium
 80 D_water = osaft.doinikov1994rigid.ARF(
 81     f=f,
 82     R_0=R_0,
 83     rho_s=rho_sandstone,
 84     rho_f=rho_water, c_f=c_water,
 85     eta_f=eta_water, zeta_f=0,
 86     p_0=p_0,
 87     wave_type=wave_type,
 88     position=0,
 89 )
 90 D_water.name = 'Doinikov: Water'
 91
 92 # Theory of King with glycerin as medium
 93 K_glycerin = osaft.king1934.ARF(
 94     f=f,
 95     R_0=R_0,
 96     rho_s=rho_sandstone,
 97     rho_f=rho_glycerin, c_f=c_glycerin,
 98     p_0=p_0,
 99     wave_type=wave_type,
100     position=0,
101     small_particle_limit=True,
102 )
103 K_glycerin.name = 'King: Glycerin'
104
105 # Theory of King with water as medium
106 K_water = K_glycerin.copy()
107 K_water.rho_f = rho_water
108 K_water.c_f = c_water
109 K_water.name = 'King: Water'

We plot the acoustic radiation force by initializing an instance of osaft.ARFPlot() and adding our solutions using add_solutions().

115 # create the x values we want to use for plotting
116 x_values = np.linspace(0, np.pi, num=500)
117
118 # Plotting the solutions
119 plotter = osaft.ARFPlot('position', x_values)
120 plotter.add_solutions(D_water, D_glycerin, K_water, K_glycerin)
121 plotter.plot_solutions()
122
123 plt.show()
example doinikov sandstone glycerin
/home/docs/checkouts/readthedocs.org/user_builds/osaft/checkouts/patch-doinikov2021_streaming/osaft/plotting/datacontainers/arf_datacontainer.py:61: AssumptionWarning: Theory might not be valid anymore!
  self._change_attr_and_compute_arf(

Total running time of the script: ( 0 minutes 9.017 seconds)

Estimated memory usage: 9 MB

Gallery generated by Sphinx-Gallery