Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Hex8FEM.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level Nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 
8 
9 #ifndef Hex8FEM_h
10 #define Hex8FEM_h
11 
13 
14 namespace sierra{
15 namespace nalu{
16 
17 // Hex 8 FEM; -1.0 : 1.0 range
18 class Hex8FEM : public MasterElement
19 {
20 public:
21 
22  Hex8FEM();
23  virtual ~Hex8FEM();
24 
25  void grad_op(
26  const int nelem,
27  const double *coords,
28  double *gradop,
29  double *deriv,
30  double *det_j,
31  double * error );
32 
33  void shifted_grad_op(
34  const int nelem,
35  const double *coords,
36  double *gradop,
37  double *deriv,
38  double *det_j,
39  double * error );
40 
41  void grad_op_fem(
45  SharedMemView<DoubleType*>&det_j) final;
46 
51  SharedMemView<DoubleType*>&det_j) final;
52 
53  void shape_fcn(
54  SharedMemView<DoubleType**> &shpfc) final;
55 
56  void shifted_shape_fcn(
57  SharedMemView<DoubleType**> &shpfc) final;
58 
59  void face_grad_op(
60  const int nelem,
61  const int face_ordinal,
62  const double *coords,
63  double *gradop,
64  double *det_j,
65  double *error);
66 
67  void general_shape_fcn(
68  const int numIp,
69  const double *isoParCoord,
70  double *shpfc);
71 
72  void shape_fcn(
73  double *shpfc);
74 
75  void shifted_shape_fcn(
76  double *shpfc);
77 
78  void gij(
79  const double *coords,
80  double *gupperij,
81  double *glowerij,
82  double *deriv);
83 
84 private:
85 
86  void hex8_fem_shape_fcn(
87  const int &numIp,
88  const double *isoParCoord,
89  double *shpfc);
90 
91  void hex8_fem_shape_fcn(
92  const int &numIp,
93  const double *isoParCoord,
95 
97  const int npt, const double* par_coord,
98  double* deriv);
99 
100  void hex8_fem_derivative(
101  const int npt, const double* par_coord,
103 };
104 
105 } // namespace nalu
106 } // namespace Sierra
107 
108 #endif
Definition: Hex8FEM.h:18
void grad_op_fem(SharedMemView< DoubleType ** > &coords, SharedMemView< DoubleType *** > &gradop, SharedMemView< DoubleType *** > &deriv, SharedMemView< DoubleType * > &det_j) final
Definition: Hex8FEM.C:183
void gij(const double *coords, double *gupperij, double *glowerij, double *deriv)
Definition: Hex8FEM.C:326
Definition: ABLForcingAlgorithm.C:26
Definition: MasterElement.h:53
void shape_fcn(SharedMemView< DoubleType ** > &shpfc) final
Definition: Hex8FEM.C:309
void general_shape_fcn(const int numIp, const double *isoParCoord, double *shpfc)
Definition: Hex8FEM.C:279
Hex8FEM()
Definition: Hex8FEM.C:106
void shifted_shape_fcn(SharedMemView< DoubleType ** > &shpfc) final
Definition: Hex8FEM.C:318
void hex8_fem_derivative(const int npt, const double *par_coord, double *deriv)
Definition: Hex8FEM.C:399
void shifted_grad_op_fem(SharedMemView< DoubleType ** > &coords, SharedMemView< DoubleType *** > &gradop, SharedMemView< DoubleType *** > &deriv, SharedMemView< DoubleType * > &det_j) final
Definition: Hex8FEM.C:220
void hex8_fem_shape_fcn(const int &numIp, const double *isoParCoord, double *shpfc)
Definition: Hex8FEM.C:343
void grad_op(const int nelem, const double *coords, double *gradop, double *deriv, double *det_j, double *error)
Definition: Hex8FEM.C:159
Kokkos::View< T, Kokkos::LayoutRight, DeviceShmem, Kokkos::MemoryUnmanaged > SharedMemView
Definition: KokkosInterface.h:25
void face_grad_op(const int nelem, const int face_ordinal, const double *coords, double *gradop, double *det_j, double *error)
Definition: Hex8FEM.C:233
virtual ~Hex8FEM()
Definition: Hex8FEM.C:146
void shifted_grad_op(const int nelem, const double *coords, double *gradop, double *deriv, double *det_j, double *error)
Definition: Hex8FEM.C:196