{"id":16991,"date":"2025-09-30T08:48:10","date_gmt":"2025-09-30T12:48:10","guid":{"rendered":"https:\/\/blogs.mathworks.com\/pick\/?p=16991"},"modified":"2025-09-30T08:48:10","modified_gmt":"2025-09-30T12:48:10","slug":"k-wave-a-matlab-toolbox-for-the-time-domain-simulation-of-acoustic-wave-fields","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/pick\/2025\/09\/30\/k-wave-a-matlab-toolbox-for-the-time-domain-simulation-of-acoustic-wave-fields\/","title":{"rendered":"k-Wave: A MATLAB toolbox for the time-domain simulation of acoustic wave fields"},"content":{"rendered":"<div class=\"rtcContent\">\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><a href=\"https:\/\/uk.mathworks.com\/matlabcentral\/profile\/authors\/20789457\">Mike<\/a>'s pick this week is <a href=\"https:\/\/uk.mathworks.com\/matlabcentral\/fileexchange\/120178-k-wave\">k-Wave <\/a>by <a href=\"https:\/\/uk.mathworks.com\/matlabcentral\/profile\/authors\/10312664\">Bradley Treeby<\/a> and <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/553976\">Ben Cox<\/a>.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">There is no doubt that k-Wave has been very impactful in its field. The <a href=\"http:\/\/www.medphys.ucl.ac.uk\/research\/mle\/pdf_files\/J_2010_Treeby_JBO_k-Wave_MATLAB_toolbox.pdf\">original 2010 paper describing it<\/a> has been cited 2617 times at the time of writing according to google scholar and I'm convinced that it has been used a lot more than that! One thing I learned during my years as a <a href=\"https:\/\/society-rse.org\/\">Research Software Engineer<\/a> is that software is often not cited anywhere near as often as it should.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">So what does it do?<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">From the description on File Exchange: \"k-Wave is an open source MATLAB toolbox designed for the time-domain simulation of propagating acoustic waves in 1D, 2D, or 3D. The toolbox has a wide range of functionality, but at its heart is an advanced numerical model that can account for both linear and nonlinear wave propagation, an arbitrary distribution of heterogeneous material parameters, and power law acoustic absorption.\"<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">There is extensive documentation that gets installed into your MATLAB alongside the toolbox and I was up and running my first simulation within a couple of minutes of installing it.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline; width: 590px; height: 601px;\" src=\"https:\/\/blogs.mathworks.com\/pick\/files\/kwavePOTW_1.png\" alt=\"\" width=\"590\" height=\"601\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\">Available on <a href=\"https:\/\/github.com\/ucl-bug\/k-wave\">GitHub<\/a> and <a href=\"https:\/\/uk.mathworks.com\/matlabcentral\/fileexchange\/120178-k-wave\">File Exchange<\/a>, k-Wave is a great example of a long-running MATLAB Community Toolbox that has attracted many users over the years.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: #212121; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left;\"><\/div>\r\n<\/div>\r\n<script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/pick\/files\/kwavePOTW_1.png\" onError=\"this.style.display ='none';\" \/><\/div><p>\r\nMike's pick this week is k-Wave by Bradley Treeby and Ben Cox.\r\nThere is no doubt that k-Wave has been very impactful in its field. The original 2010 paper describing it has been cited 2617 times... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/pick\/2025\/09\/30\/k-wave-a-matlab-toolbox-for-the-time-domain-simulation-of-acoustic-wave-fields\/\">read more >><\/a><\/p>","protected":false},"author":176,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[47,16],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/16991"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/comments?post=16991"}],"version-history":[{"count":3,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/16991\/revisions"}],"predecessor-version":[{"id":17000,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/16991\/revisions\/17000"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/media?parent=16991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/categories?post=16991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/tags?post=16991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}