Of course I forgot to attach the file ...
sorry !                                           

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
		ofstream fileb("fileb.msh",std::ios::out | std::ios::binary);
	
		char MeshFormat[13] = "$MeshFormat";
		fileb.write(MeshFormat, 13);
		
		double version = 2.;
		int type      = 1;
		int size      = sizeof(double);
		
		fileb.write((char *) &version, sizeof(double));
		fileb.write((char *) &type, sizeof(int));
		fileb.write((char *) &size, sizeof(int));
		
		int one = 1;
		fileb.write((char *) &one, sizeof(int));
		
		char EndMeshFormat[16] = "$EndMeshFormat";
		fileb.write(EndMeshFormat, 16);
		
		char Nodes[8] = "$Nodes";
		fileb.write(Nodes, 8);
	
		int number_of_nodes = 8;
		std::vector<double> nodes(8*3);
		nodes[  0] = 0.;  nodes[  1] = 0.;  nodes[  2] = 0.;
		nodes[  3] = 1.;  nodes[  4] = 0.;  nodes[  5] = 0.;
		nodes[  6] = 0.;  nodes[  7] = 1.;  nodes[  8] = 0.;   
		nodes[  9] = 1.;  nodes[10] = 1.;  nodes[11]  = 0.;   
		nodes[12] = 0.;  nodes[13] = 0.;  nodes[14]  = 1.;   
		nodes[15] = 1.;  nodes[16] = 0.;  nodes[17]  = 1.;   
		nodes[18] = 1.;  nodes[19] = 1.;  nodes[20]  = 1.;   
		nodes[21] = 0.;  nodes[22] = 1.;  nodes[23]  = 1.;   
		
		fileb.write((char *) &number_of_nodes, sizeof(int));
		for (int inode=0; inode<8; inode++) 
		{
			int ind = 3*inode;
			int iinode = inode + 1;
			double xyz[3];
			xyz[0] = nodes[ind]; xyz[1] = nodes[ind+1];  xyz[2] = nodes[ind+2];
			fileb.write((char *) &iinode, sizeof(int));
			fileb.write((char *) xyz,   3* sizeof(double));
		}
		
		char EndNodes[11] = "$EndNodes";
		fileb.write(EndNodes,11);
				
		char Elements[11] = "$Elements";
		fileb.write(Elements, 11);

		int number_of_elements = 	1;
		int iel           = 1;
		int iel_type   = 5;
		int number_of_elements_of_this_type =1;
		int nb_tags   = 3;
		std::vector<int> tags(3,1);    tags[2] = 0;
		std::vector<int> con(8);
		for (int i=0; i<8; i++) con[i] = i+1;
					con[2] = 4; con[3] = 3;
		
		fileb.write((char *) &number_of_elements, sizeof(int));						 						
		
		// element-header-binary
		fileb.write((char *) &iel_type, sizeof(int));																						
		fileb.write((char *) &number_of_elements_of_this_type, sizeof(int));		
		fileb.write((char *) &nb_tags, sizeof(int));																						
		
		// elements-binary
		fileb.write((char *) &iel, sizeof(int));
		for (int i=0; i<nb_tags; i++)  fileb.write((char *) &tags[i], sizeof(int));
		for (int i=0; i<8; i++)  fileb.write((char *) &con[i], sizeof(int));

		char EndElements[14] = "$EndElements";
		fileb.write(EndElements, 14);

		fileb.close();
}



_______________________________________________
gmsh mailing list
[email protected]
http://www.geuz.org/mailman/listinfo/gmsh

Reply via email to