You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the implementation of Stacey boundary condition, spyro will have three options of boundary conditions (correct me if I'm missing other implementations that should be addressed):
PML
Clayton-Engquist A1
Stacey
I think we need to define how the absorbing boundary condition should be structured to allow configuring each of the boundary conditions in a clear way for the user. My initial proposal is to introduce a nested dictionary structure to separate parameters that are specific to a absorbing boundary condition method. For example:
d = {
"absorving_boundary_conditions": {
"damping_type": "PML", # or local (we may introduce other options later, such as hydrid)
"PML": {
"exponent": 2,
"cmax": 4.7,
"R": 1e-6,
"pad_length": 0.25,
},
"local": {
"type": "Stacey", # or CE_A1 (Clayton-Engquist A1) - in the future we may also add Higdon, Lysmer-Kuhlemeyer, etc for completeness
"dt_scheme": "backward", # or "central" (finite-difference scheme for velocity calculation)
},
}
Do you have any thoughts?
PS: the key "absorving_boundary_conditions" is misspelled in the code. I can fix it during the development of this issue.
I agree with your nested dictionary approach for structuring boundary condition parameters; this layout seems clean and flexible, particularly for introducing new boundary options in the future.
Implement Stacey boundary condition for isotropic elastic wave propagator
The text was updated successfully, but these errors were encountered: