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

Public Types

using EXEC_POLICY = parallelDevicePolicy< >
 

Static Public Member Functions

static void LeapFrog (real64 const dt, arrayView1d< real32 > const ux_np1, arrayView1d< real32 > const ux_n, arrayView1d< real32 > const ux_nm1, arrayView1d< real32 > const uy_np1, arrayView1d< real32 > const uy_n, arrayView1d< real32 > const uy_nm1, arrayView1d< real32 > const uz_np1, arrayView1d< real32 > const uz_n, arrayView1d< real32 > const uz_nm1, arrayView1d< real32 const > const mass, arrayView1d< real32 const > const dampingx, arrayView1d< real32 const > const dampingy, arrayView1d< real32 const > const dampingz, arrayView1d< real32 > const stiffnessVectorx, arrayView1d< real32 > const stiffnessVectory, arrayView1d< real32 > const stiffnessVectorz, arrayView1d< real32 > const rhsx, arrayView1d< real32 > const rhsy, arrayView1d< real32 > const rhsz, SortedArrayView< localIndex const > const solverTargetNodesSet)
 Apply second order Leap-Frog time scheme for isotropic case without PML. More...
 
static void AttenuationLeapFrog (real64 const dt, arrayView1d< real32 > const ux_np1, arrayView1d< real32 > const ux_n, arrayView1d< real32 > const ux_nm1, arrayView1d< real32 > const uy_np1, arrayView1d< real32 > const uy_n, arrayView1d< real32 > const uy_nm1, arrayView1d< real32 > const uz_np1, arrayView1d< real32 > const uz_n, arrayView1d< real32 > const uz_nm1, arrayView2d< real32 > const divpsix, arrayView2d< real32 > const divpsiy, arrayView2d< real32 > const divpsiz, arrayView1d< real32 const > const mass, arrayView1d< real32 const > const dampingx, arrayView1d< real32 const > const dampingy, arrayView1d< real32 const > const dampingz, arrayView1d< real32 > const stiffnessVectorx, arrayView1d< real32 > const stiffnessVectory, arrayView1d< real32 > const stiffnessVectorz, arrayView1d< real32 > const stiffnessVectorAx, arrayView1d< real32 > const stiffnessVectorAy, arrayView1d< real32 > const stiffnessVectorAz, arrayView1d< real32 > const rhsx, arrayView1d< real32 > const rhsy, arrayView1d< real32 > const rhsz, 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...
 

Detailed Description

Definition at line 26 of file ElasticTimeSchemeSEMKernel.hpp.

Member Function Documentation

◆ AttenuationLeapFrog()

static void geos::ElasticTimeSchemeSEM::AttenuationLeapFrog ( real64 const  dt,
arrayView1d< real32 > const  ux_np1,
arrayView1d< real32 > const  ux_n,
arrayView1d< real32 > const  ux_nm1,
arrayView1d< real32 > const  uy_np1,
arrayView1d< real32 > const  uy_n,
arrayView1d< real32 > const  uy_nm1,
arrayView1d< real32 > const  uz_np1,
arrayView1d< real32 > const  uz_n,
arrayView1d< real32 > const  uz_nm1,
arrayView2d< real32 > const  divpsix,
arrayView2d< real32 > const  divpsiy,
arrayView2d< real32 > const  divpsiz,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 const > const  dampingx,
arrayView1d< real32 const > const  dampingy,
arrayView1d< real32 const > const  dampingz,
arrayView1d< real32 > const  stiffnessVectorx,
arrayView1d< real32 > const  stiffnessVectory,
arrayView1d< real32 > const  stiffnessVectorz,
arrayView1d< real32 > const  stiffnessVectorAx,
arrayView1d< real32 > const  stiffnessVectorAy,
arrayView1d< real32 > const  stiffnessVectorAz,
arrayView1d< real32 > const  rhsx,
arrayView1d< real32 > const  rhsy,
arrayView1d< real32 > const  rhsz,
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]ux_np1displacement in x-direction array at time n+1 (updated here)
[in]ux_ndisplacement in x-direction array at time n
[in]ux_nm1displacement in x-direction array at time n-1
[out]uy_np1displacement in y-direction array at time n+1 (updated here)
[in]uy_ndisplacement in y-direction array at time n
[in]uy_nm1displacement in y-direction array at time n-1
[out]uz_np1displacement in z-direction array at time n+1 (updated here)
[in]uz_ndisplacement in z-direction array at time n
[in]uz_nm1displacement in z-direction array at time n-1
[in]divpsixdivergence of the memory variables in the x direction
[in]divpsiydivergence of the memory variables in the y direction
[in]divpsizdivergence of the memory variables in the z direction
[in]massthe mass matrix
[in]dampingxthe damping matrix for x-component
[in]dampingythe damping matrix for y-component
[in]dampingzthe damping matrix for z-component
[in]stiffnessVectorxarray containing the product of the stiffness matrix R and the displacement in x-direction at time n
[in]stiffnessVectoryarray containing the product of the stiffness matrix R and the displacement in y-direction at time n
[in]stiffnessVectorzarray containing the product of the stiffness matrix R and the displacement in z-direction at time n
[in]stiffnessVectorAxarray containing the product of the attenuation stiffness matrix R and the displacement in x-direction at time n
[in]stiffnessVectorAyarray containing the product of the attenuation stiffness matrix R and the displacement in y-direction at time n
[in]stiffnessVectorAzarray containing the product of the attenuation stiffness matrix R and the displacement in z-direction at time n
[in]rhsxthe right-hand-side for displacement in x-direction
[in]rhsythe right-hand-side for displacement in y-direction
[in]rhszthe right-hand-side for displacement in z-direction
[in]solverTargetNodesSetthe targetted nodeset (useful in particular when we do elasto-acoustic simulation )

Definition at line 132 of file ElasticTimeSchemeSEMKernel.hpp.

◆ LeapFrog()

static void geos::ElasticTimeSchemeSEM::LeapFrog ( real64 const  dt,
arrayView1d< real32 > const  ux_np1,
arrayView1d< real32 > const  ux_n,
arrayView1d< real32 > const  ux_nm1,
arrayView1d< real32 > const  uy_np1,
arrayView1d< real32 > const  uy_n,
arrayView1d< real32 > const  uy_nm1,
arrayView1d< real32 > const  uz_np1,
arrayView1d< real32 > const  uz_n,
arrayView1d< real32 > const  uz_nm1,
arrayView1d< real32 const > const  mass,
arrayView1d< real32 const > const  dampingx,
arrayView1d< real32 const > const  dampingy,
arrayView1d< real32 const > const  dampingz,
arrayView1d< real32 > const  stiffnessVectorx,
arrayView1d< real32 > const  stiffnessVectory,
arrayView1d< real32 > const  stiffnessVectorz,
arrayView1d< real32 > const  rhsx,
arrayView1d< real32 > const  rhsy,
arrayView1d< real32 > const  rhsz,
SortedArrayView< localIndex const > const  solverTargetNodesSet 
)
inlinestatic

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

Parameters
[in]dttime-step
[out]ux_np1displacement in x-direction array at time n+1 (updated here)
[in]ux_ndisplacement in x-direction array at time n
[in]ux_nm1displacement in x-direction array at time n-1
[out]uy_np1displacement in y-direction array at time n+1 (updated here)
[in]uy_ndisplacement in y-direction array at time n
[in]uy_nm1displacement in y-direction array at time n-1
[out]uz_np1displacement in z-direction array at time n+1 (updated here)
[in]uz_ndisplacement in z-direction array at time n
[in]uz_nm1displacement in z-direction array at time n-1
[in]massthe mass matrix
[in]dampingxthe damping matrix for x-component
[in]dampingythe damping matrix for y-component
[in]dampingzthe damping matrix for z-component
[in]stiffnessVectorxarray containing the product of the stiffness matrix R and the displacement in x-direction at time n
[in]stiffnessVectoryarray containing the product of the stiffness matrix R and the displacement in y-direction at time n
[in]stiffnessVectorzarray containing the product of the stiffness matrix R and the displacement in z-direction at time n
[in]rhsxthe right-hand-side for displacement in x-direction
[in]rhsythe right-hand-side for displacement in y-direction
[in]rhszthe right-hand-side for displacement in z-direction
[in]solverTargetNodesSetthe targetted nodeset (useful in particular when we do elasto-acoustic simulation )

Definition at line 54 of file ElasticTimeSchemeSEMKernel.hpp.


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