Difference between revisions of "Contrib gmsh2ToFoam"

From OpenFOAMWiki
m (Usage)
m
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{VersionInfo}}{{Version1.3}}
+
{{VersionInfo}}{{Version1.3}}{{Version1.4}}{{Version1.4.1}}
  
 
==Short Description==
 
==Short Description==
  
A modified <tt>gmshToFoam</tt> with support to .msh file format version 2.0 (ASCII type only) which became the standard in gmsh-2.0.0.
+
A modified <tt>gmshToFoam</tt> with <tt>.msh</tt> file format version 2.0 (ASCII type only) support which became the standard in Gmsh 2.0. <tt>Gmsh2ToFoam</tt> can also automatically detect and handle the conventional version 1.0 format.
 +
 
 +
This page describes <tt>gmsh2ToFoam</tt> that comes with [[Contrib_gmshFoam|the gmshFoam package]].
 +
 
 +
<b>You typically don't need '''''gmsh2ToFoam''''' because the genuine '''''gmshToFoam''''' that comes with recent versions of OF works a lot better than before.</b> This page is kept mostly only for archival reasons.
  
 
==Usage==
 
==Usage==
Identical to the original <tt>gmshToFoam</tt>. <tt>Gmsh2ToFoam</tt> can also handle the conventional (version 1.0) .msh file format and automatically detects the format version.
 
  
<tt>gmsh2ToFoam</tt> assigns physical entity names (such as "inlet", "outlet", ...) insted of automatically generated names (such as "patch0", "patch1", ...) for patches / cellZones / faceZones if a $PhysicalNames section is present in a .msh format version 2.0 file. To understand what this means, see the example below.
+
<bash>gmsh2ToFoam <root> <case> <.geo or .msh> [options]
 +
</bash>
 +
If a <tt>.geo</tt> file is given as the third argument, <tt>gmsh2ToFoam</tt> automatically runs Gmsh with the <tt>-3</tt> option and the given <tt>.geo</tt> file as arguments, then converts the produced <tt>.msh</tt> file.
 +
 
 +
Options are (for details, see the Features section below):
 +
* <tt>-noAutoInvert</tt>: disables automatic point ordering correction.
 +
* <tt>-noCheckMesh</tt>: disables simplified checkMesh test.
 +
* <tt>-noRenumberMesh</tt>: disables renumberMesh matrix bandwidth compression.
 +
* <tt>-noUnusedPointRemoval</tt>: disables removal of unreferred points.
 +
* <tt>-verbosity verborsity (0-5; defaults to 3)</tt>: sets verbosity of gmsh2ToFoam.
 +
 
 +
==Features==
 +
Other than the <tt>.msh</tt> version 2.0 format handling, <tt>gmsh2ToFoam</tt> has several features highly focused on practical usability over the original <tt>gmshToFoam</tt> that comes with OF 1.3:
 +
 
 +
====Patch and cell/face-Zone/Set labeling====
 +
* Assignment of physical region names (<tt>inlet</tt>, <tt>outlet</tt>, ...) defined in a <tt>.geo</tt> file insted of automatically generated names (<tt>patch0</tt>, <tt>patch1</tt>, ...) for patches and cell/face-Zones/Sets. Base patch types (<tt>patch</tt>, <tt>wall</tt>, <tt>symmetryPlane</tt>, <tt>empty</tt>, <tt>wedge</tt>, <tt>cyclic</tt>) can also be specified.
 +
* Assignment of suffix numbers of automatically generated names (<tt>patch1</tt>, ...) based on the region numbers defined in a <tt>.geo</tt> file, instead of the order of their appearance in a <tt>.msh</tt> file, if the physical regions are to be labeled by numbers.
 +
 
 +
The above two should contribute easy correspondence between the original <tt>.geo</tt> file and the final converted mesh. For details see the example below.
 +
 
 +
====Mesh data structure optimizations====
 +
* Automatic correction of wrongly ordered points in node connectivities. (Note: the genuine <tt>gmshToFoam</tt> also has this feature.) To disable this feature, use the <tt>-noAutoInvert</tt> option.
 +
* Testing of the converted mesh by simplified <tt>checkMesh</tt> test similar to the one that <tt>blockMesh</tt> does. To disable this feature, use the <tt>-noCheckMesh</tt> option.
 +
* Matrix bandwidth compression. This is basically what the <tt>renumberMesh</tt> utility does, plus cell/face-Zone/Set handling and minus field file renumbering. To disable this feature, use the <tt>-noRenumberMesh</tt> option.
 +
* Removal of unreferred points (points which do not belong to any of faces nor cells; e. g. spline control points or the center of a circular arc). <tt>CheckMesh</tt> test of the converted mesh will no longer fail due to "Unused points" error. To disable this feature, use the <tt>-noUnusedPointRemoval</tt> option.
 +
* Removal of zero-sized <tt>defaultFaces</tt> and faceZones from polyMesh/boundary. You don't have to write dummy <tt>defaultFaces</tt> or faceZone entries in boundary description.
 +
 
 +
====Others====
 +
* Automatic running of Gmsh if <tt>.geo</tt> is given instead of a <tt>.msh</tt> as input.
 +
* Compatibility with <tt>.msh</tt> files generated by Windows versions of Gmsh.
 +
* Refined text message outputs. Reflecting my own support experience on the Message Board, error messages are written as suggestive as possible for typical user pitfalls. For example, <tt>gmsh2ToFoam</tt> complains "No volumetric cells found ... Check your mesh carefully particularly whether your physical volume definition is correct" when the converted mesh contains no volumetric cells, instead of cryptic and mysterious "Faces deallocated."
 +
* Verbosity control along with Gmsh's <tt>General.Verbosity</tt> variable.
 +
 
 +
==Technical==
 +
* <b>Be sure to label at least one physical region by a number other than 0 (zero) if all the physical regions are to be labeled by numbers.</b> This restriction comes from <tt>gmsh2ToFoam</tt> following one of the Gmsh authors' suggestion. See [http://www.geuz.org/pipermail/gmsh/2007/002395.html Gmsh mailing list archive] for details.
 +
* Beware that if physical regions are defined in a .geo file, Gmsh writes .msh file only with those elements that belong to the physical regions. Read Section 4.1 of Gmsh 2.0 Reference Manual <b>including footnotes</b> carefully before using the labeling features of <tt>gmsh2ToFoam</tt>.
 +
* <b><tt>Gmsh2ToFoam</tt> still has not been well tested</b>.
 +
 
 +
For feedback and discussion go to [http://openfoam.cfd-online.com/forum/messages/1/3841.html this thread] on the Message Board.
  
 
==Example==
 
==Example==
First write a .geo file called <tt>cube.geo</tt> as follows and put it under <tt>cubeTetra/constant</tt> directory.
+
First write a <tt>.geo</tt> file called <tt>cubeHexa.geo</tt> as follows and put it under any suitable case directory. Especially note that at the last part surface patches and a volume are given their names (not numbers) of <tt>inlet</tt>, <tt>outlet</tt>, <tt>bottomTop</tt> and <tt>internalField</tt> except the two lateral surfaces given a common number of 10. In addition, the <tt>bottomTop</tt> patch is given a base patch type of <tt>symmetryPlane</tt> by the second word of its string label. Other patches where the second words are omitted default to the <tt>patch</tt> type.
 
<pre>
 
<pre>
 
// A cube of side lengths 1
 
// A cube of side lengths 1
  
// Create edges
+
// Create base line
lc = 0.025;
+
lc = 0.099;
Point(1) = {-0.5, -0.5, -0.5, lc}; Point(2) = { 0.5, -0.5, -0.5, lc};
+
Point(1) = {-0.5, -0.5, -0.5, lc};Point(2) = {0.5, -0.5, -0.5, lc};
Point(3) = { 0.5, 0.5, -0.5, lc}; Point(4) = {-0.5,  0.5, -0.5, lc};
+
Line(3) = {1, 2};
Point(5) = {-0.5, -0.5,  0.5, lc}; Point(6) = { 0.5, -0.5,  0.5, lc};
+
// Create base surface and extrude it to volume
Point(7) = { 0.5, 0.5, 0.5, lc}; Point(8) = {-0.5,  0.5,  0.5, lc};
+
e1[] = Extrude{0, 1, 0}{Line{3}; Layers{10}; Recombine;};
Line(9) = {1,2}; Line(10) = {2,3}; Line(11) = {3,4}; Line(12) = {4,1};
+
e2[] = Extrude{0, 0, 1}{Surface{e1[1]}; Layers{10}; Recombine;};
Line(13) = {5,6}; Line(14) = {6,7}; Line(15) = {7,8}; Line(16) = {8,5};
+
Line(17) = {1,5}; Line(18) = {2,6}; Line(19) = {3,7}; Line(20) = {4,8};
+
  
// Create surface patches
+
// Naming physical entities is a new key feature in Gmsh 2.0.
Line Loop(21) = {9,10,11,12}; Line Loop(22) = {17,13,-18,-9};
+
// To use the feature you really do need to read the Section 4.1 of Gmsh 2.0
Line Loop(23) = {18,14,-19,-10}; Line Loop(24) = {19,15,-20,-11};
+
// Reference Manual, including footnotes, carefully.
Line Loop(25) = {20,16,-17,-12}; Line Loop(26) = {-16,-15,-14,-13};
+
Plane Surface(27)={21}; Plane Surface(28)={22};
+
Plane Surface(29)={23}; Plane Surface(30)={24};
+
Plane Surface(31)={25}; Plane Surface(32)={26};
+
  
// Create a volume
+
// Generate surface patches with string labels.
Surface Loop(33) = {27,28,29,30,31,32};
+
// Base patch types (patch, wall, symmetryPlane, empty, wedge, cyclic) can be
Volume(34) = {33};
+
// specified by second words of the string labels. If omitted the type
 +
// defaults to patch. If a surface is generated inside of the volume it will be
 +
// recognized as a faceZone/faceSet.
 +
Physical Surface("inlet") = {e2[5]};
 +
Physical Surface("outlet") = {e2[3]};
 +
Physical Surface("bottomTop symmetryPlane") = {e1[1],e2[0]};
  
// Naming physical entities (instead of numbering) is a new key feature in Gmsh 2.0.
+
// You can also use numbers for physical region definition. This patch will be
// Name the patches
+
// named "patch10."
Physical Surface("inlet") = {31};
+
Physical Surface(10) = {e2[2], e2[4]}; // lateral patches
Physical Surface("outlet") = {29};
+
Physical Surface("lateral") = {28,30};
+
Physical Surface("bottomTop") = {27,32};
+
  
// Name the volume
+
// Generate volume with cellZone/cellSet definition.
// (Don't forget! Read Section 4.1 of Gmsh 2.0 Reference Manual carefully.)
+
// Don't forget to make the entire volume defined because Gmsh writes only
Physical Volume("internalDomain") = {34};
+
// parts of the mesh where physical regions are defined.
 +
Physical Volume("internalField") = {e2[1]};
 
</pre>
 
</pre>
Next generate a 3D mesh <b>with Gmsh >= 2.0</b> by executing the following command under <tt>cubeTetra/constant</tt> directory.
+
Next generate a 3D mesh and convert it to the OpenFOAM polyMesh format by executing the following command under the case directory.
 
<pre>
 
<pre>
> gmsh -3 -optimize cube.geo
+
$ gmsh2ToFoam . . cubeHexa.geo
 
</pre>
 
</pre>
And finally convert to OpenFOAM polyMesh by
+
With this <tt>gmsh2ToFoam</tt> automatically runs <tt>gmsh -3 cubeHexa.geo</tt> and converts the produced <tt>cubeHexa.msh</tt> to the polyMesh format under the <tt>constant</tt> subdirectory. After that you can access the patches named <tt>inlet</tt>, <tt>outlet</tt> and <tt>bottomTop</tt> by their names instead of automatically generated <tt>patch0</tt>, <tt>patch1</tt>, ... names. The patches labeled by the number of 10 are named <tt>patch10</tt>, which means the number is retained in the suffix of automatically generated name. The <tt>bottomTop</tt> patch must have the <tt>symmetryPlane</tt> boundary condition because it has been given the base patch type of <tt>symmetryPlane</tt>. Taking all these into consideration, for example you can write the <tt>boundaryField</tt> of <tt>cubeHexa/0/U</tt> as follows.
<pre>
+
> gmsh2ToFoam ../.. cubeTetra cube.msh
+
</pre>
+
After that you can access the patches "inlet", "outlet", "lateral" and "bottomTop" by their names instead of automatically generated "patch0", "patch1", ... names. For example you can write the boundaryField of <tt>cubeTetra/0/U</tt> as follows.
+
 
<pre>
 
<pre>
 
boundaryField
 
boundaryField
Line 63: Line 97:
 
     {
 
     {
 
         type            fixedValue;
 
         type            fixedValue;
        value          uniform (1.0 0.0 0.0);
+
value          uniform (1.0 0.0 0.0);
 
     }
 
     }
 
     outlet
 
     outlet
 
     {
 
     {
 
         type            convectiveOutlet;
 
         type            convectiveOutlet;
        convectiveVelocity uniform 1.0;
+
convectiveVelocity uniform 343.704;
    }
+
    lateral
+
    {
+
        type            fixedValue;
+
        value          uniform (0.0 0.0 0.0);
+
 
     }
 
     }
 
     bottomTop
 
     bottomTop
 
     {
 
     {
         type            fixedValue;
+
         type            symmetryPlane;
        value          uniform (0.0 0.0 0.0);
+
 
     }
 
     }
     defaultFaces
+
     patch10
 
     {
 
     {
 
         type            fixedValue;
 
         type            fixedValue;
        value          uniform (0.0 0.0 0.0);
+
value          uniform (0.0 0.0 0.0);
 
     }
 
     }
 
}
 
}
 
</pre>
 
</pre>
 +
Similarly the <tt>internalField</tt> is accessible with its name as a cellZone or a cellSet instead of automatically generated name of <tt>cellZone_0</tt>.
  
==Technical==
+
==Download==
The only known incompatibility with the original <tt>gmshToFoam</tt> is that <tt>gmsh2ToFoam</tt> produces a fatal error if the mesh contains second-order elements, instead of silently ignoring them. This is simply due to saving my programming time of some 10 minutes so I could change the behavior upon request.
+
Current version:
  
For feedback and discussion go to [http://openfoam.cfd-online.com/forum/messages/1/3841.html this thread] on the Message Board.
+
* No current version available.
  
==Download==
 
  
[[Media:gmsh2ToFoam-20070219.tar.gz|gmsh2ToFoam-20070219.tar.gz]]
+
Past versions (will ''not'' work with the current OpenFOAM versions):
 +
*[[Media:gmsh2ToFoam-20070312.tar.gz|gmsh2ToFoam-20070312.tar.gz]]
 +
*[[Media:gmsh2ToFoam-20070305.tar.gz|gmsh2ToFoam-20070305.tar.gz]]
 +
*[[Media:gmsh2ToFoam-20070219.tar.gz|gmsh2ToFoam-20070219.tar.gz]]
 +
*[[Media:gmsh2ToFoam-20070218.tar.gz|gmsh2ToFoam-20070218.tar.gz]]
 +
*[[Media:gmsh2ToFoam-20070217.tar.gz|gmsh2ToFoam-20070217.tar.gz]]
 +
*[[Media:gmsh2ToFoam-20070216.tar.gz|gmsh2ToFoam-20070216.tar.gz]]
  
 
==History==
 
==History==
 +
[[User:7islands|7islands]] 06:51, 27 Oct 2007 (CEST) ([http://openfoam.cfd-online.com/forum/messages/1/3841.html Takuya Oshima]):
 +
* Update of the documentation (this page) to match the current gmsh2ToFoam.
 +
 +
[[User:7islands|7islands]] 09:25, 12 Mar 2007 (CET):
 +
* RenumberMesh matrix bandwidth compression with cell/face-Zone/Set handling.
 +
* Deletes zero-sized patches (internal faceZones).
 +
* Base patch types can be defined by the second word of the string labels.
 +
 +
[[User:7islands|7islands]] 15:19, 5 Mar 2007 (CET):
 +
* Following one of the Gmsh authors' suggestion, another modification is made to physical/elementary region (entity) number handling. See [http://www.geuz.org/pipermail/gmsh/2007/002395.html Gmsh mailing list archive] for details.
 +
* Automatically generated patche/cellZone/faceZone names ("patch1," ...) are now labeled by numbers based on original region numbers given in a .geo file, instead of the order of their appearence in a .msh file.
 +
* Deletes the defaultFaces patch if its size is determined to be zero.
 +
* Removes unreferred points.
 +
 
[[User:7islands|7islands]] 08:10, 19 Feb 2007 (CET):
 
[[User:7islands|7islands]] 08:10, 19 Feb 2007 (CET):
 
* Assign physical entity names instead of automatically generating them (such as "patch0") for patches / cellZones / faceZones if a $PhysicalNames section is present in a version 2.0 .msh file.
 
* Assign physical entity names instead of automatically generating them (such as "patch0") for patches / cellZones / faceZones if a $PhysicalNames section is present in a version 2.0 .msh file.

Latest revision as of 14:40, 23 November 2009

Valid versions: OF version 13.png OF version 14.png OF version 141.png

1 Short Description

A modified gmshToFoam with .msh file format version 2.0 (ASCII type only) support which became the standard in Gmsh 2.0. Gmsh2ToFoam can also automatically detect and handle the conventional version 1.0 format.

This page describes gmsh2ToFoam that comes with the gmshFoam package.

You typically don't need gmsh2ToFoam because the genuine gmshToFoam that comes with recent versions of OF works a lot better than before. This page is kept mostly only for archival reasons.

2 Usage

gmsh2ToFoam <root> <case> <.geo or .msh> [options]

If a .geo file is given as the third argument, gmsh2ToFoam automatically runs Gmsh with the -3 option and the given .geo file as arguments, then converts the produced .msh file.

Options are (for details, see the Features section below):

  • -noAutoInvert: disables automatic point ordering correction.
  • -noCheckMesh: disables simplified checkMesh test.
  • -noRenumberMesh: disables renumberMesh matrix bandwidth compression.
  • -noUnusedPointRemoval: disables removal of unreferred points.
  • -verbosity verborsity (0-5; defaults to 3): sets verbosity of gmsh2ToFoam.

3 Features

Other than the .msh version 2.0 format handling, gmsh2ToFoam has several features highly focused on practical usability over the original gmshToFoam that comes with OF 1.3:

3.1 Patch and cell/face-Zone/Set labeling

  • Assignment of physical region names (inlet, outlet, ...) defined in a .geo file insted of automatically generated names (patch0, patch1, ...) for patches and cell/face-Zones/Sets. Base patch types (patch, wall, symmetryPlane, empty, wedge, cyclic) can also be specified.
  • Assignment of suffix numbers of automatically generated names (patch1, ...) based on the region numbers defined in a .geo file, instead of the order of their appearance in a .msh file, if the physical regions are to be labeled by numbers.

The above two should contribute easy correspondence between the original .geo file and the final converted mesh. For details see the example below.

3.2 Mesh data structure optimizations

  • Automatic correction of wrongly ordered points in node connectivities. (Note: the genuine gmshToFoam also has this feature.) To disable this feature, use the -noAutoInvert option.
  • Testing of the converted mesh by simplified checkMesh test similar to the one that blockMesh does. To disable this feature, use the -noCheckMesh option.
  • Matrix bandwidth compression. This is basically what the renumberMesh utility does, plus cell/face-Zone/Set handling and minus field file renumbering. To disable this feature, use the -noRenumberMesh option.
  • Removal of unreferred points (points which do not belong to any of faces nor cells; e. g. spline control points or the center of a circular arc). CheckMesh test of the converted mesh will no longer fail due to "Unused points" error. To disable this feature, use the -noUnusedPointRemoval option.
  • Removal of zero-sized defaultFaces and faceZones from polyMesh/boundary. You don't have to write dummy defaultFaces or faceZone entries in boundary description.

3.3 Others

  • Automatic running of Gmsh if .geo is given instead of a .msh as input.
  • Compatibility with .msh files generated by Windows versions of Gmsh.
  • Refined text message outputs. Reflecting my own support experience on the Message Board, error messages are written as suggestive as possible for typical user pitfalls. For example, gmsh2ToFoam complains "No volumetric cells found ... Check your mesh carefully particularly whether your physical volume definition is correct" when the converted mesh contains no volumetric cells, instead of cryptic and mysterious "Faces deallocated."
  • Verbosity control along with Gmsh's General.Verbosity variable.

4 Technical

  • Be sure to label at least one physical region by a number other than 0 (zero) if all the physical regions are to be labeled by numbers. This restriction comes from gmsh2ToFoam following one of the Gmsh authors' suggestion. See Gmsh mailing list archive for details.
  • Beware that if physical regions are defined in a .geo file, Gmsh writes .msh file only with those elements that belong to the physical regions. Read Section 4.1 of Gmsh 2.0 Reference Manual including footnotes carefully before using the labeling features of gmsh2ToFoam.
  • Gmsh2ToFoam still has not been well tested.

For feedback and discussion go to this thread on the Message Board.

5 Example

First write a .geo file called cubeHexa.geo as follows and put it under any suitable case directory. Especially note that at the last part surface patches and a volume are given their names (not numbers) of inlet, outlet, bottomTop and internalField except the two lateral surfaces given a common number of 10. In addition, the bottomTop patch is given a base patch type of symmetryPlane by the second word of its string label. Other patches where the second words are omitted default to the patch type.

// A cube of side lengths 1

// Create base line
lc = 0.099;
Point(1) = {-0.5, -0.5, -0.5, lc};Point(2) = {0.5, -0.5, -0.5, lc};
Line(3) = {1, 2};
// Create base surface and extrude it to volume
e1[] = Extrude{0, 1, 0}{Line{3}; Layers{10}; Recombine;};
e2[] = Extrude{0, 0, 1}{Surface{e1[1]}; Layers{10}; Recombine;};

// Naming physical entities is a new key feature in Gmsh 2.0.
// To use the feature you really do need to read the Section 4.1 of Gmsh 2.0
// Reference Manual, including footnotes, carefully.

// Generate surface patches with string labels.
// Base patch types (patch, wall, symmetryPlane, empty, wedge, cyclic) can be
// specified by second words of the string labels. If omitted the type
// defaults to patch. If a surface is generated inside of the volume it will be
// recognized as a faceZone/faceSet.
Physical Surface("inlet") = {e2[5]};
Physical Surface("outlet") = {e2[3]};
Physical Surface("bottomTop symmetryPlane") = {e1[1],e2[0]};

// You can also use numbers for physical region definition. This patch will be
// named "patch10."
Physical Surface(10) = {e2[2], e2[4]}; // lateral patches

// Generate volume with cellZone/cellSet definition.
// Don't forget to make the entire volume defined because Gmsh writes only
// parts of the mesh where physical regions are defined.
Physical Volume("internalField") = {e2[1]};

Next generate a 3D mesh and convert it to the OpenFOAM polyMesh format by executing the following command under the case directory.

$ gmsh2ToFoam . . cubeHexa.geo

With this gmsh2ToFoam automatically runs gmsh -3 cubeHexa.geo and converts the produced cubeHexa.msh to the polyMesh format under the constant subdirectory. After that you can access the patches named inlet, outlet and bottomTop by their names instead of automatically generated patch0, patch1, ... names. The patches labeled by the number of 10 are named patch10, which means the number is retained in the suffix of automatically generated name. The bottomTop patch must have the symmetryPlane boundary condition because it has been given the base patch type of symmetryPlane. Taking all these into consideration, for example you can write the boundaryField of cubeHexa/0/U as follows.

boundaryField
{
    inlet
    {
        type            fixedValue;
	value           uniform (1.0 0.0 0.0);
    }
    outlet
    {
        type            convectiveOutlet;
	convectiveVelocity uniform 343.704;
    }
    bottomTop
    {
        type            symmetryPlane;
    }
    patch10
    {
        type            fixedValue;
	value           uniform (0.0 0.0 0.0);
    }
}

Similarly the internalField is accessible with its name as a cellZone or a cellSet instead of automatically generated name of cellZone_0.

6 Download

Current version:

  • No current version available.


Past versions (will not work with the current OpenFOAM versions):

7 History

7islands 06:51, 27 Oct 2007 (CEST) (Takuya Oshima):

  • Update of the documentation (this page) to match the current gmsh2ToFoam.

7islands 09:25, 12 Mar 2007 (CET):

  • RenumberMesh matrix bandwidth compression with cell/face-Zone/Set handling.
  • Deletes zero-sized patches (internal faceZones).
  • Base patch types can be defined by the second word of the string labels.

7islands 15:19, 5 Mar 2007 (CET):

  • Following one of the Gmsh authors' suggestion, another modification is made to physical/elementary region (entity) number handling. See Gmsh mailing list archive for details.
  • Automatically generated patche/cellZone/faceZone names ("patch1," ...) are now labeled by numbers based on original region numbers given in a .geo file, instead of the order of their appearence in a .msh file.
  • Deletes the defaultFaces patch if its size is determined to be zero.
  • Removes unreferred points.

7islands 08:10, 19 Feb 2007 (CET):

  • Assign physical entity names instead of automatically generating them (such as "patch0") for patches / cellZones / faceZones if a $PhysicalNames section is present in a version 2.0 .msh file.

7islands 03:32, 18 Feb 2007 (CET):

  • Incorporated primitivePatch::meshPointMap() call optimization from Bernhard's gmshToFoamMod.
  • Fixed correspondence between OpenFOAM cellZone/patch numbering and Gmsh physical/elementary entity tagging. The meaning of physical entity tag seems to be different between .msh file format versions.

7islands 03:30, 17 Feb 2007 (CET): Improved compatibility with .msh files generated by Windows versions of Gmsh.

7islands 13:28, 16 Feb 2007 (CET): First upload.