00001 // -*- C++ -*- 00002 00003 // Copyright (C) 2012 Oak Ridge National Laboratory 00004 // Ralf Deiterding, deiterdingr@ornl.gov 00005 00006 #ifndef LBM_INTEGRATOR_H 00007 #define LBM_INTEGRATOR_H 00008 00015 #include "Interfaces/SchemeIntegrator.h" 00016 00023 template <class LBMType, int dim> 00024 class LBMIntegrator : public SchemeIntegrator<LBMType,dim> { 00025 typedef SchemeIntegrator<LBMType,dim> base; 00026 public: 00027 typedef typename base::vec_grid_data_type vec_grid_data_type; 00028 00029 LBMIntegrator(LBMType &lbm) : base(lbm) {} 00030 00031 virtual void SetupData(GridHierarchy* gh, const int& ghosts) { 00032 LBM().SetLengthScale(gh->delta_x(0,0)); 00033 base::SetupData(gh,ghosts); 00034 } 00035 00036 virtual void AllocGridFluxes(const BBox &bb, vec_grid_data_type**& Flux) {} 00037 virtual void DeAllocGridFluxes(vec_grid_data_type**& Flux) {} 00038 virtual void ResetGridFluxes(vec_grid_data_type**& Flux) {} 00039 00040 inline LBMType& LBM() { return base::Scheme(); } 00041 inline const LBMType& LBM() const { return base::Scheme(); } 00042 }; 00043 00044 00045 #endif 00046