Intrepid2
Intrepid2_DefaultCubatureFactory.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Intrepid2 Package
4 //
5 // Copyright 2007 NTESS and the Intrepid2 contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
16 #ifndef __INTREPID2_DEFAULT_CUBATURE_FACTORY_HPP__
17 #define __INTREPID2_DEFAULT_CUBATURE_FACTORY_HPP__
18 
19 #include "Intrepid2_ConfigDefs.hpp"
20 #include "Intrepid2_Utils.hpp"
21 
22 #include "Shards_CellTopology.hpp"
23 #include "Teuchos_RCP.hpp"
24 
25 #include "Intrepid2_Cubature.hpp"
31 #include "Intrepid2_CubatureDirectTetSymmetric.hpp"
32 //#include "Intrepid2_CubatureCompositeTet.hpp"
35 //#include "Intrepid2_CubaturePolygon.hpp"
36 
38 
39 namespace Intrepid2 {
40 
46  public:
47 
56  template<typename DeviceType,
57  typename pointValueType = double,
58  typename weightValueType = double>
59  static Teuchos::RCP<Cubature<DeviceType,pointValueType,weightValueType> >
60  create( unsigned topologyKey,
61  const std::vector<ordinal_type> &degree,
62  const EPolyType polytype = POLYTYPE_MAX,
63  const bool symmetric = false );
64 
73  template<typename DeviceType,
74  typename pointValueType = double,
75  typename weightValueType = double>
76  static Teuchos::RCP<Cubature<DeviceType,pointValueType,weightValueType> >
77  create( const shards::CellTopology cellTopology,
78  const std::vector<ordinal_type> &degree,
79  const EPolyType polytype = POLYTYPE_MAX,
80  const bool symmetric = false );
81 
82 
91  template<typename DeviceType,
92  typename pointValueType = double,
93  typename weightValueType = double>
94  static Teuchos::RCP<Cubature<DeviceType,pointValueType,weightValueType> >
95  create( unsigned topologyKey,
96  const ordinal_type degree,
97  const EPolyType polytype = POLYTYPE_MAX,
98  const bool symmetric = false );
99 
108  template<typename DeviceType,
109  typename pointValueType = double,
110  typename weightValueType = double>
111  static Teuchos::RCP<Cubature<DeviceType,pointValueType,weightValueType> >
112  create( const shards::CellTopology cellTopology,
113  const ordinal_type degree,
114  const EPolyType polytype = POLYTYPE_MAX,
115  const bool symmetric = false );
116 
117 
127  // template<typename DeviceType>
128  // template<typename cellVertexValueType, class ...cellVertexProperties>
129  // static Teuchos::RCP<Cubature<ExecSpace> >
130  // create( const shards::CellTopology &cellTopology,
131  // const Kokkos::DynRankView<cellVertexValueType,cellVertexProperties> cellVertices,
132  // const ordinal_type degree );
133  };
134 
135 }// namespace Intrepid2
136 
138 
139 #endif
A factory class that generates specific instances of cubatures.
static Teuchos::RCP< Cubature< DeviceType, pointValueType, weightValueType > > create(unsigned topologyKey, const std::vector< ordinal_type > &degree, const EPolyType polytype=POLYTYPE_MAX, const bool symmetric=false)
Factory method.
Header file for the Intrepid2::CubatureDirectTriDefault class.
Header function for Intrepid2::Util class and other utility functions.
Header file for the Intrepid2::CubatureTensorPyr class.
Header file for the Intrepid2::Cubature class.
Header file for the Intrepid2::CubatureDirectLineGauss class.
Header file for the Intrepid2::CubatureDirectTetDefault class.
Header file for the Intrepid2::CubatureDirectTrisymPos class.
Header file for the Intrepid2::CubatureDirectLineGaussJacobi20 class.
Header file for the Intrepid2::CubaturePolylib class.
Definition file for the class Intrepid2::DefaultCubatureFactory.
Header file for the Intrepid2::CubatureTensor class.