Direct Current Resistivity¶
SimPEG.electromagnetics.static.resistivity and SimPEG.electromagnetics.static.induced_polarization uses SimPEG as the framework for the forward and inverse direct current (DC) resistivity and induced polarization (IP) geophysical problems.
DC resistivity survey¶
Electrical resistivity of subsurface materials is measured by causing an electrical current to flow in the earth between one pair of electrodes while the voltage across a second pair of electrodes is measured. The result is an “apparent” resistivity which is a value representing the weighted average resistivity over a volume of the earth. Variations in this measurement are caused by variations in the soil, rock, and pore fluid electrical resistivity. Surveys require contact with the ground, so they can be labour intensive. Results are sometimes interpreted directly, but more commonly, 1D, 2D or 3D models are estimated using inversion procedures (GPG).
Background¶
As direct current (DC) implies, in DC resistivity survey, we assume steady-state. We consider Maxwell’s equations in steady state as
Then by taking \(\div\) of the first equation, we have
where
Since \(\curl \e = 0\), we have
And by Ohm’s law, we have
Finally, we can compute the solution of the system:
Discretization¶
By using finite volume method (FVM), we discretize our system as
Here boundary condtions are embedded in the discrete differential operators. With some linear algebra we have
where
By solving this linear equation, we can compute the solution of \(\phi\). Based on this discretization, we derive sensitivity in discretized space. Sensitivity matrix can be in general can be written as
where
Here \(\bm\) indicates model parameters in discretized space.
API for DC codes¶
Simulation¶
-
class
SimPEG.electromagnetics.static.resistivity.simulation.
BaseDCSimulation
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.base.BaseEMSimulation
Base DC Problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertyrho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
Ainv
= None¶
-
gtgdiag
= None¶
-
fields
(m=None, calcJ=True)[source]¶ u = fields(m) The field given the model. :param numpy.ndarray m: model :rtype: numpy.ndarray :return: u, the fields
-
dpred
(m, f=None)[source]¶ Create the projected data from a model. The fields, f, (if provided) will be used for the predicted data instead of recalculating the fields (which may be expensive!).
\[d_\text{pred} = P(f(m))\]Where P is a projection of the fields onto the data space.
-
getSourceTerm
()[source]¶ Evaluates the sources, and puts them in matrix form :rtype: tuple :return: q (nC or nN, nSrc)
-
property
deleteTheseOnModelUpdate
¶ matrices to be deleted if the model maps for conductivity and/or permeability are updated
-
class
SimPEG.electromagnetics.static.resistivity.simulation.
Simulation3DCellCentered
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation.BaseDCSimulation
3D cell centered DC problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertyrho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
fieldsPair
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.Fields3DCellCentered
-
bc_type
= 'Dirichlet'¶
-
class
SimPEG.electromagnetics.static.resistivity.simulation.
Simulation3DNodal
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation.BaseDCSimulation
3D nodal DC problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertyrho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
fieldsPair
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.Fields3DNodal
-
SimPEG.electromagnetics.static.resistivity.simulation.
Simulation3DCellCentred
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.simulation.Simulation3DCellCentered
-
class
SimPEG.electromagnetics.static.resistivity.simulation.
Problem3D_N
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation.Simulation3DNodal
This class has been deprecated, see Simulation3DNodal for documentation
-
class
SimPEG.electromagnetics.static.resistivity.simulation.
Problem3D_CC
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation.Simulation3DCellCentered
This class has been deprecated, see Simulation3DCellCentered for documentation
-
class
SimPEG.electromagnetics.static.resistivity.simulation_2d.
BaseDCSimulation2D
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.base.BaseEMSimulation
Base 2.5D DC problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertynky (
Integer
): Number of kys to use in wavenumber space, an integer, Default: 11rho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
fieldsPair
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2D
-
fieldsPair_fwd
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.FieldsDC
-
fix_Jmatrix
= False¶
-
fields
(m)[source]¶ u = fields(m) The field given the model. :param numpy.ndarray m: model :rtype: numpy.ndarray :return: u, the fields
-
dpred
(m=None, f=None)[source]¶ Project fields to receiver locations :param Fields u: fields object :rtype: numpy.ndarray :return: data
-
property
deleteTheseOnModelUpdate
¶ matrices to be deleted if the model maps for conductivity and/or permeability are updated
-
property
MnSigma
¶ Node inner product matrix for (sigma). Used in the E-B formulation
-
property
MnSigmaDerivMat
¶ Derivative of MnSigma with respect to the model
-
MnSigmaDeriv
(u, v, adjoint=False)[source]¶ Derivative of MnSigma with respect to the model times a vector (u)
-
property
MccRhoi
¶ Cell inner product matrix for (rho^{-1}). Used in the H-J formulation
-
property
MccRhoiDerivMat
¶ Derivative of MccRho with respect to the model
-
class
SimPEG.electromagnetics.static.resistivity.simulation_2d.
Simulation2DCellCentered
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation_2d.BaseDCSimulation2D
2.5D cell centered DC problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertynky (
Integer
): Number of kys to use in wavenumber space, an integer, Default: 11rho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
fieldsPair
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2DCellCentered
-
fieldsPair_fwd
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.Fields3DCellCentered
-
bc_type
= 'Mixed'¶
-
class
SimPEG.electromagnetics.static.resistivity.simulation_2d.
Simulation2DNodal
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation_2d.BaseDCSimulation2D
2.5D nodal DC problem
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity matrix?, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertynky (
Integer
): Number of kys to use in wavenumber space, an integer, Default: 11rho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.
-
fieldsPair
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2DNodal
-
fieldsPair_fwd
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.Fields3DNodal
-
SimPEG.electromagnetics.static.resistivity.simulation_2d.
Simulation2DCellCentred
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.simulation_2d.Simulation2DCellCentered
-
class
SimPEG.electromagnetics.static.resistivity.simulation_2d.
Problem2D_N
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation_2d.Simulation2DNodal
This class has been deprecated, see Simulation2DNodal for documentation
-
class
SimPEG.electromagnetics.static.resistivity.simulation_2d.
Problem2D_CC
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.simulation_2d.Simulation2DCellCentered
This class has been deprecated, see Simulation2DCellCentered for documentation
-
class
SimPEG.electromagnetics.static.resistivity.simulation_1d.
Simulation1DLayers
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.base.BaseEMSimulation
1D DC Simulation
Required Properties:
counter (
Counter
): A SimPEG.utils.Counter object, an instance of Countermesh (
BaseMesh
): a discretize mesh instance, an instance of BaseMeshsensitivity_path (
String
): path to store the sensitivty, a unicode string, Default: ./sensitivity/None
solver_opts (
Dictionary
): solver options as a kwarg dict, a dictionarystoreJ (
Boolean
): store the sensitivity, a boolean, Default: Falsesurvey (
Survey
): a DC survey object, an instance of Survey
Optional Properties:
model (
Model
): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*, *) or (*)mu (
PhysicalProperty
): Magnetic Permeability (H/m), a physical property, Default: 1.25663706212e-06mui (
PhysicalProperty
): Inverse Magnetic Permeability (m/H), a physical propertyrho (
PhysicalProperty
): Electrical resistivity (Ohm m), a physical propertyrhoMap (
Mapping
): Mapping of Electrical resistivity (Ohm m) to the inversion model., a SimPEG Mapsigma (
PhysicalProperty
): Electrical conductivity (S/m), a physical propertysigmaMap (
Mapping
): Mapping of Electrical conductivity (S/m) to the inversion model., a SimPEG Mapthicknesses (
PhysicalProperty
): thicknesses of the layers, a physical propertythicknessesMap (
Mapping
): Mapping of thicknesses of the layers to the inversion model., a SimPEG Map
Other Properties:
rhoDeriv (
Derivative
): Derivative of Electrical resistivity (Ohm m) wrt the model.sigmaDeriv (
Derivative
): Derivative of Electrical conductivity (S/m) wrt the model.thicknessesDeriv (
Derivative
): Derivative of thicknesses of the layers wrt the model.
-
property
thicknesses
¶ thicknesses of the layers
-
property
thicknessesMap
¶ Mapping of thicknesses of the layers to the inversion model.
-
property
thicknessesDeriv
¶ Derivative of thicknesses of the layers wrt the model.
-
data_type
= 'volt'¶
-
fix_Jmatrix
= False¶
-
hankel_pts_per_dec
= None¶
-
hankel_filter
= 'key_51_2012'¶
-
fields
(m)[source]¶ u = fields(m) The field given the model. :param numpy.ndarray m: model :rtype: numpy.ndarray :return: u, the fields
-
dpred
(m=None, f=None)[source]¶ Project fields to receiver locations :param Fields u: fields object :rtype: numpy.ndarray :return: data
-
property
deleteTheseOnModelUpdate
¶ matrices to be deleted if the model maps for conductivity and/or permeability are updated
-
property
electrode_separations
¶ Electrode separations
-
property
offset
¶ Offset between a current electrode and a potential electrode
-
property
lambd
¶ Spatial frequency in Hankel domain np.sqrt(kx*2 + ky**2) = lamda
-
property
n_layer
¶ number of layers
-
property
geometric_factor
¶ number of layers
Survey¶
-
class
SimPEG.electromagnetics.static.resistivity.survey.
Survey
(*args, **kwargs)[source]¶ Bases:
SimPEG.survey.BaseSurvey
Base DC survey
Required Properties:
counter (
Counter
): A SimPEG counter object, an instance of Countersource_list (a list of
BaseSrc
): A list of sources for the survey, a list (each item is an instance of BaseSrc)survey_geometry (
StringChoice
): Survey geometry of DC surveys, any of “surface”, “borehole”, “general”, Default: surfacesurvey_type (
StringChoice
): DC-IP Survey type, any of “dipole-dipole”, “pole-dipole”, “dipole-pole”, “pole-pole”, Default: dipole-dipole
-
property
source_list
¶ source_list (a list of
BaseSrc
): A list of sources for the survey, a list (each item is an instance of BaseSrc)
-
property
survey_geometry
¶ survey_geometry (
StringChoice
): Survey geometry of DC surveys, any of “surface”, “borehole”, “general”, Default: surface
-
property
survey_type
¶ survey_type (
StringChoice
): DC-IP Survey type, any of “dipole-dipole”, “pole-dipole”, “dipole-pole”, “pole-pole”, Default: dipole-dipole
-
property
locations_a
¶ Location of the positive (+) current electrodes for each datum
-
property
locations_b
¶ Location of the negative (-) current electrodes for each datum
-
property
locations_m
¶ Location of the positive (+) potential electrodes for each datum
-
property
locations_n
¶ Location of the negative (-) potential electrodes for each datum
-
property
a_locations
¶ locations_a.a_locations has been deprecated. See locations_a for documentation
-
property
b_locations
¶ locations_b.b_locations has been deprecated. See locations_b for documentation
-
property
m_locations
¶ locations_m.m_locations has been deprecated. See locations_m for documentation
-
property
n_locations
¶ locations_n.n_locations has been deprecated. See locations_n for documentation
-
property
electrode_locations
¶ Unique locations of the A, B, M, N electrodes
-
set_geometric_factor
(data_type='volt', survey_type='dipole-dipole', space_type='half-space')[source]¶
-
class
SimPEG.electromagnetics.static.resistivity.survey.
Survey_ky
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.survey.Survey
This class has been deprecated, see Survey for documentation
-
class
SimPEG.electromagnetics.static.resistivity.sources.
BaseSrc
(*args, **kwargs)[source]¶ Bases:
SimPEG.survey.BaseSrc
Base DC source
Required Properties:
current (
Float
): amplitude of the source current, a float, Default: 1.0receiver_list (a list of
BaseRx
): receiver list, a list (each item is an instance of BaseRx)
Optional Properties:
location (
SourceLocationArray
): Location of the source [x, y, z] in 3D, a 1D array denoting the source location of <class ‘float’>, <class ‘int’> with shape (*)
-
class
SimPEG.electromagnetics.static.resistivity.sources.
Dipole
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.sources.BaseSrc
Dipole source
Required Properties:
current (
Float
): amplitude of the source current, a float, Default: 1.0location (a list of
SourceLocationArray
): location of the source electrodes, a list (each item is a 1D array denoting the source location of <class ‘float’>, <class ‘int’> with shape (*))receiver_list (a list of
BaseRx
): receiver list, a list (each item is an instance of BaseRx)
-
property
loc
¶ loc has been deprecated. See location for documentation
-
property
location
¶ location (a list of
SourceLocationArray
): location of the source electrodes, a list (each item is a 1D array denoting the source location of <class ‘float’>, <class ‘int’> with shape (*))
-
property
location_a
¶ Location of the A-electrode
-
property
location_b
¶ Location of the B-electrode
-
class
SimPEG.electromagnetics.static.resistivity.sources.
Pole
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.sources.BaseSrc
Required Properties:
current (
Float
): amplitude of the source current, a float, Default: 1.0receiver_list (a list of
BaseRx
): receiver list, a list (each item is an instance of BaseRx)
Optional Properties:
location (
SourceLocationArray
): Location of the source [x, y, z] in 3D, a 1D array denoting the source location of <class ‘float’>, <class ‘int’> with shape (*)
-
class
SimPEG.electromagnetics.static.resistivity.receivers.
BaseRx
(*args, **kwargs)[source]¶ Bases:
SimPEG.survey.BaseRx
Base DC receiver
Required Properties:
data_type (
StringChoice
): Type of DC-IP survey, any of “volt”, “apparent_resistivity”, “apparent_chargeability”, Default: voltlocations (
RxLocationArray
): Locations of the receivers (nRx x nDim), an array of receiver locations of <class ‘float’>, <class ‘int’> with shape (*, *)orientation (
StringChoice
): orientation of the receiver. Must currently be ‘x’, ‘y’, ‘z’, any of “x”, “y”, “z”projField (
StringChoice
): field to be projected in the calculation of the data, any of “phi”, “e”, “j”, Default: phistoreProjections (
Boolean
): Store calls to getP (organized by mesh), a boolean, Default: True
-
property
orientation
¶ orientation (
StringChoice
): orientation of the receiver. Must currently be ‘x’, ‘y’, ‘z’, any of “x”, “y”, “z”
-
property
projField
¶ projField (
StringChoice
): field to be projected in the calculation of the data, any of “phi”, “e”, “j”, Default: phi
-
property
data_type
¶ data_type (
StringChoice
): Type of DC-IP survey, any of “volt”, “apparent_resistivity”, “apparent_chargeability”, Default: volt
-
property
geometric_factor
¶
-
property
dc_voltage
¶
-
class
SimPEG.electromagnetics.static.resistivity.receivers.
Dipole
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.receivers.BaseRx
Dipole receiver
Required Properties:
data_type (
StringChoice
): Type of DC-IP survey, any of “volt”, “apparent_resistivity”, “apparent_chargeability”, Default: voltlocations (a list of
RxLocationArray
): list of locations of each electrode in a dipole receiver, a list (each item is an array of receiver locations of <class ‘float’>, <class ‘int’> with shape (*, *)) with length between 1 and 2orientation (
StringChoice
): orientation of the receiver. Must currently be ‘x’, ‘y’, ‘z’, any of “x”, “y”, “z”projField (
StringChoice
): field to be projected in the calculation of the data, any of “phi”, “e”, “j”, Default: phistoreProjections (
Boolean
): Store calls to getP (organized by mesh), a boolean, Default: True
-
threshold
= 1e-05¶
-
property
locations
¶ locations (a list of
RxLocationArray
): list of locations of each electrode in a dipole receiver, a list (each item is an array of receiver locations of <class ‘float’>, <class ‘int’> with shape (*, *)) with length between 1 and 2
-
property
locations_m
¶ Locations of the M-electrodes
-
property
locations_n
¶ Locations of the N-electrodes
-
property
nD
¶ Number of data in the receiver.
-
class
SimPEG.electromagnetics.static.resistivity.receivers.
Pole
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.receivers.BaseRx
Pole receiver
Required Properties:
data_type (
StringChoice
): Type of DC-IP survey, any of “volt”, “apparent_resistivity”, “apparent_chargeability”, Default: voltlocations (
RxLocationArray
): Locations of the receivers (nRx x nDim), an array of receiver locations of <class ‘float’>, <class ‘int’> with shape (*, *)orientation (
StringChoice
): orientation of the receiver. Must currently be ‘x’, ‘y’, ‘z’, any of “x”, “y”, “z”projField (
StringChoice
): field to be projected in the calculation of the data, any of “phi”, “e”, “j”, Default: phistoreProjections (
Boolean
): Store calls to getP (organized by mesh), a boolean, Default: True
-
property
nD
¶ Number of data in the receiver.
-
class
SimPEG.electromagnetics.static.resistivity.receivers.
Dipole_ky
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.receivers.Dipole
This class has been deprecated, see Dipole for documentation
-
class
SimPEG.electromagnetics.static.resistivity.receivers.
Pole_ky
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.receivers.Pole
This class has been deprecated, see Pole for documentation
Fields¶
-
class
SimPEG.electromagnetics.static.resistivity.fields.
FieldsDC
(*args, **kwargs)[source]¶ Bases:
SimPEG.fields.Fields
Required Properties:
- aliasFields (
Dictionary
): a dictionary of the aliased fields with [alias, location, function], e.g. {“b”:[“e”,”F”,lambda(F,e,ind)]} , a dictionary
- aliasFields (
simulation (
BaseSimulation
): a SimPEG simulation, an instance of BaseSimulation
-
knownFields
= {}¶
-
dtype
¶ alias of
builtins.float
-
property
survey
¶
-
class
SimPEG.electromagnetics.static.resistivity.fields.
Fields3DCellCentered
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields.FieldsDC
Required Properties:
simulation (
BaseSimulation
): a SimPEG simulation, an instance of BaseSimulation
-
knownFields
= {'phiSolution': 'CC'}¶
-
aliasFields
= {'charge': ['phiSolution', 'CC', '_charge'], 'charge_density': ['phiSolution', 'CC', '_charge_density'], 'e': ['phiSolution', 'F', '_e'], 'j': ['phiSolution', 'F', '_j'], 'phi': ['phiSolution', 'CC', '_phi']}¶
-
class
SimPEG.electromagnetics.static.resistivity.fields.
Fields3DNodal
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields.FieldsDC
Required Properties:
simulation (
BaseSimulation
): a SimPEG simulation, an instance of BaseSimulation
-
knownFields
= {'phiSolution': 'N'}¶
-
aliasFields
= {'charge': ['phiSolution', 'N', '_charge'], 'charge_density': ['phiSolution', 'CC', '_charge_density'], 'e': ['phiSolution', 'E', '_e'], 'j': ['phiSolution', 'E', '_j'], 'phi': ['phiSolution', 'N', '_phi']}¶
-
SimPEG.electromagnetics.static.resistivity.fields.
Fields3DCellCentred
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields.Fields3DCellCentered
-
class
SimPEG.electromagnetics.static.resistivity.fields.
Fields_CC
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields.Fields3DCellCentered
This class has been deprecated, see Fields3DCellCentered for documentation
-
class
SimPEG.electromagnetics.static.resistivity.fields.
Fields_N
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields.Fields3DNodal
This class has been deprecated, see Fields3DNodal for documentation
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields2D
(*args, **kwargs)[source]¶ Bases:
SimPEG.fields.TimeFields
Fancy Field Storage for a 2.5D code.
u[:,’phi’, kyInd] = phi print(u[src0,’phi’])
Only one field type is stored for each problem, the rest are computed. The fields obejct acts like an array and is indexed by
f = problem.fields(m) e = f[srcList,'e'] j = f[srcList,'j']
If accessing all sources for a given field, use the
f = problem.fields(m) phi = f[:,'phi'] e = f[:,'e'] b = f[:,'b']
The array returned will be size (nE or nF, nSrcs \(\times\) nFrequencies)
Required Properties:
- aliasFields (
Dictionary
): a dictionary of the aliased fields with [alias, location, function], e.g. {“b”:[“e”,”F”,lambda(F,e,ind)]} , a dictionary
- aliasFields (
simulation (
BaseEMSimulation
): 2D DC simulation, an instance of BaseEMSimulation
-
property
simulation
¶ simulation (
BaseEMSimulation
): 2D DC simulation, an instance of BaseEMSimulation
-
knownFields
= {}¶
-
dtype
¶ alias of
builtins.float
-
property
survey
¶
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields2DCellCentered
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2D
Fancy Field Storage for a 2.5D cell centered code.
Required Properties:
simulation (
BaseEMSimulation
): 2D DC simulation, an instance of BaseEMSimulation
-
knownFields
= {'phiSolution': 'CC'}¶
-
aliasFields
= {'charge': ['phiSolution', 'CC', '_charge'], 'charge_density': ['phiSolution', 'CC', '_charge_density'], 'e': ['phiSolution', 'F', '_e'], 'j': ['phiSolution', 'F', '_j'], 'phi': ['phiSolution', 'CC', '_phi']}¶
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields2DNodal
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2D
Fancy Field Storage for a 2.5D nodal code.
Required Properties:
simulation (
BaseEMSimulation
): 2D DC simulation, an instance of BaseEMSimulation
-
knownFields
= {'phiSolution': 'N'}¶
-
aliasFields
= {'charge': ['phiSolution', 'N', '_charge'], 'charge_density': ['phiSolution', 'CC', '_charge_density'], 'e': ['phiSolution', 'E', '_e'], 'j': ['phiSolution', 'E', '_j'], 'phi': ['phiSolution', 'N', '_phi']}¶
-
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields2DCellCentred
[source]¶ alias of
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2DCellCentered
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields_ky
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2D
This class has been deprecated, see Fields2D for documentation
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields_ky_CC
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2DCellCentered
This class has been deprecated, see Fields2DCellCentered for documentation
-
class
SimPEG.electromagnetics.static.resistivity.fields_2d.
Fields_ky_N
(*args, **kwargs)[source]¶ Bases:
SimPEG.electromagnetics.static.resistivity.fields_2d.Fields2DNodal
This class has been deprecated, see Fields2DNodal for documentation
Utils¶
-
SimPEG.electromagnetics.static.resistivity.utils.
WennerSrcList
(nElecs, aSpacing, in2D=False, plotIt=False)[source]¶ Source list for a Wenner Array
-
SimPEG.electromagnetics.static.resistivity.boundary_utils.
getxBCyBC_CC
(mesh, alpha, beta, gamma)[source]¶ This is a subfunction generating mixed-boundary condition:
\[ \begin{align}\begin{aligned}\nabla \cdot \vec{j} = -\nabla \cdot \vec{j}_s = q\\\rho \vec{j} = -\nabla \phi\\\alpha \phi + \beta \frac{\partial \phi}{\partial r} = \gamma \quad \vec{r} \subset \partial \Omega\\xBC = f_1(\alpha, \beta, \gamma)\\yBC = f(\alpha, \beta, \gamma)\end{aligned}\end{align} \]Computes xBC and yBC for cell-centered discretizations