21 #ifndef GEOS_PHYSICSSOLVERS_WAVEPROPAGATION_ACOUSTICWAVEEQUATIONSEM_HPP_
22 #define GEOS_PHYSICSSOLVERS_WAVEPROPAGATION_ACOUSTICWAVEEQUATIONSEM_HPP_
36 using EXEC_POLICY = parallelDevicePolicy< >;
37 using ATOMIC_POLICY = AtomicPolicy< EXEC_POLICY >;
40 Group *
const parent );
54 static string catalogName() {
return "AcousticSEM"; }
75 bool const computeGradient )
override;
81 bool const computeGradient )
override;
100 virtual real64 computeTimeStep(
real64 & dtOut )
override;
111 static constexpr
char const * pressureNp1AtReceiversString() {
return "pressureNp1AtReceivers"; }
113 } waveEquationViewKeys;
128 void computeUnknowns(
real64 const & time_n,
134 void synchronizeUnknowns(
real64 const & time_n,
140 void prepareNextTimestep(
MeshLevel & mesh );
156 virtual
void precomputeSourceAndReceiverTerm(
MeshLevel & baseMesh,
MeshLevel & mesh,
arrayView1d<
string const > const & regionNames ) override;
string getCatalogName() const override
virtual void registerDataOnMesh(Group &meshBodies) override final
Register wrappers that contain data on the mesh objects.
virtual void postInputInitialization() override final
virtual void initializePML() override
Initialize Perfectly Matched Layer (PML) information.
real64 explicitStepInternal(real64 const &time_n, real64 const &dt, DomainPartition &domain)
virtual void addSourceToRightHandSide(real64 const &time_n, arrayView1d< real32 > const rhs)
Multiply the precomputed term by the Ricker and add to the right-hand side.
virtual void initializePostInitialConditionsPreSubGroups() override final
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
virtual void initializePreSubGroups() override
Called by Initialize() prior to initializing sub-Groups.
virtual void cleanup(real64 const time_n, integer const cycleNumber, integer const eventCounter, real64 const eventProgress, DomainPartition &domain) override
Overridden from ExecutableGroup. Used to write last seismogram if needed.
static string coupledSolverAttributePrefix()
String used to form the solverName used to register solvers in CoupledSolver.
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
Class facilitating the representation of a multi-level discretization of a MeshBody.
virtual real64 explicitStepBackward(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain, bool const computeGradient) override
Perform backward explicit step.
virtual real64 explicitStepForward(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain, bool const computeGradient) override
Perform forward explicit step.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
float real32
32-bit floating point type.
Array< T, 2, PERMUTATION > array2d
Alias for 2D array.
std::string string
String type.
double real64
64-bit floating point type.
std::int32_t integer
Signed integer type.