MOAB: Mesh Oriented datABase  (version 5.2.1)
MeshGeneration.hpp
Go to the documentation of this file.
00001 /*
00002  * MeshGeneration.hpp
00003  *  class for generating simple meshes online
00004  */
00005 
00006 #ifndef MESHGENERATION_HPP_
00007 #define MESHGENERATION_HPP_
00008 #include "moab/Core.hpp"
00009 
00010 #include "moab/CartVect.hpp"
00011 
00012 namespace moab
00013 {
00014 
00015 // Forward Declarations
00016 class ParallelComm;
00017 
00018 class MeshGeneration
00019 {
00020 
00021   public:
00022     struct BrickOpts
00023     {
00024         // follow the options in examples/advanced/GenLargeMesh.cpp
00025         CartVect ui, uj, uk;         // such that ui * uj = uk; uj*uk=ui, etc
00026         double xsize, ysize, zsize;  // extents of the brick
00027         int A, B, C;                 // number of blocks per processor
00028         int M, N, K;                 // number of processors in each direction
00029         int blockSize;               // each small block size
00030         int GL;                      // number of ghost layers
00031         bool newMergeMethod;         // = false;
00032         bool quadratic;              // = false;
00033         bool keep_skins;             // = false;
00034         bool tetra;                  // = false;
00035         bool adjEnts;                // = false;
00036         bool parmerge;               // = false;
00037     };
00038 
00039     MeshGeneration( Interface* mbi, 
00040 #ifdef MOAB_HAVE_MPI
00041                     ParallelComm* pcomm = 0, 
00042 #endif
00043                     EntityHandle rset = 0 );
00044     virtual ~MeshGeneration();
00045 
00046     ErrorCode BrickInstance( BrickOpts& opts );
00047 
00048   private:
00049     Interface* mb;
00050 #ifdef MOAB_HAVE_MPI
00051     ParallelComm* pc;
00052 #endif
00053     EntityHandle cset;
00054 };
00055 
00056 } /* namespace moab */
00057 #endif /* MESHGENERATION_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines