Closed jcapriot closed 3 years ago
Merging #20 (2ea415d) into master (8a93dd9) will increase coverage by
6.65%
. The diff coverage is78.05%
.
@@ Coverage Diff @@
## master #20 +/- ##
==========================================
+ Coverage 52.63% 59.28% +6.65%
==========================================
Files 10 20 +10
Lines 722 948 +226
==========================================
+ Hits 380 562 +182
- Misses 342 386 +44
Impacted Files | Coverage Δ | |
---|---|---|
geoana/em/setup.py | 0.00% <0.00%> (ø) |
|
geoana/kernels/_extensions/setup.py | 0.00% <0.00%> (ø) |
|
geoana/kernels/setup.py | 0.00% <0.00%> (ø) |
|
geoana/setup.py | 0.00% <0.00%> (ø) |
|
geoana/em/fdem/wholespace.py | 69.64% <69.64%> (ø) |
|
geoana/em/fdem/base.py | 82.75% <82.75%> (ø) |
|
geoana/em/fdem/layered.py | 88.50% <88.50%> (ø) |
|
geoana/em/fdem/halfspace.py | 89.58% <89.58%> (ø) |
|
geoana/em/fdem/__init__.py | 100.00% <100.00%> (ø) |
|
geoana/kernels/__init__.py | 100.00% <100.00%> (ø) |
|
... and 13 more |
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 8a93dd9...2ea415d. Read the comment docs.
yeah, I'm happy with that too, should be easy to change quickly
This adds the analytic function of a vertical magnetic dipole in a half space from Ward and Hohmann's Chapter.
It also adds the semi-analytic form of the layered half-space solution. This is done analytically in the wavenumber domain, and then transformed back to the space domain using the filters from empymod. The kernel function also has the necessary derivatives implemented for calculating Jacobins with respect to these operations.
There are two versions of the kernel functions (which actually both run in similar time on my machine at this point). The first is a pure numpy solution. The second is an optional cython+cpp implementation. These algorithms both do the same thing (and are tested to match). The largest difference will be that the numpy version will require more memory to store the intermediate arrays necessary for broadcasting.
To enable building with the C extensions, the setup.py files will conditionally add the cython files to the build if the environment variable BUILD_GEOANA_EXT is set to something besides 0. This should allow us to still distribute the source code just fine for people who do not want to compile anything on the backend.
I do still need to double check that the cython source files will still be part of the source distribution that is uploaded however...