chetzer-ncpa / ncpaprop-release

Release version of ncpaprop, a command-line package for modeling the propagation of low-frequency acoustic waves in the atmosphere.
Other
14 stars 2 forks source link
acoustics infrasound wave-propagation

ncpaprop

DOI

ncpaprop is a software package aiming at providing a comprehensive set of tested and validated numerical models for simulating the long range propagation of infrasonic signals through the earth’s atmosphere. The algorithms implemented in ncpaprop are designed for frequencies large enough that the effects of buoyancy can be neglected and small enough that propagation to ranges of hundreds to thousands of kilometers is possible without significant signal attenuation. Nominally, ncpaprop can, without modification, be used to efficiently model narrowband propagation from 0.1 to 10 Hz and broadband propagation from 0.05 Hz to 2 or 3 Hz. The models become increasingly inefficient with increasing frequency so that run times can become prohibitive if higher frequencies are considered.

The intent behind ncpaprop is to provide reliable software engines for the modeling of infrasound propagation rather than a user-friendly working environment. As such no graphical interfaces are included. Rather ncpaprop provides a suite of UNIX style command line programs that can be scripted into usersupplied graphical interfaces as desired.

Prerequisites

The following are required to install ncpaprop:

Most Linux distributions should come with the first three; MacOS users may have to install these using XCode and/or an external package manager such as Homebrew. If using a package manager for FFTW and GSL, note that the development versions are required. If you are building ncpaprop on a Linux system, you can add the --enable-autodependencies flag to use the system package manager to install the correct versions of these; the flag supports both apt and yum. This flag is not supported on MacOS due to the number of potential package managers to choose from.

Installation

First, download the repository into the current directory with:

git clone https://github.com/chetzer-ncpa/ncpaprop-release.git .

Run ./configure with appropriate parameters. Most parameters involve how to link to the PETSc suite and its SLEPc extension. If, as is likely, you do not already have these both installed with the correct configuration flags (see below), you should use:

./configure --with-localpetsc

This will download, configure, and build PETSc and SLEPc locally, within the ncpaprop directory tree (in the extern directory), as part of the configuration process. Two architectures will be built:

arch-${OS}-c-real:     --with-scalar-type=real
arch-${OS}-c-complex:  --with-scalar-type=complex

If you already have instances built of both PETSc and SLEPc using each of these two architectures, you can link to them instead of building them locally. To do this, set the PETSC_DIR and SLEPC_DIR variables to the root directories of PETSc and SLEPc, and set the PETSC_ARCH_REAL and PETSC_ARCH_COMPLEX variables to the names of the architectures as they were built. For example:

export PETSC_DIR=/usr/local/lib/petsc
export SLEPC_DIR=/usr/local/lib/slepc
export PETSC_ARCH_REAL=arch-linux-c-real
export PETSC_ARCH_COMPLEX=arch-linux-c-complex

Then, you may use:

./configure

or, alternately, you may specify the values of those four variables in the configure command as:

./configure PETSC_DIR=${PETSC_DIR} SLEPC_DIR=${SLEPC_DIR} PETSC_ARCH_REAL=${PETSC_ARCH_REAL} PETSC_ARCH_COMPLEX=${PETSC_ARCH_COMPLEX}

See the manual for detailed information on additional parameters.

Once the configuration process is complete, simply run

make