Releases: PrincetonUniversity/SPECFEMPP
v0.3.0
What's Changed
This release contains a few major updates:
- Python Bindings
- Anisotropy Implementation
- Refactor for easier implementation of new media
- Visualization using VTK
- New examples and cookbooks
- meshfem3d integration (note: no IO or simulation support yet)
- macOS support
Details for each of these are below
New Contributors
- @int-ptr-ptr made their first contribution in #138
- @sirpipat made their first contribution in #154
Changes
Python Bindings
- Enabling
pip install
by @icui in #174 - Hello world for pybind by @icui in #186
- Basic Python executable by @icui in #197
- Remove [build-system] by @icui in #235
- Final implementation by @icui in #230
- Allow for receiver and source definition from Python by @lsawade in #397
- Capture Ctrl-C with Python binding by @icui in #415
Anisotropic media
PRs for the anisotropy implementation tracked by:
- Implemented new anisotropic material::properties and the allowed for reading by @lsawade in #263
- Implements point properties for anisotropic media by @Rohit-Kakodkar in #267
- Implement anisotropic properties_container. by @icui in #269
- Implements test for
specfem::mesh::materials
by @Rohit-Kakodkar in #273 - Added the anisotropic medium header by @lsawade in #271
- Added anisotropic receivers by @Rohit-Kakodkar in #284
- Added anisotropic mass matrix computations by @Rohit-Kakodkar in #286
- Added template specializations for acoustic and elastic kernels class by @Rohit-Kakodkar in #291
- Added anisotropic template instantiations by @Rohit-Kakodkar in #290
- Added method to compute anisotropic stacey traction by @Rohit-Kakodkar in #288
- Added anisotropic sources by @Rohit-Kakodkar in #283
- Added anisotropic tags to element ordering by @Rohit-Kakodkar in #282
- Implement kernels_container by @icui in #294
- Implementation of Frechet derivatives by @lsawade in #298
- Updated the driver function for frechet derivatives + fixes Tromp2005 snakefile.in by @lsawade in #304
- kernel writer by @icui in #300
- Fixed seg faults on tests | Fixed wavefield plotting by @Rohit-Kakodkar in #312
Visualization
- Added display section to runtime configuration by @Rohit-Kakodkar in #129
- Added write method for the plotter by @Rohit-Kakodkar in #131
- Wavefield access at x-th timestep by @Rohit-Kakodkar in #135
- Implements plotting routines for wavefields by @Rohit-Kakodkar in #139
- Added display section to docs by @Rohit-Kakodkar in #171
- Add visualization docs by @Rohit-Kakodkar in #180
- Live Screen Update capability by @Rohit-Kakodkar in #191
New Cookbooks & Examples
- Fluid-Solid Bathymetry by @sirpipat in #154 and #241 by @Rohit-Kakodkar
- Implement Anisotropic Crystal example by @lsawade in #308
- Solid-Solid-interface (Computational Seismology homework 9) cookbook and restructure Cookbooks by @lsawade in #385
New features added capabilities
- Pressure Wavefield by @Rohit-Kakodkar in #165
- Pressure Seismogram by @int-ptr-ptr in #138
- Pressure Seismogram fixes by @Rohit-Kakodkar in #229
- Pressure seismogram fixes by @Rohit-Kakodkar in #322
- Adds first derivative of the Gaussian as a source_time_function by @lsawade in #382
MacOS Support
- Compilation on MacOS by @lsawade in #166
- Implements seamless plotting using VTK on MacOS by @lsawade in #237
- Makes VTK an optional dependency in
CMakeLists.txt
by @Rohit-Kakodkar in #265
Other Updates
v0.3.0-release-candidate
What's Changed
This release contains a few major updates:
- Python Bindings
- Anisotropy Implementation
- Refactor for easier implementation of new media
- Visualization using VTK
- New examples and cookbooks
- meshfem3d integration (note: no IO or simulation support yet)
- macOS support
Details for each of these are below
New Contributors
- @int-ptr-ptr made their first contribution in #138
- @sirpipat made their first contribution in #154
Changes
Python Bindings
- Enabling
pip install
by @icui in #174 - Hello world for pybind by @icui in #186
- Basic Python executable by @icui in #197
- Remove [build-system] by @icui in #235
- Final implementation by @icui in #230
- Allow for receiver and source definition from Python by @lsawade in #397
- Capture Ctrl-C with Python binding by @icui in #415
Anisotropic media
PRs for the anisotropy implementation tracked by:
- Implemented new anisotropic material::properties and the allowed for reading by @lsawade in #263
- Implements point properties for anisotropic media by @Rohit-Kakodkar in #267
- Implement anisotropic properties_container. by @icui in #269
- Implements test for
specfem::mesh::materials
by @Rohit-Kakodkar in #273 - Added the anisotropic medium header by @lsawade in #271
- Added anisotropic receivers by @Rohit-Kakodkar in #284
- Added anisotropic mass matrix computations by @Rohit-Kakodkar in #286
- Added template specializations for acoustic and elastic kernels class by @Rohit-Kakodkar in #291
- Added anisotropic template instantiations by @Rohit-Kakodkar in #290
- Added method to compute anisotropic stacey traction by @Rohit-Kakodkar in #288
- Added anisotropic sources by @Rohit-Kakodkar in #283
- Added anisotropic tags to element ordering by @Rohit-Kakodkar in #282
- Implement kernels_container by @icui in #294
- Implementation of Frechet derivatives by @lsawade in #298
- Updated the driver function for frechet derivatives + fixes Tromp2005 snakefile.in by @lsawade in #304
- kernel writer by @icui in #300
- Fixed seg faults on tests | Fixed wavefield plotting by @Rohit-Kakodkar in #312
Visualization
- Added display section to runtime configuration by @Rohit-Kakodkar in #129
- Added write method for the plotter by @Rohit-Kakodkar in #131
- Wavefield access at x-th timestep by @Rohit-Kakodkar in #135
- Implements plotting routines for wavefields by @Rohit-Kakodkar in #139
- Added display section to docs by @Rohit-Kakodkar in #171
- Add visualization docs by @Rohit-Kakodkar in #180
- Live Screen Update capability by @Rohit-Kakodkar in #191
New Cookbooks & Examples
- Fluid-Solid Bathymetry by @sirpipat in #154 and #241 by @Rohit-Kakodkar
- Implement Anisotropic Crystal example by @lsawade in #308
- Solid-Solid-interface (Computational Seismology homework 9) cookbook and restructure Cookbooks by @lsawade in #385
New features added capabilities
- Pressure Wavefield by @Rohit-Kakodkar in #165
- Pressure Seismogram by @int-ptr-ptr in #138
- Pressure Seismogram fixes by @Rohit-Kakodkar in #229
- Pressure seismogram fixes by @Rohit-Kakodkar in #322
- Adds first derivative of the Gaussian as a source_time_function by @lsawade in #382
MacOS Support
- Compilation on MacOS by @lsawade in #166
- Implements seamless plotting using VTK on MacOS by @lsawade in #237
- Makes VTK an optional dependency in
CMakeLists.txt
by @Rohit-Kakodkar in #265
Other Updates
- Restructure IO routines by @lsawade in #157
- General
CMakeLists.txt
updates - CI Updates
- Updated Jenkins artifact folder by @Rohit-Kakodkadr in #184
- Jenkins fix for GNU tests by @Rohit-Kakodkar in #219
- Fix Boost installation to remove non-official dependency by @lsawade in #358
- Fixing docker image creation by @lsawade in #356
- Fixed clang-format issue for header files. by @lsawade in [https://github.com/Princeto...
v0.2.0
Description
This release adds support for forward-adjoint simulations and computing Misfit Kernels. Have a look at example 03 for user guide on how to use adjoint capabilities within SPECFEM++.
Documentation
The documentation for this release can be found here
Getting the code
git clone https://github.com/PrincetonUniversity/SPECFEMPP && \
cd SPECFEMPP && \
git checkout tags/0.2.0
What's Changed
-
Assembly implementation by @Rohit-Kakodkar in #103
- Addedspecfem::compute::assembly
, which holds all the assembly information
-specfem::compute::assembly
is organized to optimize for caching on CPUs and Coalescing on GPUs
- Documentation https://specfem2d-kokkos.readthedocs.io/en/devel/api/assembly/index.html -
Reimplement kernels by @Rohit-Kakodkar in #104
- Re-implemented compute kernels as elemental functions -
Write forward fields by @Rohit-Kakodkar in #105
- implemented forward wavefield writer
- implemeted IO libraries for ASCII and HDF5 -
Read backward fields by @Rohit-Kakodkar in #106
- Implemented wavefield readers -
Adjoint sources by @Rohit-Kakodkar in #107
- Implented adjoint sources
- External source time functions -
Adjoint simulations by @Rohit-Kakodkar in #112
- Implemented Misfit Kernels
- Implemented solver for combined forward-adjoint simulations
- SIMD implementation
- Writer for Misfit Kernels
Full Changelog: v0.1.0...0.2.0
0.2.0-release-candidate
Description
This release adds support for forward-adjoint simulations and computing Misfit Kernels. Have a look at example 03 for user guide on how to use adjoint capabilities within SPECFEM++.
Documentation
The documentation for this release can be found here
Getting the code
git clone https://github.com/PrincetonUniversity/SPECFEMPP && \
cd SPECFEMPP && \
git checkout tags/0.2.0-release-candidate
What's Changed
-
Assembly implementation by @Rohit-Kakodkar in #103
- Addedspecfem::compute::assembly
, which holds all the assembly information
-specfem::compute::assembly
is organized to optimize for caching on CPUs and Coalescing on GPUs
- Documentation https://specfem2d-kokkos.readthedocs.io/en/devel/api/assembly/index.html -
Reimplement kernels by @Rohit-Kakodkar in #104
- Re-implemented compute kernels as elemental functions -
Write forward fields by @Rohit-Kakodkar in #105
- implemented forward wavefield writer
- implemeted IO libraries for ASCII and HDF5 -
Read backward fields by @Rohit-Kakodkar in #106
- Implemented wavefield readers -
Adjoint sources by @Rohit-Kakodkar in #107
- Implented adjoint sources
- External source time functions -
Adjoint simulations by @Rohit-Kakodkar in #112
- Implemented Misfit Kernels
- Implemented solver for combined forward-adjoint simulations
- SIMD implementation
- Writer for Misfit Kernels
Full Changelog: v0.1.0...0.2.0-release-candidate
v0.1.0
Major Release Candidate
New Features
-
GLL Library
- GLL library implementation to compute GLL points and weights.
-
Meshing (MESHFEM)
- MESHFEM2D is included as the default mesher in this release
- Implemented MESH database reader for fortran binary generated by MESHFEM
-
Sources
- Force Source
- Moment-tensor source
-
Source time function
- Dirac delta source
- Ricker (Gaussian) source
-
Receiver
- Displacement
- Velocity
- Acceleration
-
Physics
- Elastic Domain
- Acoustic Domain
- Elastic-Acoustic Coupling
-
Boundary Conditions
- Free surface
- Stacey
-
Solver
- Newmark Time-Marching Solver
Major Changes
- None
Minor Changes
- None
Known Issues (Bugs)
Patches will be released soon for these bugs.
- Memory corruption issue for Dirichlet, Stacey and Composite BC on IntelLLVM compiler 2022.2.0 when running tests. The solver does not experience these issues. Check pull request #100
New Contributors
v0.1.0-release-candidate
Major Release Candidate
New Features
-
GLL Library
- GLL library implementation to compute GLL points and weights.
-
Meshing (MESHFEM)
- MESHFEM2D is included as the default mesher in this release
- Implemented MESH database reader for fortran binary generated by MESHFEM
-
Sources
- Force Source
- Moment-tensor source
-
Source time function
- Dirac delta source
- Ricker (Gaussian) source
-
Receiver
- Displacement
- Velocity
- Acceleration
-
Physics
- Elastic Domain
- Acoustic Domain
- Elastic-Acoustic Coupling
-
Boundary Conditions
- Free surface
- Stacey
-
Solver
- Newmark Time-Marching Solver
Major Changes
- None
Minor Changes
- None
Known Issues (Bugs)
Patches will be released soon for these bugs.
- Memory corruption issue for Dirichlet, Stacey and Composite BC on IntelLLVM compiler 2022.2.0
- Composite BC do not work using CUDA
New Contributors
- @lsawade made their first contribution in #40
- @williameaton made their first contribution in #73
- @sirpipat made their first contribution in #79
- @icui made their first contribution in #74
Full Changelog: https://github.com/PrincetonUniversity/SPECFEMPP/commits/v0.1.0-release-candidate
v0.0.1-beta
Initial release of SPECFEM2D KOKKOS package
We are pleased to announce first release 0.0.1-beta for Kokkos implementation of SPECFEM2D package. This version of the package is able to simulate wave propagation through elastic homogeneous media in 2-Dimensions.
What's Changed
- New: Added support for GLL quadrature by @Rohit-Kakodkar in #5
- New: Read fortran mesh database files generated by xmeshfem2d by @Rohit-Kakodkar in #7
- New: Create a Mesh struct to store the mesh (The mesh is created by reading the database binaries created by xmeshfem2d) by @Rohit-Kakodkar in #8
- New: Implemeted a source class (Currently only Dirac sources are enabled in this version of the package) by @Rohit-Kakodkar in #20
- New: Implemented Newmark Timescheme, Implemented domain class to store wavefields by @Rohit-Kakodkar in #21
- New: Enabled GPU support (First working GPU implementation) by @Rohit-Kakodkar in #26
- New: Implemented a time-marching (explicit) solver to simulate wave propagation by @Rohit-Kakodkar in #28
- New: Enabled simulation setup using a parameter YAML file by @Rohit-Kakodkar in #31
- New: Added support for command line parsing by @Rohit-Kakodkar in #34
- New: Added cookbook example for simulating wave propagation through homogeneous media by @Rohit-Kakodkar in #39
- New: Implemented routines to compute and store seismographs (Implemented a seismograph writer) by @Rohit-Kakodkar in #43
- Thanks to @lsawade, @icui and @EtienneBachmann for their help with running the code and with changes to the documentation
New Contributors
- @Rohit-Kakodkar made their first contribution in #1
- @lsawade made their first contribution in #40
Full Changelog: https://github.com/PrincetonUniversity/specfem2d_kokkos/commits/v0.0.1-beta