Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPECFEM++ (v0.1.0) #101

Merged
merged 366 commits into from
Jan 9, 2024
Merged

SPECFEM++ (v0.1.0) #101

merged 366 commits into from
Jan 9, 2024

Conversation

Rohit-Kakodkar
Copy link
Collaborator

Description

First major release of SPECFEM++ (v0.1.0)

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

Known Issues

  • Intel compiler displacement tests fail due to memory corruption.
    • Need to implement all dynamic allocations as dynamic pointers

Issue Number

If there is an issue created for these changes, link it here

Checklist

Please make sure to check developer documentation on specfem docs.

  • I ran the code through pre-commit to check style
  • My code passes all the integration tests
  • I have added sufficient unittests to test my changes
  • I have added/updated documentation for the changes I am proposing
  • I have updated CMakeLists to ensure my code builds
  • My code builds across all platforms

Rohit-Kakodkar and others added 28 commits January 3, 2024 13:55
- Shared pointer implementation
	- Shared pointer implementations for
		1. solver
		2. writer
		3. materials
		4. sources
		5. receivers
	- This should improve memory safety
	- TODO: move qudrature to separate class and MPI to a shared_ptr
		- This will be a major change

- There are still memory safety issues when running large number of tests using ctest with intel compiler. The current workaround is to explicitly run displacement test individually
	- Eventually I want to make the code memory safe using shared_ptr. i.e. complete the TODO above.
- For composite boundaries :
	- partial derivatives need to be loaded when the boundary_tag == composite_stacey_dirichlet
- updated to cudatoolkit/12.2
- using della module boost/1.73.0 for intel compilation/unittests
@Rohit-Kakodkar Rohit-Kakodkar changed the title Devel SPECFEM++ (v0.1.0) Jan 9, 2024
@Rohit-Kakodkar Rohit-Kakodkar merged commit 22b82c3 into main Jan 9, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants