Version: | 0.2.5 |
Date: | 2015-04-08 |
Title: | Monte Carlo for Classical Ising Model |
Maintainer: | Mehmet Suzen <mehmet.suzen@physics.org> |
Depends: | R (≥ 3.0) |
NeedsCompilation: | yes |
BuildVignettes: | yes |
Description: | Classical Ising Model is a land mark system in statistical physics.The model explains the physics of spin glasses and magnetic materials, and cooperative phenomenon in general, for example phase transitions and neural networks.This package provides utilities to simulate one dimensional Ising Model with Metropolis and Glauber Monte Carlo with single flip dynamics in periodic boundary conditions. Utility functions for exact solutions are provided. |
License: | GPL (≥ 3) |
Packaged: | 2016-07-01 14:24:29 UTC; msuzen |
Author: | Mehmet Suzen [aut, cre] |
Repository: | CRAN |
Date/Publication: | 2016-07-02 03:03:29 |
Given Flip a site randomly
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, flip any of the site randomly. The function uses default RNG (Marsienne-Twister) unless changed by the user, within R, to generate a vector that contains 1s or -1s. This function calls 'flipConfig1D' C function.
Usage
flipConfig1D(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns vector that contains 1s or -1s.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
# now flip
mySitesNew <- flipConfig1D(mySites)
Given Flip a site randomly
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, flip any of the site randomly. The function uses default RNG (Marsienne-Twister) unless changed by the user, within R, to generate a vector that contains 1s or -1s. This function is a pure R implementation
Usage
flipConfig1D_R(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns vector that contains 1s or -1s.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D_R(n) # Generate sites
# now flip
mySitesNew <- flipConfig1D_R(mySites)
Flip a single site randomly many times
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, flip any of the site randomly, repeat it many times. The function uses default RNG (Marsienne-Twister) unless changed by the user, within R, to generate a vector that contains 1s or -1s. This function calls 'flipConfig1Dmany' C function.
Usage
flipConfig1Dmany(x, upperF)
Arguments
x |
1D spin sites on the lattice. |
upperF |
The number of times |
Value
Returns vector that contains 1s or -1s.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
# now flip 100 times
mySitesNew <- flipConfig1Dmany(mySites, 100)
Generate one dimensional spin sites randomly
Description
The function uses default RNG (Marsienne-Twister) unless changed by the user, within R, to generate a vector that contains 1 or -1. This reflects spin sites. This function calls 'genConfig1D' C function.
Usage
genConfig1D(n)
Arguments
n |
The number of spin sites on the lattice. |
Value
Returns vector that contains 1s or -1s.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
genConfig1D(n)
Generate one dimensional spin sites randomly
Description
The function uses default RNG (Marsienne-Twister) unless changed by the user, within R, to generate a vector that contains 1 or -1. This reflects spin sites. This function is pure R implementation.
Usage
genConfig1D_R(n)
Arguments
n |
The number of spin sites on the lattice. |
Value
Returns vector that contains 1s or -1s.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
genConfig1D_R(n)
Get uniformly a spin state
Description
Generate a single spin state from uniform distribution.
Usage
genUniform(n)
Arguments
n |
dummy argument |
Value
Returns randomly 1 or -1 from uniform distribution.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
genUniform()
Perform metropolis MC on 1D Ising model
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, and an other flip sites, perform Metropolis Monte Carlo applying periodic boundary conditions, i.e., cyclic. This function calls the C function 'isPerform1D'.
Usage
isPerform1D(ikBT, x, J, H, nstep, ensembleM, probSel)
Arguments
ikBT |
1/kB*T (Boltzmann factor) |
x |
1D Spin sites on the lattice. |
J |
Interaction strength |
H |
External field |
nstep |
Number of MC steps requested |
ensembleM |
Value of the theoretical magnetization (could be thermodynamic limit value) |
probSel |
Which transition probability to use. 1 for Metropolis 2 for Glauber |
Value
Returns a pair list containing values for omegaM, Fluctuating metric vector for Magnetisation (length of naccept), naccept, number of MC steps accepted and nreject, number of MC steps rejected and times as accepted time steps. Times corresponds to times where flips occur, this is so-called transition times ('metropolis time' or 'single flip time') to judge the timings between two accepted steps.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
output <- isPerform1D(1.0, mySites, 1.0, 0.0, 10, 0.5, 1) # Metropolis
output <- isPerform1D(1.0, mySites, 1.0, 0.0, 10, 0.5, 2) # Glauber
Carry one step Metropolis Monte Carlo on 1D ising model
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively and the usual thermodynamic parameters ikBt, J and H. Perform 1 step metropolis Monte Carlo, applying periodic boundary conditions, i.e., cyclic. This function calls the C function 'isStep1D'. Importance sampling is applied.
Usage
isStep1D(ikBT, x, J, H, probSel)
Arguments
ikBT |
1/kB*T (Boltzmann factor) |
x |
1D Spin sites on the lattice. |
J |
Interaction strength |
H |
External field |
probSel |
Which transition probability to use. 1 for Metropolis 2 for Glauber |
Value
A pair list, flip states (vec) and if step is accepted (accept).
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
# only short-range part
isStep1D(1.0, mySites, 1.0, 0.0, 1) # Metropolis
isStep1D(1.0, mySites, 1.0, 0.0, 2) # Glauber
Nearest-Neighbour energy in periodic boundary conditions in 1D
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return nearest neighbour energy, applying periodic boundary conditions, i.e., cyclic. This function calls the C function 'lattice1DenergyNN'.
Usage
lattice1DenergyNN(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns the nearest neighbour energy.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
# now flip
mySitesNew <- lattice1DenergyNN(mySites)
Nearest-Neighbour energy in periodic boundary conditions in 1D
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return nearest neighbour energy, applying periodic boundary conditions, i.e., cyclic. This function is a pure R implementation.
Usage
lattice1DenergyNN_R(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns the nearest neighbour energy.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D_R(n) # Generate sites
nnEnergy <- lattice1DenergyNN(mySites)
Sum given vector
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return the sum. This function calls the C function 'sumVec'.
Usage
sumVec(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns the sum, corresponding the long-range part.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
sumVecs <- sumVec(mySites)
Sum given vector
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return the sum. This function calls the C function 'sumVec'.
Usage
sumVec_R(x)
Arguments
x |
1D Spin sites on the lattice |
Value
Returns the sum, corresponding the long-range part.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D_R(n) # Generate sites
sumVecs <- sumVec_R(mySites)
Total energy in periodic boundary conditions in 1D
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return total energy, applying periodic boundary conditions, i.e., cyclic. This function calls the C function 'totalEnergy1D'.
Usage
totalEnergy1D(x, J, H)
Arguments
x |
1D Spin sites on the lattice. |
J |
The strength of interaction. |
H |
The value of the external field. |
Value
Returns the total energy.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
# only short-range part
myTotalEnergy <- totalEnergy1D(mySites, 1.0, 0.0)
Total energy in periodic boundary conditions in 1D
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, return total energy, applying periodic boundary conditions, i.e., cyclic. This function is pure R implementation.
Usage
totalEnergy1D_R(x, J, H)
Arguments
x |
1D Spin sites on the lattice. |
J |
The strength of interaction. |
H |
The value of the external field. |
Value
Return the total energy.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D_R(n) # Generate sites
# only short-range part
myTotalEnergy <- totalEnergy1D_R(mySites, 1.0, 0.0)
Compute theoretical transfer matrix
Description
Compute transfer matrix
Usage
transferMatrix(ikBt, J, H)
Arguments
ikBt |
1/kB*T (Boltzmann factor) |
J |
Interaction strength |
H |
External field |
Value
Returns transfer matrix and its eigenvalues in a pair list.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
transferMatrix(1.0, 1.0, 0)
Compute transition probability using Boltzmann distribution.
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, and an other flip sites, return the transition probability, applying periodic boundary conditions, i.e., cyclic. This function calls the C function 'transitionProbability1D'.
Usage
transitionProbability1D(ikBT, x, xflip, J, H, probSel)
Arguments
ikBT |
1/kB*T (Boltzmann factor) |
x |
1D Spin sites on the lattice. |
xflip |
1D Spin sites on the lattice: after a flip. |
J |
Interaction strength |
H |
External field |
probSel |
Which transition probability to use. 1 for Metropolis 2 for Glauber |
Value
Returns transition probability.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D(n) # Generate sites
mySitesNew <- flipConfig1D(mySites)
# only short-range part
transitionProbability1D(1.0, mySites, mySitesNew, 1.0, 0.0, 1) # Metropolis
transitionProbability1D(1.0, mySites, mySitesNew, 1.0, 0.0, 2) # Glauber
Compute transition probability using Boltzmann distribution.
Description
Given a vector of flip sites, 1s or -1s, representing up and down spins respectively, and an other flip sites, return the transition probability, applying periodic boundary conditions, i.e., cyclic. This function is pure R implementation.
Usage
transitionProbability1D_R(ikBT, x, xFlip, J, H)
Arguments
ikBT |
1/kB*T (Boltzmann factor) |
x |
1D Spin sites on the lattice. |
xFlip |
1D Spin sites on the lattice: after a flip. |
J |
Interaction strength |
H |
External field |
Value
Returns transition probability.
Author(s)
Mehmet Suzen <mehmet.suzen@physics.org>
Examples
n <- 10 # 10 spin sites
mySites <- genConfig1D_R(n) # Generate sites
mySitesNew <- flipConfig1D_R(mySites)
# only short-range part
transitionProbability1D_R(1.0, mySites, mySitesNew, 1.0, 0.0)