In ANSYS, ewrite is used to output the selected unit to the file. Its parameter is
Ewrite, fname, ext, --, kappnd, format
The first two are file names and suffixes. kappnd indicates whether to clear the unit file for output (expressed by 0 and 1). Format indicates the output file.
The Bit Width of the part. Here, short is the default option, which indicates that the output is a six-Bit Width, while long indicates that 8 is a bit width output.
Similarly, ANSYS uses nwrite to output the selected node to the file. Its input parameters have the same meaning as the ewrite input parameters, but they do not have a bit width.
. However, in the output file of the node, the first column of the node number is 8 bits in width, and the second to fourth column is the node coordinate, each 20 is the bit width, and there is no
There are spaces.
When using the C language to read grid data, you can use the above files to read data. Generally, it is easier to know the number of nodes and the number of units.
Read C in sequenceProgram. However, this information is not provided in the output unit and node files.
However, you can use the following method to generate such a file: Read the number of units and the number of nodes in the analyticdb, write the corresponding unit and node files, and then
Add nodes and unit files.
The following is a simple example of reading a two-dimensional triangular mesh using C language (the number of write units and nodes is not counted, but calculated by the number of rows)
1 # Include < Stdio. h >
2 # Include < Stdlib. h >
3 // ANSYS's element output format
4
5 Char Nodeformat [] = " % * 8C % 20 S % 20 s " ; // Node row format
6 Char Elongformat [] = " % 8d % 8d % 8d % * 40C % 8d " ; // Long format of the triangular mesh of unit files
7 Char Eshortformat [] = " % 6D % 6D % 6D % * 30C % 6d " ; // Short format of the triangular mesh of unit files
8
9
10
11
12 Int Main ( Int Argc, Const Char * Argv [])
13 {
14 File * FP;
15 Char Buffer [ 200 ];
16 Char XX [ 21 ];
17 Char YY [ 21 ];
18 Int Ch;
19 Int Mat, num;
20 Int Linenum = 0 ;
21 Int A [ 3 ] = { 0 };
22 Char Nodefile [] = " Nodelist1.n " ; // Node File
23 Char Elemfile [] = " Elemlist1.e " ; // Unit File
24
25 Fp = Fopen (nodefile, " R " );
26
27 // Number of computing nodes
28 While (CH = Fgetc (FP )) ! = EOF)
29 {
30 If (CH = ' \ N ' ) Linenum ++ ;
31 }
32 Rewind (FP );
33 Printf ( " The number of nodes is % d \ n. " , Linenum );
34 // Coordinates of the read Node
35 While (Fgets (buffer, 200 , FP) ! = Null)
36 {
37 XX [ 0 ] = ' \ 0 ' ;
38 YY [ 0 ] = ' \ 0 ' ;
39 Sscanf (buffer, nodeformat, XX, YY );
40 Printf ( " % F, % F \ n " , Atof (XX), atof (yy ));
41 }
42 Fclose (FP );
43
44 Fp = Fopen (elemfile, " R " );
45 Int Linenum = 0 ;//Number of computing units
46 While (CH = Fgetc (FP )) ! = EOF)
47 {
48 If (CH = ' \ N ' ) Linenum ++ ;
49 }
50 Rewind (FP );
51 Printf ( " The number of units is % d \ n. " , Linenum );
52 // Read Unit
53 While (Fgets (buffer, 200 , FP) ! = Null)
54 {
55 Sscanf (buffer, eshortformat, & A [ 0 ], & A [ 1 ], & A [ 2 ], & Mat );
56 Printf ( " % 8d % 8d % 8d % 8d \ n " , [ 0 ], [ 1 ], [ 2 ], Mat );
57 }
58 Fclose (FP );
59
60
61 Return 0 ;
62 }
63