API¶
Below describes the classes, methods and properties relevant to forward modeling and inverting VRM responses in the time domain.
VRM Problem¶

class
SimPEG.VRM.ProblemVRM.
Problem_BaseVRM
(mesh, **kwargs)¶ Bases:
SimPEG.Problem.BaseProblem
Required Properties:
 indActive (
Array
): Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)  ref_factor (
Integer
): Sensitivity refinement factor, an integer in range [0, inf]  ref_radius (
Array
): Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)
Optional Properties:
 model (
Model
): Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)

Jtvec
(m, v, f=None)¶ Effect of transpose of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: JTv

Jtvec_approx
(m, v, f=None)¶ Approximate effect of transpose of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: JTv

Jvec
(m, v, f=None)¶ Effect of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: Jv

Jvec_approx
(m, v, f=None)¶ Approximate effect of J(m) on a vector v
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: approxJv

clean_on_model_update
= []¶

counter
= None¶

curModel
¶ Setting the curModel is depreciated.
Use SimPEG.Problem.model instead.

deleteTheseOnModelUpdate
= []¶

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

fields
(m)¶ The field given the model.
Parameters: m (numpy.array) – model Return type: numpy.array Returns: u, the fields

indActive
¶ indActive (
Array
) – Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)

ispaired
¶ True if the problem is paired to a survey.

mapPair
¶ alias of
IdentityMap

mapping
¶ Setting an unnamed mapping has been depreciated in v0.4.0. Please see the release notes for more details.

mesh
= None¶

model
¶ model (
Model
) – Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)

needs_model
¶ True if a model is necessary

pair
(d)¶ Bind a survey to this problem instance using pointers.

ref_radius
¶ ref_radius (
Array
) – Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

solverOpts
= {}¶

summary
()¶

survey
¶ The survey object for this problem.

surveyPair
¶ alias of
BaseSurvey

unpair
()¶ Unbind a survey from this problem instance.

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 indActive (

class
SimPEG.VRM.ProblemVRM.
Problem_Linear
(mesh, **kwargs)¶ Bases:
SimPEG.VRM.ProblemVRM.Problem_BaseVRM
Required Properties:
 indActive (
Array
): Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)  ref_factor (
Integer
): Sensitivity refinement factor, an integer in range [0, inf]  ref_radius (
Array
): Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)
Optional Properties:
 model (
Model
): Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)  xi (
PhysicalProperty
): Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1), a physical property  xiMap (
Mapping
): Mapping of Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1) to the inversion model., a SimPEG Map
Other Properties:
 xiDeriv (
Derivative
): Derivative of Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1) wrt the model.

A
¶ The geometric sensitivity matrix for the linear VRM problem. Accessing this property requires that the problem be paired with a survey object.

Jtvec
(m, v, f=None)¶ Compute (Pd*T*A*dxidm)^T * v

Jtvec_approx
(m, v, f=None)¶ Approximate effect of transpose of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: JTv

Jvec
(m, v, f=None)¶ Compute Pd*T*A*dxidm*v

Jvec_approx
(m, v, f=None)¶ Approximate effect of J(m) on a vector v
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: approxJv

T
¶ The characteristic decay matrix for the VRM problem. Accessing this property requires that the problem be paired with a survey object.

clean_on_model_update
= []¶

counter
= None¶

curModel
¶ Setting the curModel is depreciated.
Use SimPEG.Problem.model instead.

deleteTheseOnModelUpdate
= []¶

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

fields
(m)¶ Computes the fields d = T*A*m

indActive
¶ indActive (
Array
) – Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)

ispaired
¶ True if the problem is paired to a survey.

mapPair
¶ alias of
IdentityMap

mapping
¶ Setting an unnamed mapping has been depreciated in v0.4.0. Please see the release notes for more details.

mesh
= None¶

model
¶ model (
Model
) – Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)

needs_model
¶ True if a model is necessary

pair
(d)¶ Bind a survey to this problem instance using pointers.

ref_radius
¶ ref_radius (
Array
) – Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

solverOpts
= {}¶

summary
()¶

survey
¶ The survey object for this problem.

surveyPair
¶ alias of
SurveyVRM

unpair
()¶ Unbind a survey from this problem instance.

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.

xi
¶ Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1)

xiDeriv
¶ Derivative of Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1) wrt the model.

xiMap
¶ Mapping of Amalgamated Viscous Remanent Magnetization Parameter xi = dchi/ln(tau2/tau1) to the inversion model.
 indActive (

class
SimPEG.VRM.ProblemVRM.
Problem_LogUniform
(mesh, **kwargs)¶ Bases:
SimPEG.VRM.ProblemVRM.Problem_BaseVRM
Required Properties:
 indActive (
Array
): Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)  ref_factor (
Integer
): Sensitivity refinement factor, an integer in range [0, inf]  ref_radius (
Array
): Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)
Optional Properties:
 chi0 (
PhysicalProperty
): DC susceptibility, a physical property  dchi (
PhysicalProperty
): Frequency dependence, a physical property  model (
Model
): Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)  tau1 (
PhysicalProperty
): Low bound timerelaxation constant, a physical property  tau2 (
PhysicalProperty
): Upper bound timerelaxation constant, a physical property

A
¶ The geometric sensitivity matrix for the linear VRM problem. Accessing this property requires that the problem be paired with a survey object.

Jtvec
(m, v, f=None)¶ Effect of transpose of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: JTv

Jtvec_approx
(m, v, f=None)¶ Approximate effect of transpose of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: JTv

Jvec
(m, v, f=None)¶ Effect of J(m) on a vector v.
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: Jv

Jvec_approx
(m, v, f=None)¶ Approximate effect of J(m) on a vector v
Parameters:  m (numpy.array) – model
 v (numpy.array) – vector to multiply
 f (Fields) – fields
Return type: Returns: approxJv

chi0
¶ DC susceptibility

clean_on_model_update
= []¶

counter
= None¶

curModel
¶ Setting the curModel is depreciated.
Use SimPEG.Problem.model instead.

dchi
¶ Frequency dependence

deleteTheseOnModelUpdate
= []¶

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

fields
(m=None)¶ Computes the fields at every time d(t) = G*M(t)

indActive
¶ indActive (
Array
) – Topography active cells, a list or numpy array of <type ‘bool’> with shape (*)

ispaired
¶ True if the problem is paired to a survey.

mapPair
¶ alias of
IdentityMap

mapping
¶ Setting an unnamed mapping has been depreciated in v0.4.0. Please see the release notes for more details.

mesh
= None¶

model
¶ model (
Model
) – Inversion model., a numpy array of <type ‘float’>, <type ‘int’> with shape (*) or (*, *)

needs_model
¶ True if a model is necessary

pair
(d)¶ Bind a survey to this problem instance using pointers.

ref_radius
¶ ref_radius (
Array
) – Sensitivity refinement radii from sources, a list or numpy array of <type ‘float’> with shape (*)

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

solverOpts
= {}¶

summary
()¶

survey
¶ The survey object for this problem.

surveyPair
¶ alias of
BaseSurvey

tau1
¶ Low bound timerelaxation constant

tau2
¶ Upper bound timerelaxation constant

unpair
()¶ Unbind a survey from this problem instance.

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 indActive (
Waveform¶

class
SimPEG.VRM.WaveformVRM.
ArbitraryDiscrete
(**kwargs)¶ Bases:
properties.base.base.HasProperties
Required Properties:
 I_wave (
Array
): Waveform current, a list or numpy array of <type ‘float’> with shape (*)  t_wave (
Array
): Waveform times, a list or numpy array of <type ‘float’> with shape (*)

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

getCharDecay
(fieldType, times)¶ Characteristic decay function for arbitrary waveform. This function describes the decay of the VRM response for the Linear problem type. Note that the current will be normalized by its maximum value. The maximum current in the transmitter is specified in the source object.
REQUIRD ARGUMENTS:
fieldType – must be ‘h’, ‘b’, ‘dhdt’ or ‘dbdt’.
times – Observation times. These times MUST be during the offtime.
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 I_wave (

class
SimPEG.VRM.WaveformVRM.
ArbitraryPiecewise
(**kwargs)¶ Bases:
properties.base.base.HasProperties
Required Properties:
 I_wave (
Array
): Waveform current, a list or numpy array of <type ‘float’> with shape (*)  t_wave (
Array
): Waveform times, a list or numpy array of <type ‘float’> with shape (*)

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

getCharDecay
(fieldType, times)¶ Characteristic decay function for arbitrary waveform. This function describes the decay of the VRM response for the Linear problem type. Note that the current will be LogUniformized by its maximum value. The maximum current in the transmitter is specified in the source object.
INPUTS:
fieldType – must be ‘h’, ‘b’, ‘dhdt’ or ‘dbdt’.
times – Observation times. These times must be during the offtime.
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 I_wave (

class
SimPEG.VRM.WaveformVRM.
Custom
(**kwargs)¶ Bases:
properties.base.base.HasProperties
Required Properties:
 eta (
Array
): Characteristic decay function at evaluation times, a list or numpy array of <type ‘float’> with shape (*)  times (
Array
): Times at which characteristic decay function is evaluated, a list or numpy array of <type ‘float’> with shape (*)

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

eta
¶ eta (
Array
) – Characteristic decay function at evaluation times, a list or numpy array of <type ‘float’> with shape (*)

getCharDecay
()¶ Returns characteristic decay function at specified times

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

times
¶ times (
Array
) – Times at which characteristic decay function is evaluated, a list or numpy array of <type ‘float’> with shape (*)

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 eta (

class
SimPEG.VRM.WaveformVRM.
SquarePulse
(**kwargs)¶ Bases:
properties.base.base.HasProperties
Required Properties:

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

getCharDecay
(fieldType, times)¶ Characteristic decay function for a squarepulse waveform. This function describes the decay of the VRM response for the linear problem type. Note that the current will be normalized by its maximum value. The maximum current in the transmitter is specified in the source object.
REQUIRED ARGUMENTS:
fieldType – must be ‘h’, ‘b’, ‘dhdt’ or ‘dbdt’.
times – Observation times. These times MUST be during the offtime.
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

getLogUniformDecay
(fieldType, times, chi0, dchi, tau1, tau2)¶ Decay function for a squarepulse waveform for loguniform distribution of timerelaxation constants. The output of this function is the magnetization at each time for each cell, normalized by the inducing field.
REQUIRED ARGUMENTS:
fieldType – must be ‘h’, ‘b’, ‘dhdt’ or ‘dbdt’.
times – Observation times.
chi0 – DC (zerofrequency) magnetic susceptibility for all cells
dchi – DC (zerofrequency) magnetic susceptibility attributed to VRM for all cells
tau1 – Lowerbound for loguniform distribution of timerelaxation constants for all cells
tau2 – Upperbound for loguniform distribution of timerelaxation constants for all cells
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.


class
SimPEG.VRM.WaveformVRM.
StepOff
(**kwargs)¶ Bases:
properties.base.base.HasProperties
Required Properties:
 t0 (
Float
): Start of offtime, a float, Default: 0.0

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

getCharDecay
(fieldType, times)¶ Characteristic decay function for stepoff waveform. This function describes the decay of the VRM response for the linear problem type. Note that the current will be normalized by its maximum value. The maximum current in the transmitter is specified in the source object.
REQUIRED ARGUMENTS:
fieldType – must be ‘dhdt’ or ‘dbdt’. Characteristic decay for ‘h’ or ‘b’ CANNOT be computed for stepoff
times – Observation times. These times MUST be during the offtime.
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

getLogUniformDecay
(fieldType, times, chi0, dchi, tau1, tau2)¶ Decay function for a stepoff waveform for loguniform distribution of timerelaxation constants. The output of this function is the magnetization at each time for each cell, normalized by the inducing field.
REQUIRED ARGUMENTS:
fieldType – must be ‘h’, ‘b’, ‘dhdt’ or ‘dbdt’.
times – Observation times
chi0 – DC (zerofrequency) magnetic susceptibility for all cells
dchi – DC (zerofrequency) magnetic susceptibility attributed to VRM for all cells
tau1 – Lowerbound for loguniform distribution of timerelaxation constants for all cells
tau2 – Upperbound for loguniform distribution of timerelaxation constants for all cells
OUTPUTS:
eta – characteristic decay function evaluated at all specified times.

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 t0 (
Sources¶
Receivers¶

class
SimPEG.VRM.RxVRM.
BaseRxVRM
(locs, **kwargs)¶ Bases:
SimPEG.Survey.BaseRx
,properties.base.base.HasProperties
Base VRM receiver class

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

getP
(mesh, projGLoc=None)¶ Returns the projection matrices as a list for all components collected by the receivers.
Note
Projection matrices are stored as a dictionary listed by meshes.

knownRxTypes
= None¶

locs
= None¶

nD
¶ Number of data in the receiver.

projGLoc
= 'CC'¶

rxType
¶ Receiver Type

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

storeProjections
= True¶

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.


class
SimPEG.VRM.RxVRM.
Point
(locs, **kwargs)¶ Bases:
SimPEG.VRM.RxVRM.BaseRxVRM
Point receiver
Required Properties:
 fieldComp (
StringChoice
): Component of response, any of “x”, “y”, “z”  fieldType (
StringChoice
): Field type, any of “h”, “b”, “dhdt”, “dbdt”  times (
Array
): Observation times, a list or numpy array of <type ‘float’> with shape (*)

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

fieldComp
¶ fieldComp (
StringChoice
) – Component of response, any of “x”, “y”, “z”

fieldType
¶ fieldType (
StringChoice
) – Field type, any of “h”, “b”, “dhdt”, “dbdt”

getP
(mesh, projGLoc=None)¶ Returns the projection matrices as a list for all components collected by the receivers.
Note
Projection matrices are stored as a dictionary listed by meshes.

knownRxTypes
= None¶

locs
= None¶

nD
¶ Number of data in the receiver.

nLocs
¶ Number of locations.

nTimes
¶ Number of measurements times.

projGLoc
= 'CC'¶

rxType
¶ Receiver Type

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

storeProjections
= True¶

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 fieldComp (

class
SimPEG.VRM.RxVRM.
SquareLoop
(locs, **kwargs)¶ Bases:
SimPEG.VRM.RxVRM.BaseRxVRM
Square loop receiver
Measurements with this type of receiver are the field, integrated over the area of the loop, then multiplied by the number of coils, then normalized by the dipole moment. As a result, the units for fields predicted with this type of receiver are the same as ‘h’, ‘b’, ‘dhdt’ and ‘dbdt’, respectively.Required Properties:
 fieldComp (
StringChoice
): Component of response, any of “x”, “y”, “z”  fieldType (
StringChoice
): Field type, any of “h”, “b”, “dhdt”, “dbdt”  nTurns (
Integer
): Number of loop turns, an integer in range [1, inf], Default: 1  quadOrder (
Integer
): Order for numerical quadrature integration over loop, an integer in range [1, 7], Default: 3  times (
Array
): Observation times, a list or numpy array of <type ‘float’> with shape (*)  width (
Float
): Square loop width, a float in range [1e06, inf]

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

fieldComp
¶ fieldComp (
StringChoice
) – Component of response, any of “x”, “y”, “z”

fieldType
¶ fieldType (
StringChoice
) – Field type, any of “h”, “b”, “dhdt”, “dbdt”

getP
(mesh, projGLoc=None)¶ Returns the projection matrices as a list for all components collected by the receivers.
Note
Projection matrices are stored as a dictionary listed by meshes.

knownRxTypes
= None¶

locs
= None¶

nD
¶ Number of data in the receiver.

nLocs
¶ Number of locations.

nTimes
¶ Number of measurements times.

projGLoc
= 'CC'¶

quadOrder
¶ quadOrder (
Integer
) – Order for numerical quadrature integration over loop, an integer in range [1, 7], Default – 3

rxType
¶ Receiver Type

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

storeProjections
= True¶

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.
 fieldComp (
Survey¶

class
SimPEG.VRM.SurveyVRM.
SurveyVRM
(srcList, **kwargs)¶ Bases:
SimPEG.Survey.BaseSurvey
,properties.base.base.HasProperties
Required Properties:
 t_active (
Array
): Boolean array where True denotes active data in the inversion, a list or numpy array of <type ‘bool’> with shape (*)

counter
= None¶

deserialize
(value, trusted=False, strict=False, assert_valid=False, **kwargs)¶ Creates HasProperties instance from serialized dictionary
This uses the Property deserializers to deserialize all JSONcompatible dictionary values into their corresponding Property values on a new instance of a HasProperties class. Extra keys in the dictionary that do not correspond to Properties will be ignored.
Parameters:
 value  Dictionary to deserialize new instance from.
 trusted  If True (and if the input dictionary has
'__class__'
keyword and this class is in the registry), the new HasProperties class will come from the dictionary. If False (the default), only the HasProperties class this method is called on will be constructed.  strict  Requires
'__class__'
, if present on the input dictionary, to match the deserialized instance’s class. Also disallows unused properties in the input dictionary. Default is False.  assert_valid  Require deserialized instance to be valid. Default is False.
 Any other keyword arguments will be passed through to the Property deserializers.

dobs
= None¶

dpred
(m=None, f=None)¶

dtrue
= None¶

eps
= None¶

equal
(other)¶ Determine if two HasProperties instances are equivalent
Equivalence is determined by checking if all Property values on two instances are equal, using
Property.equal
.

eval
(f)¶ This function projects the fields onto the data space.
\[d_\text{pred} = \mathbf{P} f(m)\]

evalDeriv
(f)¶ This function s the derivative of projects the fields onto the data space.
\[\frac{\partial d_\text{pred}}{\partial u} = \mathbf{P}\]

getSourceIndex
(sources)¶

isSynthetic
¶ Check if the data is synthetic.

ispaired
¶

makeSyntheticData
(m, std=0.05, f=None, force=False)¶ Make synthetic data given a model, and a standard deviation.
Parameters:  m (numpy.array) – geophysical model
 std (numpy.array) – standard deviation
 u (numpy.array) – fields for the given model (if precalculated)
 force (bool) – force overwriting of dobs

mesh
¶ Mesh of the paired problem.

mtrue
= None¶

nD
¶ Number of data

nSrc
¶ Number of Sources

pair
(p)¶ Bind a problem to this survey instance using pointers

prob
¶ The geophysical problem that explains this survey, use:
survey.pair(prob)

residual
(m, f=None)¶ Parameters:  m (numpy.array) – geophysical model
 f (numpy.array) – fields
Return type: Returns: data residual
The data residual:
\[\mu_\text{data} = \mathbf{d}_\text{pred}  \mathbf{d}_\text{obs}\]

serialize
(include_class=True, save_dynamic=False, **kwargs)¶ Serializes a HasProperties instance to dictionary
This uses the Property serializers to serialize all Property values to a JSONcompatible dictionary. Properties that are undefined are not included. If the HasProperties instance contains a reference to itself, a
properties.SelfReferenceError
will be raised.Parameters:
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key
'__class__'
 save_dynamic  If True, dynamic properties are written to the serialized dict (default: False).
 Any other keyword arguments will be passed through to the Property serializers.
 include_class  If True (the default), the name of the class
will also be saved to the serialized dictionary under key

set_active_interval
(tmin, tmax)¶ Set active times using an interval

srcList
¶ Source List

srcPair
¶ alias of
BaseSrc

std
= None¶

t_active
¶ t_active (
Array
) – Boolean array where True denotes active data in the inversion, a list or numpy array of <type ‘bool’> with shape (*)

unpair
()¶ Unbind a problem from this survey instance

validate
()¶ Call all registered class validator methods
These are all methods decorated with
@properties.validator
. Validator methods are expected to raise a ValidationError if they fail.

vnD
¶ Vector number of data
 t_active (