Modelling of the thermal field at dissipation of ultrasonic acoustic oscillations in viscous medium¶
This example demonstrates the modelling of ultrasonic radiation propagation in a viscous medium. Damping of acoustic oscillations and heating of the medium due to distributed heat sources are modelled.
The energy carried by an ultrasonic beam decays as it passes through a viscous medium. If at the origin at $x=0$ the intensity of a plane travelling wave is equal to $I_0$, then at a distance x it decreases to the value $I(x)$:
$$I(x) = I_0 \cdot e^{-kx},$$
where (k) is the intensity damping factor. Thus, the energy loss of the original ultrasonic beam during its propagation over a unit distance, $\frac{dI}{dx}\$, is equal to $k \cdot I$. The attenuation coefficient, $k$, consists of two components, one due to absorption and the other due to scattering. The energy scattered from the main beam can be absorbed in other regions of the viscous medium.
Using simple heat propagation equations, the expected heating can be calculated. The temperature distribution of a viscous medium is described by Eq:
$$\frac{\partial T(x,t)}{\partial \tau} = \frac{\partial}{\partial x} \frac{\partial T(x,t)}{\partial x} + \frac{q_0}{c\gamma} e^{-kx}$$
where $T$ is the temperature, $t$ is the exposure time, $x$ is the coordinate along the axis of radiation propagation, $q_0$ is the initial value of the power of volumetric heat sources, $c$ is the heat capacity of the medium, $\gamma$ is the density of the medium. Power of volumetric sources as a function of coordinate:
$q(x) = I_0 k e^{-kx}.$
Calculation of the temperature field¶
Connection of necessary libraries:
Determination of radiation and viscous medium parameters:
Realisation of the temperature calculation function by time and coordinate:
Out[0]:
heat_equation! (generic function with 1 method)
Defining the calculation parameters:
Out[0]:
(0.5, 10000.0, 3360.0, 1050.0, 0.35, 0.0:0.010101010101010102:1.0)
Realisation of the coordinate-dependent heat flux calculation function:
Out[0]:
teplo (generic function with 1 method)
Visualisation of the heat flux value as a function of coordinate, taking into account the attenuation coefficient:
Solving the problem using DifferentialEquations library methods:
Determination of the temperature field at the final step of the calculation:
Visualisation of the temperature field at the final calculation step:
This case study demonstrated the modelling of the propagation of acoustic oscillations in a viscous medium, as well as their damping and energy conversion to heat. The temperature field of a semi-infinite plate has been constructed and the methods of the DifferentialEquations library for solving systems of differential equations have been demonstrated.
{"id": "05889e39-1a3c-4dc9-98b4-13c506981508", "data": [{"xaxis": "x", "colorbar": {"title": {"text": ""}}, "yaxis": "y", "x": [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 100], "showlegend": true, "mode": "lines", "name": "y1", "zmin": null, "legendgroup": "y1", "zmax": null, "line": {"color": "rgba(0, 154, 250, 1.000)", "shape": "linear", "dash": "solid", "width": 1}, "y": [0.002834467120181406, 0.002834467120181406, 0.0028244639695830286, 0.0028144961212187756, 0.002804563450503125, 0.0027946658332902324, 0.0027848031458723756, 0.0027749752649784127, 0.00276518206777224, 0.002755423431851253, 0.0027456992352448235, 0.002736009356412768, 0.002726353674243834, 0.002716732068054183, 0.0027071444175858833, 0.0026975906030054075, 0.0026880705049021343, 0.002678584004286854, 0.002669130982590285, 0.0026597113216615897, 0.002650324903766897, 0.0026409716115878322, 0.0026316513282200497, 0.002622363937171774, 0.002613109322362341, 0.0026038873681207475, 0.0025946979591842077, 0.0025855409806967095, 0.002576416318207582, 0.002567323857670062, 0.0025582634854398718, 0.0025492350882737945, 0.0025402385533282636, 0.0025312737681579493, 0.0025223406207143533, 0.0025134389993444095, 0.002504568792789088, 0.002495729890182004, 0.0024869221810480333, 0.0024781455553019296, 0.002469399903246951, 0.0024606851155734863, 0.002452001083357692, 0.002443347698060126, 0.002434724851524397, 0.0024261324359758085, 0.0024175703440200125, 0.002409038468641668, 0.0024005367032031034, 0.0023920649414429828, 0.0023836230774749783, 0.002375211005786447, 0.002366828621237113, 0.00235847581905775, 0.0023501524948488753, 0.0023418585445794432, 0.002333593864585545, 0.002325358351569115, 0.0023171519025966354, 0.0023089744150978538, 0.0023008257868645, 0.002292705916049007, 0.0022846147011632402, 0.0022765520410772274, 0.002268517835017896, 0.0022605119825678107, 0.0022525343836639245, 0.00224458493859632, 0.0022366635480069695, 0.0022287701128884904, 0.002220904534582908, 0.0022130667147804224, 0.002205256555518181, 0.0021974739591790514, 0.002189718828490404, 0.0021819910665228956, 0.0021742905766892564, 0.002166617262743084, 0.002158971028777641, 0.0021513517792246546, 0.0021437594188531243, 0.0021361938527681298, 0.0021286549864096447, 0.0021211427255513567, 0.002113656976299489, 0.002106197645091625, 0.002098764638695541, 0.0020913578642080396, 0.0020839772290537906, 0.0020766226409841717, 0.0020692940080761155, 0.0020619912387309625, 0.0020547142416733146, 0.0020474629259498948, 0.00204023720092841, 0.002033036976296419, 0.002025862162060203, 0.0020187126685436425, 0.0020115884063870923, 0.0020044892865462697, 0.001997415220291138, 0.001997415220291138], "type": "scatter", "zaxis": null, "z": null}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "range": [-1.970000000000006, 102.97], "domain": [0.09545056867891513, 0.9934383202099738], "mirror": false, "tickangle": 0, "showline": true, "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 500, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "range": [0.0019723036632944297, 0.0028595786771781137], "domain": [0.03762029746281716, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 1098.109375}}
{"id": "5524e6c9-7e82-484c-bcec-c0f6bc50bcc8", "data": [{"xaxis": "x", "colorbar": {"title": {"text": ""}}, "yaxis": "y", "x": [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 100], "showlegend": true, "mode": "lines", "name": "y1", "zmin": null, "legendgroup": "y1", "zmax": null, "line": {"color": "rgba(0, 154, 250, 1.000)", "shape": "linear", "dash": "solid", "width": 1}, "y": [320.01802610464284, 320.01802610464284, 320.0177480346657, 320.00036079266476, 319.9670516198617, 319.91899630625306, 319.8573555651587, 319.78327152528965, 319.6978643277066, 319.60222888492893, 319.4974318104426, 319.38450853654064, 319.26446061477003, 319.13825331406343, 319.0068133529176, 318.8710269766631, 318.7317382581273, 318.589747662141, 318.44581086679636, 318.3006379077715, 318.15489254016535, 318.0091918999511, 317.86410638586125, 317.7201598729823, 317.57783009099063, 317.43754926307724, 317.2997050295461, 317.164641434822, 317.03266027575756, 316.90402249403695, 316.7789497773836, 316.65762635061753, 316.540200783186, 316.42678795029167, 316.3174710958065, 316.21230392163426, 316.11131273858155, 316.0144986202486, 315.9218395482356, 315.8332926325307, 315.7487961985169, 315.6682718670532, 315.5916266575966, 315.5187548825849, 315.449540097915, 315.38385691262334, 315.3215727195957, 315.2625492733864, 315.2066442985431, 315.15371284011724, 315.10360860053214, 315.05618512700414, 315.0112969136831, 314.96880035577476, 314.9285546345439, 314.8904224453754, 314.8542707004557, 314.8199710344414, 314.78740027644943, 314.75644084919816, 314.7269810195129, 314.69891513999437, 314.6721437533347, 314.6465737272846, 314.6221182051735, 314.59869664238835, 314.57623469266645, 314.5546641291021, 314.53392268966735, 314.51395392656957, 314.49470700875423, 314.47613655274836, 314.45820239304317, 314.4408693797923, 314.42410718273004, 314.4078900361272, 314.39219657257553, 314.3770095839528, 314.3623158574715, 314.34810595377854, 314.3343740444221, 314.32111773398447, 314.308337934538, 314.2960386453316, 314.28422689872417, 314.2729125846054, 314.262108354741, 314.2518295101715, 314.24209390042114, 314.2329218792792, 314.2243361902721, 314.21636189262676, 314.20902635984174, 314.20235916450827, 314.1963920664224, 314.1911589835472, 314.18669594414115, 314.18304106081445, 314.18023451034895, 314.1783185233443, 314.17733738279446, 314.17733738279446], "type": "scatter", "zaxis": null, "z": null}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "range": [-1.970000000000006, 102.97], "domain": [0.05100612423447069, 0.9934383202099737], "mirror": false, "tickangle": 0, "showline": true, "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 500, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "range": [314.00211672113903, 320.19324676629833], "domain": [0.03762029746281716, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 1098.109375}}