GEOS
|
Public Types | |
using | EXEC_POLICY = parallelDevicePolicy< > |
Static Public Member Functions | |
template<typename EXEC_POLICY , typename FE_TYPE > | |
static void | Compute1DSourceAndReceiverConstants (localIndex const size, ArrayOfArraysView< localIndex const > const baseFacesToNodes, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const baseNodeCoords, arrayView1d< globalIndex const > const baseNodeLocalToGlobal, arrayView1d< globalIndex const > const elementLocalToGlobal, ArrayOfArraysView< localIndex const > const baseNodesToElements, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &baseElemsToNodes, arrayView1d< integer const > const elemGhostRank, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &elemsToNodes, arrayView2d< localIndex const > const elemsToFaces, arrayView2d< real64 const > const &elemCenter, arrayView2d< real64 const > const sourceCoordinates, arrayView1d< localIndex > const sourceIsAccessible, arrayView2d< localIndex > const sourceNodeIds, arrayView2d< real64 > const sourceConstants, arrayView2d< real64 const > const receiverCoordinates, arrayView1d< localIndex > const receiverIsLocal, arrayView2d< localIndex > const receiverNodeIds, arrayView2d< real64 > const receiverConstants) |
Launches the precomputation of the source and receiver terms for 1D solution (2nd order acoustic) More... | |
template<typename EXEC_POLICY , typename FE_TYPE > | |
static void | Compute1DSourceAndReceiverConstantsWithElementsAndRegionStorage (localIndex const size, localIndex const regionIndex, ArrayOfArraysView< localIndex const > const baseFacesToNodes, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const baseNodeCoords, arrayView1d< globalIndex const > const baseNodeLocalToGlobal, arrayView1d< globalIndex const > const elementLocalToGlobal, ArrayOfArraysView< localIndex const > const baseNodesToElements, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &baseElemsToNodes, arrayView1d< integer const > const elemGhostRank, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &elemsToNodes, arrayView2d< localIndex const > const elemsToFaces, arrayView2d< real64 const > const &elemCenter, arrayView2d< real64 const > const sourceCoordinates, arrayView1d< localIndex > const sourceIsAccessible, arrayView1d< localIndex > const sourceElem, arrayView2d< localIndex > const sourceNodeIds, arrayView2d< real64 > const sourceConstants, arrayView1d< localIndex > const sourceRegion, arrayView2d< real64 const > const receiverCoordinates, arrayView1d< localIndex > const receiverIsLocal, arrayView1d< localIndex > const receiverElem, arrayView2d< localIndex > const receiverNodeIds, arrayView2d< real64 > const receiverConstants, arrayView1d< localIndex > const receiverRegion) |
Launches the precomputation of the source and receiver terms with storage of elements and region in which the receivers and sources are located. More... | |
template<typename EXEC_POLICY , typename FE_TYPE > | |
static void | Compute3DSourceAndReceiverConstantsWithDAS (localIndex const size, ArrayOfArraysView< localIndex const > const baseFacesToNodes, arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const baseNodeCoords, arrayView1d< globalIndex const > const baseNodeLocalToGlobal, arrayView1d< globalIndex const > const elementLocalToGlobal, ArrayOfArraysView< localIndex const > const baseNodesToElements, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &baseElemsToNodes, arrayView1d< integer const > const elemGhostRank, arrayView2d< localIndex const, cells::NODE_MAP_USD > const &elemsToNodes, arrayView2d< localIndex const > const elemsToFaces, arrayView2d< real64 const > const &elemCenter, arrayView2d< real64 const > const sourceCoordinates, arrayView1d< localIndex > const sourceIsAccessible, arrayView2d< localIndex > const sourceNodeIds, arrayView2d< real64 > const sourceConstantsx, arrayView2d< real64 > const sourceConstantsy, arrayView2d< real64 > const sourceConstantsz, arrayView2d< real64 const > const receiverCoordinates, arrayView1d< localIndex > const receiverIsLocal, arrayView2d< localIndex > const receiverNodeIds, arrayView2d< real64 > const receiverConstants, WaveSolverUtils::DASType useDAS, integer linearDASSamples, arrayView2d< real64 const > const linearDASGeometry, R1Tensor const sourceForce, R2SymTensor const sourceMoment) |
Launches the precomputation of the source and receiver terms for 3D arrays solution and DAS receiver constants computation. More... | |
Definition at line 26 of file PrecomputeSourcesAndReceiversKernel.hpp.
|
inlinestatic |
Launches the precomputation of the source and receiver terms for 1D solution (2nd order acoustic)
EXEC_POLICY | execution policy |
FE_TYPE | finite element type |
[in] | size | the number of cells in the subRegion |
[in] | baseFacesToNodes | face to node map |
[in] | baseNodeCoords | coordinates of the nodes |
[in] | baseNodeLocalToGlobal | local to global index map for nodes |
[in] | elementLocalToGlobal | local to global index map for elements |
[in] | baseNodesToElements | node to element map for the base mesh |
[in] | baseElemsToNodes | element to node map for the base mesh |
[in] | elemGhostRank | rank of the ghost element |
[in] | elemsToNodes | map from element to nodes |
[in] | elemsToFaces | map from element to faces |
[in] | elemCenter | coordinates of the element centers |
[in] | sourceCoordinates | coordinates of the source terms |
[out] | sourceIsAccessible | flag indicating whether the source is accessible or not |
[out] | sourceNodeIds | indices of the nodes of the element where the source is located |
[out] | sourceConstants | constant part of the source terms |
[in] | receiverCoordinates | coordinates of the receiver terms |
[out] | receiverIsLocal | flag indicating whether the receiver is local or not |
[out] | receiverNodeIds | indices of the nodes of the element where the receiver is located |
[out] | receiverConstants | constant part of the receiver term |
loop over all the source that haven't been found yet
loop over all the receivers that haven't been found yet
Definition at line 57 of file PrecomputeSourcesAndReceiversKernel.hpp.
|
inlinestatic |
Launches the precomputation of the source and receiver terms with storage of elements and region in which the receivers and sources are located.
EXEC_POLICY | execution policy |
FE_TYPE | finite element type |
[in] | size | the number of cells in the subRegion |
[in] | baseFacesToNodes | face to node map of the base mesh |
[in] | baseNodeCoords | coordinates of the nodes of the base mesh |
[in] | baseNodeLocalToGlobal | local to global index map for nodes of the base mesh |
[in] | elementLocalToGlobal | local to global index map for elements (for the base or high order mesh) |
[in] | baseNodesToElements | local node to element map for the base mesh |
[in] | baseElemsToNodes | element to node map for the base mesh |
[in] | elemGhostRank | rank of the ghost element |
[in] | elemsToNodes | map from element to nodes |
[in] | elemsToFaces | map from element to faces |
[in] | elemCenter | coordinates of the element centers |
[in] | sourceCoordinates | coordinates of the source terms |
[out] | sourceIsAccessible | flag indicating whether the source is accessible or not |
[out] | sourceElem | element where a source is located |
[out] | sourceNodeIds | indices of the nodes of the element where the source is located |
[out] | sourceConstants | constant part of the source terms |
[in] | receiverCoordinates | coordinates of the receiver terms |
[out] | receiverIsLocal | flag indicating whether the receiver is local or not |
[out] | receiverElem | element where a receiver is located |
[out] | receiverNodeIds | indices of the nodes of the element where the receiver is located |
[out] | receiverConstants | constant part of the receiver term |
loop over all the source that haven't been found yet
loop over all the receivers that haven't been found yet
Definition at line 207 of file PrecomputeSourcesAndReceiversKernel.hpp.
|
inlinestatic |
Launches the precomputation of the source and receiver terms for 3D arrays solution and DAS receiver constants computation.
EXEC_POLICY | execution policy |
FE_TYPE | finite element type |
[in] | size | the number of cells in the subRegion |
[in] | baseFacesToNodes | face to node map |
[in] | baseNodeCoords | coordinates of the nodes |
[in] | baseNodeLocalToGlobal | local to global index map for nodes |
[in] | elementLocalToGlobal | local to global index map for elements |
[in] | baseNodesToElements | node to element map for the base mesh |
[in] | baseElemsToNodes | element to node map for the base mesh |
[in] | elemGhostRank | array containing the ghost rank |
[in] | elemsToNodes | map from element to nodes |
[in] | elemsToFaces | map from element to faces |
[in] | elemCenter | coordinates of the element centers |
[in] | sourceCoordinates | coordinates of the source terms |
[out] | sourceIsAccessible | flag indicating whether the source is accessible or not |
[out] | sourceNodeIds | indices of the nodes of the element where the source is located |
[out] | sourceConstantsx | constant part of the source terms in x-direction |
[out] | sourceConstantsy | constant part of the source terms in y-direction |
[out] | sourceConstantsz | constant part of the source terms in z-direction |
[in] | receiverCoordinates | coordinates of the receiver terms |
[out] | receiverIsLocal | flag indicating whether the receiver is local or not |
[out] | receiverNodeIds | indices of the nodes of the element where the receiver is located |
[out] | receiverConstants | constant part of the receiver term |
[in] | useDAS | parameter that determines which kind of receiver needs to be modeled (DAS or not, and which type) |
[in] | linearDASSamples | parameter that gives the number of integration points to be used when computing the DAS signal via strain integration |
[in] | linearDASGeometry | geometry of the linear DAS receivers, if needed |
[in] | sourceForce | force vector of the source |
[in] | sourceMoment | moment (symmetric rank-2 tensor) of the source |
loop over all the source that haven't been found yet
compute locations of samples along receiver
compute integration constants of samples for displacement difference (dipole) DAS, take the discrete derivative of the pair of geophones
for strain integration DAS, take the average of strains to average strain data
loop over all the receivers
loop over samples
compute sample coordinates and locate the element containing it
Definition at line 373 of file PrecomputeSourcesAndReceiversKernel.hpp.