SG2 |
|
![]() ![]() ![]() ![]() ![]() |
The product code uses data
structures that are similar to the ones used by the other Finite Element
Method. I do my best to explain them here, but truthfully, you may be able
to pick up a better understanding by playing around with Maple or just
contact me.
Point: A point on the product is held in a list of lists in Maple. The coordinate system for each works the same way as in the other Finite Element Method code; the address on a certain factor is a list of integers. The point [0,1] is represented by a list that looks the same way. On the product, we have a list of these two points: [ [ 0 , 1 ] , [0,1] ] Gasket: The gasket is natively a Maple table. It is indexed by two things, a function slot and a point. For example, the gasket T is indexed by a product point and a function number, ie T[ [ [ 0 , 1 ] , [0 , 1 ] ],0 ] will reference the value of point [ [0,1], [0,1] ] for function 0. There are a few function slots that are automatically taken up; 0 is used at the creation of the gasket, and should be the identity; T[[[0,1],[0,1]],0] = [ [0,1], [0,1] ]. The pd_make_neighbors or the pd_make_neighbors_irreg function will fill up the (possibly 16) neighbors of each point in function slots 1 - 16. Further, the pd_calc_biharms function will use 27 function slots, so a fully formed gasket could use possibly every slot from 0 to 42. Vertex List: Often times, when a function needs to iterate through every vertex in a gasket, it requires the use of a list of vertices of the gasket; for that, a vertex list is used. Simply, it is a list of all the vertices in the gasket. Cell: There are 9 distinguished boundary points for each cell, and to specify a certain cell, simply pass a list containing these 9 distinguished boundary points. |