Release pyeq-0.53.9 has been used quite extensively to model the post-seismic slip following the 2016 Pedernales earthquake. The code appears to work well, and I hope to move towards a stable release soon.
There are a few issues that still needs further investigation or improvements:
on some anaconda version, the handling of sparse matrix raise some warnings about future compatibility
when stencil==16 for the Discrete Laplacian Operator (DLO), warning of bad efficiency using diagobal format for sparse matrix are raised.
in pyeq.regularization.laplace.make_normal_dlo_space_time.py line 55 in very slow
MESSAGE("Building non-zero rows of the Normal Discrete Laplace Operator")
rows = sum((m * [k] for k, m in enumerate(np.diff(Ndlot.indptr))), [])
MESSAGE("Adding regularization normal matrix to normal system")
model.N[rows,Ndlot.indices] += Ndlot.data
More thoughts are required to improve coding, compatibility and efficiency.
Additional remarks
stencil for DLO needs to be added as an option in pyeq configuration file
Temporal DLO at start tend to reduced moment rate for the two first model steps, where DLO simply becomes equality constraint. Current version has temporal smoothing removed for the first two model steps. Needs further investigation.
smoothing constraints normalization are a bit difficult and does not seem to be consistent among them self. While this does not impact results, it makes it longer to guess good values to start, which is painful for long run.
smoothing constraints are not written to the summary files => TBD
variable size triangle geometry seems to work. It requires DLO stencil to be 16 to have spatial smoothing constraints. The code has not been changed, but smoothing constraint are applied between triangles sharing a vertices (with the proper weight). Further check is needed to see how it behaves.
not only rms and wrms should be printed (and plotted), but it looks like that standard deviation (mean removed first) appears to be a better number to evaluate the model. Needs to be added in summary file
changing the matrix to symetric could be done after regularization and would save time
saving the normal system should be improved to at least take advantage of a symmetric matrix.
summary file should also print some roughness value for L-curve. Perhaps regularization matrix should be save together with the model to facilitate L-curve analysis
Release pyeq-0.53.9 has been used quite extensively to model the post-seismic slip following the 2016 Pedernales earthquake. The code appears to work well, and I hope to move towards a stable release soon.
There are a few issues that still needs further investigation or improvements:
More thoughts are required to improve coding, compatibility and efficiency.
Additional remarks
stencil for DLO needs to be added as an option in pyeq configuration file
Temporal DLO at start tend to reduced moment rate for the two first model steps, where DLO simply becomes equality constraint. Current version has temporal smoothing removed for the first two model steps. Needs further investigation.
smoothing constraints normalization are a bit difficult and does not seem to be consistent among them self. While this does not impact results, it makes it longer to guess good values to start, which is painful for long run.
smoothing constraints are not written to the summary files => TBD
variable size triangle geometry seems to work. It requires DLO stencil to be 16 to have spatial smoothing constraints. The code has not been changed, but smoothing constraint are applied between triangles sharing a vertices (with the proper weight). Further check is needed to see how it behaves.
not only rms and wrms should be printed (and plotted), but it looks like that standard deviation (mean removed first) appears to be a better number to evaluate the model. Needs to be added in summary file
changing the matrix to symetric could be done after regularization and would save time
saving the normal system should be improved to at least take advantage of a symmetric matrix.
summary file should also print some roughness value for L-curve. Perhaps regularization matrix should be save together with the model to facilitate L-curve analysis