00001 // -*- C++ -*- 00002 00003 // Copyright (C) 2002 Ralf Deiterding 00004 // Brandenburgische Universitaet Cottbus 00005 00006 #ifndef AMROC_CLP_SETAUX_H 00007 #define AMROC_CLP_SETAUX_H 00008 00017 template <class VectorType, class AuxVectorType, int dim> class ClpIntegratorBase; 00018 00026 template <class VectorType, class AuxVectorType, int dim> 00027 class ClpSetAux { 00028 typedef typename VectorType::InternalDataType DataType; 00029 typedef ClpIntegratorBase<VectorType,AuxVectorType,dim> integrator_type; 00030 00031 public: 00032 typedef typename integrator_type::vec_grid_data_type vec_grid_data_type; 00033 typedef void (*generic_func_type) (); 00034 00035 public: 00036 ClpSetAux(integrator_type& integ) : _integrator(integ), f_aux(0) {} 00037 ClpSetAux(integrator_type& integ, generic_func_type aux) : _integrator(integ), f_aux(aux) {} 00038 00039 inline const integrator_type& Integrator() const { return _integrator; } 00040 inline const int& NEquations() const { return Integrator().NEquations(); } 00041 inline const int& NGhosts() const { return Integrator().NGhosts(); } 00042 inline const int& NAux() const { return Integrator().NAux(); } 00043 inline const GridHierarchy& GH() const { return Integrator().GH(); } 00044 00045 protected: 00046 integrator_type& _integrator; 00047 generic_func_type f_aux; 00048 }; 00049 00050 00051 #endif