MOAB: Mesh Oriented datABase
(version 5.5.0)
mgen_test.cpp
Go to the documentation of this file.
1
#include "
moab/Core.hpp
"
2
#include "
moab/MeshGeneration.hpp
"
3
#include "
TestUtil.hpp
"
4
#include "
moab/ProgOptions.hpp
"
5
6
#ifdef MOAB_HAVE_MPI
7
#include "
moab_mpi.h
"
8
#include "
moab/ParallelComm.hpp
"
9
#include "
MBParallelConventions.h
"
10
#endif
11
12
using namespace
moab
;
13
using
std::string;
14
15
int
main
(
int
argc,
char
* argv[] )
16
{
17
#ifdef MOAB_HAVE_MPI
18
MPI_Init( &argc, &argv );
19
#endif
20
Core
mcore;
21
Interface
*
mb
= &mcore;
22
EntityHandle
fileset;
23
MeshGeneration::BrickOpts
opts;
24
// default options
25
opts.
A
= opts.
B
= opts.
C
= 2;
26
opts.
M
= opts.
N
= opts.
K
= 1;
27
opts.
blockSize
= 4;
28
opts.
xsize
= opts.
ysize
= opts.
zsize
= 1.;
29
opts.
ui
=
CartVect
( 1., 0, 0. );
30
opts.
uj
=
CartVect
( 0., 1., 0. );
31
opts.
uk
=
CartVect
( 0., 0., 1. );
32
opts.
newMergeMethod
= opts.
quadratic
= opts.
keep_skins
= opts.
tetra
=
false
;
33
opts.
adjEnts
= opts.
parmerge
=
false
;
34
opts.
GL
= 0;
35
36
ProgOptions
popts;
37
38
popts.
addOpt
<
int
>( string(
"blockSize,b"
), string(
"Block size of mesh (default=4)"
), &opts.
blockSize
);
39
popts.
addOpt
<
int
>( string(
"xproc,M"
), string(
"Number of processors in x dir (default=1)"
), &opts.
M
);
40
popts.
addOpt
<
int
>( string(
"yproc,N"
), string(
"Number of processors in y dir (default=1)"
), &opts.
N
);
41
popts.
addOpt
<
int
>( string(
"zproc,K"
), string(
"Number of processors in z dir (default=1)"
), &opts.
K
);
42
43
popts.
addOpt
<
int
>( string(
"xblocks,A"
), string(
"Number of blocks on a task in x dir (default=2)"
), &opts.
A
);
44
popts.
addOpt
<
int
>( string(
"yblocks,B"
), string(
"Number of blocks on a task in y dir (default=2)"
), &opts.
B
);
45
popts.
addOpt
<
int
>( string(
"zblocks,C"
), string(
"Number of blocks on a task in x dir (default=2)"
), &opts.
C
);
46
47
popts.
addOpt
<
double
>( string(
"xsize,x"
), string(
"Total size in x direction (default=1.)"
), &opts.
xsize
);
48
popts.
addOpt
<
double
>( string(
"ysize,y"
), string(
"Total size in y direction (default=1.)"
), &opts.
ysize
);
49
popts.
addOpt
<
double
>( string(
"zsize,z"
), string(
"Total size in z direction (default=1.)"
), &opts.
zsize
);
50
51
popts.
addOpt
<
void
>(
"newMerge,w"
,
"use new merging method"
, &opts.
newMergeMethod
);
52
53
popts.
addOpt
<
void
>(
"quadratic,q"
,
"use hex 27 elements"
, &opts.
quadratic
);
54
55
popts.
addOpt
<
void
>(
"keep_skins,k"
,
"keep skins with shared entities"
, &opts.
keep_skins
);
56
57
popts.
addOpt
<
void
>(
"tetrahedrons,t"
,
"generate tetrahedrons"
, &opts.
tetra
);
58
59
popts.
addOpt
<
void
>(
"faces_edges,f"
,
"create all faces and edges"
, &opts.
adjEnts
);
60
61
popts.
addOpt
<
int
>( string(
"ghost_layers,g"
), string(
"Number of ghost layers (default=0)"
), &opts.
GL
);
62
63
popts.
addOpt
<
void
>(
"parallel_merge,p"
,
"use parallel mesh merge, not vertex ID based merge"
, &opts.
parmerge
);
64
65
popts.
parseCommandLine
( argc, argv );
66
67
ErrorCode
rval =
mb
->
create_meshset
(
MESHSET_SET
, fileset );
MB_CHK_ERR
( rval );
68
69
#ifdef MOAB_HAVE_MPI
70
ParallelComm
* pc =
new
ParallelComm
(
mb
,
MPI_COMM_WORLD
);
71
MeshGeneration
* mgen =
new
MeshGeneration
(
mb
, pc, fileset );
72
#else
73
MeshGeneration
* mgen =
new
MeshGeneration
(
mb
, fileset );
74
#endif
75
76
rval = mgen->
BrickInstance
( opts );
MB_CHK_ERR
( rval );
77
78
return
0;
79
}
test
mgen_test.cpp
Generated on Wed Oct 4 2023 14:20:29 for MOAB: Mesh Oriented datABase by
1.9.1