Skip to content
Snippets Groups Projects
heatEquationScheme.h 2.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • /***************************************************************************
                              heatEquationScheme.h  -  description
                                 -------------------
        begin                : Aug 05, 2014
        copyright            : (C) 2014 by Tomas Oberhuber
        email                : tomas.oberhuber@fjfi.cvut.cz
     ***************************************************************************/
    
    /***************************************************************************
     *                                                                         *
     *   This program is free software; you can redistribute it and/or modify  *
     *   it under the terms of the GNU General Public License as published by  *
     *   the Free Software Foundation; either version 2 of the License, or     *
     *   (at your option) any later version.                                   *
     *                                                                         *
     ***************************************************************************/
    
    
    #ifndef HEATEQUATIONSCHEME_H_
    #define HEATEQUATIONSCHEME_H_
    
    template< typename Mesh,
              typename DifferentialOperator,
              typename RightHandSide >
    class heatEquationScheme
    {
       public:
    
          typedef Mesh MeshType;
          typedef typename MeshType::CoordinatesType CoordinatesType;
          typedef typename MeshType::VertexType VertexType;
          typedef typename MeshType::DeviceType DeviceType;
          typedef typename DifferentialOperator::RealType RealType;
          typedef typename DifferentialOperator::IndexType IndexType;
    
    
          template< typename Vector >
          #ifdef HAVE_CUDA
             __device__ __host__
          #endif
             void explicitUpdate( const RealType& time,
                                  const RealType& tau,
                                  const MeshType& mesh,
                                  const IndexType cellIndex,
                                  const CoordinatesType& coordinates,
                                  Vector& u,
                                  Vector& fu );
    
       protected:
    
          DifferentialOperator differentialOperator;
    
          RightHandSide rightHandSide;
    
    };
    
    #include "heatEquationScheme_impl.h"
    
    #endif /* HEATEQUATIONSCHEME_H_ */