Software ======== Prerequisites ------------- To run the software you need: * `python `_ * `numpy `_ * `Tkinter `_ * Postscript viewer such as `GSview `_ These tools are standard under linux (at least in Ubuntu) and available as well under windows. The File (download) ------------------- Copyright (c) 2009 Martin J. Mohlenkamp. Released under the terms of the `GNU General Public License `_. ``_ Most users will just run the software, and so do not need to worry about the contents of the file. If you want to know more about how the code is structured, see the code documentation: .. toctree:: :maxdepth: 2 code.rst User's Manual ------------- To start the visualization tool, run the file trvtool.py using python. In linux that means open a shell and type:: python trvtool.py The initial window has the following buttons: Exit Exit this window and all children. Load State Load in a visualization that was previously created and saved to a file. Data files are included with many of the examples, such as `<2x2x2pr2G3.dat>`_ for the example in :ref:`G3-section-label`. New, Random Start a new visualization. The user specifies * the field (R or C) * the dimension * the rank for :math:`T_1`, :math:`T_2`, and :math:`T_3` * the plotting rank * the resolutions :math:`M_i`. This can be entered as a single integer (e.g. 2) or as a list with length the dimension (e.g. [2,2,3,3]). New, Manual over R Start a new visualization, over the real numbers. The user enters the plotting rank and the tensors :math:`T_1`, :math:`T_2`, and :math:`T_3`. These tensors are entered in python syntax as a list of lists of lists. Specifically, [[[a,b,c],[d,e,f]],[[g,h,i],[j,k,l]]] means .. math:: [a,b,c]\otimes[d,e,f]+[g,h,i]\otimes[j,k,l] For example, to start the example in :ref:`G3-section-label` that eventually produced `<2x2x2pr2G3.dat>`_, we entered plotrank 2 and the three tensors as [[[ 1,1],[0,1],[0,1]]] [[[1,-1],[1,0],[1,0]]] [[[0,1],[1,1],[1,-1]]] New, Manual over C Start a new visualization, over the complex numbers. Similar to the real case, but only two tensors are entered. To enter a complex number for an entry, use the python syntax, which is 3.4+2.5j means :math:`3.4+2.5i`. Once a visualization has been loaded or created, the main visualization window opens. Main Visualization Tool ^^^^^^^^^^^^^^^^^^^^^^^ Help Directs you back to this web page for help. State Info Opens a new window in which the current state is printed as text. This is useful to check that you are plotting what you think you are, and make sure nothing unpleasant like a singular matrix was encountered. Save State Opens a file dialog window that allows the state to be saved. The state includes all the parameters needed to recover the visualization, but does not include things like the latest rectangle rendered to. Exit Exit the visualization tool, but not its parent. Multiple visualizations can be run from the same parent. Update Change the plotting rank. This allows one to keep the same tensors to define the line/plane. If the rank is increased then plotted points are retained; otherwise they are cleared. Render to The user specifies a rectangle to render to, noting that there is a tensor defining the line/plane at :math:`(0,0)` and one at :math:`(1,0)`. The user then gives a filename (default tmp) and this button writes an encapsulated postscript file that one can then view to actually see the visualization. In linux that means open a shell and type:: gv tmp.eps& If one is using gv, then one can set its "State" to "Watch file" so it will reload whenever you re-render. ALS The user specifies a rectangle and a number of points with which to discretize that rectangle in each direction. Tensors on the plane at those grid points are constructed, and then fit to with a tensor of the rank being plotted. These approximations are then plotted. Crop The user specifies a rectangle, and all points falling outside this are permanantly deleted. Note that the "Render to" button does not plot points outside of its rectangle anyway. Trim Covered Remove plotting discs that are (mostly) covered by darker disks. This uses a niave, heuristic algorithm. It does produce a smaller state to save. Line This button is only available for visualizations over the real numbers. The user specifies a pair of :math:`T_j` to connect with a line. The indexing starts at 0, so valid pairs are (0,1), (0,2), (1,2), and permutations. The user then gives the (parametric) start and end points of the line, with (0,1) corresponding to the line segment that just connects the two points. The user also gives the number of points/tensors to use along the line. If the tensors along the line have rank larger than the plotting rank, then the line is refused.