Simpeg

Latest version: v0.21.1

Safety actively analyzes 627182 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 10

0.7.3

- from PR 677
- commits from lheagy
- review from sgkang, rowanc1

tl; dr
- inductive source bug fix for permeable targets
- solve the magnetostatic problem for inductive sources that have initial fields
- new waveforms: trapezoid, quarter-sine ramp on

Bug Fix: TDEM Inductive sources + permeable targets
How we initially calculated the source term for inductive sources when the model includes permeability was incorrect (I found this by comparing a magnetostatic solution with a late on-time solution. The late on-time solution matched the case where no permeable material was included), this pr fixes that for the E-B formulation.
![image](https://user-images.githubusercontent.com/6361812/36635793-138d3408-1970-11e8-9811-c5c926d0338c.png)

In addition, we now have the option to solve the magnetostatic problem for initial fields when permeable material is included, so a shut-off waveform can be used when permeable materials are in the domain

There is now a test to ensure that inductive sources are treating permeability properly

New Waveforms
- `TrapezoidWaveform` and `QuarterSineRampOnWaveform`

python
offTime=10
quarter_sine = TDEM.Src.QuarterSineRampOnWaveform(ramp_on=np.r_[0., 3], ramp_off=offTime - np.r_[1., 0] )
trapezoid = TDEM.Src.TrapezoidWaveform(ramp_on=np.r_[0., 3], ramp_off=offTime - np.r_[1., 0] )

nT = 1000
time = 10.*np.arange(nT)/nT
quarter_sine_plt = np.r_[[quarter_sine.eval(t) for t in time]]
trapezoid_plt = np.r_[[trapezoid.eval(t) for t in time]]


fig, ax = plt.subplots(1, 2, figsize=(8, 4))
ax[0].plot(time, quarter_sine_plt)
ax[0].set_title('quarter sine waveform')

ax[1].plot(time, trapezoid_plt)
ax[1].set_title('trapezoid waveform')

plt.tight_layout()


![image](https://user-images.githubusercontent.com/6361812/36616157-988a9648-1897-11e8-9615-37623141a790.png)

0.7.2

NSEM upgrades
Collections of updates focused on improved NSEM data functionality and updating `NSEM` module to comply with new developments.
- from pr 515
- commits from grosenkj
- review from rowanc1, lheagy

Highlights
- Compliance with new `SimPEG` features
- Uses the `SimPEG` new objective functions
- Relying on other latest and greatest `SimPEG` developments.
- Addresses some of the long-term development goals in 452
- Better plotting
- Name space clean ups
- `NSEMdata` improvements
- Adds `standarad_devation`, `floor` and `calc_uncertainies` to `Data` that are indexable in the same way as the data (in parallel with 672 and 202)
- Adds functions to work and manipulate `NSEMData` in `Utils.dataUtils`
- Plotting methods for `Data`
- New interactive `NSEMDataViewer` for comparing data
- Improved example
- 1D forward and inversion
![mt1d_plot](https://user-images.githubusercontent.com/6052367/36751927-7a1dc42e-1bb6-11e8-90af-74255ee0e244.png)
- 3D foward modelling
![mt3d_fwdmodel](https://user-images.githubusercontent.com/6052367/36751849-3ec2b63c-1bb6-11e8-8437-663d1be17728.png)
![mt3d_fwdappresplot-200_0](https://user-images.githubusercontent.com/6052367/36751911-72dd9c8e-1bb6-11e8-8ceb-0b715447d196.png)


- pep8 cleaning and maintainance and adding documentation.
- Address issues 631 and 665

Backward compatibility
From the current `master` version of `NSEM` module, there isn't a large difference and backward compatibility should be intact.
Majority of the work in this PR is focused on adding utilities to work and interact with `NSEM` data, clarifying how to use the code with better examples and do some minor maintenance.

0.7.1

Docs and Community
- from pr 657
- commits from lheagy
- review from thast, rowanc1

- add a CONTRIBUTING.rst,
- update the practices page,
- organize the getting started and overview pages in their own directory, separate form the api of the core

0.7.0

DC-IP upgrades

- from PR 650
- commits from sgkang, thast, micmitch, fourndo
- review from lheagy, rowanc1

This release is motivated by enhancing DC/IP packages in SimPEG, and several contributors have sweated on this release for the past several months. There are four main categories that developments have been carried out:
- Physics
- Utilities
- Inversion Directives

Highlights of each development is summarized below.

Physics
**Handling Pole-Pole data**
- Mixed boundary condition for `Problem2D_CC` and `Problem3D_CC`

**Easy import for DC and IP problems**
- Now DC and IP can be easily imported:
python
from SimPEG import DC, IP


**Storing Sensitivity**
- Sensitivity can be stored, and this option can be used in the inversion:
python
problem = DC.Problem3D_CC(mesh, storeJ=True, ...)
J = problem.getJ(m)


**Working DC octree inversion** (thanks to fourndo and micmitch)
- This is limited in a specific branch of discretize package: `discretize/TreeMesh_CellGrad`
- Regularization and DC problems have been improved to handle octree and working!
- Mesh generation utility has not been updated in this branch, but will be included in the next release.
- IP problem has not been tested for octree yet.

Utilities for DC and IP problems (thanks to thast )
**Updated StaticUtils**
- IO functions for UBC-GIF codes DCIP2D and DCIP3D
- add Utils such `electrode_separations` or `geometric_factor`
- Utils are now compatible with all types of survey

**Survey and I/O**
- IO class for DC problem is initiated, but still requires further developments.
- Synthetic DC survey can be easily generated using `StaticUtils` + `DC.IO` + `DC.Survey`

python
Initiate I/O class for DC
IO = DC.IO()
endl = np.array([[xmin, ymin, zmin], [xmax, ymax, zmax]])
Generate DC survey object
survey = DC.Utils.gen_DCIPsurvey(endl, survey_type=survey_type, dim=2,
a=10, b=10, n=10)
Obtain ABMN locations
survey.getABMN_locations()
Obtain 2D TensorMesh
mesh, actind = IO.set_mesh()
Generate Topography
topo, mesh1D = DC.Utils.genTopography(mesh, -10, 0, its=100)
Generate active cells
actind = Utils.surface2ind_topo(mesh, np.c_[mesh1D.vectorCCx, topo])
Drape electrode locations to topography
survey.drapeTopo(mesh, actind, option="top")


Inversion Directives (thanks to fourndo!)
- Add sensitivity weighting directive
- Update IRLS directive
- Change to Directive to convert regularization, misfit to ComboObjective

0.6.5

from 655
- update link to paper in the em examples to point to computers and geoscience instead of arxiv
- update pypi credentials so simpeg will auto-deploy
- update dependence on properties and vectormath to be in-sync with discretize (we require `vectormath` and `properties>=0.3.6b0`

0.6.3

Changes from: 648
Commits from thast, fourndo
Review from lheagy

New Examples
- 2D DC inversion: conductive and resistive cylinders
- 3D DC inversion: conductive and resistive spheres

![image](https://user-images.githubusercontent.com/6361812/32991950-88551420-cd23-11e7-84ae-06f0d7cae6be.png)

![image](https://user-images.githubusercontent.com/6361812/32991953-95119cb0-cd23-11e7-8f24-1dc3bbe67913.png)


Updates
- Update to DCUtils.gen_DCIPsurvey() : Survey Generator can be used now for 2.5D survey.

Page 7 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.