Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_IntegrationRule.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Panzer: A partial differential equation assembly
4// engine for strongly coupled complex multiphysics systems
5//
6// Copyright 2011 NTESS and the Panzer contributors.
7// SPDX-License-Identifier: BSD-3-Clause
8// *****************************************************************************
9// @HEADER
10
11#ifndef PANZER_INTEGRATION_RULE_HPP
12#define PANZER_INTEGRATION_RULE_HPP
13
14#include "Teuchos_RCP.hpp"
15//#include "Teuchos_ArrayRCP.hpp"
16#include "Shards_CellTopology.hpp"
17//#include "Phalanx_DataLayout.hpp"
18
19#include "Panzer_PointRule.hpp"
20//
21//#include "Intrepid2_DefaultCubatureFactory.hpp"
22//#include "Intrepid2_CubatureControlVolume.hpp"
23//#include "Intrepid2_CubatureControlVolumeSide.hpp"
24//#include "Intrepid2_CubatureControlVolumeBoundary.hpp"
25#include "Kokkos_DynRankView.hpp"
27
28#include <ostream>
29#include <string>
30
31namespace panzer {
32
33 class CellData;
34
41 public:
42
44 //TEUCHOS_DEPRECATED
46
47 //TEUCHOS_DEPRECATED
48 IntegrationRule(const panzer::CellData& cell_data, const std::string & cv_type);
49
51 const Teuchos::RCP<const shards::CellTopology> & cell_topology,
52 const int num_cells,
53 const int num_faces=-1);
54
55 // TODO: Move to protected
56 void setup(int cubature_degree, const panzer::CellData& cell_data);
57
58 // TODO: Move to protected
59 void setup_cv(const panzer::CellData& cell_data, std::string cv_type);
60
62 // Use getOrder() from base class
63 //TEUCHOS_DEPRECATED
64 int order() const;
65
66 // Use _cubature_order if inside class, use getOrder() if outside
67 //TEUCHOS_DEPRECATED
69
70 // Use _type if inside class, use getType() if outside class
71 //TEUCHOS_DEPRECATED
72 std::string cv_type;
73
75 virtual void print(std::ostream & os);
76
78 void referenceCoordinates(Kokkos::DynRankView<double,PHX::Device> & container);
79
81 int getPointOffset(const int subcell_index) const;
82
83 protected:
84
86 void setup_surface(const Teuchos::RCP<const shards::CellTopology> & cell_topology,
87 const int num_cells,
88 const int num_faces);
89
90 std::vector<int> _point_offsets;
91
92 private:
93
94 };
95
96}
97
98#endif
Data for determining cell topology and dimensionality.
void setup_cv(const panzer::CellData &cell_data, std::string cv_type)
int getPointOffset(const int subcell_index) const
Returns the integration point offset for a given subcell_index (i.e. local face index)
void setup_surface(const Teuchos::RCP< const shards::CellTopology > &cell_topology, const int num_cells, const int num_faces)
Setup a surface integration.
virtual void print(std::ostream &os)
print information about the integration rule
void setup(int cubature_degree, const panzer::CellData &cell_data)
void referenceCoordinates(Kokkos::DynRankView< double, PHX::Device > &container)
Construct an array containing the reference coordinates.
int order() const
Returns the order of integration (cubature degree in intrepid lingo)