Hi Gianni - I think it depends a bit on what you mean. If you only have a small, finite number of couplings in your problem (e.g. J1,J2,J3,J4,J5) and the model preserves translation invariance, then you can simply add extra bonds to your lattice definition in order to define further neighbor couplings (see example 1 below).
However, if you would like to explicitly generate a random coupling constant for each bond (that is, the number of unique couplings in your problem scales with the system size) then one way you could proceed is to write a script to explicitly create the lattice XML file, giving each different bond a unique number (see example 2 below). You would then have to put J1=1.23423; J2 = -0.234; ... J120 = 2.3; etc. in your parameter file and specify LATTICE="lattice_name" and LATTICE_LIBRARY="lattice_filename.xml" as well.
Example 1 - Translationally Invt <UNITCELL name="J3 triangular" dimension="2"> <VERTEX/> <EDGE type ="1"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="0 1"/></EDGE> <EDGE type ="1"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="1 0"/></EDGE> <EDGE type ="1"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="-1 1"/></EDGE> <EDGE type ="3"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="0 2"/></EDGE> <EDGE type ="3"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="2 0"/></EDGE> <EDGE type ="3"><SOURCE vertex="1" offset="0 0"/><TARGET vertex="1" offset="-2 2"/></EDGE> </UNITCELL>
[N.B. For this to work the "triangular lattice" lattice must also be defined in your lattices.xml file] <LATTICEGRAPH name = "J3 triangular lattice"> <FINITELATTICE> <LATTICE ref="triangular lattice"/> <PARAMETER name="W" default="L"/> <EXTENT dimension="1" size="L"/> <EXTENT dimension="2" size="W"/> <BOUNDARY type="periodic"/> </FINITELATTICE> <UNITCELL ref="J3 triangular"/> </LATTICEGRAPH>
Example 2 - Explicit Definition <LATTICES> <GRAPH name="Disordered_Lattice_Name" vertices="1000"> <VERTEX id="1" type="0"> <COORDINATE> 3.625 1.125 3.125 </COORDINATE> </VERTEX> <VERTEX id="2" type="0"> <COORDINATE> 3.625 0.625 2.625 </COORDINATE> </VERTEX> <VERTEX id="3" type="0"> <COORDINATE> 0.625 1.625 0.625 </COORDINATE> </VERTEX> [.....] <VERTEX id="1000" type="0"> <COORDINATE> 0.125 3.625 0.125 </COORDINATE> </VERTEX>
<EDGE type="1" source="1" target="1406"/> <EDGE type="2" source="1" target="1126"/> <EDGE type="3" source="1" target="1196"/> <EDGE type="4" source="1" target="517"/> [... N.B. the type=".." numbers can be the same or different] <EDGE type="5" source="2" target="692"/> <EDGE type="6" source="2" target="722"/> <EDGE type="7" source="2" target="980"/> <EDGE type="8" source="2" target="505"/> [...] /GRAPH> </LATTICES>
On Fri, Apr 3, 2009 at 9:41 AM, Gianni Profeta gianni.profeta@aquila.infn.it wrote:
Dear users,
I'm trying to perform classical MC simulation for the 3D Heisenberg model. The model is formed by random magnetic impurities in periodic lattice interacting with different Jij for various neighboring distances r between the magnetic sistes (i and j).
Any suggestions on how to define different J's between different sites?
Thanks a lot,
Gianni