Hi -- I have three questions about KWaveDiffusion.
1) The last post on this thread is 3+ years old. Has there been progress in making KWaveDiffusion faster since then, for example using a C++ implementation?
2) I have been using the following calculation to set the time step:
>> DD = medium.thermal_conductivity ./ (medium.density .* medium.specific_heat); % diffusivity map in m^2/s
>> diffTimeVoxel = 0.001^2 / ( 2 * max(DD(SIM>1)) ); % time it takes for heat to diffuse of 1 voxel (calculated using the fastest diffusivity value in the domain)
>> dt = diffTimeVoxel / CFL; % I seem to obtain decent results for CFL=10 and CFL=5
This works OK, I wonder what the developers think of this approach and what value they would recommend for CFL, based on theoretical considerations or experience.
3) There are numerical difficulties when using medium.density=1 for air voxels, which is the correct physical value. Setting the density of air voxels to 1000 improves convergence dramatically. It does not seem to affect the results too much because the thermal conductivity of air is small, therefore heat simply does not propagate into that compartment anyway. What do the developers think of this fix?
Thanks! Bastien