diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index c68fee9f24f12ad9da0f15b9a06bdc9157402b59..88853f1a626c4fc05822a9f0e4fbb693f00df4f4 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,4 +1,4 @@ -// $Id: CommandLine.cpp,v 1.91 2007-01-17 08:14:22 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.92 2007-01-18 09:12:44 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -82,7 +82,7 @@ void Print_Usage(char *name){ Msg(DIRECT, " -saveall Save all elements (discard physical group definitions)"); Msg(DIRECT, " -o file Specify mesh output file name"); Msg(DIRECT, " -format string Set output mesh format (msh, unv, bdf, mesh, stl, vrml)"); - Msg(DIRECT, " -algo string Select mesh algorithm (iso, tri, netgen, tetgen)"); + Msg(DIRECT, " -algo string Select mesh algorithm (iso, netgen, tetgen)"); Msg(DIRECT, " -smooth int Set number of mesh smoothing steps"); Msg(DIRECT, " -optimize Optimize quality of tetrahedral elements"); Msg(DIRECT, " -order int Set mesh order (1, 2)"); @@ -398,16 +398,20 @@ void Get_Options(int argc, char *argv[]) else if(!strcmp(argv[i] + 1, "algo")) { i++; if(argv[i] != NULL) { - if(!strncmp(argv[i], "bds", 3) || !strncmp(argv[i], "iso", 3)) - CTX.mesh.algo2d = ALGO_2D_MESHADAPT; - else if(!strncmp(argv[i], "del", 3)) - CTX.mesh.algo2d = ALGO_2D_DELAUNAY; - else if(!strncmp(argv[i], "tri", 3)) - CTX.mesh.algo2d = ALGO_2D_TRIANGLE; + if(!strncmp(argv[i], "del3d", 5)) + CTX.mesh.algo2d = ALGO_3D_DELAUNAY; else if(!strncmp(argv[i], "netgen", 6)) CTX.mesh.algo3d = ALGO_3D_NETGEN; else if(!strncmp(argv[i], "tetgen", 6)) CTX.mesh.algo3d = ALGO_3D_TETGEN; + else if(!strncmp(argv[i], "del2d", 5) || + !strncmp(argv[i], "del", 3)) + CTX.mesh.algo2d = ALGO_2D_DELAUNAY; + else if(!strncmp(argv[i], "bds", 3) || + !strncmp(argv[i], "iso", 3)) + CTX.mesh.algo2d = ALGO_2D_MESHADAPT; + else if(!strncmp(argv[i], "tri", 3)) + CTX.mesh.algo2d = ALGO_2D_TRIANGLE; else { fprintf(stderr, ERROR_STR "Unknown mesh algorithm\n"); exit(1); diff --git a/Common/Context.h b/Common/Context.h index c47b2d9bcfdbec3a467bacf90bdcd10d54efd078..ef1e961fd9ae528159e15d3cad48c883d10ee8fc 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -89,7 +89,7 @@ public : double lc; // characteristic length for the whole problem (never // used in mesh generation ->only for geo/post) - int db; // double buffer? + int db, antialiasing; // double buffer? antialiasing? int ortho; // orthogonal projection? int draw_bbox, draw_rotation_center; // draw the bounding boxes and the rot center? int fast_redraw; // draw simplified model during user interaction diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 18d02a0a6bfcf90c18631754ac6d4477870a254e..d22a6522c0bea83e3d1bc9b5d6dcc8e5afe47635 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -440,6 +440,8 @@ StringXString PrintOptions_String[] = { StringXNumber GeneralOptions_Number[] = { { F|O, "AlphaBlending" , opt_general_alpha_blending , 1. , "Enable alpha blending (transparency) in post-processing views" }, + { F|O, "Antialiasing" , opt_general_antialiasing , 0. , + "Use multisample antialiasing (will slow down rendering)" }, { F|O, "ArrowHeadRadius" , opt_general_arrow_head_radius , 0.12 , "Relative radius of arrow head" }, { F|O, "ArrowStemLength" , opt_general_arrow_stem_length , 0.56 , diff --git a/Common/License.cpp b/Common/License.cpp index 7f609a5632c13c972830101328252a68c8dc4102..daa50343c849fc4dae94d15775dbc830b7a774e8 100644 --- a/Common/License.cpp +++ b/Common/License.cpp @@ -1,4 +1,4 @@ -// $Id: License.cpp,v 1.7 2006-11-27 22:22:07 geuzaine Exp $ +// $Id: License.cpp,v 1.8 2007-01-18 09:12:44 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -27,7 +27,7 @@ void print_license(void) Msg(DIRECT, " Version 2, June 1991"); Msg(DIRECT, " "); Msg(DIRECT, " Copyright (C) 1989, 1991 Free Software Foundation, Inc."); - Msg(DIRECT, " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"); + Msg(DIRECT, " 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"); Msg(DIRECT, " Everyone is permitted to copy and distribute verbatim copies"); Msg(DIRECT, " of this license document, but changing it is not allowed."); Msg(DIRECT, " "); diff --git a/Common/Options.cpp b/Common/Options.cpp index fbc01826a7fd389f80e95350001977a5ca61bc6c..19cf2ff1dcf45700051184467d1ab421a5a88c79 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.327 2007-01-17 08:14:22 geuzaine Exp $ +// $Id: Options.cpp,v 1.328 2007-01-18 09:12:44 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -3008,14 +3008,9 @@ double opt_general_double_buffer(OPT_ARGS_NUM) CTX.db = (int)val; #if defined(HAVE_FLTK) if(WID) { - if(CTX.db) { - Msg(INFO, "Setting OpenGL visual to double buffered"); - WID->g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_DOUBLE); - } - else { - Msg(INFO, "Setting OpenGL visual to single buffered"); - WID->g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_SINGLE); - } + int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE); + if(CTX.antialiasing) mode |= FL_MULTISAMPLE; + WID->g_opengl_window->mode(mode); } #endif } @@ -3026,6 +3021,25 @@ double opt_general_double_buffer(OPT_ARGS_NUM) return CTX.db; } +double opt_general_antialiasing(OPT_ARGS_NUM) +{ + if(action & GMSH_SET) { + CTX.antialiasing = (int)val; +#if defined(HAVE_FLTK) + if(WID) { + int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE); + if(CTX.antialiasing) mode |= FL_MULTISAMPLE; + WID->g_opengl_window->mode(mode); + } +#endif + } +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) + WID->gen_butt[12]->value(CTX.antialiasing); +#endif + return CTX.antialiasing; +} + double opt_general_alpha_blending(OPT_ARGS_NUM) { if(action & GMSH_SET) diff --git a/Common/Options.h b/Common/Options.h index f20e8a7641ad7e9271554285adb09d13ba4e94e4..850b6562d48c035f2ebae2ba5e11b3fa4421e4a7 100644 --- a/Common/Options.h +++ b/Common/Options.h @@ -308,6 +308,7 @@ double opt_general_small_axes_position1(OPT_ARGS_NUM); double opt_general_small_axes_size(OPT_ARGS_NUM); double opt_general_quadric_subdivisions(OPT_ARGS_NUM); double opt_general_double_buffer(OPT_ARGS_NUM); +double opt_general_antialiasing(OPT_ARGS_NUM); double opt_general_alpha_blending(OPT_ARGS_NUM); double opt_general_vector_type(OPT_ARGS_NUM); double opt_general_arrow_head_radius(OPT_ARGS_NUM); diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index f997f9d3bfcb0ea375940d4811e49e63c8a29e44..d8222ccaca68c20bae2a5d11b8c057a5ed5197bf 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.504 2007-01-17 08:14:22 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.505 2007-01-18 09:12:44 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -898,6 +898,8 @@ void general_options_ok_cb(CALLBACK_ARGS) opt_general_fast_redraw(0, GMSH_SET, WID->gen_butt[2]->value()); if(opt_general_double_buffer(0, GMSH_GET, 0) != WID->gen_butt[3]->value()) opt_general_double_buffer(0, GMSH_SET, WID->gen_butt[3]->value()); + if(opt_general_antialiasing(0, GMSH_GET, 0) != WID->gen_butt[12]->value()) + opt_general_antialiasing(0, GMSH_SET, WID->gen_butt[12]->value()); opt_general_trackball(0, GMSH_SET, WID->gen_butt[5]->value()); opt_general_terminal(0, GMSH_SET, WID->gen_butt[7]->value()); double sessionrc = opt_general_session_save(0, GMSH_GET, 0); diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index e0a4db9d2b1e4d5ba9cf4becfe6982999b5e0d74..24a7ab3fe7e92856c8f2f50ad59dac1ba3115fe0 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.591 2007-01-17 08:14:23 geuzaine Exp $ +// $Id: GUI.cpp,v 1.592 2007-01-18 09:12:45 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1443,12 +1443,10 @@ void GUI::create_graphic_window() g_window->resizable(resize_box); // opengl window - g_opengl_window = new Opengl_Window(0, 0, width, glheight); - if(!opt_general_double_buffer(0, GMSH_GET, 0)) { - Msg(INFO, "Setting OpenGL visual to single buffered"); - g_opengl_window->mode(FL_RGB | FL_DEPTH | FL_SINGLE); - } + int mode = FL_RGB | FL_DEPTH | (CTX.db ? FL_DOUBLE : FL_SINGLE); + if(CTX.antialiasing) mode |= FL_MULTISAMPLE; + g_opengl_window->mode(mode); g_opengl_window->end(); g_window->position(CTX.gl_position[0], CTX.gl_position[1]); @@ -1739,22 +1737,26 @@ void GUI::create_option_window() gen_butt[3]->type(FL_TOGGLE_BUTTON); gen_butt[3]->callback(general_options_ok_cb); - gen_butt[5] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 6 * BH, BW, BH, "Use trackball rotation mode instead of Euler angles"); + gen_butt[12] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 6 * BH, BW, BH, "Enable antialiasing"); + gen_butt[12]->type(FL_TOGGLE_BUTTON); + gen_butt[12]->callback(general_options_ok_cb); + + gen_butt[5] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 7 * BH, BW, BH, "Use trackball rotation mode instead of Euler angles"); gen_butt[5]->type(FL_TOGGLE_BUTTON); gen_butt[5]->callback(general_options_ok_cb); - gen_butt[15] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 7 * BH, BW, BH, "Rotate around pseudo center of mass"); + gen_butt[15] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 8 * BH, BW, BH, "Rotate around pseudo center of mass"); gen_butt[15]->type(FL_TOGGLE_BUTTON); gen_butt[15]->callback(general_options_ok_cb, (void*)"rotation_center"); - gen_push_butt[0] = new Fl_Button(L + 2 * IW - 2 * WB, 2 * WB + 8 * BH, BB, BH, "Select"); + gen_push_butt[0] = new Fl_Button(L + 2 * IW - 2 * WB, 2 * WB + 9 * BH, BB, BH, "Select"); gen_push_butt[0]->callback(general_options_rotation_center_select_cb); - gen_value[8] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 8 * BH, IW / 3, BH); + gen_value[8] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 9 * BH, IW / 3, BH); gen_value[8]->callback(general_options_ok_cb, (void*)"rotation_center_coord"); - gen_value[9] = new Fl_Value_Input(L + 2 * WB + IW / 3, 2 * WB + 8 * BH, IW / 3, BH); + gen_value[9] = new Fl_Value_Input(L + 2 * WB + IW / 3, 2 * WB + 9 * BH, IW / 3, BH); gen_value[9]->callback(general_options_ok_cb, (void*)"rotation_center_coord"); - gen_value[10] = new Fl_Value_Input(L + 2 * WB + 2 * IW / 3, 2 * WB + 8 * BH, IW / 3, BH, "Rotation center"); + gen_value[10] = new Fl_Value_Input(L + 2 * WB + 2 * IW / 3, 2 * WB + 9 * BH, IW / 3, BH, "Rotation center"); gen_value[10]->align(FL_ALIGN_RIGHT); gen_value[10]->callback(general_options_ok_cb, (void*)"rotation_center_coord"); diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp index 2be7850984e17dcf37367e939e1072a41b2c5526..826be7b6165f948309bb6c8c510973ae5dff3b16 100644 --- a/Geo/MElement.cpp +++ b/Geo/MElement.cpp @@ -1,4 +1,4 @@ -// $Id: MElement.cpp,v 1.27 2007-01-16 11:31:41 geuzaine Exp $ +// $Id: MElement.cpp,v 1.28 2007-01-18 09:12:45 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -454,7 +454,7 @@ void MTriangle::circumcenterXY(double *res) const d = 2. * (double)(y1 * (x2 - x3) + y2 * (x3 - x1) + y3 * (x1 - x2)); if(d == 0.0) { - Msg(WARNING, "Colinear points in circum circle computation"); + Msg(GERROR, "Colinear points in circum circle computation"); res[0] = res[1] = -99999.; return ; } diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp index 05bb23acdbcec165adf81b78546288a471b82f2b..186f80019eabebed332fcbbdfe1ead2b1bfe5a91 100644 --- a/Mesh/meshGRegionDelaunayInsertion.cpp +++ b/Mesh/meshGRegionDelaunayInsertion.cpp @@ -1,4 +1,4 @@ -// $Id: meshGRegionDelaunayInsertion.cpp,v 1.12 2007-01-17 21:44:49 remacle Exp $ +// $Id: meshGRegionDelaunayInsertion.cpp,v 1.13 2007-01-18 09:12:45 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -448,7 +448,7 @@ void insertVerticesInRegion (GRegion *gr) else { if(ITER++%5000 ==0) - Msg(DEBUG,"%d points created -- Worst tet radius is %g",vSizes.size(),worst->getRadius()); + Msg(INFO,"%d points created -- Worst tet radius is %g",vSizes.size(),worst->getRadius()); if (worst->getRadius() < 1) break; double center[3]; worst->tet()->circumcenter(center); diff --git a/README b/README index aff3eadc7b61632dda1c999b8da31a6e13857de3..13acc979b5bf23a80be2ec5ea7735d2d37d4b9dc 100644 --- a/README +++ b/README @@ -25,8 +25,9 @@ For a description of all other configuration options, type ./configure --help -Gmsh is distributed under the terms of the GNU General Public -License. See doc/LICENSE and doc/CREDITS for more information. +Gmsh is distributed under the terms of the GNU General Public License, +with an exception to allow for easier linking with external mesh +generators. See doc/LICENSE and doc/CREDITS for more information. See the doc/ and tutorial/ directories for documentation. The reference manual is located in doc/texinfo/. diff --git a/doc/CREDITS b/doc/CREDITS index ede47a5913ffeac1f2e8cc249390ce12cad60506..a782b64205b5fb3c6c92411488d5835c21e5038e 100644 --- a/doc/CREDITS +++ b/doc/CREDITS @@ -1,9 +1,9 @@ -$Id: CREDITS,v 1.41 2006-12-03 17:57:43 geuzaine Exp $ +$Id: CREDITS,v 1.42 2007-01-18 09:12:45 geuzaine Exp $ Gmsh is copyright (C) 1997-2007 Christophe Geuzaine - <christophe.geuzaine at case.edu> + <cgeuzaine at ulg.ac.be> and diff --git a/doc/LICENSE b/doc/LICENSE index 5b6e7c66c276e7610d4a73c70ec1a1f7c1003259..80a5c5b74f75e9e9937ab12792cbd3f6e7573c5b 100644 --- a/doc/LICENSE +++ b/doc/LICENSE @@ -1,8 +1,29 @@ +Gmsh is provided under the terms of the GNU General Public License +(GPL) with the following exception: + + The copyright holders of Gmsh give you permission to combine Gmsh + with with code included in the standard release of Triangle (written + by Jonathan Shewchuk) and TetGen (written by Hang Si) under their + respective licenses. You may copy and distribute such a system + following the terms of the GNU GPL for Gmsh and the licenses of the + other code concerned, provided that you include the source code of + that other code when and as the GNU GPL requires distribution of + source code. + + Note that people who make modified versions of Gmsh are not + obligated to grant this special exception for their modified + versions; it is their choice whether to do so. The GNU General + Public License gives permission to release a modified version + without this exception; this exception also makes it possible to + release a modified version which carries forward this exception. + +End of exception. + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/doc/TODO b/doc/TODO index b87b045d5e3328efb4781609267bee76e860da59..9e93ab9458ae1dd8c50056ddaa2afc9ff9d21057 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.36 2007-01-17 08:14:24 geuzaine Exp $ +$Id: TODO,v 1.37 2007-01-18 09:12:45 geuzaine Exp $ ******************************************************************** @@ -70,19 +70,6 @@ certain number of subdivisions) ******************************************************************** -pfgshield-freebsd@yahoo.com: - -On the FreeBSD port, unfortunately, the licensing issues prohibit us from -redistributing gmsh with tetgen and triangle. Of course this is a problem -derived from the license in both utilities and not really gmsh's fault. -One thing could be done to alleviate the problem though: Adding exceptions to -the GPL for linking with these libraries as explained in the GPL FAQ would -permit people to make distributions of the package and libraries, although -without charging any fee with it. -http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs - -******************************************************************** - add option to cutmesh to cap the mesh instead of displaying "whole" elements diff --git a/doc/gmsh.1 b/doc/gmsh.1 index e3709e38b4eb716c0f162285e849af76268f1ab5..025f32b435a3f6471e34e7b591088d1d27bb8e88 100644 --- a/doc/gmsh.1 +++ b/doc/gmsh.1 @@ -1,4 +1,4 @@ -.\" $Id: gmsh.1,v 1.75 2007-01-17 08:14:24 geuzaine Exp $ +.\" $Id: gmsh.1,v 1.76 2007-01-18 09:12:45 geuzaine Exp $ .TH Gmsh 1 "09 March 2006" "Gmsh 2.0" "Gmsh Manual Pages" .UC 4 .\" ******************************************************************** @@ -52,7 +52,7 @@ specify mesh output file name. set output mesh format (msh, unv, gref, stl, p3d). .TP 4 .B \-algo string -select mesh algorithm (iso, tri, netgen, tetgen). +select mesh algorithm (iso, netgen, tetgen). .TP 4 .B \-smooth int set number of mesh smoothing steps. diff --git a/doc/gmsh.html b/doc/gmsh.html index c3bbaa734200558fad324f03e4a12b7ec563f4bb..2f7980a480e6ce90d6ce7f29f8a97ff6260d51df 100644 --- a/doc/gmsh.html +++ b/doc/gmsh.html @@ -25,7 +25,7 @@ generator with built-in pre- and post-processing facilities</h1> <p> <h3 align="center">Christophe Geuzaine and Jean-François Remacle</h3> <p> -<h3 align=center>Version 2.0, ? 2006</h3> +<h3 align=center>Version 2.0, January XX 2006</h3> <p> <center> <a href="#Description">Description</a> | @@ -122,7 +122,7 @@ archives. <ul> <li><a href="/gmsh/bin/Windows/gmsh-2.0.0-Windows.zip">Windows (95/98/NT/2000/XP)</a> <li><a href="/gmsh/bin/Linux/gmsh-2.0.0-Linux.tgz">Linux (i386, glibc 2.3 and above)</a> -<li><a href="/gmsh/bin/MacOSX/gmsh-2.0.0-MacOSX.tgz">Mac OS X (10.3.9 and above)</a> +<li><a href="/gmsh/bin/MacOSX/gmsh-2.0.0-MacOSX.tgz">Mac OS X (Intel, 10.4.x)</a> <li><a href="/gmsh/src/gmsh-2.0.0-source.tgz">Source (all platforms)</a> <a href="#build-footnote" name="build-footmark"><sup>2</sup></a> </ul> @@ -136,9 +136,9 @@ work (books, articles, reports, etc.). <h2><a name="Authors"></a>Authors and credits</h2> -Gmsh is developed by Christophe Geuzaine (currently -with <a href="http://www.case.edu/">Case Western Reserve -University</a>) and Jean-François Remacle (currently with +Gmsh is developed by Christophe Geuzaine (currently with +the <a href="http://www.ulg.ac.be/">University of Liège</a>) +and Jean-François Remacle (currently with the <a href="http://www.ucl.ac.be/">Catholic University of Louvain</a>). The <a href="doc/CREDITS">CREDITS file</a> has more information. @@ -251,23 +251,13 @@ thumbnail"></a> <h2><a name="Links"></a>Links</h2> -Check out <a href="/getdp/">GetDP</a>, a scientific computation -software for the numerical solution of integro-differential equations, -using finite element and integral type methods. - -<!-- -<p> -The mesh database that will be used by Gmsh in the future has its -own webpage: take a look at <a href="http://www.scorec.rpi.edu/AOMD/">AOMD, -the Algorithm Oriented Mesh Database</a>. ---> - -<p> -Gmsh can use Jonathan Shewchuk's <a -href="http://www-2.cs.cmu.edu/~quake/triangle.html">Triangle</a> as an -alternative 2D mesh generator and Joachim Schöberl's -<a href="http://www.hpfem.jku.at/netgen/">Netgen</a> as an alternative -3D mesh generator/optimizer. +Gmsh can be linked +with <a href="http://www.opencascade.org">OpenCascade</a> to provide +support for STEP, IGES and BREP files. Gmsh can also be linked with several +external mesh generators (currently +<!-- a href="http://www-2.cs.cmu.edu/~quake/triangle.html">Triangle</a> from Jonathan Shewchuk,--> +<a href="http://www.hpfem.jku.at/netgen/">Netgen</a> from Joachim Schöberl and +<a href="http://tetgen.berlios.de/index.html">TetGen</a> from Hang Si). <p> Gmsh's high quality vector PostScript and PDF output is produced by <a @@ -278,6 +268,12 @@ Gmsh's cross-platform graphical user interface is based on <a href="http://www.fltk.org/">FLTK</a> and <a href="http://www.opengl.org/">OpenGL</a>. +<p> +Make sure to also check out <a href="/getdp/">GetDP</a>, a rather +general finite element code that can be used right from Gmsh's +graphical user interface. + + <p> <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> diff --git a/doc/texinfo/command_line.texi b/doc/texinfo/command_line.texi index afe17a5ca8cf7d36ce9c99d7d38c19f01ffd4caa..bdb95ef951f78c5662a65d45ef6e36d7b0324c3d 100644 --- a/doc/texinfo/command_line.texi +++ b/doc/texinfo/command_line.texi @@ -21,7 +21,7 @@ Specify mesh output file name @item -format string Set output mesh format (msh, unv, bdf, mesh, stl, vrml) @item -algo string -Select mesh algorithm (iso, tri, netgen, tetgen) +Select mesh algorithm (iso, netgen, tetgen) @item -smooth int Set number of mesh smoothing steps @item -optimize diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index f68fd42028336b1f02a714b967f66a6553ac4d4d..d921f4ae0978d0d6a007debf331ed7d5e3b0e28a 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -1,5 +1,5 @@ \input texinfo.tex @c -*-texinfo-*- -@c $Id: gmsh.texi,v 1.225 2007-01-12 08:10:32 geuzaine Exp $ +@c $Id: gmsh.texi,v 1.226 2007-01-18 09:12:45 geuzaine Exp $ @c @c Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle @c @@ -438,7 +438,8 @@ parameterize these geometries. Gmsh's scripting language enables all commands and command arguments to depend on previous calculations (see @ref{Expressions}, and @ref{Geometry commands}); @item -import complex models in industry-standard formats like STEP or IGES; +import complex models in industry-standard formats like STEP or IGES +(when Gmsh is built with OpenCascade support); @item generate 1D, 2D and 3D simplicial (i.e., using line segments, triangles and tetrahedra) finite element meshes. The performance of the 1D and 2D @@ -499,7 +500,8 @@ complex models; @item there is no support for Nurbs and only very limited support for trimmed surfaces in Gmsh's scripting language (however you can import STEP or -IGES models with such features); +IGES models with such features when Gmsh is built with OpenCascade +support); @item Gmsh is not primarily a structured mesh generator: no automatic quadrilateral or hexahedral meshing algorithm is provided. If you want