A Julia package for calculating, processing and plotting waves travelling in heterogeneous materials. The focus is on ensemble averaged waves.
At present, the packages calculates effective wavenumbers, wave transimission and wave reflection from random particulate materials in two-dimensions, see arXiv preprint for details on the mathematics, or these notes for the formulas.
Type into Julia:
using Pkg Pkg.clone("https://github.com/arturgower/EffectiveWaves.jl.git") using EffectiveWaves
Effective wavenumbers for two species randomly (uniformly) distributed in Glycerol.
#where: ρ = density, r = radius, c = wavespeed, and volfrac = volume fraction const WaterDistilled= Medium(ρ=0.998*1000, c = 1496.0) const Glycerol = Medium(ρ=1.26*1000, c = 1904.0) species = [ Specie(ρ=WaterDistilled.ρ,r=30.e-6, c=WaterDistilled.c, volfrac=0.1), Specie(ρ=Inf, r=100.0e-6, c=2.0, volfrac=0.2) ] # background medium background = Glycerol
Calculate effective wavenumbers:
# angular frequencies ωs = LinRange(0.01,1.0,60)*30.0e6 wavenumbers = wavenumber_low_volfrac(ωs, background, species) speeds = ωs./real(wavenumbers) attenuations = imag(wavenumbers)
For a list of possible materials go to src/materials.jl.
For more examples and details go to docs/src/examples/.
This library was originally written by Artur L Gower. Contributions are very welcome.
 Gower AL, Smith MJ, Parnell WJ, Abrahams ID. Reflection from a multi-species material and its transmitted effective wavenumber. Proc. R. Soc. A. 2018 Apr 1;474(2212):20170864.
 Gower, Artur L., William J. Parnell, and I. David Abrahams. "Multiple waves propagate in random particulate materials." SIAM Journal on Applied Mathematics 79.6 (2019): 2569-2592.
 Gower, Artur L., I. David Abrahams, and William J. Parnell. "A proof that multiple waves propagate in ensemble-averaged particulate materials." Proceedings of the Royal Society A 475.2229 (2019): 20190344.
2 months ago