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
ScalarDiffFemKernel.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 National Renewable Energy Laboratory. */
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 #ifndef SCALARDIFFFEMKERNEL_H
9 #define SCALARDIFFFEMKERNEL_H
10 
11 #include "Kernel.h"
12 #include "FieldTypeDef.h"
13 
14 #include <stk_mesh/base/BulkData.hpp>
15 #include <stk_mesh/base/Entity.hpp>
16 
17 #include <Kokkos_Core.hpp>
18 #include <vector>
19 
20 namespace sierra {
21 namespace nalu {
22 
23 class ElemDataRequests;
24 class Hex8FEM;
25 class MasterElement;
26 class SolutionOptions;
27 
30 template<typename AlgTraits>
32 {
33 public:
35  const stk::mesh::BulkData&,
36  const SolutionOptions&,
40 
41  virtual ~ScalarDiffFemKernel();
42 
46  virtual void execute(
50 
51 private:
52  ScalarDiffFemKernel() = delete;
53 
54  const stk::mesh::BulkData* bulkData_;
58 
59  // master element
61  double *ipWeight_;
62  const bool shiftedGradOp_;
63 
65  Kokkos::View<DoubleType[AlgTraits::numScsIp_][AlgTraits::nodesPerElement_]> v_shape_function_ { "v_shape_func" };
66 };
67 
68 } // nalu
69 } // sierra
70 
71 #endif /* SCALARDIFFFEMKERNEL_H */
Definition: Hex8FEM.h:18
Kokkos::View< DoubleType[AlgTraits::numScsIp_][AlgTraits::nodesPerElement_]> v_shape_function_
Shape functions.
Definition: ScalarDiffFemKernel.h:65
const bool shiftedGradOp_
Definition: ScalarDiffFemKernel.h:62
Definition: ABLForcingAlgorithm.C:26
ScalarFieldType * scalarQ_
Definition: ScalarDiffFemKernel.h:55
Hex8FEM * meFEM_
Definition: ScalarDiffFemKernel.h:60
Definition: ElemDataRequests.h:66
Definition: SolutionOptions.h:38
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
const stk::mesh::BulkData * bulkData_
Definition: ScalarDiffFemKernel.h:54
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
double * ipWeight_
Definition: ScalarDiffFemKernel.h:61
ScalarFieldType * diffFluxCoeff_
Definition: ScalarDiffFemKernel.h:56
virtual void execute(SharedMemView< DoubleType ** > &, SharedMemView< DoubleType * > &, ScratchViews< DoubleType > &)
Execute the kernel within a Kokkos loop and populate the LHS and RHS for the linear solve...
Definition: ScalarDiffFemKernel.C:74
Definition: UnitTestMasterElements.C:367
Base class for computational kernels in Nalu.
Definition: Kernel.h:63
VectorFieldType * coordinates_
Definition: ScalarDiffFemKernel.h:57
Kokkos::View< T, Kokkos::LayoutRight, DeviceShmem, Kokkos::MemoryUnmanaged > SharedMemView
Definition: KokkosInterface.h:25
CVFEM scalar advection/diffusion kernel.
Definition: ScalarDiffFemKernel.h:31
virtual ~ScalarDiffFemKernel()
Definition: ScalarDiffFemKernel.C:67
Definition: ScratchViews.h:82