class stf

Source time function base class.

Abstract base class for all source time functions. Derived classes implement specific time-dependent behaviors for seismic sources.

Note

The STF function should lie on host and device. Decorate the class functions within using KOKKOS_FUNCTION macro

Subclassed by specfem::source_time_functions::Dirac, specfem::source_time_functions::Gaussian, specfem::source_time_functions::GaussianHdur, specfem::source_time_functions::Heaviside, specfem::source_time_functions::Ricker, specfem::source_time_functions::dGaussian, specfem::source_time_functions::external

Public Functions

inline stf()

Default constructor.

inline virtual void update_tshift(type_real tshift)

Update the time shift value.

Parameters:

tshift – New time shift value

inline virtual type_real get_t0() const

Get the start time value.

Returns:

Start time t0

inline virtual type_real get_tshift() const

Get the time shift value.

Returns:

Time shift value

virtual std::string print() const = 0

Get string representation of the source time function.

Returns:

String describing the STF parameters

inline virtual bool operator==(const stf &other) const

Equality operator.

Parameters:

other – Another source time function to compare with

Returns:

true if equal, false otherwise

inline virtual bool operator!=(const stf &other) const

Inequality operator.

Parameters:

other – Another source time function to compare with

Returns:

true if not equal, false otherwise

virtual ~stf() = default

Virtual destructor.

virtual void compute_source_time_function(const type_real t0, const type_real dt, const int nsteps, specfem::kokkos::HostView2d<type_real> source_time_function) = 0

Compute source time function values for all time steps.

Parameters:
  • t0 – Start time

  • dt – Time step size

  • nsteps – Number of time steps

  • source_time_function – Output view to store computed values