simpeg.potential_fields.gravity.Simulation3DIntegral#

class simpeg.potential_fields.gravity.Simulation3DIntegral(mesh, rho=None, rhoMap=None, engine='geoana', numba_parallel=True, **kwargs)[source]#

Bases: BasePFSimulation

Gravity simulation in integral form.

Note

The gravity simulation assumes the following units for its inputs and outputs:

  • Density model is assumed to be in gram per cubic centimeter (g/cc).

  • Acceleration components ("gx", "gy", "gz") are returned in mgal (\(10^{-5} \text{m}/\text{s}^2\)).

  • Gradient components ("gxx", "gyy", "gzz", "gxy", "gxz", "gyz", "guv") are returned in Eotvos (\(10^{-9} s^{-2}\)).

Important

Following SimPEG convention for the right-handed xyz coordinate system, the z axis points upwards. Therefore, the "gz" component corresponds to the upward component of the gravity acceleration vector.

Parameters:
meshdiscretize.TreeMesh or discretize.TensorMesh

Mesh use to run the gravity simulation.

surveysimpeg.potential_fields.gravity.Survey

Gravity survey with information of the receivers.

active_cells(n_cells) numpy.ndarray, optional

Array that indicates which cells in mesh are active cells.

rhonumpy.ndarray, optional

Density array for the active cells in the mesh.

rhoMapMapping, optional

Model mapping.

sensitivity_dtypenumpy.dtype, optional

Data type that will be used to build the sensitivity matrix.

store_sensitivities{“ram”, “disk”, “forward_only”}

Options for storing sensitivity matrix. There are 3 options

  • ‘ram’: sensitivities are stored in the computer’s RAM

  • ‘disk’: sensitivities are written to a directory

  • ‘forward_only’: you intend only do perform a forward simulation and sensitivities do not need to be stored. The sensitivity matrix G is never created, but it’ll be defined as a LinearOperator.

sensitivity_pathstr, optional

Path to store the sensitivity matrix if store_sensitivities is set to "disk". Default to “./sensitivities”.

engine{“geoana”, “choclo”}, optional

Choose which engine should be used to run the forward model.

numba_parallelbool, optional

If True, the simulation will run in parallel. If False, it will run in serial. If engine is not "choclo" this argument will be ignored.

Attributes

G

Gravity forward operator.

active_cells

Active cells in the mesh.

clean_on_model_update

A list of solver objects to clean when the model is updated

counter

SimPEG Counter object to store iterations and run-times.

deleteTheseOnModelUpdate

HasModel.deleteTheseOnModelUpdate has been deprecated.

engine

Engine that will be used to run the simulation.

ind_active

active_cells.ind_active has been deprecated.

linear_model

The model for a linear problem physical property model.

mesh

Mesh for the integral potential field simulations.

model

The inversion model.

model_deriv

Derivative of The model for a linear problem wrt the model.

model_map

Mapping of the inversion model to The model for a linear problem.

n_processes

Number of processes to use for forward modeling.

needs_model

True if a model is necessary

numba_parallel

Run simulation in parallel or single-threaded when using Numba.

rho

Density physical property model.

rhoDeriv

Derivative of Density wrt the model.

rhoMap

Mapping of the inversion model to Density.

sensitivity_dtype

dtype of the sensitivity matrix.

sensitivity_path

Path to directory where sensitivity file is stored.

store_sensitivities

Options for storing sensitivities.

survey

The survey for the simulation.

verbose

Verbose progress printout.

Methods

Jtvec(m, v[, f])

Dot product between transposed sensitivity matrix and a vector.

Jtvec_approx(m, v[, f])

Approximation of the Jacobian transpose times a vector for the model provided.

Jvec(m, v[, f])

Dot product between sensitivity matrix and a vector.

Jvec_approx(m, v[, f])

Approximation of the Jacobian times a vector for the model provided.

dpred([m, f])

Predicted data for the model provided.

evaluate_integral(receiver_location, components)

Compute the forward linear relationship between the model and the physics at a point and for all components of the survey.

fields(m)

Forward model the gravity field of the mesh on the receivers in the survey

getJ(m[, f])

Sensitivity matrix \(\mathbf{J}\).

getJtJdiag(m[, W, f])

Compute diagonal of \(\mathbf{J}^T \mathbf{J}`\).

linear_operator()

Return linear operator.

make_synthetic_data(m[, relative_error, ...])

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.

Galleries and Tutorials using simpeg.potential_fields.gravity.Simulation3DIntegral#

PF: Gravity: Tiled Inversion Linear

PF: Gravity: Tiled Inversion Linear

PF: Gravity: Laguna del Maule Bouguer Gravity

PF: Gravity: Laguna del Maule Bouguer Gravity

Cross-gradient Joint Inversion of Gravity and Magnetic Anomaly Data

Cross-gradient Joint Inversion of Gravity and Magnetic Anomaly Data

Joint PGI of Gravity + Magnetic on an Octree mesh using full petrophysical information

Joint PGI of Gravity + Magnetic on an Octree mesh using full petrophysical information

Joint PGI of Gravity + Magnetic on an Octree mesh without petrophysical information

Joint PGI of Gravity + Magnetic on an Octree mesh without petrophysical information