ESyS-Particle  4.0.1
RegularBlockGenerator.h
00001 
00002 //                                                         //
00003 // Copyright (c) 2003-2011 by The University of Queensland //
00004 // Earth Systems Science Computational Centre (ESSCC)      //
00005 // http://www.uq.edu.au/esscc                              //
00006 //                                                         //
00007 // Primary Business: Brisbane, Queensland, Australia       //
00008 // Licensed under the Open Software License version 3.0    //
00009 // http://www.opensource.org/licenses/osl-3.0.php          //
00010 //                                                         //
00012 
00013 
00014 #ifndef ESYS_LSMREGULARBLOCKGENERATOR_H
00015 #define ESYS_LSMREGULARBLOCKGENERATOR_H
00016 
00017 #include <Geometry/BlockGenerator.h>
00018 
00019 namespace esys
00020 {
00021   namespace lsm
00022   {
00023     typedef std::vector<bool> BoolVector;
00027     class RegularBlockGenerator : public BlockGenerator
00028     {
00029     public:
00030       RegularBlockGenerator(
00031         NTable            &nTable,
00032         ParticlePool      &particlePool,
00033         const BoundingBox &bBox,
00034         const BoolVector  &periodicDimensions,
00035         double            tolerance,
00036         double            sphereRadius
00037       );
00038 
00039       virtual ~RegularBlockGenerator();
00040 
00041       virtual double getRadius() const;
00042       
00043       virtual double getGridRadius() const;
00044 
00045       virtual void generate();
00046 
00047     private:
00048       double      m_radius;
00049     };
00050   };
00051 };
00052 
00053 #endif