MFIX  2016-1
stl_mod.f
Go to the documentation of this file.
1  MODULE stl
2 
3  Use param1, only: zero
4 
5 ! Maximum number of facets that can be read
6  INTEGER, PARAMETER :: dim_stl = 10000000 !10 Million
7 ! Number of facets
8  INTEGER :: n_facets
9  INTEGER, PARAMETER :: west_faceid = 9000000
10  INTEGER, PARAMETER :: east_faceid = 9000001
11  INTEGER, PARAMETER :: south_faceid = 9000002
12  INTEGER, PARAMETER :: north_faceid = 9000003
13  INTEGER, PARAMETER :: bottom_faceid = 9000004
14  INTEGER, PARAMETER :: top_faceid = 9000005
15 
16 ! Number of facets for des. This could be a diiferent number from
17 ! N_FACETS if the outer boundary is triangulated here
18  INTEGER :: n_facets_des
19 ! Vertex Coordinates X ,Y and Z
20  DOUBLE PRECISION, DIMENSION(3,3,DIM_STL) :: vertex
21 ! Face normal vector (normalized)
22  DOUBLE PRECISION, DIMENSION(3,DIM_STL) :: norm_face
23 ! TRANSLATION COMPONENTS
24  DOUBLE PRECISION :: tx_stl,ty_stl,tz_stl
25  DOUBLE PRECISION :: tx_msh,ty_msh,tz_msh
26 ! SCALING FACTOR
27  DOUBLE PRECISION :: scale_stl
28  DOUBLE PRECISION :: scale_msh
29 ! RANGE OF STL FILE:
30  DOUBLE PRECISION :: xmin_stl,xmax_stl
31  DOUBLE PRECISION :: ymin_stl,ymax_stl
32  DOUBLE PRECISION :: zmin_stl,zmax_stl
33  DOUBLE PRECISION :: xmin_msh,xmax_msh
34  DOUBLE PRECISION :: ymin_msh,ymax_msh
35  DOUBLE PRECISION :: zmin_msh,zmax_msh
36 ! VALUE OF F_STL OUTSIDE OF STL BOUNDING BOX
37  DOUBLE PRECISION :: out_stl_value
38  DOUBLE PRECISION :: out_msh_value
39 ! SMALLEST ANGLE FOR DETECTION OF SMALL TRIANGLES
40  DOUBLE PRECISION :: stl_small_angle
41  DOUBLE PRECISION :: msh_small_angle
42 ! DIRECTION OF RAY TRACED TO DETERMINE WHETHER A POINT IS INSIDE/OUTSIDE
43  CHARACTER(LEN=3) :: ray_dir
44 ! Tolerance for polygone edge detection
45  DOUBLE PRECISION :: tol_stl
46  DOUBLE PRECISION :: tol_msh
47  DOUBLE PRECISION :: tol_stl_dp
48 ! Boundary condition ID
49  INTEGER :: stl_bc_id
50 
51  INTEGER, DIMENSION(DIM_STL) :: bc_id_stl_face
52 
53 ! Maximum number of facets per cell. The arrays below are used
54 ! to define cut-cells under the CG modules
56  INTEGER, DIMENSION (:), ALLOCATABLE :: n_facet_at
57  INTEGER, DIMENSION (:,:), ALLOCATABLE :: list_facet_at
58 
59 ! List of facets intersecting each DES grid cell
61  INTEGER :: count
62  INTEGER, ALLOCATABLE :: id(:)
63  INTEGER, ALLOCATABLE :: dir(:)
64  DOUBLE PRECISION, ALLOCATABLE :: min(:)
65  DOUBLE PRECISION, ALLOCATABLE :: max(:)
66  END TYPE facets_to_dg
67 
68 ! Start/End positions for the different kinds of STLs
69  INTEGER, PARAMETER :: all_stl = 0
70  INTEGER, PARAMETER :: base_stl = 1
71  INTEGER, PARAMETER :: bcwalls_stl = 2
72  INTEGER, PARAMETER :: imprmbl_stl = 3
73  INTEGER, PARAMETER :: default_stl = 4
74  INTEGER :: stl_start(4), stl_end(4)
75 
76  type(facets_to_dg), ALLOCATABLE :: facets_at_dg(:)
77  CHARACTER(LEN=3) :: cad_propagate_order
78 
79  END MODULE stl
integer n_facets
Definition: stl_mod.f:8
double precision scale_msh
Definition: stl_mod.f:28
type(facets_to_dg), dimension(:), allocatable facets_at_dg
Definition: stl_mod.f:76
double precision tol_msh
Definition: stl_mod.f:46
integer, parameter top_faceid
Definition: stl_mod.f:14
integer, parameter west_faceid
Definition: stl_mod.f:9
double precision zmin_stl
Definition: stl_mod.f:32
double precision ty_msh
Definition: stl_mod.f:25
integer, dimension(:,:), allocatable list_facet_at
Definition: stl_mod.f:57
double precision out_msh_value
Definition: stl_mod.f:38
integer dim_facets_per_cell
Definition: stl_mod.f:55
double precision, dimension(3, 3, dim_stl) vertex
Definition: stl_mod.f:20
integer, dimension(4) stl_end
Definition: stl_mod.f:74
double precision zmin_msh
Definition: stl_mod.f:35
integer, parameter bcwalls_stl
Definition: stl_mod.f:71
integer stl_bc_id
Definition: stl_mod.f:49
integer, dimension(:), allocatable n_facet_at
Definition: stl_mod.f:56
integer, dimension(4) stl_start
Definition: stl_mod.f:74
integer, parameter all_stl
Definition: stl_mod.f:69
character(len=3) cad_propagate_order
Definition: stl_mod.f:77
double precision zmax_stl
Definition: stl_mod.f:32
double precision scale_stl
Definition: stl_mod.f:27
double precision tx_stl
Definition: stl_mod.f:24
integer, parameter base_stl
Definition: stl_mod.f:70
integer, dimension(dim_stl) bc_id_stl_face
Definition: stl_mod.f:51
integer, parameter bottom_faceid
Definition: stl_mod.f:13
integer, parameter dim_stl
Definition: stl_mod.f:6
character(len=3) ray_dir
Definition: stl_mod.f:43
integer, parameter default_stl
Definition: stl_mod.f:73
double precision xmax_stl
Definition: stl_mod.f:30
double precision ymax_msh
Definition: stl_mod.f:34
double precision tz_msh
Definition: stl_mod.f:25
Definition: stl_mod.f:1
double precision ty_stl
Definition: stl_mod.f:24
double precision tol_stl
Definition: stl_mod.f:45
double precision, dimension(3, dim_stl) norm_face
Definition: stl_mod.f:22
double precision tol_stl_dp
Definition: stl_mod.f:47
double precision stl_small_angle
Definition: stl_mod.f:40
double precision tz_stl
Definition: stl_mod.f:24
integer n_facets_des
Definition: stl_mod.f:18
double precision out_stl_value
Definition: stl_mod.f:37
double precision ymin_msh
Definition: stl_mod.f:34
double precision xmax_msh
Definition: stl_mod.f:33
double precision ymin_stl
Definition: stl_mod.f:31
double precision xmin_stl
Definition: stl_mod.f:30
double precision zmax_msh
Definition: stl_mod.f:35
integer, parameter imprmbl_stl
Definition: stl_mod.f:72
integer, parameter south_faceid
Definition: stl_mod.f:11
double precision xmin_msh
Definition: stl_mod.f:33
integer, parameter east_faceid
Definition: stl_mod.f:10
double precision tx_msh
Definition: stl_mod.f:25
double precision msh_small_angle
Definition: stl_mod.f:41
double precision ymax_stl
Definition: stl_mod.f:31
integer, parameter north_faceid
Definition: stl_mod.f:12
double precision, parameter zero
Definition: param1_mod.f:27