specfem::receivers

namespace receivers

Namespace for structures that handle receivers and seismic data capture.

This namespace contains receiver classes that capture wavefield data at specific locations during seismic simulations. The base class is specfem::receivers::receiver, with template specializations for different spatial dimensions.

2D receiver implementations

3D receiver implementations

Receivers are responsible for:

  • Recording displacement, velocity, or acceleration at specific coordinates

  • Interpolating wavefield values from the finite element mesh

  • Managing station metadata (network name, station name, coordinates)

  • Outputting seismograms for comparison with observed data

See also

specfem::receivers::receiver

template<specfem::dimension::type DimensionTag>
class receiver

Receiver Class.

This class is responsible for handling the reception of seismic data at a specific station.

Template Parameters:

DimensionTag – The dimension tag (2D or 3D) for the receiver.

2D Specialization

template<>
class receiver<specfem::dimension::type::dim2>

Unnamed Group

static constexpr specfem::dimension::type dimension_tag = specfem::dimension::type::dim2

Compile-time constants

Public Functions

inline receiver(const std::string &network_name, const std::string &station_name, const type_real x, const type_real z, const type_real angle)

Construct a new receiver object.

Parameters:
  • network_name – Name of network where this station lies in

  • station_name – Name of station

  • x – X coordinate of the station

  • z – Z coordinate of the station

  • angle – Angle of the station

inline std::string get_network_name()

Get the name of network where this station lies.

Returns:

std::string name of the network where the station lies

inline std::string get_station_name()

Get the name of this station.

Returns:

std::string Name of this station

std::string print() const

User output.

inline type_real get_angle() const
inline type_real get_x() const
inline type_real get_z() const
bool operator==(const receiver &other) const

Equality operator.

Parameters:

other – Other receiver to compare with

Returns:

true if receivers are equal, false otherwise

Private Members

type_real x

x coordinate of source

type_real z

z coordinate of source

type_real angle

Angle to rotate components at receivers.

std::string network_name

Name of the network where this station lies.

std::string station_name

Name of the station.

3D Specialization

template<>
class receiver<specfem::dimension::type::dim3>

Unnamed Group

static constexpr specfem::dimension::type dimension_tag = specfem::dimension::type::dim3

Compile-time constants

Public Functions

inline receiver(const std::string &network_name, const std::string &station_name, const type_real x, const type_real y, const type_real z)

Construct a new receiver object.

Parameters:
  • network_name – Name of network where this station lies in

  • station_name – Name of station

  • x – X coordinate of the station

  • y – Y coordinate of the station

  • z – Z coordinate of the station

inline std::string get_network_name()

Get the name of network where this station lies.

Returns:

std::string name of the network where the station lies

inline std::string get_station_name()

Get the name of this station.

Returns:

std::string Name of this station

std::string print() const

User output.

inline type_real get_x() const
inline type_real get_y() const
inline type_real get_z() const
bool operator==(const receiver &other) const

Equality operator.

Parameters:

other – Other receiver to compare with

Returns:

true if receivers are equal, false otherwise

Private Members

type_real x

x coordinate of station

type_real y

y coordinate of station

type_real z

z coordinate of station

std::string network_name

Name of the network where this station lies.

std::string station_name

Name of the station.