GEOSX
QuasiRTInnerProduct.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOS_FINITEVOLUME_MIMETICINNERPRODUCTS_QUASIRTINNERPRODUCT_HPP_
20 #define GEOS_FINITEVOLUME_MIMETICINNERPRODUCTS_QUASIRTINNERPRODUCT_HPP_
21 
23 
24 namespace geos
25 {
26 namespace mimeticInnerProduct
27 {
28 
35 {
36 public:
37 
52  template< localIndex NF >
54  static void
56  arrayView1d< real64 const > const & transMultiplier,
57  ArrayOfArraysView< localIndex const > const & faceToNodes,
58  arraySlice1d< localIndex const > const & elemToFaces,
59  arraySlice1d< real64 const > const & elemCenter,
60  real64 const & elemVolume,
61  real64 const (&elemPerm)[ 3 ],
62  real64 const & lengthTolerance,
63  arraySlice2d< real64 > const & transMatrix );
64 
65 };
66 
67 template< localIndex NF >
69 void
71  arrayView1d< real64 const > const & transMultiplier,
72  ArrayOfArraysView< localIndex const > const & faceToNodes,
73  arraySlice1d< localIndex const > const & elemToFaces,
74  arraySlice1d< real64 const > const & elemCenter,
75  real64 const & elemVolume,
76  real64 const (&elemPerm)[ 3 ],
77  real64 const & lengthTolerance,
78  arraySlice2d< real64 > const & transMatrix )
79 {
80  MimeticInnerProductBase::computeParametricInnerProduct< NF >( nodePosition,
81  transMultiplier,
82  faceToNodes,
83  elemToFaces,
84  elemCenter,
85  elemVolume,
86  elemPerm,
87  6.0,
88  lengthTolerance,
89  transMatrix );
90 }
91 
92 } // end namespace mimeticInnerProduct
93 
94 } // end namespace geos
95 
96 #endif //GEOS_FINITEVOLUME_MIMETICINNERPRODUCTS_QUASIRTINNERPRODUCT_HPP_
#define GEOS_HOST_DEVICE
Marks a host-device function.
Definition: GeosxMacros.hpp:48
static GEOS_HOST_DEVICE void compute(arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const &nodePosition, arrayView1d< real64 const > const &transMultiplier, ArrayOfArraysView< localIndex const > const &faceToNodes, arraySlice1d< localIndex const > const &elemToFaces, arraySlice1d< real64 const > const &elemCenter, real64 const &elemVolume, real64 const (&elemPerm)[3], real64 const &lengthTolerance, arraySlice2d< real64 > const &transMatrix)
In a given element, recompute the transmissibility matrix using the quasi Raviart-Thomas inner produc...
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Definition: DataTypes.hpp:220
LvArray::ArrayOfArraysView< T, INDEX_TYPE const, CONST_SIZES, LvArray::ChaiBuffer > ArrayOfArraysView
View of array of variable-sized arrays. See LvArray::ArrayOfArraysView for details.
Definition: DataTypes.hpp:326
ArraySlice< T, 2, USD > arraySlice2d
Alias for 2D array slice.
Definition: DataTypes.hpp:240
double real64
64-bit floating point type.
Definition: DataTypes.hpp:139
ArraySlice< T, 1, USD > arraySlice1d
Alias for 1D array slice.
Definition: DataTypes.hpp:224
ArrayView< T, 2, USD > arrayView2d
Alias for 2D array view.
Definition: DataTypes.hpp:236