SpecSWD

SpecSWD is a software to compute surface wave dispersions and do sensitivity analysis for 1-D fully anisotropic, wealy anelastic media. It utilizes spectral element method and quadratic eigenvalue solver to handle multiphysics (elastic-acoustic coupling), strong anisotropy and discontinuities inside the study region.

SpecSWD also provides high-level sensitivity analysis framework (adjoint methods) for any user-defined quantities.

Installation

  1. Compilers: C++/Fortran compilers which support c++17 (tested on GCC >=7.5), cmake >= 3.12

  2. packages:

  1. Python environments

conda create -n specswd python=3.10
conda activate specswd
conda install numpy scipy matplotlib pybind11 numba
  1. Install

mkdir -p build
cd build
cmake .. -DCXX=g++ -DFC=gfortran  -DEIGEN_INC=/path/to/eigen/ -DBUILD_LIBS=ON -DPython3_EXECUTABLE=`which python`
make -j4
make install 
  1. Install low-level C++ API docs

doxygen misc/doxygen/doxygen.cfg
  1. Python libraries

pip install -e .