feram's homepage is http://loto.sourceforge.net/feram/ .
You can download a tar ball of feram (feram-X.YY.ZZ.tar.gz) from http://sourceforge.net/project/showfiles.php?group_id=204591&package_id=245013 .
feram is a fast molecular dynamics (MD) simulator for bulk and thin-film ferroelectrics and relaxors.
Pronunciation of "feram": Ef-Ee-RaMu
$ tar zxf feram-X.YY.ZZ.tar.gz $ cd feram-X.YY.ZZ $ mkdir Linux-i686-gfortran-4.2.2 $ cd Linux-i686-gfortran-4.2.2 $ ../configure --help $ ../configure $ cd src $ make $ ls -l feram $ cp -r ../../src/01example-BaTiO3-epit-hysteresis-loop . $ cd 01example-BaTiO3-epit-hysteresis-loop $ ./externalE.sh # test run $ gnuplot hysteresis.gp # plot a hysteresis loop $ gv hysteresis.gp # preview
feram runs on 1 node (16 CPUs) of SR11000 effectively.
% tar zxf feram-X.YY.ZZ.tar.gz % cd feram-X.YY.ZZ % mkdir SR11000-xf90 % cd SR11000-xf90 % env FC=xf90 ../configure --host=SR11000 % make
Because SR11000 and its Fortran compiler cannot treat command arguments, you have to specify input file(s) in FILES file. For example,
3 foo bar baz
1st line: number of input file(s). 2nd- line filename(s).
On x86_64, i.e. AMD64 and Intel 64, feram may be compiled with gfortran, Intel Fortran (ifort), and PGI Fortran (pgf95). For example,
$ FC=gfortran ../configure
If FFTW3 was installed other than in /usr/lib and /usr/include or /usr/local/lib and /usr/local/include, you have to specify the directories with LDFLAGS and CPPFLAGS environment variables.
$ FC=ifort LDFLAGS=-L/home/t-nissie/x86_64-Linux/lib CPPFLAGS=-I/home/t-nissie/x86_64-Linux/include ../configure
$ FC=pgf95 LDFLAGS=-L/home/takeshi/x86_64-Linux/fftw3-pgcc-pgcpp-pgf77/lib CPPFLAGS=-I/home/takeshi/x86_64-Linux/fftw3-pgcc-pgcpp-pgf77/include ../configure $ make $ cd examples/BaTiO3-bulk-16x16x16-local.field-new-format/ $ OMP_NUM_THREADS=6 ../../pgf95/src/feram foo123 > feram.log
On IA-64, feram may be compiled with gfortran or Intel Fortran (ifort). For example:
% tar zxf feram-X.YY.ZZ.tar.gz % cd feram-X.YY.ZZ % mkdir appc-FFTW3/ % cd appc-FFTW3/ % env FC=ifort LDFLAGS=-L/home/t-nissie/ia64-Linux/lib CPPFLAGS=-I/home/t-nissie/ia64-Linux/include ../configure % cd src % make
On x86 32-bit GNU/Linux, feram may be compiled with gfortran and Intel Fortran (ifort), and PGI Fortran (pgf95).
feram can read parameters from the standard input (stdin) as well as from the file(s) given by the argument(s).
$ feram < input_file $ feram foo bar baz
The parameter file for feram is a text file consisting of comment lines and 'tag = value(s)' lines. Filenames for parameter files are arbitrary. How to determine the parameters is described in parameters/parameters.html.
Lines beginning with '#' are ignored. Blank lines are also ignored.
# This is a comment line. # Here are two more # comment lines.
You must put ' = ', space-equal-space, between tag and value(s) as:
tag = 1.0 tag = -2.0 -3.0 -4.0 tag = 5.0 6.0 7.0
Followings are currently available tags alphabetically ordered.
method = 'md'
'md' is for a molecular-dynamics simulation in the canonical ensemble using the Nosé-Poincaré thermostat.
method = 'lf'
'lf' is for a molecular-dynamics simulation in the microcanonical ensemble using the leap-frog method.
method = 'mc'
'mc' is for a Monte Carlo simulation, but it is NOT IMPLEMENTED YET.
method = 'hl'
'hl' is for a simulation of hysteresis loop. In this case, tags of n_average and external_E_field have special meanings. foo.hl file will be created. See the directory of src/11example-BaTiO3-new-hysteresis-loop/.
Pressure in GPa unit.
GPa = -5.0
Temperature in Kelvin.
kelvin = 100
Q_Nose for Nose-Poincare thermostat.
Q_Nose = 14.4
Specifies the structure of the system. 'bulk' for infinitely periodic bulk 'film' for free standing thin film. 'epit' for epitaxially strained thin film.
bulk_or_film = 'epit'
System size, L_x, L_y and L_z. They must be equal or larger than 4.
L = 32 32 4
Gap for the thin film.
gap = 1
Lattice constant for the perovskite ferroelectrics in Angstrom unit.
a0 = 3.99
epi_strain = -0.01
Time step in pico second.
dt = 0.002
The number of time steps of thermalizing, averaging, and frequency of taking snapshots. If n_thermalize+n_average=n_coord_freq, a snapshot is taken at the end of the MD at each temperature.
n_thermalize = 40000 n_average = 10000 n_coord_freq = 50000
Vector of the external electric field in the unit of [V/Angstrom].
external_E_field = 0.00 0.00 -0.01
Coefficients for the 4-th order polynomial.
P_kappa2 = 5.502 [eV/Angstrom^2] # P_4(u) = kappa2*u^2 + alpha*u^4 P_alpha = 110.4 [eV/Angstrom^4] # + gamma*(u_y*u_z+u_z*u_x+u_x*u_y), P_gamma = -163.1 [eV/Angstrom^4] # where u^2 = u_x^2 + u_y^2 + u_z^2
Coefficients for the 6-th order part
Short-range inter-site interaction coefficients
j = -2.648 3.894 0.898 -0.789 0.562 0.358 0.179 j(i) [eV/Angstrom^2]
Elastic Constants
B11 = 126. B12 = 44.9 B44 = 50.3 [eV]
Elastic Coupling
B1xx = -211. [eV/Angstrom^2] B1yy = -19.3 [eV/Angstrom^2] B4yz = -7.75 [eV/Angstrom^2]
Initial dipole settings
init_dipo_avg = 0.00 0.00 0.00 [Angstrom] # Average of initial dipole displacements init_dipo_dev = 0.02 0.02 0.02 [Angstrom] # Deviation of initial dipole displacements
Effective charge per site.
Z_star = 9.956
epsilon_inf = 5.24
This is for debug. You do not have to set this tag. Arbitrary kappa for Ewald summation in src/dipole-dipole-long-range.F.
kappa = 0.15
If
plot_dispersion = .true.
data files for plotting dispersion relation will be written. Default is .false..
Position and u of a defect.
defect_position = 16 16 16 defect_u = 0.0 0.0 0.0
(Not implemented yet.) This file is required for the calculation of the local field.
0.0 0.0 0.0 +3.0 0.5 0.0 0.0 -2.0 0.0 0.5 0.0 -2.0 0.0 0.0 0.5 -2.0 : : position_x position_y position_z effective_charge_of_the_ion : :
Position must be given in the unit of a0.
0 0 0 0.1 -0.1 0.7 1 0 0 0.1 0.1 0.7 2 0 0 0.1 0.2 0.7 : : position_x position_y position_z E_local_x E_local_y E_local_z [V/Angstrom] : : Lx Ly Lz 0.1 0.2 0.7
If feram cannot find both ionic.configuration and local.field, it will set local.field to ZERO.
If you execute the feram like `feram foo123`, filenames of output files are starting from 'foo123', e.g. foo123.avg, foo123.320K0050000.coord, foo123.dipole-dipole-long.dat, etc.
To stdout, feram reports the energies of every iterations. src/plot.gp can plot the energies:
$ feram foo123 > feram.log $ gnuplot plot.gp
Averages for each temperature.
In the case of method = 'hl', a simulation of hysteresis loop, one .hl file will be created instead of a .avg file.
Snapshot of dipoles at ttt Kelvin and nnnnnnn-th iteration. This file can be visualized with slice.rb (Ruby script) and cross-section-q.sh, cross-section-p.sh, and cross-section-dVddi.sh (Bourne Shell scripts). cross-section-p.sh and cross-section-dVddi.sh are symbolic links or copy of cross-section-q.sh.
The calculated local field from the given ionic configuration (ionic.configuration file) is stored in this file. This file will be reloaded in consequent temperature calculations and the other calculations.
Copyright © 2007-2009 by Takeshi Nishimatsu
feram is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. You can copy, modify and redistribute feram, but only under the conditions described in the GNU General Public License (the "GPL"). For more detail, see COPYING.
You can make a DONATION to Takeshi Nishimatsu through Tohoku University http://www.rpip.tohoku.ac.jp/kensui/kifukin.html (in Japanese).
The author is grateful if you would kindly refer the name of this program and cite our articles, [Takeshi Nishimatsu, Umesh V. Waghmare, Yoshiyuki Kawazoe, and David Vanderbilt: Phys. Rev. B 78 (2008) 104104] and [Jaita Paul, Takeshi Nishimatsu, Yoshiyuki Kawazoe, and Umesh V. Waghmare: Phys. Rev. Lett. 99 (2007) 077601] in your papers.
Files under the directory libblaslapack are coming from BLAS and LAPACK packages http://www.netlib.org/lapack/ . See libblaslapack/COPYING.
Authors and/or publishers of the papers have their copyrights for the following cited figures.
Four Teter's "extended norm-conserving" LDA pseudopotential files are downloaded from http://www.abinit.org/Psps/?text=../Psps/LDA_EX/lda . They are distributed under GPL.
56ba.psp.mod 82pb.960808c.mod 22ti.psp.mod 8o.phoney.mod
Takeshi Nishimatsu (t-nissie{at}imr.tohoku.ac.jp)
This project is/was partially supported by:
http://loto.sourceforge.net/feram/ is hosted by .