wiki:GalileoDev

Version 9 (modified by nsetzer, 12 years ago) ( diff )

--


Table of Contents

  1. Status
    1. Completed
    2. In Progress
    3. Planned
    4. Wish List
  2. Structure
    1. Core
    2. GUI
  3. References
    1. Saving/Reading
    2. FieldContainer class
    3. MathML Output
    4. Wiki Formatting


Status

Completed

  • Fields return mass dimension based on spacetime dimension

In Progress

  • SUSY higher dimensional operators
  • Lagrangian to display <math><mrow><mfrac><mi>g</mi><mrow><msup><mi>&Lambda;</mi><mi>d</mi></msup></mrow></mfrac><mo>&InvisibleTimes;</mo><mi>O</mi></mrow></math>

Planned

  • Curved spacetime
  • Config dialog contains spacetime dimensions
  • Alter CompactLieAlegbra and DiscreteGroup location to be within SemiSimpleAlgebra and SemiSimpleDiscreteGroup

Wish List

  • Spontaneous Symmetry Breaking

Structure

Core

Location of Objects

The various components of the code need to be stored in specific locations and to avoid redundancy, as per the DRY principle, they should only be stored in one location. This list is meant to be the authoritative list as to the location of the various components.

Object Location
CompactLieAlgebra Nowhere. Exist in memory only & known to program through a pointer*
DiscreteGroup Nowhere. Exist in memory only & known to program through a pointer*
SemiSimpleAlgebra SymmetryGroupDirectProduct
SemiSimpleDiscreteGroup SymmetryGroupDirectProduct
SymmetryGroup SymmetryGroupDirectProduct, pointer to CompactLieAlgebra or DiscreteGroup in SemiSimple*
SymmetryGroupDirectProduct Model
Field Model, pointer to SymmetryGroupDirectProduct and its representation information
Parameter Model
Lagrangian Model, pointer to Field and Parameter

* See Planned under Status

Model Object

The Model is the over-arching container that holds the various pieces of the theory. Explicitly these pieces are

  • Symmetries**
    • Interaction between the Model and the symmetries is handled exclusively by SymmetryGroupDirectProduct
  • Fields
  • Lagrangian
  • Parameters

and these are, correspondingly, members. To interact with these pieces there are two categories:

cosmetic changes
methods of the internal object that only affect that object and do not influence other objects (things such as changing the symbol)
core changes
methods of the Model class that MUST be used as the changes impact other member objects (things such as deleting a group or changing its type)

** This should, in principle, include all symmetries; that is, spacetime (Poincare, Supersymmetry, etc) as well as internal (gauge, global, etc).

Handling Symmetries

SymmetryGroupDirectProduct has the responsibility of handling all requests that have to do with the symmetry groups. It therefore contains methods to do the following:

  • add a symmetry group of any supported type
  • remove a symmetry group
  • return a representation (type SymmetryGroupRep) of any group
  • return the properties of the symmetry group
    • the group symbol
    • is it local or global
    • the (pointer to) the gauge boson
    • the generators symbol
    • the name of indices
  • alter properties of a symmetry group

Handling Fields

Fields transform under the symmetries, and therefore they must be aware of the symmetries of the model. To this end the field object contains a pointer to SymmetryGroupDirectProduct (which has all the symmetries), but it also points to the various representations it has under the symmetries. This actually requires care as when a symmetry group is added or deleted, the field will necessarily need to have its internals updated.

GUI


References

Saving/Reading

Possible XML parser Libraries in C++

"comprehensive" list of C++/C XML parsers

FieldContainer class

This is potentially useful for generating all possible subFieldContainers

MathML Output

Wiki Formatting

Note: See TracWiki for help on using the wiki.