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. Please contribute, if nothing else, criticism is welcome, as I am relatively new to Julia.
 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 AL, Smith MJ, Parnell WJ, Abrahams ID. Reflection from a multi-species material and its transmitted effective wavenumber. arXiv preprint arXiv:1712.05427. 2017 Dec.
9 days ago