---- [[PageOutline(1-2,Table of Contents,inline)]] ---- = Status = == Completed == * Fields return mass dimension based on spacetime dimension == In Progress == * SUSY higher dimensional operators * Lagrangian to display gΛdO * {{{Symbol}}} class * Move {{{Symbol}}} class to directory {{{Notation}}} * Add examples of what {{{Symbol}}} class does to documentation == 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 [http://c2.com/cgi/wiki?DontRepeatYourself 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: {{{ #!html
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++ * [http://xerces.apache.org/xerces-c/program-3.html Xerxes-C++] * [http://libxmlplusplus.sourceforge.net/ libxml++] * [http://expat.sourceforge.net/ ] * [http://www.grinninglizard.com/tinyxml/ TinyXML] * [http://www.applied-mathematics.net/tools/xmlParser.html Kranf's 104KB] [http://lars.ruoff.free.fr/xmlcpp/ "comprehensive" list of C++/C XML parsers] == {{{FieldContainer}}} class == This is potentially useful for generating all possible sub{{{FieldContainer}}}s * [http://en.wikipedia.org/wiki/Combinatorial_number_system Combinatorial Number System] * [http://code.activestate.com/recipes/500268-all-k-subsets-from-an-n-set/ Python Code for all k-subsets] == MathML Output == * [http://www.w3.org/TR/REC-MathML/chap3_1.html W3C Presentation Markup] * [http://www.tek-tips.com/viewthread.cfm?qid=1024751 Essentially is_numeric for string] * [http://forums.codeguru.com/showthread.php?231054-C-String-How-to-convert-a-string-into-a-numeric-type Another is_numeric] == Wiki Formatting == * [http://trac.edgewall.org/wiki/WikiFormatting TracWiki Formatting]