For our example, since the equations of motion are invariant under the transformation 34#34 for any integer n, we may consider 19#19 to be a periodic variable with period 38#38. We may choose any interval of length 38#38 as a fundamental domain for the variable 19#19. Common choices are the intervals 41#41 and 36#36. We make the latter choice. To pass this information into dstool, we edit yet a few more lines in bball_init():
static int manifold_type=PERIODIC; /* EUCLIDEAN or PERIODIC */ static int periodic_varb[]={TRUE, FALSE}; /* if PERIODIC, which varbs periodic? */ static double period_start[]={0.,0.}; /*if PERIODIC, begin fundamental domain */ static double period_end[]={TWOPI, 1.}; /*if PERIODIC, end of fundamental domain*/
We remark on the variables period_start and period_end. If the jth coordinate is not periodic (ie, the value of periodic_varb[j] is FALSE) then it does not matter what period_start[j] and period_end[j] are because the entries are ignored by dstool. Similarly, if the variable manifold_type is EUCLIDEAN, then it doesn't matter what values are given for the entries of periodic_varb. It is always safe, of course, to set each entry of periodic_varb to FALSE. As mentioned in Section 3.2.5.1, TWOPI is a global constant.