Table of Contents
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>Λ</mi><mi>d</mi></msup></mrow></mfrac><mo>⁢</mo><mi>O</mi></mrow></math>
Symbol
class- Move
Symbol
class to directoryNotation
- Add examples of what
Symbol
class does to documentation
- Move
Planned
- Curved spacetime
Config
dialog contains spacetime dimensions- Alter
CompactLieAlegbra
andDiscreteGroup
location to be withinSemiSimpleAlgebra
andSemiSimpleDiscreteGroup
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 bySymmetryGroupDirectProduct
- Interaction between the
- 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 subFieldContainer
s