Branch data Line data Source code
1 : : /*
2 : : * MeshGeneration.hpp
3 : : * class for generating simple meshes online
4 : : */
5 : :
6 : : #ifndef MESHGENERATION_HPP_
7 : : #define MESHGENERATION_HPP_
8 : : #include "moab/Core.hpp"
9 : :
10 : : #include "moab/CartVect.hpp"
11 : :
12 : : namespace moab
13 : : {
14 : :
15 : : // Forward Declarations
16 : : class ParallelComm;
17 : :
18 : : class MeshGeneration
19 : : {
20 : :
21 : : public:
22 : 2 : struct BrickOpts
23 : : {
24 : : // follow the options in examples/advanced/GenLargeMesh.cpp
25 : : CartVect ui, uj, uk; // such that ui * uj = uk; uj*uk=ui, etc
26 : : double xsize, ysize, zsize; // extents of the brick
27 : : int A, B, C; // number of blocks per processor
28 : : int M, N, K; // number of processors in each direction
29 : : int blockSize; // each small block size
30 : : int GL; // number of ghost layers
31 : : bool newMergeMethod; // = false;
32 : : bool quadratic; // = false;
33 : : bool keep_skins; // = false;
34 : : bool tetra; // = false;
35 : : bool adjEnts; // = false;
36 : : bool parmerge; // = false;
37 : : };
38 : :
39 : : MeshGeneration( Interface* mbi, ParallelComm* pcomm = 0, EntityHandle rset = 0 );
40 : : virtual ~MeshGeneration();
41 : :
42 : : ErrorCode BrickInstance( BrickOpts& opts );
43 : :
44 : : private:
45 : : Interface* mb;
46 : : ParallelComm* pc;
47 : : EntityHandle cset;
48 : : };
49 : :
50 : : } /* namespace moab */
51 : : #endif /* MESHGENERATION_HPP_ */
|