emg3d icon indicating copy to clipboard operation
emg3d copied to clipboard

Improve jvec/jtvec

Open prisae opened this issue 4 years ago • 0 comments

e4d6ac8c4bcc99f65d62f8ff6fa4b0a3ff662180 introduced jvec and jtvec. There are a couple of things that need improvements down the road. An issue to keep track of it:

  • [ ] Restructure the internal layout of gradient/_bcompute/_get_rfield/_jvec/_jtvec
  • [ ] Expand documentation, adding the derivation for jvec and jtvec in more detail
  • [ ] Optimize the entire gradient-chain for speed
  • [ ] Add an example to the gallery using SimPEG(emg3d)

Also, testing should be improved:

  • [x] Add adjoint tests and derivative tests using discretize
    • [x] src-rec
    • [x] mapping
    • [x] interpolation
    • [x] jvec/jtvec (overall)

More work is required to make it possible to have automatic gridding ('gridding' != 'same').

  • [ ] SimPEG@emg3d-solver needs adjustments to work with different inversion and computational grids
  • [ ] jvec: vector should probably be a Model (needs adjustments in SimPEG@emg3d-solver)
  • [x] jtvec: vector should probably be a DataArray ~(needs adjustments in SimPEG@emg3d-solver)~ (both is already possible, ndarray or DataArray)
  • [x] Check interpolations; maps.interp_edges_to_vol_averages; grid.get_edge_inner_product_deriv
  • [x] Automatic gridding SimPEG@emg3d-solver: Which model is used when to create grids? Needs work

Current relevant branches:

  • emg3d:
    • ~https://github.com/emsig/emg3d/tree/dev-simpeg-autogridding~
    • ~https://github.com/emsig/emg3d/tree/gradient-variants~
    • main or emg3d>=v1.5.0
  • SimPEG:
    • ~https://github.com/simpeg/simpeg/tree/emg3d-solver~
    • https://github.com/simpeg/simpeg/tree/emg3d-solver-new

prisae avatar Sep 05 '21 13:09 prisae