GEOS
Public Types | Static Public Member Functions | List of all members
geos::AcousticTimeSchemeSEM Struct Reference

Public Types

using EXEC_POLICY = parallelDevicePolicy< >
 

Static Public Member Functions

static void LeapFrogWithoutPML (real64 const dt, arrayView1d< real32 > const p_np1, arrayView1d< real32 > const p_n, arrayView1d< real32 > const p_nm1, arrayView1d< real32 const > const mass, arrayView1d< real32 > const stiffnessVector, arrayView1d< real32 const > const damping, arrayView1d< real32 > const rhs, arrayView1d< localIndex const > const freeSurfaceNodeIndicator, SortedArrayView< localIndex const > const solverTargetNodesSet)
 Apply second order Leap-Frog time scheme for isotropic case without PML. More...
 
static void AttenuationLeapFrogWithoutPML (real64 const dt, arrayView1d< real32 > const p_np1, arrayView1d< real32 > const p_n, arrayView1d< real32 > const p_nm1, arrayView2d< real32 > const divpsi, arrayView1d< real32 const > const mass, arrayView1d< real32 > const stiffnessVector, arrayView1d< real32 > const stiffnessVectorA, arrayView1d< real32 const > const damping, arrayView1d< real32 > const rhs, arrayView1d< localIndex const > const freeSurfaceNodeIndicator, SortedArrayView< localIndex const > const solverTargetNodesSet, arrayView1d< real32 > referenceFrequencies, arrayView1d< real32 > anelasticityCoefficients)
 Apply second order Leap-Frog time scheme for isotropic case without PML, but with attenuation. More...
 
static void LeapFrogforVTI (localIndex const size, real64 const dt, arrayView1d< real32 > const p_np1, arrayView1d< real32 > const p_n, arrayView1d< real32 > const p_nm1, arrayView1d< real32 > const q_np1, arrayView1d< real32 > const q_n, arrayView1d< real32 > const q_nm1, arrayView1d< real32 const > const mass, arrayView1d< real32 > const stiffnessVector_p, arrayView1d< real32 > const stiffnessVector_q, arrayView1d< real32 const > const damping_p, arrayView1d< real32 const > const damping_pq, arrayView1d< real32 const > const damping_q, arrayView1d< real32 const > const damping_qp, arrayView1d< real32 > const rhs, arrayView1d< localIndex const > const freeSurfaceNodeIndicator, arrayView1d< localIndex const > const lateralSurfaceNodeIndicator, arrayView1d< localIndex const > const bottomSurfaceNodeIndicator)
 Apply second order Leap-Frog time scheme for VTI case without PML. More...
 
static void AttenuationLeapFrogforVTI (localIndex const size, real64 const dt, arrayView1d< real32 > const p_np1, arrayView1d< real32 > const p_n, arrayView1d< real32 > const p_nm1, arrayView1d< real32 > const q_np1, arrayView1d< real32 > const q_n, arrayView1d< real32 > const q_nm1, arrayView2d< real32 > const divpsi_p, arrayView2d< real32 > const divpsi_q, arrayView1d< real32 const > const mass, arrayView1d< real32 > const stiffnessVector_p, arrayView1d< real32 > const stiffnessVector_q, arrayView1d< real32 > const stiffnessVectorA_p, arrayView1d< real32 > const stiffnessVectorA_q, arrayView1d< real32 const > const damping_p, arrayView1d< real32 const > const damping_pq, arrayView1d< real32 const > const damping_q, arrayView1d< real32 const > const damping_qp, arrayView1d< real32 > const rhs, arrayView1d< localIndex const > const freeSurfaceNodeIndicator, arrayView1d< localIndex const > const lateralSurfaceNodeIndicator, arrayView1d< localIndex const > const bottomSurfaceNodeIndicator, arrayView1d< real32 > referenceFrequencies, arrayView1d< real32 > anelasticityCoefficients)
 Apply second order Leap-Frog time scheme for VTI case without PML, with attenuation. More...
 

Detailed Description

Definition at line 26 of file AcousticTimeSchemeSEMKernel.hpp.

Member Function Documentation

◆ AttenuationLeapFrogforVTI()

static void geos::AcousticTimeSchemeSEM::AttenuationLeapFrogforVTI ( localIndex const  size,
real64 const  dt,
arrayView1d< real32 > const  p_np1,
arrayView1d< real32 > const  p_n,
arrayView1d< real32 > const  p_nm1,
arrayView1d< real32 > const  q_np1,
arrayView1d< real32 > const  q_n,
arrayView1d< real32 > const  q_nm1,
arrayView2d< real32 > const  divpsi_p,
arrayView2d< real32 > const  divpsi_q,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 > const  stiffnessVector_p,
arrayView1d< real32 > const  stiffnessVector_q,
arrayView1d< real32 > const  stiffnessVectorA_p,
arrayView1d< real32 > const  stiffnessVectorA_q,
arrayView1d< real32 const > const  damping_p,
arrayView1d< real32 const > const  damping_pq,
arrayView1d< real32 const > const  damping_q,
arrayView1d< real32 const > const  damping_qp,
arrayView1d< real32 > const  rhs,
arrayView1d< localIndex const > const  freeSurfaceNodeIndicator,
arrayView1d< localIndex const > const  lateralSurfaceNodeIndicator,
arrayView1d< localIndex const > const  bottomSurfaceNodeIndicator,
arrayView1d< real32 referenceFrequencies,
arrayView1d< real32 anelasticityCoefficients 
)
inlinestatic

Apply second order Leap-Frog time scheme for VTI case without PML, with attenuation.

Parameters
[in]sizeThe number of nodes in the nodeManager
[in]dttime-step
[out]p_np1pressure array at time n+1 (updated here)
[in]p_npressure array at time n
[in]p_nm1pressure array at time n-1
[out]q_np1auxiliary pressure array at time n+1 (updated here)
[in]q_nauxiliary pressure array at time n
[in]q_nm1auxiliary pressure array at time n-1
[in]divpsi_pdivergence of the p-type acoustc memory variable
[in]divpsi_qdivergence of the q-type acoustc memory variable
[in]massthe mass matrix
[in]stiffnessVector_parray containing the product of the stiffness matrix R and the pressure at time n
[in]stiffnessVector_qarray containing the product of the stiffness matrix R and the auxiliary pressure at time n
[in]stiffnessVectorA_parray containing the product of the attenuated stiffness matrix R and the pressure at time n
[in]stiffnessVectorA_qarray containing the product of the attenuated stiffness matrix R and the auxiliary pressure at time n
[in]damping_pthe damping matrix
[in]damping_pqthe damping matrix
[in]damping_qthe damping matrix
[in]damping_qpthe damping matrix
[in]rhsthe right-hand-side
[in]freeSurfaceNodeIndicatorarray which contains indicators to tell if we are on a free-surface boundary or not
[in]lateralSurfaceNodeIndicatorarray which contains indicators to tell if we are on a lateral boundary or not
[in]bottomSurfaceNodeIndicatorarray which contains indicators to telle if we are on the bottom boundary or not
[in]referenceFrequenciesthe reference frequencies for each SLS
[in]anelasticityCoefficientsthe coefficients of anelasticity for each SLS

Definition at line 249 of file AcousticTimeSchemeSEMKernel.hpp.

◆ AttenuationLeapFrogWithoutPML()

static void geos::AcousticTimeSchemeSEM::AttenuationLeapFrogWithoutPML ( real64 const  dt,
arrayView1d< real32 > const  p_np1,
arrayView1d< real32 > const  p_n,
arrayView1d< real32 > const  p_nm1,
arrayView2d< real32 > const  divpsi,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 > const  stiffnessVector,
arrayView1d< real32 > const  stiffnessVectorA,
arrayView1d< real32 const > const  damping,
arrayView1d< real32 > const  rhs,
arrayView1d< localIndex const > const  freeSurfaceNodeIndicator,
SortedArrayView< localIndex const > const  solverTargetNodesSet,
arrayView1d< real32 referenceFrequencies,
arrayView1d< real32 anelasticityCoefficients 
)
inlinestatic

Apply second order Leap-Frog time scheme for isotropic case without PML, but with attenuation.

Parameters
[in]dttime-step
[out]p_np1pressure array at time n+1 (updated here)
[in]p_npressure array at time n
[in]p_nm1pressure array at time n-1
[in]divpsidivergence of the acoustic memory variable
[in]massthe mass matrix
[in]stiffnessVectorarray containing the product of the stiffness matrix R and the pressure at time n
[in]stiffnessVectorAarray containing the product of the attenuation stiffness matrix R and the pressure at time n
[in]dampingthe damping matrix
[in]rhsthe right-hand-side
[in]freeSurfaceNodeIndicatorarray which contains indicators to tell if we are on a free-surface boundary or not
[in]solverTargetNodesSetthe targetted nodeset (useful in particular when we do elasto-acoustic simulation )
[in]referenceFrequenciesthe reference frequencies for each SLS
[in]anelasticityCoefficientsthe coefficients of anelasticity for each SLS

Definition at line 89 of file AcousticTimeSchemeSEMKernel.hpp.

◆ LeapFrogforVTI()

static void geos::AcousticTimeSchemeSEM::LeapFrogforVTI ( localIndex const  size,
real64 const  dt,
arrayView1d< real32 > const  p_np1,
arrayView1d< real32 > const  p_n,
arrayView1d< real32 > const  p_nm1,
arrayView1d< real32 > const  q_np1,
arrayView1d< real32 > const  q_n,
arrayView1d< real32 > const  q_nm1,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 > const  stiffnessVector_p,
arrayView1d< real32 > const  stiffnessVector_q,
arrayView1d< real32 const > const  damping_p,
arrayView1d< real32 const > const  damping_pq,
arrayView1d< real32 const > const  damping_q,
arrayView1d< real32 const > const  damping_qp,
arrayView1d< real32 > const  rhs,
arrayView1d< localIndex const > const  freeSurfaceNodeIndicator,
arrayView1d< localIndex const > const  lateralSurfaceNodeIndicator,
arrayView1d< localIndex const > const  bottomSurfaceNodeIndicator 
)
inlinestatic

Apply second order Leap-Frog time scheme for VTI case without PML.

Parameters
[in]sizeThe number of nodes in the nodeManager
[in]dttime-step
[out]p_np1pressure array at time n+1 (updated here)
[in]p_npressure array at time n
[in]p_nm1pressure array at time n-1
[out]q_np1auxiliary pressure array at time n+1 (updated here)
[in]q_nauxiliary pressure array at time n
[in]q_nm1auxiliary pressure array at time n-1
[in]massthe mass matrix
[in]stiffnessVector_parray containing the product of the stiffness matrix R and the pressure at time n
[in]stiffnessVector_qarray containing the product of the stiffness matrix R and the auxiliary pressure at time n
[in]damping_pthe damping matrix
[in]damping_pqthe damping matrix
[in]damping_qthe damping matrix
[in]damping_qpthe damping matrix
[in]rhsthe right-hand-side
[in]freeSurfaceNodeIndicatorarray which contains indicators to tell if we are on a free-surface boundary or not
[in]lateralSurfaceNodeIndicatorarray which contains indicators to tell if we are on a lateral boundary or not
[in]bottomSurfaceNodeIndicatorarray which contains indicators to telle if we are on the bottom boundary or not

Definition at line 152 of file AcousticTimeSchemeSEMKernel.hpp.

◆ LeapFrogWithoutPML()

static void geos::AcousticTimeSchemeSEM::LeapFrogWithoutPML ( real64 const  dt,
arrayView1d< real32 > const  p_np1,
arrayView1d< real32 > const  p_n,
arrayView1d< real32 > const  p_nm1,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 > const  stiffnessVector,
arrayView1d< real32 const > const  damping,
arrayView1d< real32 > const  rhs,
arrayView1d< localIndex const > const  freeSurfaceNodeIndicator,
SortedArrayView< localIndex const > const  solverTargetNodesSet 
)
inlinestatic

Apply second order Leap-Frog time scheme for isotropic case without PML.

Parameters
[in]dttime-step
[out]p_np1pressure array at time n+1 (updated here)
[in]p_npressure array at time n
[in]p_nm1pressure array at time n-1
[in]massthe mass matrix
[in]stiffnessVectorarray containing the product of the stiffness matrix R and the pressure at time n
[in]dampingthe damping matrix
[in]rhsthe right-hand-side
[in]freeSurfaceNodeIndicatorarray which contains indicators to tell if we are on a free-surface boundary or not
[in]solverTargetNodesSetthe targetted nodeset (useful in particular when we do elasto-acoustic simulation )

Definition at line 45 of file AcousticTimeSchemeSEMKernel.hpp.


The documentation for this struct was generated from the following file: