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 #ifndef SUNDANCE_DISCRETEFUNCTIONSTUB_H
00032 #define SUNDANCE_DISCRETEFUNCTIONSTUB_H
00033
00034 #include "SundanceDefs.hpp"
00035 #include "SundanceListExpr.hpp"
00036 #include "SundanceDiscreteFuncDataStub.hpp"
00037 #include "SundanceSpectralBasis.hpp"
00038
00039 namespace Sundance
00040 {
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 class DiscreteFunctionStub : public ListExpr
00063 {
00064 public:
00065
00066 DiscreteFunctionStub(const std::string& name,
00067 int tensorOrder=0, int dim=1,
00068 const RCP<DiscreteFuncDataStub>& data=RCP<DiscreteFuncDataStub>(),
00069 int listIndex=0);
00070
00071 DiscreteFunctionStub(const Array<string>& name,
00072 const Array<std::pair<int,int> >& tensorStructure,
00073 const RCP<DiscreteFuncDataStub>& data=RCP<DiscreteFuncDataStub>());
00074
00075
00076 DiscreteFunctionStub(const std::string& name,
00077 const SpectralBasis& sbasis,
00078 int tensorOrder=0, int dim=1,
00079 const RCP<DiscreteFuncDataStub>& data=RCP<DiscreteFuncDataStub>(),
00080 int listIndex=0);
00081
00082
00083 DiscreteFunctionStub(const Array<string>& name,
00084 const SpectralBasis& sbasis,
00085 const Array<std::pair<int,int> >& tensorStructure,
00086 const RCP<DiscreteFuncDataStub>& data=RCP<DiscreteFuncDataStub>());
00087
00088
00089 virtual ~DiscreteFunctionStub() {;}
00090
00091
00092 virtual RCP<ExprBase> getRcp() {return rcp(this);}
00093
00094 protected:
00095
00096 void initTensor(const std::string& name,
00097 int tensorOrder, int dim,
00098 const RCP<DiscreteFuncDataStub>& data,
00099 int listIndex);
00100
00101 void initTensorSpectral(const std::string& name,
00102 const SpectralBasis& sbasis,
00103 int tensorOrder, int dim,
00104 const RCP<DiscreteFuncDataStub>& data,
00105 int listIndex);
00106
00107
00108 const RCP<DiscreteFuncDataStub>& dataStub() const {return data_;}
00109
00110 private:
00111 RCP<DiscreteFuncDataStub> data_;
00112 };
00113 }
00114
00115
00116
00117 #endif