21 #ifndef SRC_CORECOMPONENTS_PHYSICSSOLVERS_WAVEPROPAGATION_ELASTICWAVEEQUATIONSEM_HPP_
22 #define SRC_CORECOMPONENTS_PHYSICSSOLVERS_WAVEPROPAGATION_ELASTICWAVEEQUATIONSEM_HPP_
37 using EXEC_POLICY = parallelDevicePolicy< >;
38 using ATOMIC_POLICY = parallelDeviceAtomic;
41 Group *
const parent );
55 static string catalogName() {
return "ElasticSEM"; }
76 integer const computeGradient )
override;
82 integer const computeGradient )
override;
106 virtual real64 computeTimeStep(
real64 & dtOut )
override;
115 real64 const eventProgress,
120 static constexpr
char const * displacementXNp1AtReceiversString() {
return "displacementXNp1AtReceivers"; }
121 static constexpr
char const * displacementYNp1AtReceiversString() {
return "displacementYNp1AtReceivers"; }
122 static constexpr
char const * displacementZNp1AtReceiversString() {
return "displacementZNp1AtReceivers"; }
124 static constexpr
char const * dasSignalNp1AtReceiversString() {
return "dasSignalNp1AtReceivers"; }
126 static constexpr
char const * sourceForceString() {
return "sourceForce"; }
127 static constexpr
char const * sourceMomentString() {
return "sourceMoment"; }
129 static constexpr
char const * useVtiString() {
return "useVTI"; }
131 static constexpr
char const * useTtiString() {
return "useTTI"; }
133 } waveEquationViewKeys;
149 void computeUnknowns(
real64 const & time_n,
155 void synchronizeUnknowns(
real64 const & time_n,
161 void prepareNextTimestep(
MeshLevel & mesh );
201 virtual
void initializePML() override;
243 real64 m_rotationMatrix[ 3 ][ 3 ]{};
Partition of the decomposed physical domain. It also manages the connexion information to its neighbo...
static string coupledSolverAttributePrefix()
String used to form the solverName used to register solvers in CoupledSolver.
virtual void registerDataOnMesh(Group &meshBodies) override final
Register wrappers that contain data on the mesh objects.
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.
real64 explicitStepInternal(real64 const &time_n, real64 const &dt, DomainPartition &domain)
string getCatalogName() const override
virtual void initializePostInitialConditionsPreSubGroups() override final
Called by InitializePostInitialConditions() prior to initializing sub-Groups.
void addSourceToRightHandSide(real64 const &time_n, arrayView1d< real32 > const rhsx, arrayView1d< real32 > const rhsy, arrayView1d< real32 > const rhsz)
Multiply the precomputed term by the Ricker and add to the right-hand side.
virtual void initializePreSubGroups() override
Called by Initialize() prior to initializing sub-Groups.
void computeDAS(arrayView2d< real32 > const xCompRcv, arrayView2d< real32 > const yCompRcv, arrayView2d< real32 > const zCompRcv)
Compute DAS data as a difference of the field at two points, from the appropriate three-component rec...
virtual void postInputInitialization() override final
virtual real32 getGlobalMinWavespeed(MeshLevel &mesh, string_array const ®ionNames) override
Get the minimum wavespeed on a mesh (S-wavespeed in the elastic case)
real32 computeGlobalMinQFactor()
Computes the minimum attenuation quality factor over all the mesh. This is useful for computing anela...
Class facilitating the representation of a multi-level discretization of a MeshBody.
virtual real64 explicitStepForward(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain, integer const computeGradient) override
Perform forward explicit step.
virtual real64 explicitStepBackward(real64 const &time_n, real64 const &dt, integer const cycleNumber, DomainPartition &domain, integer const computeGradient) override
Perform backward explicit step.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
stdVector< string > string_array
A 1-dimensional array of geos::string types.
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.
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
int integer
Signed integer type.