10 #define DEF_MESH_ID "fstrMSH"
11 #define DEF_RCAP_ID "revocap"
14 char* rcap_fname_header =
NULL;
28 fprintf( fp,
"Number_of_Node_Ids %d\n", node_n );
30 for( i=0; i<node_n; i++, j+=3) {
35 fprintf( fp,
"%d %lf %lf %lf\n", nid, x, y, z );
50 int tbl341[] = { 0,1,2,3 };
51 int tbl342[] = { 0,1,2,3,6,5,7,4,9,8 };
52 int tbl361[] = { 0,1,2,3,4,5,6,7 };
53 int tbl362[] = { 0,1,2,3,4,5,6,7,8,9,10,11,16,17,18,19,12,13,14,15 };
54 int tbl351[] = { 0,1,2,3,4,5 };
55 int tbl371[] = { 4,0,3,2,1 };
69 if( etype_count == 1 ) {
71 case 341: nn = 4; rcap_etype =
"Tet4"; tbl=tbl341;
break;
72 case 342: nn = 10; rcap_etype =
"Tet10"; tbl=tbl342;
break;
73 case 361: nn = 8; rcap_etype =
"Hex8"; tbl=tbl361;
break;
74 case 362: nn = 20; rcap_etype =
"Hex20"; tbl=tbl362;
break;
75 case 351: nn = 6; rcap_etype =
"Wed6"; tbl=tbl351;
break;
76 case 371: nn = 5; rcap_etype =
"Pyr5"; tbl=tbl371;
break;
78 fprintf( stderr,
"#Error : not supported element type %d\n", etype );
81 fprintf( fp,
"Element_Type %s\n", rcap_etype );
83 fprintf( fp,
"Element_Type Multi\n" );
85 fprintf( fp,
"Number_of_Elemen_Ids %d\n", elem_n );
95 for( icel = is; icel<ie; icel++ ) {
98 fprintf( fp,
"%d", eid );
99 if( etype_count > 1 ) {
101 case 341: nn = 4; rcap_etype =
"Tet4"; tbl=tbl341;
break;
102 case 342: nn = 10; rcap_etype =
"Tet10"; tbl=tbl342;
break;
103 case 361: nn = 8; rcap_etype =
"Hex8"; tbl=tbl361;
break;
104 case 362: nn = 20; rcap_etype =
"Hex20"; tbl=tbl362;
break;
105 case 351: nn = 6; rcap_etype =
"Wed6"; tbl=tbl351;
break;
106 case 371: nn = 5; rcap_etype =
"Pyr5"; tbl=tbl371;
break;
108 fprintf( stderr,
"#Error : not supported element type %d\n", etype );
111 fprintf( fp,
" %s", rcap_etype);
113 for( j=0; j<nn; j++) {
116 fprintf( fp,
" %d", nid );
129 if( conv_elem( mesh, fp ) )
return 1;
130 if( conv_node( mesh, fp ) )
return 1;
147 int set_param(
int argc,
char** argv )
150 fprintf( stderr,
"#Error : revocap mesh file name is required\n" );
153 rcap_fname_header = argv[1];
158 int main(
int argc,
char** argv )
169 char *ptoken, *ntoken;
173 if( set_param(argc,argv) ) {
181 printf(
"domain #%d : get_mesh ok\n",
mesh->
my_rank );
184 if( files ==
NULL ) {
188 strcpy( dirname,
"" );
189 ptoken = strtok (buff,
"/" );
190 ntoken = strtok(
NULL,
"/" );
192 strcat( dirname, ptoken );
193 strcat( dirname,
"/" );
195 ntoken = strtok(
NULL,
"/" );
197 sprintf( rcap_fname,
"%s%s.%d", dirname, rcap_fname_header,
mesh->
my_rank );
199 fp = fopen( rcap_fname,
"w" );
201 fprintf( stderr,
"#Error at domain #%d : Cannot open revocap file %s\n",
206 if( convert(
mesh, fp ) ) {
211 printf(
"completed\n" );