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)

Required Properties:

• indActive (Array): Topography active cells, a list or numpy array of <class ‘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 <class ‘float’> with shape (*)

Optional Properties:

• model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘int’> with shape (*) or (*, *)
Jtvec(m, v, f=None)

Effect of transpose of J(m) on a vector v.

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray JTv
Jtvec_approx(m, v, f=None)

Approximate effect of transpose of J(m) on a vector v.

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray JTv
Jvec(m, v, f=None)

Effect of J(m) on a vector v.

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray Jv
Jvec_approx(m, v, f=None)

Approximate effect of J(m) on a vector v

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray approxJv
class Solver(A, **kwargs)

Bases: object

clean()
clean_on_model_update = []
counter = None
curModel

Setting the curModel is depreciated.

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 JSON-compatible 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.ndarray) – model numpy.ndarray u, the fields
indActive

indActive (Array): Topography active cells, a list or numpy array of <class ‘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 <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

needs_model

True if a model is necessary

pair(d)

Bind a survey to this problem instance using pointers.

ref_factor

ref_factor (Integer): Sensitivity refinement factor, an integer in range [0, inf]

ref_radius

ref_radius (Array): Sensitivity refinement radii from sources, a list or numpy array of <class ‘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 JSON-compatible 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.
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.

class SimPEG.VRM.ProblemVRM.Problem_Linear(mesh, **kwargs)

Required Properties:

• indActive (Array): Topography active cells, a list or numpy array of <class ‘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 <class ‘float’> with shape (*)

Optional Properties:

• model (Model): Inversion model., a numpy array of <class ‘float’>, <class ‘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.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray 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.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray approxJv
class Solver(A, **kwargs)

Bases: object

clean()
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.

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 JSON-compatible 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 <class ‘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 <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

needs_model

True if a model is necessary

pair(d)

Bind a survey to this problem instance using pointers.

ref_factor

ref_factor (Integer): Sensitivity refinement factor, an integer in range [0, inf]

ref_radius

ref_radius (Array): Sensitivity refinement radii from sources, a list or numpy array of <class ‘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 JSON-compatible 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.
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.

class SimPEG.VRM.ProblemVRM.Problem_LogUniform(mesh, **kwargs)

Required Properties:

• indActive (Array): Topography active cells, a list or numpy array of <class ‘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 <class ‘float’> with shape (*)

Optional Properties:

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.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray JTv
Jtvec_approx(m, v, f=None)

Approximate effect of transpose of J(m) on a vector v.

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray JTv
Jvec(m, v, f=None)

Effect of J(m) on a vector v.

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray Jv
Jvec_approx(m, v, f=None)

Approximate effect of J(m) on a vector v

Parameters: m (numpy.ndarray) – model v (numpy.ndarray) – vector to multiply f (Fields) – fields numpy.ndarray approxJv
class Solver(A, **kwargs)

Bases: object

clean()
chi0

DC susceptibility

clean_on_model_update = []
counter = None
curModel

Setting the curModel is depreciated.

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 JSON-compatible 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 <class ‘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 <class ‘float’>, <class ‘int’> with shape (*) or (*, *)

needs_model

True if a model is necessary

pair(d)

Bind a survey to this problem instance using pointers.

ref_factor

ref_factor (Integer): Sensitivity refinement factor, an integer in range [0, inf]

ref_radius

ref_radius (Array): Sensitivity refinement radii from sources, a list or numpy array of <class ‘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 JSON-compatible 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.
solverOpts = {}
summary()
survey

The survey object for this problem.

surveyPair

alias of BaseSurvey

tau1

Low bound time-relaxation constant

tau2

Upper bound time-relaxation 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.

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 <class ‘float’> with shape (*)
• t_wave (Array): Waveform times, a list or numpy array of <class ‘float’> with shape (*)
I_wave

I_wave (Array): Waveform current, a list or numpy array of <class ‘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 JSON-compatible 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 off-time.

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 JSON-compatible 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.
t_wave

t_wave (Array): Waveform times, a list or numpy array of <class ‘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.

class SimPEG.VRM.WaveformVRM.ArbitraryPiecewise(**kwargs)

Bases: properties.base.base.HasProperties

Required Properties:

• I_wave (Array): Waveform current, a list or numpy array of <class ‘float’> with shape (*)
• t_wave (Array): Waveform times, a list or numpy array of <class ‘float’> with shape (*)
I_wave

I_wave (Array): Waveform current, a list or numpy array of <class ‘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 JSON-compatible 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 off-time.

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 JSON-compatible 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.
t_wave

t_wave (Array): Waveform times, a list or numpy array of <class ‘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.

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 <class ‘float’> with shape (*)
• times (Array): Times at which characteristic decay function is evaluated, a list or numpy array of <class ‘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 JSON-compatible 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 <class ‘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 JSON-compatible 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.
times

times (Array): Times at which characteristic decay function is evaluated, a list or numpy array of <class ‘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.

class SimPEG.VRM.WaveformVRM.SquarePulse(**kwargs)

Bases: properties.base.base.HasProperties

Required Properties:

delt

delt (Float): Pulse width, a float

deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible 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 square-pulse 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 off-time.

OUTPUTS:

eta – characteristic decay function evaluated at all specified times.

getLogUniformDecay(fieldType, times, chi0, dchi, tau1, tau2)

Decay function for a square-pulse waveform for log-uniform distribution of time-relaxation 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 (zero-frequency) magnetic susceptibility for all cells

dchi – DC (zero-frequency) magnetic susceptibility attributed to VRM for all cells

tau1 – Lower-bound for log-uniform distribution of time-relaxation constants for all cells

tau2 – Upper-bound for log-uniform distribution of time-relaxation 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 JSON-compatible 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.
t0

t0 (Float): Start of off-time, a float, Default: 0.0

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:

deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible 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 step-off 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 step-off

times – Observation times. These times MUST be during the off-time.

OUTPUTS:

eta – characteristic decay function evaluated at all specified times.

getLogUniformDecay(fieldType, times, chi0, dchi, tau1, tau2)

Decay function for a step-off waveform for log-uniform distribution of time-relaxation 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 (zero-frequency) magnetic susceptibility for all cells

dchi – DC (zero-frequency) magnetic susceptibility attributed to VRM for all cells

tau1 – Lower-bound for log-uniform distribution of time-relaxation constants for all cells

tau2 – Upper-bound for log-uniform distribution of time-relaxation 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 JSON-compatible 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.
t0

t0 (Float): Start of off-time, a float, Default: 0.0

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.

Sources¶

class SimPEG.VRM.RxVRM.BaseRxVRM(locs, **kwargs)

Bases: SimPEG.Survey.BaseRx, properties.base.base.HasProperties

deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible 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

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 JSON-compatible 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.
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)

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 JSON-compatible 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

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 JSON-compatible 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.
storeProjections = True
times

times (Array): Observation times, a list or numpy array of <class ‘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.

class SimPEG.VRM.RxVRM.SquareLoop(locs, **kwargs)

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:

deserialize(value, trusted=False, strict=False, assert_valid=False, **kwargs)

Creates HasProperties instance from serialized dictionary

This uses the Property deserializers to deserialize all JSON-compatible 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.

nTurns

nTurns (Integer): Number of loop turns, an integer in range [1, inf], Default: 1

projGLoc = 'CC'
quadOrder

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

rxType

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 JSON-compatible 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.
storeProjections = True
times

times (Array): Observation times, a list or numpy array of <class ‘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.

width

width (Float): Square loop width, a float in range [1e-06, inf]

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 <class ‘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 JSON-compatible 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=None, f=None, force=False)

Make synthetic data given a model, and a standard deviation.

Parameters: m (numpy.ndarray) – geophysical model std (numpy.ndarray) – standard deviation u (numpy.ndarray) – fields for the given model (if pre-calculated) 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.ndarray) – geophysical model f (numpy.ndarray) – fields numpy.ndarray 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 JSON-compatible 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.
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 <class ‘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