| 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 |