simpeg.simulation.BaseTimeSimulation#
- class simpeg.simulation.BaseTimeSimulation(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:
- t0
float
,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.
- t0
Attributes
A list of solver objects to clean when the model is updated
SimPEG
Counter
object to store iterations and run-times.HasModel.deleteTheseOnModelUpdate has been deprecated.
The inversion model.
Total number of time steps.
True if a model is necessary
Path to directory where sensitivity file is stored.
The survey for the simulation.
Initial time, in seconds, for the time-dependent forward simulation.
Time mesh for easy interpolation to observation times.
Time step lengths, in seconds, for the time domain simulation.
Evaluation times.
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 alist
oftuple
. Eachtuple
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 thelist
oftuple
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
EM: TDEM: Permeable Target, Inductive Source
EM: TDEM: 1D: Inversion with VTEM waveform
FLOW: Richards: 1D: Forward Simulation
Heagy et al., 2017 1D RESOLVE and SkyTEM Bookpurnong Inversions
Heagy et al., 2017 1D FDEM and TDEM inversions
3D Forward Simulation for Transient Response on a Cylindrical Mesh
3D Forward Simulation with User-Defined Waveforms
Forward Simulation Including Inductive Response