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 #ifndef NODEFARRAYBOX_H
00035 #define NODEFARRAYBOX_H
00036
00037 #include "FArrayBox.H"
00038
00040
00103 class NodeFArrayBox
00104 {
00105
00106 public:
00107
00112
00114
00116 NodeFArrayBox();
00117
00119
00122 NodeFArrayBox(const Box& a_bx, int a_nComp, Real* a_alias = NULL);
00123
00125
00127 NodeFArrayBox(const Interval& a_comps, NodeFArrayBox& a_original);
00128
00130
00132 ~NodeFArrayBox();
00133
00135
00138 void define(const Box& a_bx, int a_nComp=1);
00139
00146
00148
00150 const Box& box() const;
00151
00153
00156 FArrayBox& getFab();
00157
00159
00162 const FArrayBox& getFab() const;
00163
00170
00172
00193 void copy(const NodeFArrayBox& a_src);
00194
00196
00209 void copy(const Box& a_regionFrom,
00210 const Interval& a_Cdest,
00211 const Box& a_regionTo,
00212 const NodeFArrayBox& a_src,
00213 const Interval& a_Csrc);
00214
00221
00223
00230 int size(const Box& a_R, const Interval& a_comps) const;
00231
00233
00242 void linearOut(void* a_buf, const Box& a_R, const Interval& a_comps) const;
00243
00245 void linearIn(void* a_buf, const Box& a_R, const Interval& a_comps);
00246
00247
00249 void linearOut(void* a_buf) const;
00251 void linearIn(const void* const a_buf);
00253 int linearSize(void) const;
00254
00256 static int preAllocatable() {return 0;}
00257
00260 protected:
00261
00262
00263 Box m_box;
00264
00265
00266 FArrayBox m_fab;
00267
00268 private:
00270
00271 NodeFArrayBox (const NodeFArrayBox&);
00272 NodeFArrayBox& operator = (const NodeFArrayBox&);
00273
00274 };
00275
00276 #endif