SFEMaNS
version 4.1 (work in progress)
Reference documentation for SFEMaNS
Home
Documentation
Data Types List
Files
File List
All
Classes
Files
Functions
Variables
Groups
Pages
def_type_mesh.f90
Go to the documentation of this file.
1
!
2
!Authors: Jean-Luc Guermond, Copyright 2000
3
!
4
MODULE
def_type_mesh
5
USE
dyn_line
6
IMPLICIT NONE
7
8
TYPE
aij_type
9
INTEGER
,
POINTER
,
DIMENSION(:)
:: ia, ja
10
END TYPE
aij_type
11
12
TYPE
periodic_data
13
INTEGER
:: nb_periodic_pairs
14
INTEGER
,
DIMENSION(:,:)
,
POINTER
:: list_periodic
15
REAL(KIND=8)
,
DIMENSION(:,:)
,
POINTER
:: vect_e
16
END TYPE
periodic_data
17
18
TYPE
petsc_csr_la
19
INTEGER
,
DIMENSION(:)
,
POINTER
:: ia, ja
20
INTEGER
,
DIMENSION(:,:)
,
POINTER
:: loc_to_glob
21
INTEGER
:: kmax
22
INTEGER
,
DIMENSION(:)
,
POINTER
:: np
23
INTEGER
,
DIMENSION(:)
,
POINTER
:: dom_np
24
END TYPE
petsc_csr_la
25
26
!------------------------------------------------------------------------------
27
! REAL(KIND=8), DIMENSION(n_w, l_G), PUBLIC :: ww
28
! REAL(KIND=8), DIMENSION(n_ws, l_Gs), PUBLIC :: wws
29
! REAL(KIND=8), DIMENSION(k_d, n_w, l_G, me), PUBLIC :: dw
30
! REAL(KIND=8), DIMENSION(n_w,l_G,1:2,me), PUBLIC :: dwni !d/dn, interface (JLG, April 2009)
31
! REAL(KIND=8), DIMENSION(k_d, l_Gs, mes), PUBLIC :: rnorms
32
! REAL(KIND=8), DIMENSION(l_G, me), PUBLIC :: rj
33
! REAL(KIND=8), DIMENSION(l_Gs, mes), PUBLIC :: rjs
34
! REAL(KIND=8), DIMENSION(k_d, n_w, l_Gs, mes) :: dw_s !gradient at the boundary
35
!------------------------------------------------------------------------------
36
37
TYPE
gauss_type
38
INTEGER
:: k_d, n_w, l_G, n_ws, l_Gs
39
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: ww
40
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: wws
41
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: wwsi
!Interface shape function (JLG, June 4 2012)
42
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: dw
43
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: dwni
!Interface gradient (JLG, April 2009)
44
REAL(KIND=8)
,
DIMENSION(:, :, :)
,
POINTER
:: rnorms
45
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: rnormsi
!Interface normal (JLG, June 4 2012)
46
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: rj
!Interface weight (JLG, April 2009)
47
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: rji
48
REAL(KIND=8)
,
DIMENSION(:, :)
,
POINTER
:: rjs
49
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: dw_s
!gradient at the boundary
50
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: dwps
!special!
51
REAL(KIND=8)
,
DIMENSION(:, :, :, :)
,
POINTER
:: dws
!SPECIAL!
52
END TYPE
gauss_type
53
54
TYPE
periodic_type
55
TYPE(
dyn_int_line
)
,
DIMENSION(20)
:: list
56
TYPE(
dyn_int_line
)
,
DIMENSION(20)
:: perlist
57
INTEGER
,
POINTER
,
DIMENSION(: )
:: pnt
58
INTEGER
:: n_bord
59
END TYPE
periodic_type
60
61
!------------------------------------------------------------------------------
62
! loc_to_glob(np) gives global numbering from local numbering on current processor
63
! jj(n_w, me) nodes of the volume_elements
64
! jji(n_w, 1:2, mi) edge to node conectivity array --> volume numbering (JLG April 2009)
65
! neighi(1:2, mi) interfaces to volume elements --> cell 1 has lowest cell number
66
! jjsi(n_ws, mi) nodes of the interface elements --> volume numbering (JLG April 2009)
67
! jjs(n_ws, mes) nodes of the surface_elements --> volume numbering
68
! iis(n_ws, mes) nodes of the surface_elements --> surface numbering
69
! mm(me) (possibly sub) set of elements for quadrature
70
! mms(mes) (possibly sub) set of surface_elements for surf_quadrature
71
!------------------------------------------------------------------------------
72
73
TYPE
mesh_type
74
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: jj, jjs, iis
75
INTEGER
,
POINTER
,
DIMENSION(:,:,:)
:: jji
! (JLG April 2009)
76
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: jjsi
! (JLG April 2009)
77
INTEGER
,
POINTER
,
DIMENSION(:)
:: j_s
! boundary nodes --> volume numbering
78
REAL(KIND=8)
,
POINTER
,
DIMENSION(:,:)
:: rr
79
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: neigh
80
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: neighi
! (JLG April 2009)
81
INTEGER
,
POINTER
,
DIMENSION(:)
:: sides, neighs
82
INTEGER
,
POINTER
,
DIMENSION(:)
:: i_d
83
!==Parallel structure
84
INTEGER
,
POINTER
,
DIMENSION(:)
:: loc_to_glob
! (JLG+FL, January 2011)
85
INTEGER
,
POINTER
,
DIMENSION(:)
:: disp, domnp
! (JLG+FL, January 2011)
86
INTEGER
:: dom_me, dom_np, dom_mes
! (JLG+FL, January 2011)
87
! dom_me and dom_mes are obsolete structures.
88
! dom_np is the number of nodes owned by the processor: dom_np .LE. mesh%np
89
!==End parallel structure
90
INTEGER
:: me, mes, np, nps, mi
! (JLG April 2009)
91
LOGICAL
:: edge_stab
! edge stab, yes/no, (JLG April 2009)
92
TYPE(
gauss_type
)
:: gauss
93
TYPE(
periodic_type
)
:: periodic
94
REAL(KIND=8)
,
POINTER
,
DIMENSION(:)
:: hloc
! local mesh size (JLG+LC January, 21, 2015)
95
REAL(KIND=8)
,
POINTER
,
DIMENSION(:)
:: hloc_gauss
! local mesh size (JLG+LC January, 21, 2015)
96
END TYPE
mesh_type
97
98
TYPE
mesh_type_interface
99
INTEGER
,
POINTER
,
DIMENSION(:)
:: slave_elem
! list slave elemt in interface
100
INTEGER
,
POINTER
,
DIMENSION(:)
:: list_slave_node
! list of slave nodes on interface
101
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: master_node
! local --> global numbering; master nodes
102
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: slave_node
! local --> global numbering; slave nodes
103
INTEGER
:: me
! nb of slave elemt in interface
104
END TYPE
mesh_type_interface
105
106
TYPE
mesh_type_boundary
107
INTEGER
,
POINTER
,
DIMENSION(:)
:: master
! list master boundary elemts
108
INTEGER
,
POINTER
,
DIMENSION(:)
:: slave
! list slave boundary elemts not in interface
109
INTEGER
,
POINTER
,
DIMENSION(:)
:: INTERFACE
! list slave boundary elemts in the interface
110
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: master_node
! local --> global numbering; master nodes
111
END TYPE
mesh_type_boundary
112
113
TYPE
interface_type
114
INTEGER
:: mes
! number of interface elements
115
INTEGER
,
POINTER
,
DIMENSION(:)
:: mesh1
! list slave interface elements
116
INTEGER
,
POINTER
,
DIMENSION(:)
:: mesh2
! list master interface elements
117
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: jjs1
! list of slave node on interface elements
118
INTEGER
,
POINTER
,
DIMENSION(:,:)
:: jjs2
! list of master nodes on interface elements
119
END TYPE
interface_type
120
121
122
END MODULE
def_type_mesh
def_type_mesh::interface_type
Definition:
def_type_mesh.f90:113
def_type_mesh::periodic_data
Definition:
def_type_mesh.f90:12
def_type_mesh::petsc_csr_la
Definition:
def_type_mesh.f90:18
def_type_mesh::mesh_type
Definition:
def_type_mesh.f90:73
def_type_mesh::mesh_type_boundary
Definition:
def_type_mesh.f90:106
def_type_mesh::aij_type
Definition:
def_type_mesh.f90:8
dyn_line
Definition:
dyn_line.f90:4
def_type_mesh
Definition:
def_type_mesh.f90:4
dyn_line::dyn_int_line
Definition:
dyn_line.f90:5
def_type_mesh::periodic_type
Definition:
def_type_mesh.f90:54
def_type_mesh::mesh_type_interface
Definition:
def_type_mesh.f90:98
def_type_mesh::gauss_type
Definition:
def_type_mesh.f90:37
FEMSUB_PARALLEL
def_type_mesh.f90
Generated on Mon Apr 3 2017 19:12:47 for SFEMaNS by
1.8.5