Newer
Older
Tomáš Oberhuber
committed
/***************************************************************************
Tomáš Oberhuber
committed
-------------------
begin : Jan 16, 2013
copyright : (C) 2013 by Tomas Oberhuber
Tomáš Oberhuber
committed
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 TNLGRID_H_
#define TNLGRID_H_
#include <core/tnlObject.h>
#include <core/tnlHost.h>
#include <core/tnlTuple.h>
#include <mesh/tnlIdenticalGridGeometry.h>
Tomáš Oberhuber
committed
template< int Dimensions,
typename Real = double,
typename Device = tnlHost,
typename Index = int,
template< int, typename, typename, typename > class Geometry = tnlIdenticalGridGeometry >
Tomáš Oberhuber
committed
{
typename Index,
template< int, typename, typename, typename > class Geometry >
class tnlGrid< 1, Real, Device, Index, Geometry > : public tnlObject
typedef Real RealType;
typedef Device DeviceType;
typedef Index IndexType;
enum { Dimensions = 1};
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
tnlString getType() const;
Tomáš Oberhuber
committed
void setDimensions( const tnlTuple< 1, Index >& );
const tnlTuple< 1, Index >& getDimensions() const;
Tomáš Oberhuber
committed
void setOrigin( const tnlTuple< 1, Real >& origin );
Tomáš Oberhuber
committed
const tnlTuple< 1, Real >& getOrigin() const;
Tomáš Oberhuber
committed
void setProportions( const tnlTuple< 1, Real >& proportions );
Tomáš Oberhuber
committed
const tnlTuple< 1, Real >& getProportions() const;
Tomáš Oberhuber
committed
void setSpaceStep( const tnlTuple< 1, Real >& spaceStep );
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
Index getElementIndex( const Index i ) const;
//! Method for saving the object to a file as a binary data
bool save( tnlFile& file ) const;
//! Method for restoring the object from a file
bool load( tnlFile& file );
bool save( const tnlString& fileName ) const;
bool load( const tnlString& fileName );
template< typename MeshFunction >
bool write( const MeshFunction& function,
const tnlString& fileName,
const tnlString& format ) const;
tnlTuple< 1, RealType > origin, proportions;
template< typename Real,
typename Device,
typename Index,
template< int, typename, typename, typename > class Geometry >
class tnlGrid< 2, Real, Device, Index, Geometry > : public tnlObject
typedef Real RealType;
typedef Device DeviceType;
typedef Index IndexType;
enum { Dimensions = 2};
tnlString getType() const;
void setDimensions( const Index ySize, const Index xSize );
void setDimensions( const tnlTuple< 2, Index >& );
const tnlTuple< 2, Index >& getDimensions() const;
void setOrigin( const tnlTuple< 2, Real >& origin );
Tomáš Oberhuber
committed
const tnlTuple< 2, Real >& getOrigin() const;
Tomáš Oberhuber
committed
void setProportions( const tnlTuple< 2, Real >& proportions );
Tomáš Oberhuber
committed
const tnlTuple< 2, Real >& getProportions() const;
Tomáš Oberhuber
committed
void setSpaceStep( const tnlTuple< 2, Real >& spaceStep );
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
Index getElementIndex( const Index j, const Index i ) const;
Tomáš Oberhuber
committed
Index getElementNeighbour( const Index Element,
const Index dy,
const Index dx ) const;
Tomáš Oberhuber
committed
//! Method for saving the object to a file as a binary data
bool save( tnlFile& file ) const;
//! Method for restoring the object from a file
bool load( tnlFile& file );
bool save( const tnlString& fileName ) const;
bool load( const tnlString& fileName );
template< typename MeshFunction >
bool write( const MeshFunction& function,
const tnlString& fileName,
const tnlString& format ) const;
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
tnlTuple< 2, RealType > origin, proportions;
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
};
template< typename Real,
typename Device,
typename Index,
template< int, typename, typename, typename > class Geometry >
class tnlGrid< 3, Real, Device, Index, Geometry > : public tnlObject
Tomáš Oberhuber
committed
typedef Real RealType;
typedef Device DeviceType;
typedef Index IndexType;
enum { Dimensions = 3};
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
tnlString getType() const;
void setDimensions( const Index zSize, const Index ySize, const Index xSize );
Tomáš Oberhuber
committed
void setDimensions( const tnlTuple< 3, Index >& );
const tnlTuple< 3, Index >& getDimensions() const;
Tomáš Oberhuber
committed
void setOrigin( const tnlTuple< 3, Real >& origin );
Tomáš Oberhuber
committed
const tnlTuple< 3, Real >& getOrigin() const;
Tomáš Oberhuber
committed
void setProportions( const tnlTuple< 3, Real >& proportions );
Tomáš Oberhuber
committed
const tnlTuple< 3, Real >& getProportions() const;
Tomáš Oberhuber
committed
void setSpaceStep( const tnlTuple< 3, Real >& spaceStep );
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
Index getElementIndex( const Index k, const Index j, const Index i ) const;
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
//! Method for saving the object to a file as a binary data
bool save( tnlFile& file ) const;
//! Method for restoring the object from a file
bool load( tnlFile& file );
bool save( const tnlString& fileName ) const;
bool load( const tnlString& fileName );
template< typename MeshFunction >
bool write( const MeshFunction& function,
const tnlString& fileName,
const tnlString& format ) const;
tnlTuple< 3, RealType > origin, proportions;
Tomáš Oberhuber
committed
Tomáš Oberhuber
committed
#include <implementation/mesh/tnlGrid1D_impl.h>
#include <implementation/mesh/tnlGrid2D_impl.h>
#include <implementation/mesh/tnlGrid3D_impl.h>