Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef SUNDANCE_VECTORBASISCOMPONENT_H
00043 #define SUNDANCE_VECTORBASISCOMPONENT_H
00044
00045 #include "SundanceDefs.hpp"
00046 #include "SundanceBasisFamily.hpp"
00047
00048 namespace Sundance {
00049
00050 using namespace Teuchos;
00051
00052
00053
00054
00055
00056 class VectorBasisComponent : public BasisFamilyBase
00057 {
00058 public:
00059
00060 VectorBasisComponent(const BasisFamily& master, int direction);
00061
00062
00063 bool lessThan(const BasisFamilyBase* other) const ;
00064
00065
00066 int order() const {return master_.order();}
00067
00068
00069 int dim() const
00070 {return master_.dim();}
00071
00072
00073 bool isCovariantBasis() const
00074 {return master_.isCovariantBasis();}
00075
00076
00077 bool isContravariantBasis() const
00078 {return master_.isContravariantBasis();}
00079
00080
00081 int direction() const {return direction_;}
00082
00083
00084 bool supportsCellTypePair(
00085 const CellType& maximalCellType,
00086 const CellType& cellType
00087 ) const
00088 {
00089 return master_.ptr()->supportsCellTypePair(maximalCellType,
00090 cellType);
00091 }
00092
00093
00094
00095 void getReferenceDOFs(
00096 const CellType& maximalCellType,
00097 const CellType& cellType,
00098 Array<Array<Array<int> > >& dofs
00099 ) const
00100 {
00101 master_.ptr()->getReferenceDOFs(maximalCellType,
00102 cellType, dofs);
00103 }
00104
00105
00106
00107 int nReferenceDOFsWithFacets(
00108 const CellType& maximalCellType,
00109 const CellType& cellType
00110 ) const
00111 {
00112 return master_.ptr()->nReferenceDOFsWithFacets(maximalCellType,
00113 cellType);
00114 }
00115
00116
00117 int nReferenceDOFsWithoutFacets(
00118 const CellType& maximalCellType,
00119 const CellType& cellType
00120 ) const
00121 {
00122 return master_.ptr()->nReferenceDOFsWithoutFacets(maximalCellType,
00123 cellType);
00124 }
00125
00126
00127 void refEval(
00128 const CellType& maximalCellType,
00129 const CellType& cellType,
00130 const Array<Point>& pts,
00131 const MultiIndex& deriv,
00132 Array<Array<Array<double> > >& result
00133 ) const
00134 {
00135 master_.ptr()->refEval(maximalCellType, cellType,
00136 pts, deriv, result);
00137 }
00138
00139
00140 private:
00141 BasisFamily master_;
00142 int direction_;
00143 };
00144
00145
00146 }
00147
00148
00149 #endif