MOAB: Mesh Oriented datABase
(version 5.4.1)
|
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_ */