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

feature support specfem3d globe #143

Merged
merged 32 commits into from
Nov 24, 2022
Merged

feature support specfem3d globe #143

merged 32 commits into from
Nov 24, 2022

Conversation

bch0w
Copy link
Member

@bch0w bch0w commented Nov 19, 2022

This PR adds SPECFEM3D_GLOBE support to SeisFlows. Addresses some key differences between SPECFEM3D and 3D_GLOBE versions which required some re-tooling of SeisFlows. Major differences include:

  • 3DGLOBE models are split into regions (1, 2 and 3) for a non-truncated chunk, which changed how the model is partitioned, and had some downstream effects on Seisflows
  • Takes into account anisotropy, which adds additional parameters for vertically and horizontally polarized waves (general 21 parameter anisotropy is NOT accounted for, but should be easy enough to implement)
  • Globe code does not have an 'xgenerate_databases' step and also has some more strict requirements on the mesh/model compared to 3D
  • Globe code has Laplacian smoothing (which is included as an option)

This resulted in a re-tooled Model class (to allow for the 'regions' in the globe code), expansion on the previously unfinished specfem3d_globe solver class, and some generalization of workflow code to deal with some 3D and 3D_GLOBE differences.

This was successfully tested on Chinook04 (t1small partition) for a 1 event, 1 iteration inversion. All tests passing.

Relevant Issue: #141

…_globe working directory and adjoint simulation

included laplacian smoothing wrapper and allow user choice between gaussian and laplacian smoothing
…ed to figure out the intricacies of dealing with multiple regions and whether or not they are updated, which will affect the available kernels, but model reading for 3D globe as well as flavor guessing has been added
…del class. Now allows for user-definition of region for building model, and can read and write globe models which have a different format from specfem2d and 3d models
…els, also deals with all anisotropic model parameters
… which is 3dglobe only. this is used to deal with different regions in 3d globe models
…tencies between specfem3d and 3d_globe that make it difficult to have 3d as parent to 3d_globe. need to make some larger scale changes to incorporate
…s in line with how specfem3d_globe expects them
…tion to more dynamically find appropriate kernels generated by an adjoint simulation. the previous form of attempting a broad wildcard ended up grabbing undesired files
…odels

also specfem3d_globe model files was empty due to incorrect wildcard searching
…be. 3d_globe now treats region + parameter as a single parameter, meaning it can use the original model implementation mechanics
…egions as part of parameters rather than a separate variable
…a loop infinitely until OOM killed process. fixed this by statically generating acceptable parameter list at the top of the Model class, not with a loop in the init statement.

also threw a warning in there for specfem2d models that can't find coordinate files, rather than crashing out with an assertion error
…er than dynmically grabbing from user input parameter
@bch0w bch0w merged commit d6784a3 into devel Nov 24, 2022
@bch0w bch0w deleted the feature_specfem3d_globe branch November 24, 2022 01:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant