blob: 8b3196b9078b7740b03d8b7ab27e65da4d8694c6 [file] [log] [blame]
This file gives explaination of some terms used in the commments of the code.
1. Face Index:
defined on an element.
range: 1,2,...,6
order:(when facing an element)its right, left,back,front,top and bottom.
2. Local Edge Index:
defined on a face.
range: 1,2,3,4
order: bottom, right, top and left edge (of a face).
3. Global Edge Index:
defined on an element.
range: 1,2,3,...,11,12.
Order:
1,2,3,4: local edge 1,2,3,4 on face 1
5,6,7,8: local edge 1,2,3,4 on face 2
9,10 : local edge 1,3, on face 3
11,12 : local edge 1,3 on face 4
4.Local Corner Index
defined on a face
range : 1,2,3,4
order : left_bottom, right_bottom,left_top,right_top
5. Vertex Index
defined on an element
range: 1,2,...,7,8
order:
1,2,3,4: local corner 1~4 on face 6
5,6,7,8: local corner 5~8 on face 5
6. Face type
defined on an element
range: 0,1,2,3
type 0: domain boundary( no neighbor element)
type 1: neighbor element is larger in size
type 2: neighbor element is of the same size
type 3: neighbor element is smaller in size
7. Nonconforming face
defined on an element
face of type 3
8. Conforming face
defined on an element
face of type 0,1,or 2
9.Nonconforming edge
defined on an element
The whole edge is shared by a face (of any element) of type 3.
10.conforming edge
defined on an element
All elements sharing this edge are of the same or larger size.
11.mortar location
defined on each face
range (1,1) (1,2) (2,1) (2,2)
order:
Each face has either 1 or 4 pieces (2 by 2 in each direction) of mortar.
If it has one piece of mortar, the mortar location is (1,1).
If a face has four pieces of mortar, (1,1) refers to the left_bottom,
(1,2) refers to right_bottom, (2,1) refers to left_top, (2,2) refers to
right_top.
13. For situations that nonconforming edges exist on a conforming face,ii and
jj used in idmo(i,j,ii,jj,face,iel) for the nonconforming edge is the same
as the face is nonconforming. e.g. if local edge 2 is nonconforming,
mortar indices on this edge are idmo(i,j,1,2,face,iel) (1<j<5,i=lx1) and
idmo(i,j,2,2,face,iel) (1<j<5, i=lx1) although for i <> lx1, idmo(i,j,1,2,face,iel) and idmo(i,j,2,2,face,iel) =0 (not exist)
14. edge mortar index for nonconforming edge.
defined on edge
range 1,2
order:
local edge 1 and 3: left , right
local edge 2 and 4: bottom, top
Note, for conforming edge it is always 1
some important array:
1. mortar index
idmo(i,j,ii,jj,face,iel) gives the mortar index number. iel is element index,
face if face index, (ii,jj) is mortar location, (i,j) is collocation point location on that piece of mortar. There 5 by 5 collocation point on each piece of
mortar.
Note, indices refers to local corners on each face are fixed no matter how many
pieces mortar are there on each face.
for local corner 1, its mortar number is idmo(1 , 1,1,1,face,iel)
for local corner 2, its mortar number is idmo(LX1, 1,1,2,face,iel)
for local corner 3, its mortar number is idmo(1 ,LX1,2,1,face,iel)
for local corner 4, its mortar number is idmo(LX1,LX1,2,2,face,iel)
2. sje(ii,jj,face,iel)
records the neighor element index of iel, neighbored by face "face"
ii,jj are defined the same as in idmo()
sje()=0 refers to no neighbor
for conforming face, only when ii=1 and jj=1, sje() <>0
3.ijel(n,face,iel)
if iel's neighbor on face "face" is jel, face "face" on jel is jface,
then sje(ii,jj,jface,jel)=iel,
then ijel(1,face,iel)=ii and ijel(2,face,iel)=jj
4 Tree(iel) records the refinement history to get iel. When iel gets refined,
its either children has the tree(children 1)=tree()+000,
tree(children 2)=tree()+001,
tree(children 3)=tree()+010,
tree(children 4)=tree()+011,
tree(children 5)=tree()+100,
tree(children 6)=tree()+101,
tree(children 7)=tree()+110,
tree(children 8)=tree()+111
5. xc(i,iel) records the x coordinates of the i'th vertex of element iel
xc(i,iel) records the y coordinates of the i'th vertex of element iel
xc(i,iel) records the z coordinates of the i'th vertex of element iel
6.cbc(i,iel) records the type of face i of element iel