pygimli.physics.gravimetry

Solve gravimetric and magneto static problems in 2D and 3D analytical

Overview

Functions

BZPoly(pnts, poly, mag[, openPoly])

TODO WRITEME.

BaZCylinderHoriz(pnts, R, pos, M)

Magnetic anomaly for a horizontal cylinder.

BaZSphere(pnts, R, pos, M)

Magnetic anomaly for a sphere.

gradGZCylinderHoriz(r, a, rho[, pos])

TODO WRITEME.

gradGZHalfPlateHoriz(pnts, t, rho[, pos])

TODO WRITEME.

gradGZSphere(r, rad, rho[, pos])

TODO WRITEME.

gradUCylinderHoriz(r, a, rho[, pos])

2D Gradient of gravimetric potential of horizontal cylinder (in mGal at position pos).

gradUHalfPlateHoriz(pnts, t, rho[, pos])

Gravitational field od a horizontal half plate.

gradUSphere(r, rad, rho[, pos])

Gravitational field of a sphere.

solveGravimetry(mesh[, dDensity, pnts, complete])

Solve gravimetric response.

uCylinderHoriz(pnts, rad, rho[, pos])

Gravitational potential of horizonzal cylinder.

uSphere(r, rad, rho[, pos])

Gravitational potential of a sphere.

Classes

GravimetryModelling([verbose])

Gravimetry modelling operator.

Functions

BZPoly

pygimli.physics.gravimetry.BZPoly(pnts, poly, mag, openPoly=False)[source]

TODO WRITEME.

Parameters
  • pnts (list) – Measurement points [[p1x, p1z], [p2x, p2z],…]

  • poly (list) – Polygon [[p1x, p1z], [p2x, p2z],…]

  • mag ([M_x, M_y, M_z]) – Magnetization = [M_x, M_y, M_z]

BaZCylinderHoriz

pygimli.physics.gravimetry.BaZCylinderHoriz(pnts, R, pos, M)[source]

Magnetic anomaly for a horizontal cylinder.

Calculate the vertical component of the anomalous magnetic field Bz for a buried horizontal cylinder at position pos with radius R for a given magnetization M at measurement points pnts.

TODO .. only 2D atm

Parameters
  • pnts ([[x,z], ]) – measurement points – array[x,y,z]

  • R (float) – radius

  • pos ([float, float]) – [x,z] – sphere center

  • M ([float, float]) – [Mx, Mz] – magnetization

BaZSphere

pygimli.physics.gravimetry.BaZSphere(pnts, R, pos, M)[source]

Magnetic anomaly for a sphere.

Calculate the vertical component of the anomalous magnetic field Bz for a buried sphere at position pos with radius R for a given magnetization M at measurement points pnts.

Parameters
  • pnts ([[x,y,z], ]) – measurement points – array[x,y,z]

  • R (float) – radius

  • pos ([float, float, float]) – [x,y,z] – sphere center

  • M ([float, float, float]) – [Mx, My, Mz] – magnetization

gradGZCylinderHoriz

pygimli.physics.gravimetry.gradGZCylinderHoriz(r, a, rho, pos=0.0, 0.0)[source]

TODO WRITEME.

\[g = -grad u(r), with r = [x,z], |r| = \sqrt{x^2+z^2}\]
Parameters
  • r (list[[x, z]]) – Observation positions

  • a (float) – Cylinder radius in [meter]

  • rho – Density in [kg/m^3]

Returns

Return type

grad gz, [gz_x, gz_z]

Examples using pygimli.physics.gravimetry.gradGZCylinderHoriz

gradGZHalfPlateHoriz

pygimli.physics.gravimetry.gradGZHalfPlateHoriz(pnts, t, rho, pos=0.0, 0.0)[source]

TODO WRITEME.

\[g = -\nabla u\]
Parameters
  • pnts (array (\(n\times 2\))) – n 2 dimensional measurement points

  • t (float) – Plate thickness in \([\text{m}]\)

  • rho (float) – Density in \([\text{kg}/\text{m}^3]\)

Returns

gz – Gradient of z-component of g \(\nabla(\frac{\partial u}{\partial\vec{r}}_z)\)

Return type

array

Examples using pygimli.physics.gravimetry.gradGZHalfPlateHoriz

gradGZSphere

pygimli.physics.gravimetry.gradGZSphere(r, rad, rho, pos=0.0, 0.0, 0.0)[source]

TODO WRITEME.

\[g = -\nabla u\]
Parameters
Returns

Return type

[d g_z /dx, d g_z /dy, d g_z /dz]

gradUCylinderHoriz

pygimli.physics.gravimetry.gradUCylinderHoriz(r, a, rho, pos=0.0, 0.0)[source]

2D Gradient of gravimetric potential of horizontal cylinder (in mGal at position pos).

\[g = -G[m^3/(kg s^2)] * dM[kg/m] * 1/r[1/m] * grad(r)[1/1] = [m^3/(kg s^2)] * [kg/m] * 1/m * [1/1] == m/s^2\]
Parameters
  • r (list[[x, z]]) – Observation positions

  • a (float) – Cylinder radius in [meter]

  • pos ([x,z]) – Center position of cylinder.

  • rho (float) – Delta density in [kg/m^3]

Returns

g – Gradient of gravimetry potential.

Return type

[dudx, dudz]

Examples using pygimli.physics.gravimetry.gradUCylinderHoriz

gradUHalfPlateHoriz

pygimli.physics.gravimetry.gradUHalfPlateHoriz(pnts, t, rho, pos=0.0, 0.0)[source]

Gravitational field od a horizontal half plate.

\[g = -grad u,\]
Parameters
  • pnts

  • t

  • rho – Density in [kg/m^3]

Returns

z-component of g .. math:: nabla(partial u/partialvec{r})_z

Return type

gz

Examples using pygimli.physics.gravimetry.gradUHalfPlateHoriz

gradUSphere

pygimli.physics.gravimetry.gradUSphere(r, rad, rho, pos=0.0, 0.0, 0.0)[source]

Gravitational field of a sphere.

\[g = -G[m^3/(kg s^2)] * dM[kg] * 1/r^2 1/m^2] * \grad(r)[1/1] = [m^3/(kg s^2)] * [kg] * 1/m^2 * [1/1] == m/s^2\]
Parameters
Returns

[gx, gy, gz] – gravitational acceleration (note that gz points negative)

Return type

[float*3]

solveGravimetry

pygimli.physics.gravimetry.solveGravimetry(mesh, dDensity=None, pnts=None, complete=False)[source]

Solve gravimetric response.

2D with pygimli.physics.gravimetry.lineIntegralZ_WonBevis

3D with pygimli.physics.gravimetry.gravMagBoundarySinghGup

TOWRITE

Parameters
  • mesh (GIMLI::Mesh) – 2d or 3d mesh with or without cells.

  • dDensity (float | array) –

    Density difference.

    • float – solve for positive boundary marker only.

      Assuming one inhomogeneity.

    • [[int, float]] – solve for multiple positive boundaries TOIMPL

    • array – solve for one delta density value per cell

    • None – return per cell kernel matrix G TOIMPL

  • pnts ([[x_i, y_i]]) – List of measurement positions.

  • complete (bool [False]) – If True return whole solution or matrix for [dgx, dgy, dgz] and … TODO

Examples using pygimli.physics.gravimetry.solveGravimetry

uCylinderHoriz

pygimli.physics.gravimetry.uCylinderHoriz(pnts, rad, rho, pos=0.0, 0.0)[source]

Gravitational potential of horizonzal cylinder.

TODO

uSphere

pygimli.physics.gravimetry.uSphere(r, rad, rho, pos=None)[source]

Gravitational potential of a sphere.

Gravitational potential of a sphere with radius and density at a given position.

\[u = -G * dM * \frac{1}{r}\]
Parameters

Classes

GravimetryModelling

class pygimli.physics.gravimetry.GravimetryModelling(verbose=True)[source]

Bases: pygimli.core.ModellingBaseMT__

Gravimetry modelling operator.

__init__(verbose=True)[source]

Constructor.

createJacobian(model)[source]

Create Jacobian matrix for a density model.

Create Jacobian matrix for a density distribution (model) and store it internal.

createStartmodel()[source]

Create the default starting model.

response(dDensity)[source]

Calculate response for a given density distribution.

setSensorPositions(pnts)[source]

Set measurement locations. [[x,y,z],…].