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 00030 // default copy constructor and assign are fine. 00031 00032 class NodeLevelDataOps: public LevelDataOps<NodeFArrayBox> 00033 { 00034 public: 00035 NodeLevelDataOps(); 00036 00037 virtual ~NodeLevelDataOps(){;} 00038 00039 virtual void incr( LevelData<NodeFArrayBox>& a_lhs, 00040 const LevelData<NodeFArrayBox>& a_x, 00041 Real a_scale) ; 00042 virtual void axby( LevelData<NodeFArrayBox>& a_lhs, const LevelData<NodeFArrayBox>& a_x, 00043 const LevelData<NodeFArrayBox>& a_y, Real a_a, Real a_b) ; 00044 virtual void scale(LevelData<NodeFArrayBox>& a_lhs, const Real& a_scale) ; 00045 00046 protected: 00047 RefCountedPtr<DataFactory<NodeFArrayBox> > m_levelFactory; 00048 }; 00049 00050 00051 #include "NamespaceFooter.H" 00052 #endif