simpeg.simulation.BaseTimeSimulation#

class simpeg.simulation.BaseTimeSimulation(mesh=None, t0=0.0, time_steps=None, **kwargs)[source]#

Bases: BaseSimulation

Base class for time domain simulations.

The BaseTimeSimulation defines properties and methods that are required when the finite volume approach is used to solve time-dependent forward simulations. Presently, SimPEG discretizes in time using the backward Euler approach. And as such, the user must now define the step lengths for the forward simulation.

Parameters:
meshdiscretize.base.BaseMesh, optional

Mesh on which the forward problem is discretized. This is not necessarily the same as the mesh on which the simulation is defined.

t0float, optional

Initial time, in seconds, for the time-dependent forward simulation.

time_steps(n_steps, ) numpy.ndarray, optional

The time step lengths, in seconds, for the time domain simulation. This property can be also be set using a compact form; see Notes.

Attributes

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

A list of properties stored on this object to delete when the model is updated

mesh

Mesh for the simulation.

model

The inversion model.

nT

Total number of time steps.

needs_model

True if a model is necessary

sensitivity_path

Path to directory where sensitivity file is stored.

solver

Numerical solver used in the forward simulation.

solver_opts

Solver-specific parameters.

survey

The survey for the simulation.

t0

Initial time, in seconds, for the time-dependent forward simulation.

time_mesh

Time mesh for easy interpolation to observation times.

time_steps

Time step lengths, in seconds, for the time domain simulation.

times

Evaluation times.

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.

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

Make synthetic data for the model and Gaussian noise provided.

residual(m, dobs[, f])

The data residual.

Notes

There are two ways in which the user can set the time_steps property for the forward simulation. The most basic approach is to use a (n_steps, ) numpy.ndarray that explicitly defines the step lengths in order. I.e.:

>>> sim.time_steps = np.r_[1e-6, 1e-6, 1e-6, 1e-5, 1e-5, 1e-4, 1e-4]

We can define also define the step lengths in compact for when the same step length is reused multiple times in succession. In this case, the time_steps property is set using a list of tuple. Each tuple contains the step length and number of times that step is repeated. The time stepping defined above can be set equivalently with:

>>> sim.time_steps = [(1e-6, 3), (1e-5, 2), (1e-4, 2)]

When set, the discretize.utils.unpack_widths() utility is used to convert the list of tuple to its (n_steps, ) numpy.ndarray representation.

Galleries and Tutorials using simpeg.simulation.BaseTimeSimulation#

Time-domain CSEM for a resistive cube in a deep marine setting

Time-domain CSEM for a resistive cube in a deep marine setting

EM: TDEM: Permeable Target, Inductive Source

EM: TDEM: Permeable Target, Inductive Source

EM: TDEM: 1D: Inversion

EM: TDEM: 1D: Inversion

EM: TDEM: 1D: Inversion with VTEM waveform

EM: TDEM: 1D: Inversion with VTEM waveform

FLOW: Richards: 1D: Forward Simulation

FLOW: Richards: 1D: Forward Simulation

FLOW: Richards: 1D: Inversion

FLOW: Richards: 1D: Inversion

Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions

Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions

Heagy et al., 2017 1D FDEM and TDEM inversions

Heagy et al., 2017 1D FDEM and TDEM inversions

FLOW: Richards: 1D: Celia1990

FLOW: Richards: 1D: Celia1990

3D Forward Simulation for Transient Response on a Cylindrical Mesh

3D Forward Simulation for Transient Response on a Cylindrical Mesh

3D Forward Simulation with User-Defined Waveforms

3D Forward Simulation with User-Defined Waveforms

Forward Simulation Including Inductive Response

Forward Simulation Including Inductive Response