Skip to content
Snippets Groups Projects
tnlEllpackGraph.h 2.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • /***************************************************************************
                              tnlEllpackGraph.h  -  description
                                 -------------------
        begin                : Sep 9, 2015
        copyright            : (C) 2015 by Tomas Oberhuber et al.
        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 TNLELLPACKGRAPH_H
    #define	TNLELLPACKGRAPH_H
    
    #include <graphs/sparse/tnlEllpackGraphLinksAccessor.h>
    
    template< typename Device = tnlHost,
              typename Index = int >
    class tnlEllpackGraphConstLinksAccessor;
    
    template< typename Device = tnlHost,
              typename Index = int >
    class tnlEllpackGraph
    {
       public:
          
          typedef Device                                                            DeviceType;
          typedef Index                                                             IndexType;
          typedef tnlEllpackGraphLinksAccessor< DeviceType, IndexType >       LinksAccessorType;
          typedef tnlEllpackGraphConstLinksAccessor< DeviceType, IndexType >  ConstLinksAccessorType;
          typedef tnlVector< IndexType, DeviceType, IndexType >                     LinksPerNodesVectorType;
                
          tnlEllpackGraph();
          
          void setNumberOfNodes( const IndexType nodes );
          
          void setNumberOfLinksPerNode( const LinksPerNodesVectorType& linksPerNode );
          
          LinksAccessorType getNodeLinksAccessor( const IndexType& nodeIndex );
          
          ConstLinksAccessorType getNodeLinksAccessor( const IndexType& nodeIndex ) const;
          
       protected:
          
          tnlVector< IndexType, DeviceType, IndexType > links;
          
          IndexType maxLinksPerNode, numberOfNodes;
    };
    
    
    #endif	/* TNLELLPACKGRAPH_H */