1 /****************************************************************************/ 2 /* This file is part of FreeFEM. */ 3 /* */ 4 /* FreeFEM is free software: you can redistribute it and/or modify */ 5 /* it under the terms of the GNU Lesser General Public License as */ 6 /* published by the Free Software Foundation, either version 3 of */ 7 /* the License, or (at your option) any later version. */ 8 /* */ 9 /* FreeFEM is distributed in the hope that it will be useful, */ 10 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 11 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ 12 /* GNU Lesser General Public License for more details. */ 13 /* */ 14 /* You should have received a copy of the GNU Lesser General Public License */ 15 /* along with FreeFEM. If not, see <http://www.gnu.org/licenses/>. */ 16 /****************************************************************************/ 17 // SUMMARY : ... 18 // LICENSE : LGPLv3 19 // ORG : LJLL Universite Pierre et Marie Curie, Paris, FRANCE 20 // AUTHORS : Frederic Hecht 21 // E-MAIL : frederic.hecht@sorbonne-universite.fr 22 // DATE : Dec. 2007 23 24 /* 25 Thank to the ARN () FF2A3 grant 26 ref:ANR-07-CIS7-002-01 27 */ 28 29 #ifndef FREEFEMBAMG_H_ 30 #define FREEFEMBAMG_H_ 31 32 namespace bamg { 33 extern void (*MeshIstreamErrorHandler)(ios &); 34 class Triangles; 35 } 36 37 38 const Fem2D::Mesh *ReadMeshbamg(string *const & s); 39 const Fem2D::Mesh *ReadTriangulate( string *const &s); 40 const Fem2D::Mesh *Triangulate(const KN_<double> &xx, const KN_<double> &yy); 41 const Fem2D::Mesh *bamg2msh(bamg::Triangles* tTh, bool renumbering=false); 42 bamg::Triangles *msh2bamg(const Fem2D::Mesh &Th, double cutoffradian=-1.0,long *reqedgeslab=0, int nreqedgeslab=0); 43 bamg::Triangles *msh2bamg(const Fem2D::Mesh &Th, double cutoffradian, int nbdfv, int *ndfv,int nbdfe, int *ndfe, 44 long *reqedgeslab=0, int nreqedgeslab=0); 45 46 const Fem2D::Mesh *BuildMesh(Stack stack, E_BorderN const *const &b, bool justboundary, int nbvmax=0, bool Requiredboundary=true, 47 KNM<double> *pintern=0, double alea=0); 48 const Fem2D::Mesh *BuildMesh(Stack stack, E_BorderN const *const &b, bool Requiredboundary); 49 const Fem2D::Mesh *BuildMeshBorder(Stack stack, E_BorderN const *const &b); 50 const Fem2D::Mesh *MoveTheMesh(const Fem2D::Mesh &Th, const KN_<double> &u, const KN_<double> &v); 51 const Fem2D::Mesh *buildmeshbamg(string *const &s, int =0); 52 53 #endif //FREEFEMBAMG_H_ 54