$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

blockIdentifiers.h

Go to the documentation of this file.
00001 /* This file is part of the Palabos library.
00002  *
00003  * Copyright (C) 2011 FlowKit Sarl
00004  * Avenue de Chailly 23
00005  * 1012 Lausanne, Switzerland
00006  * E-mail contact: contact@flowkit.com
00007  *
00008  * The most recent release of Palabos can be downloaded at 
00009  * <http://www.palabos.org/>
00010  *
00011  * The library Palabos is free software: you can redistribute it and/or
00012  * modify it under the terms of the GNU Affero General Public License as
00013  * published by the Free Software Foundation, either version 3 of the
00014  * License, or (at your option) any later version.
00015  *
00016  * The library is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU Affero General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU Affero General Public License
00022  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00023 */
00024 
00025 
00026 #ifndef BLOCK_IDENTIFIERS_H
00027 #define BLOCK_IDENTIFIERS_H
00028 
00029 #include "core/globalDefs.h"
00030 
00031 namespace plb {
00032 
00033 namespace identifiers {
00034 
00035     enum BlockId {
00036         UndefinedId           = 0,
00037 
00038         IntScalarFieldId      = 10000,
00039         FloatScalarFieldId    = 10001,
00040         DoubleScalarFieldId   = 10002,
00041 
00042         IntNTensorFieldId     = 20000,
00043         FloatNTensorFieldId   = 20001,
00044         DoubleNTensorFieldId  = 20002,
00045 
00046         IntTensorField2Id     = 30020,
00047         FloatTensorField2Id   = 30021,
00048         DoubleTensorField2Id  = 30022,
00049 
00050         IntTensorField3Id     = 30030,
00051         FloatTensorField3Id   = 30031,
00052         DoubleTensorField3Id  = 30032,
00053 
00054         IntTensorField4Id     = 30040,
00055         FloatTensorField4Id   = 30041,
00056         DoubleTensorField4Id  = 30042,
00057 
00058         IntTensorField6Id     = 30060,
00059         FloatTensorField6Id   = 30061,
00060         DoubleTensorField6Id  = 30062,
00061 
00062         IntTensorField9Id     = 30090,
00063         FloatTensorField9Id   = 30091,
00064         DoubleTensorField9Id  = 30092,
00065 
00066         IntD2Q5BlockId        = 42040,
00067         FloatD2Q5BlockId      = 42041,
00068         DoubleD2Q5BlockId     = 42042,
00069 
00070         IntD2Q9BlockId        = 42090,
00071         FloatD2Q9BlockId      = 42091,
00072         DoubleD2Q9BlockId     = 42092,
00073 
00074         IntD3Q7BlockId        = 43070,
00075         FloatD3Q7BlockId      = 43071,
00076         DoubleD3Q7BlockId     = 43072,
00077 
00078         IntD3Q13BlockId       = 43130,
00079         FloatD3Q13BlockId     = 43131,
00080         DoubleD3Q13BlockId    = 43132,
00081 
00082         IntD3Q15BlockId       = 43150,
00083         FloatD3Q15BlockId     = 43151,
00084         DoubleD3Q15BlockId    = 43152,
00085 
00086         IntD3Q19BlockId       = 43190,
00087         FloatD3Q19BlockId     = 43191,
00088         DoubleD3Q19BlockId    = 43192,
00089 
00090         IntD3Q27BlockId       = 43270,
00091         FloatD3Q27BlockId     = 43271,
00092         DoubleD3Q27BlockId    = 43272,
00093 
00094         IntD2Q5WithForceBlockId    = 52040,
00095         FloatD2Q5WithForceBlockId  = 52041,
00096         DoubleD2Q5WithForceBlockId = 52042,
00097 
00098         IntD2Q9WithForceBlockId    = 52090,
00099         FloatD2Q9WithForceBlockId  = 52091,
00100         DoubleD2Q9WithForceBlockId = 52092,
00101 
00102         IntD3Q7WithForceBlockId    = 53070,
00103         FloatD3Q7WithForceBlockId  = 53071,
00104         DoubleD3Q7WithForceBlockId = 53072,
00105 
00106         IntD3Q13WithForceBlockId    = 53130,
00107         FloatD3Q13WithForceBlockId  = 53131,
00108         DoubleD3Q13WithForceBlockId = 53132,
00109 
00110         IntD3Q15WithForceBlockId    = 53150,
00111         FloatD3Q15WithForceBlockId  = 53151,
00112         DoubleD3Q15WithForceBlockId = 53152,
00113 
00114         IntD3Q19WithForceBlockId    = 53190,
00115         FloatD3Q19WithForceBlockId  = 53191,
00116         DoubleD3Q19WithForceBlockId = 53192,
00117 
00118         IntD3Q27WithForceBlockId    = 53270,
00119         FloatD3Q27WithForceBlockId  = 53271,
00120         DoubleD3Q27WithForceBlockId = 53272,
00121 
00122         ContainerId                 = 60000,
00123 
00124         ParticleId                  = 70000,
00125     };
00126 
00127     template<typename T>
00128     BlockId getScalarId() {
00129         return UndefinedId;
00130     }
00131 
00132     template<typename T>
00133     BlockId getNTensorId() {
00134         return UndefinedId;
00135     }
00136 
00137     template<typename T, plint n>
00138     BlockId getTensorId() {
00139         return UndefinedId;
00140     }
00141 
00142     template<typename T, template<typename U> class Descriptor>
00143     BlockId getLatticeId() {
00144         return UndefinedId;
00145     }
00146 
00147     inline BlockId getContainerId() {
00148         return ContainerId;
00149     }
00150 
00151     inline BlockId getParticleId() {
00152         return ParticleId;
00153     }
00154 
00155 }  // namespace identifiers
00156 
00157 }  // namespace plb
00158 
00159 #endif  // BLOCK_IDENTIFIERS_H