feram: molecular dynamics simulator for bulk and thin-film ferroelectrics and relaxors

feram logo mark


Contents:

Homepage and DOWNLOAD

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 .

What is feram?

feram is a fast molecular dynamics (MD) simulator for bulk and thin-film ferroelectrics and relaxors.

Pronunciation of "feram": Ef-Ee-RaMu

Features and keywords

In Physics

Technically

References

Install

Requirements

Preferables

Quick compilation

$ 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

Available platforms and compilers

HITACHI SR11000 with xf90 (super1 in IMR)

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).

x86_64 GNU/Linux

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

rupc05

$ 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

IA-64 GNU/Linux (appc in IMR)

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

x86 32-bit GNU/Linux

On x86 32-bit GNU/Linux, feram may be compiled with gfortran and Intel Fortran (ifort), and PGI Fortran (pgf95).

Execution

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

Input files

parameter file

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.

Comment

Lines beginning with '#' are ignored. Blank lines are also ignored.

# This is a comment line.


# Here are two more
# comment lines.

Tags

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
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/.

doc/figures/external-E-field-hysteresis-loop.jpg
Special meanings of n_average and external_E_field, in the case of method = 'hl', a simulation of hysteresis loop. After thermalization, the external electric field is gradually altered from external_E_field to -external_E_field.
GPa

Pressure in GPa unit.

GPa = -5.0
kelvin

Temperature in Kelvin.

kelvin = 100
Q_Nose

Q_Nose for Nose-Poincare thermostat.

Q_Nose = 14.4
bulk_or_film

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'
L

System size, L_x, L_y and L_z. They must be equal or larger than 4.

L = 32 32 4
gap

Gap for the thin film.

gap = 1
a0

Lattice constant for the perovskite ferroelectrics in Angstrom unit.

a0 = 3.99
epi_strain
epi_strain = -0.01
dt

Time step in pico second.

dt = 0.002
n_thermalize, n_average, n_coord_freq

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
external_E_field

Vector of the external electric field in the unit of [V/Angstrom].

external_E_field = 0.00 0.00 -0.01
P_kappa2, P_alpha, P_gamma

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
P_k1, P_k2, P_k3

Coefficients for the 6-th order part

j

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]
B11, B12, B44

Elastic Constants

B11 = 126.
B12 =  44.9
B44 =  50.3  [eV]
B1xx, B1yy, B4yz

Elastic Coupling

B1xx = -211.   [eV/Angstrom^2]
B1yy =  -19.3  [eV/Angstrom^2]
B4yz =   -7.75 [eV/Angstrom^2]
init_dipo_avg, init_dipo_dev

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
Z_star

Effective charge per site.

Z_star     = 9.956
epsilon_inf
epsilon_inf   = 5.24
kappa

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
plot_dispersion

If

plot_dispersion = .true.

data files for plotting dispersion relation will be written. Default is .false..

defect_position, defect_u

Position and u of a defect.

defect_position = 16 16 16
defect_u = 0.0 0.0 0.0

ionic.configuration file

(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.

local.field input file

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.

Output files

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.

Standard output (stdout)

To stdout, feram reports the energies of every iterations. src/plot.gp can plot the energies:

$ feram foo123 > feram.log
$ gnuplot plot.gp

foo123.avg

Averages for each temperature.

foo123.hl

In the case of method = 'hl', a simulation of hysteresis loop, one .hl file will be created instead of a .avg file.

foo123.tttKnnnnnnn.coord

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.

foo123.dipole-dipole-long+short.dat

foo123.dipole-dipole-long.dat

foo123.dipole-dipole-short.dat

foo123.inhomo-K.dat

local.field output file

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.

Examples

Energies vs MD step in cooling simulation

doc/figures/plot.epit-16x16-15-01-5.0GPa-0.01-cooling.jpg
Energies vs MD steps in cooling simulation.

Temperature dependence of strain and susceptibility of bulk BaTiO3

doc/figures/strain-susceptibility.jpg
Temperature dependence of three components of strain and relative dielectric constant of bulk BaTiO3. Three phase transitions are clearly seen. Susceptibilities are calculated from fluctuations of dipoles.

Temperature dependence of hysteresis loops for bulk BaTiO3

doc/figures/bulk-two-box.jpg
Temperature dependence of hysteresis loops for bulk BaTiO3. The phase transition from paraelectric phase to ferroelectric phase is clearly seen.

Hysteresis loops for epitaxially constrained and "free" BaTiO3 film capacitors

doc/figures/epit-vs-free-hysteresis-box.jpg
Calculated hysteresis loops for capacitors with (a) epitaxially constrained films, and (b) "free" films of various thickness l and with dead layer d at 100 K.

Mailing list

Copying

feram

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.

BLAS and LAPACK

Files under the directory libblaslapack are coming from BLAS and LAPACK packages http://www.netlib.org/lapack/ . See libblaslapack/COPYING.

Cited figures

Authors and/or publishers of the papers have their copyrights for the following cited figures.

pseudopotentials

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

Author

Takeshi Nishimatsu (t-nissie{at}imr.tohoku.ac.jp)

Acknowledgements

This project is/was partially supported by:

http://loto.sourceforge.net/feram/ is hosted by SourceForge.net Logo .