Last Modified 26 Mar 2002
The source code for Version 0.80 of sctb is designed to be compiled into a serial version for use on single processor PCs or workstations, or a parallel version for use on any MPI capable platform.
sctb is written in FORTRAN 90. In serial mode the code has been tested on a variety of CPUs, using various operating systems and compilers. It should be possible to run this code on any computer with a valid FORTRAN 90 compiler and the LAPACK library, provided an architecture dependent Makefile is edited to reflect the appropriate compile and link options. In parallel mode the code has been tested on a cluster of Linux machines, and on the IBM SMP.
SCTB has currently been tested on:
The source code for sctb is password protected. See Obtaining the Source Code for more information.
Once you have the downloaded package, you will need to extract the files from the gzipped tar file.
On supported systems, the procedure is as simple as typing
build_scc_nrl_tbthen answer some questions. The most important is the "System Type" which is one of the following possibilities:
This procedure will create several executables in the directory bin_${SYSTEM_TYPE}/
where ${SYSTEM_TYPE}
is the "System Type" above.
These should include the following:
${MODEL}
is either nrl_tb
for the Gamma point only
code or nrl_tb_k_sum
for the version that sums over k-points
in the Brillouin zone.
If you're not at a supported site, you'll need to do much of this
work by hand. You can look at the build_scc_nrl_tb
script,
but this is the general procedure:
tb_force_routine/
and generic_forces/
,
make a file called Makefile.arch.${ARCH}/
, where
${ARCH}
identifies the architecture and compiler used. I
suggest copying an existing Makefile.arch.?
file to start with.
generic_eval/
, make a file called
Makefile.sys.${SYSTEM_TYPE}
where ${SYSTEM_TYPE}
starts with ${ARCH}
, followed by an underscore and a
label identifying the diagonalization routine used.
tb_force_routine/ , run
./build ${ARCH} TB_MODEL=NRL_TB
- In
generic_forces/
run
./build ${ARCH} FORCE_MODEL=tb
./build ${ARCH} FORCE_MODEL=tb_k_sum
- In
generic_eval/
run
./build ${SYSTEM_TYPE} nrl_tb
- Make a directory called
bin_${SYSTEM_TYPE}/
and
copy the executables (names are listed above) from
build.${SYSTEM_TYPE}/
to the binaries directories.