Definition of the problem

The problem is defined in a TOML file. The file must contain the following fields:

  • symmetry_name: Name of the symmetry group.
  • NOB: Number of bodies.
  • m: An array of masses of the bodies.
  • dim: The dimension of the space.
  • Group generators
    • action_type: The type of the action of the group. It can be
      • 0: Circular action
      • 1: Dihedral action
      • 2: Brake action
    • kern: A string containing a GAP command to generate the kernel of the $\tau$ representation. The following helper functions ara available:
      • TrivialKerTau(2) for the trivial kernel of the $\tau$ representation when $d=2$
      • TrivialKerTau(3) for the trivial kernel of the $\tau$ representation when $d=3$
    • rotV: A string containing a GAP command to generate the $O(d)$ part of the first generator of the group. It must be an orthogonal matrix of size $d \times d$
    • rotS: A string containing a GAP command to generate the $\Sigma_n$ part of the first generator of the group. It must be a permutation.
    • If the action is dihedral or brake:
      • refV: A string containing a GAP command to generate the $O(d)$ part of the second generator of the group. It must be an orthogonal matrix of size $d \times d$
      • refS: A string containing a GAP command to generate the $\Sigma_n$ part of the second generator of the group. It must be a permutation.

The file must also contain the following optional fields:

  • F: The number of fourier coefficients (default: 24)
  • steps: The number of steps to be used for the point representation of the path (default: 2 * F)
  • Omega: The infinitesimal generator of the reference frame rotation (default: 0)
  • denominator: The denominator of the potential (default: x)

The following is an example of a TOML file defining a problem:

symmetry_name = "2d_cyclic_2"
NOB = 3
dim = 2
m = [1, 1, 1]

# Group generators
kern = "TrivialKerTau(2)"
action_type = 0
rotV = "[[-1, 0], [0, -1] ]"
rotS = "(2,3)"

# Other configs
F = 24
Omega = [
    [0, 0],
    [0, 0]
]

Load the problem

A problem can be loaded using the initialize function. The function receives the path to the TOML file and returns a Problem object.


julia> P = initialize("example.toml")N: 3 dim: 2 F: 24 steps: 48 masses: [1.0, 1.0, 1.0] denominator: f(x) = x Symmetry group: SymmetryGroup of type Cyclic * ker(τ): Subgroup of order 1 * g = GroupElement: σ: [2, 3, 1] M: [1.0 0.0; 0.0 1.0] * Cyclic order = 3