00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef CENTERED_FIELD_LAYOUT_H
00012 #define CENTERED_FIELD_LAYOUT_H
00013
00014
00015 #include "FieldLayout/FieldLayout.h"
00016
00017
00018 template<unsigned Dim, class Mesh, class Centering>
00019 class CenteredFieldLayout : public FieldLayout<Dim>
00020 {
00021 public:
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 CenteredFieldLayout(Mesh& mesh,
00036 e_dim_tag *p=0,
00037 int vnodes=-1);
00038
00039
00040
00041
00042
00043
00044 CenteredFieldLayout(Mesh& mesh,
00045 e_dim_tag p1,
00046 int vnodes=-1);
00047 CenteredFieldLayout(Mesh& mesh,
00048 e_dim_tag p1, e_dim_tag p2,
00049 int vnodes=-1);
00050 CenteredFieldLayout(Mesh& mesh,
00051 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3,
00052 int vnodes=-1);
00053 CenteredFieldLayout(Mesh& mesh,
00054 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4,
00055 int vnodes=-1);
00056 CenteredFieldLayout(Mesh& mesh,
00057 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4,
00058 e_dim_tag p5,
00059 int vnodes=-1);
00060 CenteredFieldLayout(Mesh& mesh,
00061 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3, e_dim_tag p4,
00062 e_dim_tag p5, e_dim_tag p6,
00063 int vnodes=-1);
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 CenteredFieldLayout(Mesh& mesh, e_dim_tag *p,
00074 unsigned* vnodesAlongDirection,
00075 bool recurse=false,
00076 int vnodes=-1);
00077
00078 CenteredFieldLayout(Mesh& mesh,
00079 e_dim_tag p1,
00080 unsigned vnodes1,
00081 bool recurse=false,
00082 int vnodes=-1);
00083 CenteredFieldLayout(Mesh& mesh,
00084 e_dim_tag p1, e_dim_tag p2,
00085 unsigned vnodes1, unsigned vnodes2,
00086 bool recurse=false,
00087 int vnodes=-1);
00088 CenteredFieldLayout(Mesh& mesh,
00089 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3,
00090 unsigned vnodes1, unsigned vnodes2, unsigned vnodes3,
00091 bool recurse=false,
00092 int vnodes=-1);
00093 CenteredFieldLayout(Mesh& mesh,
00094 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3,
00095 e_dim_tag p4,
00096 unsigned vnodes1, unsigned vnodes2, unsigned vnodes3,
00097 unsigned vnodes4,
00098 bool recurse=false,
00099 int vnodes=-1);
00100 CenteredFieldLayout(Mesh& mesh,
00101 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3,
00102 e_dim_tag p4, e_dim_tag p5,
00103 unsigned vnodes1, unsigned vnodes2, unsigned vnodes3,
00104 unsigned vnodes4, unsigned vnodes5,
00105 bool recurse=false,
00106 int vnodes=-1);
00107 CenteredFieldLayout(Mesh& mesh,
00108 e_dim_tag p1, e_dim_tag p2, e_dim_tag p3,
00109 e_dim_tag p4, e_dim_tag p5, e_dim_tag p6,
00110 unsigned vnodes1, unsigned vnodes2, unsigned vnodes3,
00111 unsigned vnodes4, unsigned vnodes5, unsigned vnodes6,
00112 bool recurse=false,
00113 int vnodes=-1);
00114
00115
00116
00117
00118
00119
00120 CenteredFieldLayout(Mesh& mesh,
00121 const NDIndex<Dim> *dombegin,
00122 const NDIndex<Dim> *domend,
00123 const int *nbegin,
00124 const int *nend);
00125 };
00126
00127 #include "FieldLayout/CenteredFieldLayout.cpp"
00128
00129 #endif // CENTERED_FIELD_LAYOUT_H
00130
00131
00132
00133
00134
00135