JUDI.jl icon indicating copy to clipboard operation
JUDI.jl copied to clipboard

Clean up docs for sim src, add LS-RTM examples

Open ziyiyin97 opened this issue 2 years ago • 6 comments

  1. Clean up the sim src documentation in the doc folder
  2. Add LS-RTM example with anti-chattering
  3. Add LS-RTM example with sim src

ziyiyin97 avatar Feb 10 '22 19:02 ziyiyin97

Codecov Report

Merging #92 (8f48783) into master (204ac0e) will decrease coverage by 1.16%. The diff coverage is 44.57%.

@@            Coverage Diff             @@
##           master      #92      +/-   ##
==========================================
- Coverage   74.16%   73.00%   -1.17%     
==========================================
  Files          24       24              
  Lines        1858     1941      +83     
==========================================
+ Hits         1378     1417      +39     
- Misses        480      524      +44     
Impacted Files Coverage Δ
src/JUDI.jl 83.33% <ø> (ø)
src/TimeModeling/Types/GeometryStructure.jl 83.33% <0.00%> (-8.63%) :arrow_down:
src/TimeModeling/LinearOperators/operators.jl 58.90% <22.85%> (-11.37%) :arrow_down:
src/TimeModeling/Types/judiVector.jl 92.56% <96.66%> (+1.04%) :arrow_up:
src/TimeModeling/Types/abstract.jl 75.42% <0.00%> (+1.69%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 204ac0e...8f48783. Read the comment docs.

codecov[bot] avatar Feb 10 '22 19:02 codecov[bot]

Thanks for your feedback. Running time is less than 1.5 minutes for each example on my laptop so I don't think that affects the CI run time that much. These are just toy examples -- they might not produce super beautiful images in the end. I'll clean things up a bit then

ziyiyin97 avatar Feb 10 '22 20:02 ziyiyin97

Ideal set-up for sim source is to have a JOLI operator W and it could be applied on q, dobs, F, J. Basically, I envisage the process of taking the gradient to look like

r = W * J * x - W * dobs
g = J' * W' * r

so that these symbols are exactly what they are in the paper.

I think doing W*q and W*dobs would be straightforward, but doing W*F and W*J needs some thought because we don't want to evaluate F or J first. Same deal for adjoint. My current thought is to do something like this

  1. make W its own struct, namely judiSimSrcW <: joAbstractLinearOperator
  2. overload *(::judiSimSrcW, ::judiJacobian) to output a new judiJacobian, NOT composition of JOLI operators
  3. overload *(::judiSimSrcW, ::judiPDEfull) to output a new judiPDEfull
  4. also need to overload these for J'*W' and F'*W'

Any comment or suggestion? @mloubout thanks

ziyiyin97 avatar Feb 10 '22 21:02 ziyiyin97

That's the idea yes. Need to be careful about weights redrawing and such as well

mloubout avatar Feb 10 '22 22:02 mloubout

FYI things gonna change (for better) https://github.com/slimgroup/JUDI.jl/compare/refactor-22

So if you can keep it in mind. Only point source part is working for now.

mloubout avatar Feb 10 '22 23:02 mloubout

There are still things to be fixed but I would appreciate a quick look at this file to make sure I am doing it the correct way https://github.com/slimgroup/JUDI.jl/blob/8b680bd6453b814b42cd20c758e6a40a0607f21b/src/TimeModeling/LinearOperators/operators.jl

ziyiyin97 avatar May 11 '22 01:05 ziyiyin97

Closing as stale and ended up doing simsourcer myself since nothing was happening here

mloubout avatar Jun 02 '23 17:06 mloubout