Ceci est une ancienne révision du document !
Table des matières
Meshgen : A mesh generator for cartesian grid
Meshgen is a modest mesh generator for cartesian grid. The principle is very simple :
- Each direction {x,y,z} (or {r,$\theta$,z} in cylindrical geometry) is represented by a line.
- Each line can be splitted in several parts over which a distribution law is applied in order to build the discretization nodes.
- Following the CFD code used, these nodes have different definitions :
- For Chorus, they are the cell centers.
- For Sunfluidh, they are the cell-face locations.
- Several distribution laws are available
- Geometric functions
- Hyperbolic tangent functions
- Cosine function
Compilation procedure
After downloading the Meshgen project from the server forge by means of svn:
- go to the directory MESHGEN/TRUNK/SOURCES
- Run the command make: The executable file meshgen.x is created.
Meshgen settings
The grid parameters are set in the input data file “data_meshgen.dat”. A simple example of a 2D grid is given just below :
- The cell size is variable along the I-direction.
- The I-line is split in two equal parts.
- The function “TANH_ONE_SIDE” is applied over each part, with a reverse distribution over the 2nd part. This way is useful to define a perfect symmetrical distribution in regard to the mid-plane.
- The grid is regular along the J-direction
- data_meshgen.dat
============================================================================================================== DATA FILE FOR THE MESH GENERATOR MESHGEN (DESCRIPTIONS OF DATA ARE GIVEN BELOW) ============================================================================================================== ------------------------------------------------------------------------------------------------------------- Blocks of data are associated to segments along a specific direction (There are as many blocks as segments) See below the TEMPLATES to select your own block of data associated to the selected distribution law) ------------------------------------------------------------------------------------------------------------- --------------------------------------- I-DIRECTION --------------------------------------- Choice of the metric system : in meter or dimensionless (0) - angular in degrees (1) : &METRIC_UNIT Type_of_Metric= 0 / &MESH_FUNCTION_DATA Function_Name="TANH_ONE_SIDE" Number_of_Cells= 64 Length= 0.5 Left_Cell_Size= 1.2d-03 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="TANH_ONE_SIDE" Number_of_Cells= 64 Length= 0.5 Left_Cell_Size= 1.2d-03 Reverse_Ordering= .true. / &MESH_FUNCTION_DATA End_of_Data_Block = .true./ --------------------------------------- J-DIRECTION --------------------------------------- Choice of the metric system : in meter or dimensionless (0) - angular in degrees (1) : &METRIC_UNIT Type_of_Metric= 0 / &MESH_FUNCTION_DATA Function_Name="REGULAR" Number_of_Cells= 128 Length= 1.0 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA End_of_Data_Block = .true./ --------------------------------------- K-DIRECTION --------------------------------------- &MESH_FUNCTION_DATA End_of_Data_Block = .true./ END OF FILE
Data set description
In the data file, each block of data is attributed to a direction (I,J or K).
Each direction can be split in several parts (segments) on which a specific distribution law is applied in order to place the discrete nodes.
Each distribution law is associated to a function defined by a namelist. The available functions are :
- Regular function (Function_name= REGULAR_MESH)
- Hyperbolic tangent function “one side” (Function_Name= TANH_ONE_SIDE_MESH)
- Hyperbolic tangent function “two sides” (Function_Name= TANH_TWO_SIDES_MESH)
- Gauss-Lobatto distribution (Function_Name= GAUSS_LOBATTO_MESH)
- Geometric series “type 1” (Function_Name= GEOMETRIC_SERIE_1_MESH)
- Geometric series “type 2” (Function_Name= GEOMETRIC_SERIE_2_MESH)
These functions get a specific data set :
- Number_of_Cells : Number of cells over the segment (for all functions).
- Length : Length of the segment (for all functions).
- Left_Cell_Size : Reference size of the cell placed at the left tip of the segment (for all functions except the regular function)
- Right_Cell_Size : Reference size of the cell placed at the right tip of the segment (for hyperbolic function “two sides” and geometric series “Type 1” only)
- Reverse_Ordering : Reverse the ordering of the distribution if set to .true.
- End_of_Block_Data : logical set to .true. to declare the end of a data structure (by default it set to .false. by the program)
A complete template is provided below.
&METRIC_UNIT Type_of_Metric= 0 /
- Type_of_Metric= 0 specifies a usual metric
- Type_of_Metric= 1 specifies an angular metric. The unit is the degree.
The block of data must be closed with the special namelist
&MESH_FUNCTION_DATA End_of_Data_Block = .true./
Template for each function
&METRIC_UNIT Type_of_Metric= 0 / ---> Used to define the metric unit &MESH_FUNCTION_DATA Function_Name="GAUSS_LOBATTO" Number_of_Cells= 30 Length= 1.0 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="TANH_ONE_SIDE" Number_of_Cells= 40 Length= 1.0 Left_Cell_Size= 1.0d-03 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="GEOMETRIC_SERIE_1" Number_of_Cells= 60 Length= 1.0 Left_Cell_Size= 1.0d-02 Cell_Ratio= 1.05d-00 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="REGULAR" Number_of_Cells= 100 Length= 1.0 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="TANH_TWO_SIDES" Number_of_Cells= 100 Length= 1.0 Left_Cell_Size= 1.0d-02 Right_Cell_Size= 1.0d-02 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="GEOMETRIC_SERIE_2" Number_of_Cells= 50 Length= 1.0 Left_Cell_Size= 1.0d-02 Right_Cell_Size= 5.0d-02 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA Function_Name="TANH_ONE_SIDE" Number_of_Cells= 100 Length= 1.0 Left_Cell_Size= 1.0d-03 Reverse_Ordering= .false. / &MESH_FUNCTION_DATA End_of_Data_Block= .true. /
- fr