QNANO
Example: Periodic boundary conditions

Periodic boundary conditions

Directory: "examples/graphene/06_periodic:"

In some situations edge effects obfuscate the physical picture or increase the necessary computational box size. Then, it is convenient to use periodic instead of open boundaries.

An example of bilayer graphene with bias between the layers and a parabolic confining potential and periodic boundaries is calculated by running:

$QNANO_DIR/examples/graphene/06_periodic/run_example.sh 

The main change with respect to the caluclation with open boundaries is the diagonalization option "periodic_vec" in:

N=12
iperiodic=$(echo ${N}*3-1 |bc)
jperiodic=$(echo ${N}*3-2 |bc)

$QNANO_DIR/bin/tightbinding_slepc -resources_dir $QNANO_DIR/resources \
-positions pos_bilayer.dat -potential pot_bias.dat \
-eigenvalue_filename "energies_bias.dat" \
-eps_target 0.00001 -eps_nev 40 -eps_max_it 1000000 -eps_tol 1e-12 \
-EV_filename_pattern "EV*_bias.dat"  -nr_print  10  \
-periodic_vec $iperiodic -1 0 -periodic_vec 1 $jperiodic 0

"periodic_vec" determines the vectors of atoms that are mapped on themselves (in units of lattice vectors), i.e., if we had a sample with N unit cells along the first unit vector, the N+1-st atom is identified with the first atom, so "periodic_vec" has to be set to "N 0 0". Here, we caculate the results of a periodic hexagonal flake with N hexagonal rings per side. The vectors "periodic_vec" can be worked out as "3*N-1 -1 0" and "1 3*N-2 0", which we set using the help of bash variables and the linux "bc" tool.