44 int main(
int argc,
char** argv )
46 MPI_Init( &argc, &argv );
55 if( !strcmp( argv[index],
"-eps" ) )
57 EPS1 = atof( argv[++index] );
59 if( !strcmp( argv[index],
"-input" ) )
63 if( !strcmp( argv[index],
"-cube" ) )
100 std::string tag_name(
"DP" );
107 assert( count == (
int)connecVerts.
size() );
108 double* ptr_DP = (
double*)data;
114 double t = 0.1,
T = 5;
116 double rot = M_PI / 10;
124 double lat1 = sphCoord.
lat - 2 * M_PI *
t /
T;
125 double uu = 3 *
radius /
T * pow( sin( lat1 ), 2 ) * sin( 2 * sphCoord.
lon ) * cos( M_PI *
t /
T );
126 uu += 2 * M_PI * cos( sphCoord.
lon ) /
T;
127 double vv = 3 *
radius /
T * ( sin( 2 * lat1 ) ) * cos( sphCoord.
lon ) * cos( M_PI *
t /
T );
128 double vx = -uu * sin( sphCoord.
lon ) - vv * sin( sphCoord.
lat ) * cos( sphCoord.
lon );
129 double vy = -uu * cos( sphCoord.
lon ) - vv * sin( sphCoord.
lat ) * sin( sphCoord.
lon );
130 double vz = vv * cos( sphCoord.
lat );
131 posi = posi + time *
CartVect( vx, vy, vz );
132 double x2 = posi[0] * cos( rot ) - posi[1] * sin( rot );
133 double y2 = posi[0] * sin( rot ) + posi[1] * cos( rot );
135 double len1 = newPos.
length();
136 newPos =
radius * newPos / len1;
138 ptr_DP[0] = newPos[0];
139 ptr_DP[1] = newPos[1];
140 ptr_DP[2] = newPos[2];
149 std::string opts = std::string(
"PARALLEL=READ_PART;PARTITION=PARALLEL_PARTITION" ) +
150 std::string(
";PARALLEL_RESOLVE_SHARED_ENTS" );
161 CHECK( NULL != pcomm );
171 std::stringstream ste;
172 ste <<
"initial" <<
rank <<
".vtk";
173 mb.
write_file( ste.str().c_str(), 0, 0, &euler_set, 1 );
184 std::cout <<
"error tolerance epsilon_1=" <<
radius * 1.e-8 <<
"\n";
187 worker.set_parallel_comm( pcomm );
196 std::stringstream ss;
197 ss <<
"partial" <<
rank <<
".vtk";
198 mb.
write_file( ss.str().c_str(), 0, 0, &covering_lagr_set, 1 );
207 std::stringstream outf;
208 outf <<
"intersect" <<
rank <<
".h5m";
209 rval =
mb.
write_file( outf.str().c_str(), 0, 0, &outputSet, 1 );
212 std::cout <<
"On rank : " <<
rank <<
" arrival area: " << arrival_area <<
" intersection area:" << intx_area
213 <<
" rel error: " << fabs( ( intx_area - arrival_area ) / arrival_area ) <<
"\n";
CHECK_ERR( rval );
218 std::string opts = std::string(
"PARALLEL=READ_PART;PARTITION=PARALLEL_PARTITION" ) +
219 std::string(
";PARALLEL_RESOLVE_SHARED_ENTS" );
239 std::stringstream ste;
240 ste <<
"initial" <<
rank <<
".vtk";
241 mb.
write_file( ste.str().c_str(), 0, 0, &euler_set, 1 );
252 std::cout <<
"error tolerance epsilon_1=" <<
radius * 1.e-8 <<
"\n";
262 worker.set_parallel_comm( pcomm );
266 std::stringstream ss;
267 ss <<
"partial" <<
rank <<
".vtk";
268 mb.
write_file( ss.str().c_str(), 0, 0, &covering_lagr_set, 1 );
270 std::stringstream ss2;
271 ss2 <<
"partialConvex" <<
rank <<
".vtk";
272 mb.
write_file( ss2.str().c_str(), 0, 0, &covering_lagr_set, 1 );
280 std::stringstream outf;
281 outf <<
"intersect" <<
rank <<
".h5m";
282 rval =
mb.
write_file( outf.str().c_str(), 0, 0, &outputSet, 1 );
287 std::cout <<
"On rank : " <<
rank <<
" arrival area: " << arrival_area <<
" intersection area:" << intx_area
288 <<
" rel error: " << fabs( ( intx_area - arrival_area ) / arrival_area ) <<
"\n";
CHECK_ERR( rval );