simpeg.simulation.ExponentialSinusoidSimulation#

class simpeg.simulation.ExponentialSinusoidSimulation(mesh, n_kernels=20, p=-0.25, q=0.25, j0=0.0, jn=60.0, **kwargs)[source]#

Bases: LinearSimulation

Simulation class for exponentially decaying sinusoidal kernel functions.

This is the simulation class for the linear problem consisting of exponentially decaying sinusoids. The entries of the linear operator \(\mathbf{G}\) are:

\[G_{ik} = \int_\Omega e^{p \, j_i \, x_k} \cos(\pi \, q \, j_i \, x_k) \, dx\]

The model is defined on a 1D discretize.TensorMesh, and \(x_k\) are the cell center locations. \(p \leq 0\) defines the rate of exponential decay of the kernel functions. \(q\) defines the rate of oscillation of the kernel functions. And \(j_i \in [j_0, ... , j_n]\) controls the spread of the kernel functions; the number of which is set using the n_kernels property.

Tip

For proper scaling, we advise defining the 1D tensor mesh to discretize the interval [0, 1].

The kernel functions take the form:

\[\int_x e^{p j_k x} \cos(\pi q j_k x) \quad, j_k \in [j_0, ..., j_n]\]

The model is defined at cell centers while the kernel functions are defined on nodes. The trapezoid rule is used to evaluate the integral

\[d_j = \int g_j(x) m(x) dx\]

to define our data.

Parameters:
meshdiscretize.TensorMesh

1D TensorMesh defining the discretization of the model space.

n_kernelsint

The number of kernel factors for the linear problem; i.e. the number of \(j_i \in [j_0, ... , j_n]\). This sets the number of rows in the linear forward operator.

pfloat

Exponent specifying the decay (p leq 0) or growth (p geq 0) of the kernel. For decay, set \(p \leq 0\).

qfloat

Rate of oscillation of the kernel.

j0float

Minimum value for the spread of the kernel factors.

jnfloat

Maximum value for the spread of the kernel factors.

Attributes

G

The linear forward operator.

clean_on_model_update

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

counter

SimPEG Counter object to store iterations and run-times.

deleteTheseOnModelUpdate

HasModel.deleteTheseOnModelUpdate has been deprecated.

j0

Minimum value for the spread of the kernel factors.

jk

The set of kernel factors controlling the spread of the kernel functions.

jn

Maximum value for the spread of the kernel factors.

linear_model

The model for a linear problem physical property model.

mesh

Mesh for the simulation.

model

The inversion model.

model_deriv

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

model_map

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

n_kernels

The number of kernel factors for the linear problem.

needs_model

True if a model is necessary

p

Rate of exponential decay of the kernel.

q

Rate of oscillation of the kernel.

sensitivity_path

Path to directory where sensitivity file is stored.

survey

The survey for the simulation.

verbose

Verbose progress printout.

Methods

Jtvec(m, v[, f])

Compute the Jacobian transpose times a vector for the model provided.

Jtvec_approx(m, v[, f])

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

Jvec(m, v[, f])

Compute the Jacobian times a vector for the model provided.

Jvec_approx(m, v[, f])

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

dpred([m, f])

Predicted data for the model provided.

fields(m)

Return the computed geophysical fields for the model provided.

g(k)

Kernel functions evaluated for kernel factor \(j_k\).

getJ(m[, f])

Returns the full Jacobian.

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

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.