00001 // expde: expression templates for partial differential equations. 00002 // Copyright (C) 2000 Christoph Pflaum 00003 // This program is free software; you can redistribute it and/or modify 00004 // it under the terms of the GNU General Public License as published by 00005 // the Free Software Foundation; either version 2 of the License, or 00006 // (at your option) any later version. 00007 // 00008 // This program is distributed in the hope that it will be useful, 00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 // GNU General Public License for more details. 00012 00013 // ------------------------------------------------------------ 00014 // listcf1.h 00015 // 00016 // ------------------------------------------------------------ 00017 00018 00019 #define initialize_cellpoi false 00020 00021 00022 // points of Randzellfreiheitsgrad 00023 class P_cellpoi { 00024 public: 00025 P_cellpoi(Index3D I, P_cellpoi* Next) : 00026 ind(I), next(Next) {}; 00027 00028 // initialize 00029 void initialize(const Grid* gitter, int level); 00030 00031 // idem 00032 double *varM(const Grid* gitter) const; 00033 00034 // physical coordinates 00035 D3vector coordinate(const Grid* gitter) const; 00036 double coordinateX(const Grid* gitter) const; 00037 double coordinateY(const Grid* gitter) const; 00038 double coordinateZ(const Grid* gitter) const; 00039 00040 // index of cell 00041 Index3D Ind() const { return ind; }; 00042 00043 // for iteration: 00044 P_cellpoi* Next() { return next; }; 00045 00046 private: 00047 Index3D ind; 00048 P_cellpoi *next; 00049 }; 00050 00051 00052 inline void P_cellpoi::initialize(const Grid* gitter, int level) { 00053 00054 } 00055 00056 00057 00058 inline D3vector P_cellpoi::coordinate(const Grid* gitter) const { 00059 return gitter->transform_coord_cellpoi(ind); 00060 }; 00061 inline double P_cellpoi::coordinateX(const Grid* gitter) const { 00062 return gitter->transform_coordX_cellpoi(ind); 00063 }; 00064 inline double P_cellpoi::coordinateY(const Grid* gitter) const { 00065 return gitter->transform_coordY_cellpoi(ind); 00066 }; 00067 inline double P_cellpoi::coordinateZ(const Grid* gitter) const { 00068 return gitter->transform_coordZ_cellpoi(ind); 00069 }; 00070 00071 inline double *P_cellpoi::varM(const Grid* gitter) const { 00072 return gitter->Give_variable_cellpoi(ind); 00073 }; 00074