Skip to content

Latest commit

 

History

History
59 lines (45 loc) · 4.79 KB

README.md

File metadata and controls

59 lines (45 loc) · 4.79 KB

Wave-DNA

Latest version

Wave-DNA is a software tool for one-dimensional and spherically-symmetric nonlinear acoustic waves in transient and spatially variable background flow fields. The motion of the background medium is accounted for by considering a convective form of the lossless Kuznetsov wave equation, derived from first principles based on perturbations of the continuity equation and the transient Bernoulli equation, which is solved using a finite-difference method. In principle, the background flow field may be obtained from analytical solutions, numerical simulations, or experimental measurements. The acronym Wave-DNA stands for "Wave Doppler effects in Nonlinear Acoustics".

FDM JASA ABH

Developers

License and Copyright

Wave-DNA is under the copyright of its developers and made available as open-source software under the terms of the MIT License.

Requirements

Wave-DNA has been developed and tested on Unix systems, using Linux and MacOS operating systems. The only mandatory requirement to compile and run Wave-DNA is a standard C compiler, such as gcc.

Optionally, cmake (version 3.12 or higher) is required if you would like to make use of the provided compilation scripts. To use the provided Python scripts for visualizing the output of Wave-DNA, Python (version 3), numpy and matplotlib are required.

Quick start guide

Getting started with Wave-DNA using a Unix operating system, e.g. Linux or MacOS, is easy. After downloading Wave-DNA in the directory <path to Wave-DNA>, define the environment variable WaveDNA_DIR to the directory in which Wave-DNA is located. Using bash, for instance, simply execute the command export WaveDNA_DIR=<path to Wave-DNA> or, even better, add this command to your bash profile.

Now, navigate into the folder $WaveDNA_DIR/build and execute ./cleanbuild_release.sh. This shell script will compile Wave-DNA in Release mode (meaning all optimization flags are enabled)1 using cmake with the CMakeLists.txt file2 provided in this folder. That's it, you've successfully compiled Wave-DNA!

You can now navigate to $WaveDNA_DIR/examples, where you find several representative examples that demonstrate the capabilities of Wave-DNA. Each folder contains a README.md file that explains the specificities of the example(s) and how to run the example(s).

Repository Structure

The Wave-DNA repository is structured as follows:

  • The documentation folder contains a short pdf documentation of Wave-DNA. The documentation discusses the theory behind Wave-DNA and the code structure, and explains how to install and use Wave-DNA.
  • The examples folder contains representative examples that show how to use Wave-DNA and demonstrate the most important features of Wave-DNA.
  • The src folder contains all source files of Wave-DNA.
  • The .clang-format file, which defines the formatting rules for the source code.
  • The .gitignore file telling git which folders and files to ignore.
  • The LICENSE file containing the MIT License text.
  • The README.md file is the file you are currently reading.

Acknowledgements

The development of Wave-DNA has directly benefitted from research funding provided by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation), grant number 441063377, and by the Natural Sciences and Engineering Research Council of Canada (NSERC), funding reference number RGPIN-2024-04805.

Footnotes

  1. You can compile Wave-DNA in Debug mode by executing ./cleanbuild_debug.sh.

  2. Dependent on where the system libraries are located, you may need to change the $mylibdirs in the $WaveDNA_DIR/build/CMakeLists.txt file (by default, this is set to /usr/lib64/).