SkillAgentSearch skills...

Strata

Site response program featuring simulated profiles, random vibration theory, and a graphical user interface.

Install / Use

/learn @arkottke/Strata
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Strata

License: GPL v3 Build Status Build status DOI

Equivalent linear site response with random vibration theory, site property randomization, and a graphical user interface.

The Strata GUI simplifies the process for performing site response analysis, but limits the flexibility and requires extensive coding to add features. To help address these shortcomings, I have written pyStrata, which is a Python library for performing site response. With pyStrata, complicated customized workflows can be developed, or examples using Jupyter notebooks can be used to aid in understanding of the process.

Binaries

Pre-built binaries for Windows are available from the Github releases page.

Citation

When citing Strata, refer to either the technical manual:

Kottke, Albert R., and Ellen M. Rathje. (2008). "Technical manual for Strata." Report No.: 2008/10. Pacific Earthquake Engineering Research Center, University of California, Berkeley.

or the DOI of the release and this website.

Building

Compiling Strata from the source code requires the following dependencies prior to building:

  • CMake (version 3.2 or later)
  • Qt (version 5.5 or later)
  • GNU Scientific Library (GSL)
  • Qwt (version 6.1 or later)
  • FFTW (optional)

See Building on Windows for installing these dependencies on windows. Once, these dependencies are installed the Strata can build checked out and built using the following commands:

$> git clone https://github.com/arkottke/strata.git
$> cd strata
$> mkdir build
$> cd build
$> cmake .. -DCMAKE_BUILD_TYPE=Release
$> make -j2

Strata executable is located in: strata/build/source/strata. If the build is unable to find header files and libraries for linking, paths to these files can be added by modifying the strata.pro text file, or by passing the INCLUDEPATH and LIBS environmental varibles. On Linux and OS X, the variabile LD_LIBRARY_PATH may need to be updated to include paths to Qwt and GSL library files. On Windows, PATH should include the paths to Qwt and GSL DLL files.

Building on Linux

Depending the distribution, the Qt binaries may or may not be in the package manager. On Ubuntu Trusty, Qt 5.6 is available from [ppa:beineri/opt-qt-5.10.1-trusty] 1, which can be installed with the following steps:

$> sudo add-apt-repository --yes ppa:beineri/opt-qt-5.10.1-trusty
$> sudo apt-get update -qq
$> sudo apt-get install -qq libgsl0-dev qt510base qt510tools qt510svg

If Qwt 6.1 is not available in the package manager. Qwt can be built using the following commands:

$> source /opt/qt10/bin/qt10-env.sh
$> cd $HOME/..
$> svn checkout <svn://svn.code.sf.net/p/qwt/code/branches/qwt-6.1> qwt
$> cd qwt
$> qmake
$> make -j2
$> sudo make install

Here is an example of passing adding paths for Qwt headers and shared libraries, and GSL to CMake:

$> QWT_ROOT_DIR=/usr/qwt-6.1.3/lib
$> GSL_ROOT_DIR=/usr/include/gsl
$> cmake .. -DQWT_ROOT_DIR=$QWT_ROOT_DIR -DGSL_ROOT_DIR=$GSL_ROOT_DIR -DCMAKE_BUILD_TYPE=Release

Building on Windows

Building on Windows is greatly simplified by using MSYS2. After installing MSYS2, the required dependencies can be installed with the following commands:

$> pacman -Sy
$> pacman -S \
    cmake \
    mingw-w64-i686-qt5 \
    mingw-w64-x86_64-qwt-qt5 \
    mingw-w64-x86_64-gsl \
    git

Using a MinGW-w64 shell, execute the commands listed in Building.

Building on OS X

Prior to building on OS X, install homebrew. Next install the dependencies:

$> brew install qt gsl qwt cmake

Then compile:

$> git clone https://github.com/arkottke/strata.git
$> cd strata
$> mkdir build
$> cd build
$> QWT_ROOT_DIR="/usr/local/Cellar/qwt/6.1.3_4"
$> QWT_INCLUDE_DIR="/usr/local/Cellar/qwt/6.1.3_4/lib/qwt.framework/Versions/6/Headers"
$> GSL_ROOT_DIR="/usr/local/Cellar/gsl/2.5"
$> cmake .. \
    -DQWT_ROOT_DIR=$QWT_ROOT_DIR \
    -DQWT_INCLUDE_DIR=$QWT_INCLUDE_DIR \
    -DGSL_ROOT_DIR=$GSL_ROOT_DIR \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX:STRING=dist
$> cmake --build . --target install

After building, the executable can be run by issuing the following command from the build directory:

$> ./dist/usr/bin/strata

Right now (12/15/2019) on macOS Mojave homebrew installs qwt version 6.1.4 and gls version 2.6, so change the relative lines

$> QWT_ROOT_DIR="/usr/local/Cellar/qwt/6.1.4"
$> QWT_INCLUDE_DIR="/usr/local/Cellar/qwt/6.1.4/lib/qwt.framework/Versions/6/Headers"
$> GSL_ROOT_DIR="/usr/local/Cellar/gsl/2.6"

or in case of error control the version in the directory: /usr/local/Cellar/

If you find a cleaner way to specific the library paths, please let me know.

Build on Apple Silicon

For Apple Silicon (M-Series Chips), the brew installation location is moved to /opt/homebrew. So some installation instruction is different.

Make sure you have homebrew installed, then install the dependencies as normal. '''bash brew install qt gsl qwt cmake '''

Then clone the git repo, cd into the repo, make the build folder, and then cd into the build folder.

'''bash git clone https://github.com/arkottke/strata.git cd strata mkdir build cd build '''

Then run the following to compile. '''bash cmake .. \
-DQWT_ROOT_DIR=$(brew --prefix qwt)
-DQWT_INCLUDE_DIR=$(brew --prefix qwt)/lib/qwt.framework/Headers
-DGSL_ROOT_DIR=$(brew --prefix gsl)
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=dist

cmake --build . --target install '''

Now you installed the strata into your /Application folder. You can run it from searching 'strata' in spotline search.

Testing

Examples for testing are located in the example/ directory.

View on GitHub
GitHub Stars52
CategoryDevelopment
Updated3d ago
Forks35

Languages

C++

Security Score

85/100

Audited on Mar 24, 2026

No findings