File: RELATIVE:/../../../mfix.git/model/cartesian_grid/stl_mod.f

1           MODULE stl
2     
3     
4           Use param
5           Use param1
6     
7     !     Maximum number of facets that can be read
8           INTEGER, PARAMETER          :: DIM_STL = 10000000   !10 Million
9     !     Number of facets
10           INTEGER                     :: N_FACETS
11           INTEGER, PARAMETER :: WEST_FACEID = 9000000
12           INTEGER, PARAMETER :: EAST_FACEID = 9000001
13           INTEGER, PARAMETER :: SOUTH_FACEID = 9000002
14           INTEGER, PARAMETER :: NORTH_FACEID = 9000003
15           INTEGER, PARAMETER :: BOTTOM_FACEID = 9000004
16           INTEGER, PARAMETER :: TOP_FACEID = 9000005
17     
18     !     Number of facets for des. This could be a diiferent number from
19     ! N_FACETS if the outer boundary is triangulated here
20           INTEGER                     :: N_FACETS_DES
21     !     Vertex Coordinates X ,Y and Z
22           DOUBLE PRECISION, DIMENSION(3,3,DIM_STL) :: VERTEX
23     !     Face normal vector (normalized)
24           DOUBLE PRECISION, DIMENSION(3,DIM_STL) :: NORM_FACE
25     !     TRANSLATION COMPONENTS
26           DOUBLE PRECISION :: TX_STL,TY_STL,TZ_STL
27           DOUBLE PRECISION :: TX_MSH,TY_MSH,TZ_MSH
28     !     SCALING FACTOR
29           DOUBLE PRECISION :: SCALE_STL
30           DOUBLE PRECISION :: SCALE_MSH
31     !     RANGE OF STL FILE:
32           DOUBLE PRECISION :: XMIN_STL,XMAX_STL
33           DOUBLE PRECISION :: YMIN_STL,YMAX_STL
34           DOUBLE PRECISION :: ZMIN_STL,ZMAX_STL
35           DOUBLE PRECISION :: XMIN_MSH,XMAX_MSH
36           DOUBLE PRECISION :: YMIN_MSH,YMAX_MSH
37           DOUBLE PRECISION :: ZMIN_MSH,ZMAX_MSH
38     !     VALUE OF F_STL OUTSIDE OF STL BOUNDING BOX
39           DOUBLE PRECISION :: OUT_STL_VALUE
40           DOUBLE PRECISION :: OUT_MSH_VALUE
41     !     SMALLEST ANGLE FOR DETECTION OF SMALL TRIANGLES
42           DOUBLE PRECISION :: STL_SMALL_ANGLE
43           DOUBLE PRECISION :: MSH_SMALL_ANGLE
44     !     DIRECTION OF RAY TRACED TO DETERMINE WHETHER A POINT IS INSIDE/OUTSIDE
45           CHARACTER(LEN=3) :: RAY_DIR
46     !     Tolerance for polygone edge detection
47           DOUBLE PRECISION :: TOL_STL
48           DOUBLE PRECISION :: TOL_MSH
49           DOUBLE PRECISION :: TOL_STL_DP
50     !     Boundary condition ID
51           INTEGER :: STL_BC_ID
52     
53           INTEGER, DIMENSION(DIM_STL) :: BC_ID_STL_FACE
54     
55     !     Maximum number of facets per cell. The arrays below are used
56     ! to define cut-cells under the CG modules
57           INTEGER          :: DIM_FACETS_PER_CELL
58           INTEGER, DIMENSION (:), ALLOCATABLE ::  N_FACET_AT
59           INTEGER, DIMENSION (:,:), ALLOCATABLE ::  LIST_FACET_AT
60     
61     
62     !RG: Since Lagrangian requires facets that do no intersect at any edge of a cell,
63     !a separate facet list is maintained for Lagrangian modules, identfied by _DES
64     !appended to the key word
65     !     Maximum number of facets per cell
66     ! Dynamic variable. for each ijk computational fluid cell store the
67     ! total number of facets and the id's of the facets in that cell
68           INTEGER :: MAX_FACETS_PER_CELL_DES
69     ! in order to facilitate the parallel processing the PIC is defined
70     ! as single array IJK
71           TYPE FACETS_TO_CELL
72              INTEGER :: COUNT_FACETS
73              INTEGER, DIMENSION(:), ALLOCATABLE ::  FACET_LIST
74           END TYPE FACETS_TO_CELL
75     
76           TYPE (FACETS_TO_CELL), DIMENSION (:), ALLOCATABLE ::  LIST_FACET_AT_DES
77           CHARACTER(LEN=3) :: CAD_PROPAGATE_ORDER
78     
79           Logical, DIMENSION (:), ALLOCATABLE ::  NO_NEIGHBORING_FACET_DES
80     
81           END MODULE stl
82     
83     
84