PORTABILITY
the following package should be installed
1) python 2.3 or later
2) python-dev that includes header Python.h
3) lapack (sometimes one needs to rename or create an appropriate symbolic link to liblapack.so.n => liblapack.so , where -n- is the version number)
4) libg2c  (sometimes one needs to rename or create an appropriate symbolic link to libg2c.so.n => libg2c.so , where -n- is the version number)
5) Numeric, should be installed in its default path
6) PyX-0.9 (if Pyx-10 is used change color.palette to color.gradient)

06/07/2007 
modifications in systeme::coller() function so it works for any lattice
******************************************************************************
* 21/06/2007                                                                 *
* _VERSION_ v1.0.0                                                           *
******************************************************************************
different saving_level are possible 0 - no saving, -1 not devergent saving (no memory gain), n - save full GF each n sites
knit::set_saving_level(int level) function is defined for this purpose
one could calculates transmission, LDOS and local currents

In this version of file we have the following working modules

\file knit_micromatrices.h[C]
	scalarM

\file knit_system.h[C]
	systeme::deplacer()
	systeme::coller()
	systeme::changeH()
	systeme::applyB()
	systemerectangle <= systeme
	reservoir        <= systeme
        A_reservoir      <= reservoir
	N_reservoir      <= reservoir
        systeme_infini   <= systeme
        systeme_infini::addlead()
	potential
	QPC              <= potential

\file knit_geometry.h[C]
	position
	moveType
	position_knit   <= position
	position_knit::avancer()
	position_knit::reculer()
	positionbfTEST()
	max_GF_size()
	get_new_old_map()
	reindex()	
	map_copy()

\file knit_knit.h[C]
	temp4knit
	saved4knit
	knit	
	knit::forward()
	knit::backward()
	knit_bfTEST()
	direct
	direct::calculate4E()
	sew
	sew::backward()
	SI_TEST()
	GF_TEST()
	GnotK_TEST()
\file knit_physics
	coef_T()

\file blitz_addon.h
LAPACK and BLAS interface for Blitz Arrays


******************************************************************************
* 25/06/2007                                                                 *
* _VERSION_ v1.0.1                                                           *
******************************************************************************

The interface with Python has been added. Two examples so far:

conductance_ring.py     : plot the conductance of an aharonov ring
plot_ring.py            : plot an aharonov ring with two leads

******************************************************************************
* 06/07/2007                                                                 *
* _VERSION_ v1.0.2                                                           *
******************************************************************************

Procedure coller() has been updated. It now works even when the two structures
are completly different.A.coller(B) completly erases the part of A that also
belongs to B.

new functions:
* systeme& addsite(const Array<int,1>& voisins, 
		   const Array<Tmicromatrix,1>& hoppings, 
                   const Tmicromatrix& Hii, const Array<int,1>& coordinate): 
  (add new single site to the system)
* add_site(...) (short version of addsite for Python) 
* systeme& put_Hdiag(int ind,const Tmicromatrix& Hii) 
* Tmicromatrix get_Hdiag(int ind) 
* systeme& put_Hopp(int ind, int z, const Tmicromatrix& t) 
* Tmicromatrix get_Hopp(int ind, int z) 

******************************************************************************
* 13/07/2007                                                                 *
* _VERSION_ v1.0.3                                                           *
******************************************************************************

The class sew<scalarM> is now interfaced in python
(the constructor sew(){}; had to be commented in order for the 
code to compile for an obscure yet probably subtle reason!)

the example machzender.py does 2Dplots of density/currents/potentials


******************************************************************************
* 31/10/2007                                                                 *
* _VERSION_ v1.0.2                                                           *
******************************************************************************

Bug in sew() has been fixed (sign of Glesser was wrong). 

new functions:
* systeme& movesite(const Array<int,1>& voisins, 
		   const Array<Tmicromatrix,1>& hoppings, 
                   const Tmicromatrix& Hii, const Array<int,1>& coordinate,int ind): 
  (move single site -ind- in the system)
* move_site(...) (short version of movesite for Python) 
* systeme& reset(int dim,int zmax,int size)


******************************************************************************
* 30/11/2007                                                                 *
* revision 7                                                                *
******************************************************************************

vectorM class is added to knit_micromatrices.h
all the scalar and vector operations (similar to those of scalarM) are written for this class
compilation is succeeded 
test of all defined operations is performed on 2x2 matrix in knit_micromatrices.C


******************************************************************************
* 30/11/2007                                                                 *
* revision 8                                                                *
******************************************************************************

We realize that arr2micro non template function could not be used anymore so
template function arr2micro<Tmicromatrix> is added (replace non templare arr2micro) and 
as it was used before the replacement are made in knit.* and system.h files


******************************************************************************
* 30/11/2007                                                                 *
* revision 9                                                                *
******************************************************************************

vectorM class is tested for all C++ impemented test (test_micro,test_sys,test_knit), 
python simplest_examples are also working and gives the same results as for scalarM
so now one could use inner degrees of freedom like spins or electron/hole
we should calculate not trivial implementation of "spin" to be sure that our code is fully compatible with inner degrees of freedom

******************************************************************************
* 06/12/2007                                                                 *
* revision 10                                                                *
******************************************************************************

Added PYTHON interface for spin.
With one example examplespy/trivial_FNF.py
It looks OK but it is not tested yet against analytical calculations.

I had to remove the operator<< for system, infinitesystem and knit
because for some unknown reason swig would not deal with it.
In principle it is not needed but it might cause some older tests
to crash.


******************************************************************************
* 06/12/2007                                                                 *
* revision 16                                                                *
******************************************************************************

Added new member functions to the sew class 
 micromatrix sew::getG_LL(i,li,j,lj)  // lead_lead full GF
 micromatrix sew::getSE(i,j,li)       // self energy
Debug for parameter range is added for coef_T function in knit_physics.h



******************************************************************************
* 20/12/2007                                                                 *
* revision 18                                                                *
******************************************************************************

* added getG_LL(i,li,j,lj) and getSE(i,j,li) to class knit

* added simple_NSjunction.py example

* added support to calculate Normal-Superconductor conductance.
(obs.py)

* added support for graphene with spin developped during XW stay
in Trondheim (both with and without spin)

* added Trondheim computer in knit_Makefile

* added copy constructor for spinM and consequently to spin

* some basic verifications of the validity of calculations with spin
       - doubling of conductance in clean NS junction
       - g_NINS = a (gI)**2  in a Normal Insulator Normal Superconductor junction
       - g(t)=constant in a FNF junction where t is the angle between both
       magnetizations and the Z axis.

* beginning of a FAQ

******************************************************************************
* 31/01/2007                                                                 *
* revision 24                                                                *
******************************************************************************

Added 3D support:

* in system.py: visu3D  (close to visu2D but... in 3D)

* added a function add_Hopp to the class systeme to create a
non existent hopping.

* graphene_supercondutor.py has been extended to 
graphene3D_superconductor.py  (almost identical but in 3D)
It is probably a good idea to do future developments for the 3D
version.

* Two new examples:
    simple_graphite.py
    NonlocalFGF.py
******************************************************************************
* 19/07/2009                                                                 *
* revision 25                                                                *
******************************************************************************

*Visualization related functions (colorplot2D etc ) are moved from module obs to the module system

*New folder knit_tutorial with new 3 examples (similar to tutorialpy) + knit User guide file is added

*function movesite in knit_system.cxx is corrected: map entry on the moved site is deleted
******************************************************************************
* 24/07/2009                                                                 *
* revision 26                                                                *
******************************************************************************

* function reset in system.cxx is incorrect, as it does not create entries in the indice_map map!

* PROBLEM: as a result of wrong reset -> graphene example is not working, because while moving sites -> USEFUL records in indice_map got deleted.
* SOLVED! :to make graphene work : instead monsys.reset(2,fullsize,coordonance)-> use rectangle constructor: monsys=knit.rectangle([fullsize,1],[x,y],t,Hd)

* function delete_site is added to system.cxx: 
* Due to the flat data structure -> "real" deletion is a very expencive operation and cannot be afforded! 
* PROBLEM: xyz is an array where site number is an index. Deletion of the site ii is equivalent to reenumeration of all system sites : site (ii) -> site (ii+1) .. etc. As a result,all the system has to be recalculated as neighbours for ALL sites and coordinates of sites starting from ii are changed! -> expencive operation.
* Temporal solution: deletion of site ii = labeling this site as "outsample" in the xyz array. However this leads to the fact that this site will be always presented in the system graphs.
* Temporal solution2: to eliminate "fantome" site from the graph - "visu2D_" and "colorplot2D_" and "visu3D_" are specified in libpy. These function plot only 3-d quadrant, where x>=0, y>=0, z>=0, etc. The deleted site - outsample - has all coordinates "-1" -> it is not in the graph.
* Function for system shift is added to knit_system.cxx; this system has asignature shift_system(delta) where delta is a shift vector 


