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,
 70     c_f=c_glycerin,
 71     eta_f=eta_glycerin,
 72     zeta_f=0,
 73     p_0=p_0,
 74     wave_type=wave_type,
 75     position=0,
 76     long_wavelength=True,
 77     large_boundary_layer=True,
 78 )
 79 D_glycerin.name = "Doinikov: Glycerin"
 80
 81 # Theory of Doinikov with water as medium
 82 D_water = osaft.doinikov1994rigid.ARF(
 83     f=f,
 84     R_0=R_0,
 85     rho_s=rho_sandstone,
 86     rho_f=rho_water,
 87     c_f=c_water,
 88     eta_f=eta_water,
 89     zeta_f=0,
 90     p_0=p_0,
 91     wave_type=wave_type,
 92     position=0,
 93 )
 94 D_water.name = "Doinikov: Water"
 95
 96 # Theory of King with glycerin as medium
 97 K_glycerin = osaft.king1934.ARF(
 98     f=f,
 99     R_0=R_0,
100     rho_s=rho_sandstone,
101     rho_f=rho_glycerin,
102     c_f=c_glycerin,
103     p_0=p_0,
104     wave_type=wave_type,
105     position=0,
106     small_particle_limit=True,
107 )
108 K_glycerin.name = "King: Glycerin"
109
110 # Theory of King with water as medium
111 K_water = K_glycerin.copy()
112 K_water.rho_f = rho_water
113 K_water.c_f = c_water
114 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().

120 # create the x values we want to use for plotting
121 x_values = np.linspace(0, np.pi, num=500)
122
123 # Plotting the solutions
124 plotter = osaft.ARFPlot("position", x_values)
125 plotter.add_solutions(D_water, D_glycerin, K_water, K_glycerin)
126 plotter.plot_solutions()
127
128 plt.show()
example doinikov sandstone glycerin
/home/docs/checkouts/readthedocs.org/user_builds/osaft/checkouts/stable/osaft/plotting/datacontainers/arf_datacontainer.py:67: AssumptionWarning: Theory might not be valid anymore!
  self._change_attr_and_compute_arf(

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

Estimated memory usage: 9 MB

Gallery generated by Sphinx-Gallery