00001 #ifdef CH_LANG_CC 00002 /* 00003 * _______ __ 00004 * / ___/ / ___ __ _ / / ___ 00005 * / /__/ _ \/ _ \/ V \/ _ \/ _ \ 00006 * \___/_//_/\___/_/_/_/_.__/\___/ 00007 * Please refer to Copyright.txt, in Chombo's root directory. 00008 */ 00009 #endif 00010 00011 // BVS, June 26, 2003 00012 00013 // We can assume that template class T has null construction. 00014 00015 #ifndef _NODELEVELDATAOPS_H_ 00016 #define _NODELEVELDATAOPS_H_ 00017 00018 #ifdef CH_MPI 00019 #include <string> 00020 #include <sstream> 00021 #endif 00022 #include "LevelData.H" 00023 #include "RefCountedPtr.H" 00024 #include "SPMD.H" 00025 #include "NodeFArrayBox.H" 00026 #include "LevelDataOps.H" 00027 #include "NamespaceHeader.H" 00028 00029 // default copy constructor and assign are fine. 00030 00031 class NodeLevelDataOps: public LevelDataOps<NodeFArrayBox> 00032 { 00033 public: 00034 NodeLevelDataOps(); 00035 00036 virtual ~NodeLevelDataOps() 00037 { 00038 } 00039 00040 virtual void incr( LevelData<NodeFArrayBox>& a_lhs, 00041 const LevelData<NodeFArrayBox>& a_x, 00042 Real a_scale) ; 00043 00044 virtual void axby( LevelData<NodeFArrayBox>& a_lhs, const LevelData<NodeFArrayBox>& a_x, 00045 const LevelData<NodeFArrayBox>& a_y, Real a_a, Real a_b) ; 00046 00047 virtual void scale(LevelData<NodeFArrayBox>& a_lhs, const Real& a_scale) ; 00048 00049 protected: 00050 RefCountedPtr<DataFactory<NodeFArrayBox> > m_levelFactory; 00051 }; 00052 00053 #include "NamespaceFooter.H" 00054 00055 #endif