specfem::runtime_configuration::solver

class solver

Solver class to instantiate the correct solver based on the simulation parameters.

Public Functions

inline solver(const char *simulation_type)

Construct a new solver object.

Parameters:

simulation_type – Type of the simulation (forward or combined)

inline solver(const std::string &simulation_type)

Construct a new solver object.

Parameters:

simulation_type – Type of the simulation (forward or combined)

template<int NGLL, specfem::element::dimension_tag DimensionTag>
std::shared_ptr<specfem::solver::solver> instantiate(const type_real dt, const specfem::assembly::assembly<DimensionTag> &assembly, std::shared_ptr<specfem::time_scheme::time_scheme> time_scheme, const std::vector<std::shared_ptr<specfem::periodic_tasks::periodic_task<DimensionTag>>> &tasks) const

Instantiate the solver based on the simulation parameters.

Template Parameters:

qp_type – Quadrature points type defining compile time or runtime quadrature points

Parameters:
  • dt – Time step

  • assembly – Assembly object

  • time_scheme – Time scheme object

  • quadrature – Quadrature points object

Returns:

std::shared_ptr<specfem::solver::solver> Solver object

inline specfem::simulation::type get_simulation_type() const

Get the type of the simulation (forward or combined)

Returns:

specfem::simulation::type Type of the simulation

Private Members

std::string simulation_type

Type of the simulation (forward or combined)