Path: blob/devel/ElmerGUI/netgen/libsrc/interface/writedolfin.cpp
3206 views
//1// Write dolfin file2//3// by4// Kent-Andre Mardal <[email protected]>567#include <mystdlib.h>89#include <myadt.hpp>10#include <linalg.hpp>11#include <csg.hpp>12#include <meshing.hpp>1314namespace netgen15{1617#include "writeuser.hpp"18192021void WriteDolfinFormat (const Mesh & mesh, const string & filename)22{23cout << "start writing dolfin export" << endl;2425int np = mesh.GetNP();26int ne = mesh.GetNE();27int nse = mesh.GetNSE();28int nsd = mesh.GetDimension();29int invertsurf = mparam.inverttrigs;30int i, j;3132ofstream outfile (filename.c_str());3334char str[100];35outfile.precision(8);36outfile.setf (ios::fixed, ios::floatfield);37outfile.setf (ios::showpoint);3839if ( nsd == 3) {4041outfile << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" <<endl;42outfile << ""<<endl;4344outfile << "<dolfin xmlns:dolfin=\"http://www.phi.chalmers.se/dolfin/\">"<<endl;45outfile << " <mesh celltype=\"tetrahedron\" dim=\"3\">" <<endl;46outfile << " <vertices size=\""<<np<<"\">"<<endl;47for (i = 1; i <= np; i++) {48const Point3d & p = mesh.Point(i);49outfile << " <vertex index=\""<<i-1<<"\" x=\""<<p.X()<<"\" y=\""<<p.Y()<<"\" z=\""<<p.Z()<<"\"/>"<<endl;50}51outfile << " </vertices>"<<endl;52535455outfile << " <cells size=\""<<ne<<"\">"<<endl;56for (i = 1; i <= ne; i++) {57const Element & el = mesh.VolumeElement(i);5859outfile << " <tetrahedron index=\""<<i-1<<"\" v0=\""<<el.PNum(1)-1<<"\" v1=\""<<el.PNum(2)-1<<"\" v2=\""<<el.PNum(3)-1<<"\" v3=\""<<el.PNum(4)-1<<"\"/>"<<endl;60}61outfile << " </cells>"<<endl;62}63outfile << " </mesh>"<<endl;64outfile << "</dolfin>"<<endl;6566cout << "done writing dolfin export" << endl;67}68}697071