Merge branch 'develop' into Iximiel/develop

This commit is contained in:
Axel Kohlmeyer
2022-04-27 14:15:10 -04:00
4535 changed files with 343096 additions and 522642 deletions

View File

@ -9,6 +9,11 @@ model a realistic problem.
In many of the examples included here, LAMMPS must first be built as a
library.
Also see the Howto_mdi doc page in the LAMMPS manual for a description
of how LAMMPS can be coupled to other codes in a client/server fashion
using the MDI Library created by the MolSSI consortium. The MDI
package in LAMMPS has support for this style of code coupling.
See these sections of the LAMMPS manual for details:
Build LAMMPS as a library (doc/html/Build_basics.html)
@ -28,15 +33,9 @@ These are the sub-directories included in this directory:
simple simple example of driver code calling LAMMPS as a lib
multiple example of driver code calling multiple instances of LAMMPS
plugin example for loading LAMMPS at runtime from a shared library
lammps_mc client/server coupling of Monte Carlo client
with LAMMPS server for energy evaluation
lammps_nwchem client/server coupling of LAMMPS client with
NWChem quantum DFT as server for quantum forces
lammps_quest MD with quantum forces, coupling to Quest DFT code
lammps_spparks grain-growth Monte Carlo with strain via MD,
coupling to SPPARKS kinetic MC code
lammps_vasp client/server coupling of LAMMPS client with
VASP quantum DFT as server for quantum forces
library collection of useful inter-code communication routines
fortran a simple wrapper on the LAMMPS library API that
can be called from Fortran

View File

@ -1,33 +0,0 @@
# Makefile for MC
SHELL = /bin/sh
SRC = mc.cpp random_park.cpp
OBJ = $(SRC:.cpp=.o)
# change this line for your machine to path for CSlib src dir
CSLIB = /home/sjplimp/lammps/lib/message/cslib/src
# compiler/linker settings
CC = g++
CCFLAGS = -g -O3 -I$(CSLIB)
LINK = g++
LINKFLAGS = -g -O -L$(CSLIB)
# targets
mc: $(OBJ)
# first line if built the CSlib within lib/message with ZMQ support
# second line if built the CSlib without ZMQ support
$(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -lzmq -o mc
# $(LINK) $(LINKFLAGS) $(OBJ) -lcsnompi -o mc
clean:
@rm -f *.o mc
# rules
%.o:%.cpp
$(CC) $(CCFLAGS) -c $<

View File

@ -1,128 +0,0 @@
Sample Monte Carlo (MC) wrapper on LAMMPS via client/server coupling
See the MESSAGE package documentation Build_extras.html#message
and Build_extras.html#message for more details on how client/server
coupling works in LAMMPS.
In this dir, the mc.cpp/h files are a standalone "client" MC code. It
should be run on a single processor, though it could become a parallel
program at some point. LAMMPS is also run as a standalone executable
as a "server" on as many processors as desired using its "server mc"
command; see it's doc page for details.
Messages are exchanged between MC and LAMMPS via a client/server
library (CSlib), which is included in the LAMMPS distribution in
lib/message. As explained below you can choose to exchange data
between the two programs either via files or sockets (ZMQ). If the MC
program became parallel, data could also be exchanged via MPI.
The MC code makes simple MC moves, by displacing a single random atom
by a small random amount. It uses LAMMPS to calculate the energy
change, and to run dynamics between MC moves.
----------------
Build LAMMPS with its MESSAGE package installed:
See the Build extras doc page and its MESSAGE package
section for details.
CMake:
-D PKG_MESSAGE=yes # include the MESSAGE package
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
Traditional make:
% cd lammps/lib/message
% python Install.py -m -z # build CSlib with MPI and ZMQ support
% cd lammps/src
% make yes-message
% make mpi
You can leave off the -z if you do not have ZMQ on your system.
----------------
Build the MC client code
The source files for the MC code are in this dir. It links with the
CSlib library in lib/message/cslib.
You must first build the CSlib in serial mode, e.g.
% cd lammps/lib/message/cslib/src
% make lib # build serial and parallel lib with ZMQ support
% make lib zmq=no # build serial and parallel lib without ZMQ support
Then edit the Makefile in this dir. The CSLIB variable should be the
path to where the LAMMPS lib/message/cslib/src dir is on your system.
If you built the CSlib without ZMQ support you will also need to
comment/uncomment one line. Then you can just type
% make
and you should get an "mc" executable.
----------------
To run in client/server mode:
Both the client (MC) and server (LAMMPS) must use the same messaging
mode, namely file or zmq. This is an argument to the MC code; it can
be selected by setting the "mode" variable when you run LAMMPS. The
default mode = file.
Here we assume LAMMPS was built to run in parallel, and the MESSAGE
package was installed with socket (ZMQ) support. This means either of
the messaging modes can be used and LAMMPS can be run in serial or
parallel. The MC code is always run in serial.
When you run, the server should print out thermodynamic info
for every MD run it performs (between MC moves). The client
will print nothing until the simulation ends, then it will
print stats about the accepted MC moves.
The examples below are commands you should use in two different
terminal windows. The order of the two commands (client or server
launch) does not matter. You can run them both in the same window if
you append a "&" character to the first one to run it in the
background.
--------------
File mode of messaging:
% mpirun -np 1 mc in.mc file tmp.couple
% mpirun -np 1 lmp_mpi -v mode file -in in.mc.server
% mpirun -np 1 mc in.mc file tmp.couple
% mpirun -np 4 lmp_mpi -v mode file -in in.mc.server
ZMQ mode of messaging:
% mpirun -np 1 mc in.mc zmq localhost:5555
% mpirun -np 1 lmp_mpi -v mode zmq -in in.mc.server
% mpirun -np 1 mc in.mc zmq localhost:5555
% mpirun -np 4 lmp_mpi -v mode zmq -in in.mc.server
--------------
The input script for the MC program is in.mc. You can edit it to run
longer simulations.
500 nsteps = total # of steps of MD
100 ndynamics = # of MD steps between MC moves
0.1 delta = displacement size of MC move
1.0 temperature = used in MC Boltzman factor
12345 seed = random number seed
--------------
The problem size that LAMMPS is computing the MC energy for and
running dynamics on is set by the x,y,z variables in the LAMMPS
in.mc.server script. The default size is 500 particles. You can
adjust the size as follows:
lmp_mpi -v x 10 -v y 10 -v z 20 # 8000 particles

View File

@ -1,7 +0,0 @@
# MC params
500 nsteps
100 ndynamics
0.1 delta
1.0 temperature
12345 seed

View File

@ -1,36 +0,0 @@
# 3d Lennard-Jones Monte Carlo server script
variable mode index file
if "${mode} == file" then &
"message server mc file tmp.couple" &
elif "${mode} == zmq" &
"message server mc zmq *:5555" &
variable x index 5
variable y index 5
variable z index 5
units lj
atom_style atomic
atom_modify map yes
lattice fcc 0.8442
region box block 0 $x 0 $y 0 $z
create_box 1 box
create_atoms 1 box
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
velocity all create 1.44 87287 loop geom
fix 1 all nve
thermo 50
server mc

View File

@ -1,254 +0,0 @@
LAMMPS (22 Aug 2018)
# 3d Lennard-Jones Monte Carlo server script
variable mode index file
if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555"
message server mc file tmp.couple
variable x index 5
variable y index 5
variable z index 5
units lj
atom_style atomic
atom_modify map yes
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
region box block 0 $x 0 $y 0 $z
region box block 0 5 0 $y 0 $z
region box block 0 5 0 5 0 $z
region box block 0 5 0 5 0 5
create_box 1 box
Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 500 atoms
Time spent = 0.000649929 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
velocity all create 1.44 87287 loop geom
fix 1 all nve
thermo 50
server mc
run 0
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 6 6 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7733681 0 -4.6176881 -5.0221006
Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms
93.2% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.146e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1956 ave 1956 max 1956 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 19500 ave 19500 max 19500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19500
Ave neighs/atom = 39
Neighbor list builds = 0
Dangerous builds not checked
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms
93.2% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.146e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1956 ave 1956 max 1956 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 19501 ave 19501 max 19501 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19501
Ave neighs/atom = 39.002
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
50 0.70239211 -5.6763152 0 -4.6248342 0.59544428
100 0.7565013 -5.757431 0 -4.6249485 0.21982657
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.7565013 -5.7565768 0 -4.6240944 0.22436405
Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms
157.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.907e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1939 ave 1939 max 1939 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18757 ave 18757 max 18757 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18757
Ave neighs/atom = 37.514
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.7565013 -5.757431 0 -4.6249485 0.21982657
150 0.76110797 -5.7664315 0 -4.6270529 0.16005254
200 0.73505651 -5.7266069 0 -4.6262273 0.34189744
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73505651 -5.7181381 0 -4.6177585 0.37629943
Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms
139.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.146e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1899 ave 1899 max 1899 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18699 ave 18699 max 18699 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18699
Ave neighs/atom = 37.398
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73505651 -5.7266069 0 -4.6262273 0.34189744
250 0.73052476 -5.7206316 0 -4.627036 0.39287516
300 0.76300831 -5.7675007 0 -4.6252773 0.16312925
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76300831 -5.768304 0 -4.6260806 0.15954325
Loop time of 2.14577e-06 on 1 procs for 0 steps with 500 atoms
139.8% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.146e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1903 ave 1903 max 1903 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18715 ave 18715 max 18715 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18715
Ave neighs/atom = 37.43
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76300831 -5.768304 0 -4.6260806 0.15954325
350 0.72993309 -5.7193261 0 -4.6266162 0.3358374
400 0.72469448 -5.713463 0 -4.6285954 0.44859547
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.72469448 -5.7077332 0 -4.6228655 0.47669832
Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms
157.3% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.907e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1899 ave 1899 max 1899 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18683 ave 18683 max 18683 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18683
Ave neighs/atom = 37.366
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.72469448 -5.713463 0 -4.6285954 0.44859547
450 0.75305735 -5.7518283 0 -4.6245015 0.34658587
500 0.73092571 -5.7206337 0 -4.6264379 0.43715809
Total wall time: 0:00:02

View File

@ -1,254 +0,0 @@
LAMMPS (22 Aug 2018)
# 3d Lennard-Jones Monte Carlo server script
variable mode index file
if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555"
message server mc file tmp.couple
variable x index 5
variable y index 5
variable z index 5
units lj
atom_style atomic
atom_modify map yes
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
region box block 0 $x 0 $y 0 $z
region box block 0 5 0 $y 0 $z
region box block 0 5 0 5 0 $z
region box block 0 5 0 5 0 5
create_box 1 box
Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 500 atoms
Time spent = 0.000592947 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
velocity all create 1.44 87287 loop geom
fix 1 all nve
thermo 50
server mc
run 0
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 6 6 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7733681 0 -4.6176881 -5.0221006
Loop time of 3.8147e-06 on 4 procs for 0 steps with 500 atoms
59.0% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.815e-06 | | |100.00
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 1099 ave 1099 max 1099 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 4875 ave 4875 max 4875 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19500
Ave neighs/atom = 39
Neighbor list builds = 0
Dangerous builds not checked
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms
106.9% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.04e-06 | | |100.00
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 1099 ave 1099 max 1099 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 4875.25 ave 4885 max 4866 min
Histogram: 1 0 0 0 2 0 0 0 0 1
Total # of neighbors = 19501
Ave neighs/atom = 39.002
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
50 0.70210225 -5.6759068 0 -4.6248598 0.59609192
100 0.75891559 -5.7611234 0 -4.6250267 0.20841608
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.75891559 -5.7609392 0 -4.6248426 0.20981291
Loop time of 3.75509e-06 on 4 procs for 0 steps with 500 atoms
113.2% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.755e-06 | | |100.00
Nlocal: 125 ave 126 max 124 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 1085.25 ave 1089 max 1079 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 4690.25 ave 4996 max 4401 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Total # of neighbors = 18761
Ave neighs/atom = 37.522
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.75891559 -5.7609392 0 -4.6248426 0.20981291
150 0.75437991 -5.7558622 0 -4.6265555 0.20681722
200 0.73111257 -5.7193748 0 -4.6248993 0.35230715
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73111257 -5.7143906 0 -4.6199151 0.37126023
Loop time of 2.563e-06 on 4 procs for 0 steps with 500 atoms
117.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.563e-06 | | |100.00
Nlocal: 125 ave 126 max 123 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 1068.5 ave 1076 max 1063 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Neighs: 4674.75 ave 4938 max 4419 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Total # of neighbors = 18699
Ave neighs/atom = 37.398
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73111257 -5.7193748 0 -4.6248993 0.35230715
250 0.73873144 -5.7312505 0 -4.6253696 0.33061033
300 0.76392796 -5.7719207 0 -4.6283206 0.18197874
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76392796 -5.7725589 0 -4.6289588 0.17994628
Loop time of 3.99351e-06 on 4 procs for 0 steps with 500 atoms
93.9% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.994e-06 | | |100.00
Nlocal: 125 ave 128 max 121 min
Histogram: 1 0 0 0 0 1 0 1 0 1
Nghost: 1069 ave 1080 max 1055 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 4672 ave 4803 max 4600 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Total # of neighbors = 18688
Ave neighs/atom = 37.376
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76392796 -5.7725589 0 -4.6289588 0.17994628
350 0.71953041 -5.7041632 0 -4.6270261 0.44866153
400 0.7319047 -5.7216051 0 -4.6259438 0.46321355
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.7319047 -5.7158168 0 -4.6201554 0.49192039
Loop time of 3.57628e-06 on 4 procs for 0 steps with 500 atoms
111.8% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.576e-06 | | |100.00
Nlocal: 125 ave 132 max 118 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 1057.5 ave 1068 max 1049 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Neighs: 4685.75 ave 5045 max 4229 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Total # of neighbors = 18743
Ave neighs/atom = 37.486
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.7319047 -5.7216051 0 -4.6259438 0.46321355
450 0.74503154 -5.7405318 0 -4.6252196 0.33211879
500 0.70570501 -5.6824439 0 -4.6260035 0.62020788
Total wall time: 0:00:02

View File

@ -1,254 +0,0 @@
LAMMPS (22 Aug 2018)
# 3d Lennard-Jones Monte Carlo server script
variable mode index file
if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555"
message server mc zmq *:5555
variable x index 5
variable y index 5
variable z index 5
units lj
atom_style atomic
atom_modify map yes
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
region box block 0 $x 0 $y 0 $z
region box block 0 5 0 $y 0 $z
region box block 0 5 0 5 0 $z
region box block 0 5 0 5 0 5
create_box 1 box
Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 500 atoms
Time spent = 0.000741005 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
velocity all create 1.44 87287 loop geom
fix 1 all nve
thermo 50
server mc
run 0
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 6 6 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7733681 0 -4.6176881 -5.0221006
Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms
52.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.907e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1956 ave 1956 max 1956 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 19500 ave 19500 max 19500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19500
Ave neighs/atom = 39
Neighbor list builds = 0
Dangerous builds not checked
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
Loop time of 1.90735e-06 on 1 procs for 0 steps with 500 atoms
52.4% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.907e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1956 ave 1956 max 1956 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 19501 ave 19501 max 19501 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19501
Ave neighs/atom = 39.002
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
50 0.70239211 -5.6763152 0 -4.6248342 0.59544428
100 0.7565013 -5.757431 0 -4.6249485 0.21982657
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.7565013 -5.7565768 0 -4.6240944 0.22436405
Loop time of 1.19209e-06 on 1 procs for 0 steps with 500 atoms
83.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.192e-06 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1939 ave 1939 max 1939 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18757 ave 18757 max 18757 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18757
Ave neighs/atom = 37.514
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.7565013 -5.757431 0 -4.6249485 0.21982657
150 0.76110797 -5.7664315 0 -4.6270529 0.16005254
200 0.73505651 -5.7266069 0 -4.6262273 0.34189744
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73505651 -5.7181381 0 -4.6177585 0.37629943
Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms
209.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 9.537e-07 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1899 ave 1899 max 1899 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18699 ave 18699 max 18699 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18699
Ave neighs/atom = 37.398
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73505651 -5.7266069 0 -4.6262273 0.34189744
250 0.73052476 -5.7206316 0 -4.627036 0.39287516
300 0.76300831 -5.7675007 0 -4.6252773 0.16312925
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76300831 -5.768304 0 -4.6260806 0.15954325
Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms
104.9% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 9.537e-07 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1903 ave 1903 max 1903 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18715 ave 18715 max 18715 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18715
Ave neighs/atom = 37.43
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76300831 -5.768304 0 -4.6260806 0.15954325
350 0.72993309 -5.7193261 0 -4.6266162 0.3358374
400 0.72469448 -5.713463 0 -4.6285954 0.44859547
run 0
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.72469448 -5.7077332 0 -4.6228655 0.47669832
Loop time of 9.53674e-07 on 1 procs for 0 steps with 500 atoms
209.7% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 9.537e-07 | | |100.00
Nlocal: 500 ave 500 max 500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 1899 ave 1899 max 1899 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 18683 ave 18683 max 18683 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 18683
Ave neighs/atom = 37.366
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.658 | 2.658 | 2.658 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.72469448 -5.713463 0 -4.6285954 0.44859547
450 0.75305735 -5.7518283 0 -4.6245015 0.34658587
500 0.73092571 -5.7206337 0 -4.6264379 0.43715809
Total wall time: 0:00:00

View File

@ -1,254 +0,0 @@
LAMMPS (22 Aug 2018)
# 3d Lennard-Jones Monte Carlo server script
variable mode index file
if "${mode} == file" then "message server mc file tmp.couple" elif "${mode} == zmq" "message server mc zmq *:5555"
message server mc zmq *:5555
variable x index 5
variable y index 5
variable z index 5
units lj
atom_style atomic
atom_modify map yes
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
region box block 0 $x 0 $y 0 $z
region box block 0 5 0 $y 0 $z
region box block 0 5 0 5 0 $z
region box block 0 5 0 5 0 5
create_box 1 box
Created orthogonal box = (0 0 0) to (8.39798 8.39798 8.39798)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 500 atoms
Time spent = 0.000576019 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify delay 0 every 20 check no
velocity all create 1.44 87287 loop geom
fix 1 all nve
thermo 50
server mc
run 0
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 6 6 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7733681 0 -4.6176881 -5.0221006
Loop time of 4.76837e-06 on 4 procs for 0 steps with 500 atoms
89.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 4.768e-06 | | |100.00
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 1099 ave 1099 max 1099 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 4875 ave 4875 max 4875 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 19500
Ave neighs/atom = 39
Neighbor list builds = 0
Dangerous builds not checked
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
Loop time of 3.45707e-06 on 4 procs for 0 steps with 500 atoms
94.0% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.457e-06 | | |100.00
Nlocal: 125 ave 125 max 125 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 1099 ave 1099 max 1099 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 4875.25 ave 4885 max 4866 min
Histogram: 1 0 0 0 2 0 0 0 0 1
Total # of neighbors = 19501
Ave neighs/atom = 39.002
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7723127 0 -4.6166327 -5.015531
50 0.70210225 -5.6759068 0 -4.6248598 0.59609192
100 0.75891559 -5.7611234 0 -4.6250267 0.20841608
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.75891559 -5.7609392 0 -4.6248426 0.20981291
Loop time of 3.03984e-06 on 4 procs for 0 steps with 500 atoms
115.1% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.04e-06 | | |100.00
Nlocal: 125 ave 126 max 124 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 1085.25 ave 1089 max 1079 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 4690.25 ave 4996 max 4401 min
Histogram: 1 0 0 1 0 1 0 0 0 1
Total # of neighbors = 18761
Ave neighs/atom = 37.522
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
100 0.75891559 -5.7609392 0 -4.6248426 0.20981291
150 0.75437991 -5.7558622 0 -4.6265555 0.20681722
200 0.73111257 -5.7193748 0 -4.6248993 0.35230715
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73111257 -5.7143906 0 -4.6199151 0.37126023
Loop time of 2.38419e-06 on 4 procs for 0 steps with 500 atoms
125.8% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.384e-06 | | |100.00
Nlocal: 125 ave 126 max 123 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 1068.5 ave 1076 max 1063 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Neighs: 4674.75 ave 4938 max 4419 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Total # of neighbors = 18699
Ave neighs/atom = 37.398
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
200 0.73111257 -5.7193748 0 -4.6248993 0.35230715
250 0.73873144 -5.7312505 0 -4.6253696 0.33061033
300 0.76392796 -5.7719207 0 -4.6283206 0.18197874
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76392796 -5.7725589 0 -4.6289588 0.17994628
Loop time of 2.44379e-06 on 4 procs for 0 steps with 500 atoms
112.5% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.444e-06 | | |100.00
Nlocal: 125 ave 128 max 121 min
Histogram: 1 0 0 0 0 1 0 1 0 1
Nghost: 1069 ave 1080 max 1055 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 4672 ave 4803 max 4600 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Total # of neighbors = 18688
Ave neighs/atom = 37.376
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
300 0.76392796 -5.7725589 0 -4.6289588 0.17994628
350 0.71953041 -5.7041632 0 -4.6270261 0.44866153
400 0.7319047 -5.7216051 0 -4.6259438 0.46321355
run 0
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.7319047 -5.7158168 0 -4.6201554 0.49192039
Loop time of 2.14577e-06 on 4 procs for 0 steps with 500 atoms
139.8% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.146e-06 | | |100.00
Nlocal: 125 ave 132 max 118 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Nghost: 1057.5 ave 1068 max 1049 min
Histogram: 1 0 0 1 1 0 0 0 0 1
Neighs: 4685.75 ave 5045 max 4229 min
Histogram: 1 0 0 1 0 0 0 0 0 2
Total # of neighbors = 18743
Ave neighs/atom = 37.486
Neighbor list builds = 0
Dangerous builds not checked
Per MPI rank memory allocation (min/avg/max) = 2.619 | 2.619 | 2.619 Mbytes
Step Temp E_pair E_mol TotEng Press
400 0.7319047 -5.7216051 0 -4.6259438 0.46321355
450 0.74503154 -5.7405318 0 -4.6252196 0.33211879
500 0.70570501 -5.6824439 0 -4.6260035 0.62020788
Total wall time: 0:00:00

View File

@ -1,263 +0,0 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
------------------------------------------------------------------------- */
// MC code used with LAMMPS in client/server mode
// MC is the client, LAMMPS is the server
// Syntax: mc infile mode modearg
// mode = file, zmq
// modearg = filename for file, localhost:5555 for zmq
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "mc.h"
#include "random_park.h"
#include "cslib.h"
using namespace CSLIB_NS;
void error(const char *);
CSlib *cs_create(char *, char *);
#define MAXLINE 256
/* ---------------------------------------------------------------------- */
// main program
int main(int narg, char **arg)
{
if (narg != 4) {
error("Syntax: mc infile mode modearg");
exit(1);
}
// initialize CSlib
CSlib *cs = cs_create(arg[2],arg[3]);
// create MC class and perform run
MC *mc = new MC(arg[1],cs);
mc->run();
// final MC stats
int naccept = mc->naccept;
int nattempt = mc->nattempt;
printf("------ MC stats ------\n");
printf("MC attempts = %d\n",nattempt);
printf("MC accepts = %d\n",naccept);
printf("Acceptance ratio = %g\n",1.0*naccept/nattempt);
// clean up
delete cs;
delete mc;
}
/* ---------------------------------------------------------------------- */
void error(const char *str)
{
printf("ERROR: %s\n",str);
exit(1);
}
/* ---------------------------------------------------------------------- */
CSlib *cs_create(char *mode, char *arg)
{
CSlib *cs = new CSlib(0,mode,arg,NULL);
// initial handshake to agree on protocol
cs->send(0,1);
cs->pack_string(1,(char *) "mc");
int msgID,nfield;
int *fieldID,*fieldtype,*fieldlen;
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
return cs;
}
// ----------------------------------------------------------------------
// MC class
// ----------------------------------------------------------------------
MC::MC(char *mcfile, void *cs_caller)
//MC::MC(char *mcfile, CSlib *cs_caller)
{
cs_void = cs_caller;
// setup MC params
options(mcfile);
// random # generator
random = new RanPark(seed);
}
/* ---------------------------------------------------------------------- */
MC::~MC()
{
free(x);
delete random;
}
/* ---------------------------------------------------------------------- */
void MC::run()
{
int iatom,accept,msgID,nfield;
double pe_initial,pe_final,edelta;
double dx,dy,dz;
double xold[3],xnew[3];
int *fieldID,*fieldtype,*fieldlen;
enum{NATOMS=1,EINIT,DISPLACE,ACCEPT,RUN};
CSlib *cs = (CSlib *) cs_void;
// one-time request for atom count from MD
// allocate 1d coord buffer
cs->send(NATOMS,0);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
natoms = cs->unpack_int(1);
x = (double *) malloc(3*natoms*sizeof(double));
// loop over MC moves
naccept = nattempt = 0;
for (int iloop = 0; iloop < nloop; iloop++) {
// request current energy from MD
// recv energy, coords from MD
cs->send(EINIT,0);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
pe_initial = cs->unpack_double(1);
double *x = (double *) cs->unpack(2);
// perform simple MC event
// displace a single atom by random amount
iatom = (int) natoms*random->uniform();
xold[0] = x[3*iatom+0];
xold[1] = x[3*iatom+1];
xold[2] = x[3*iatom+2];
dx = 2.0*delta*random->uniform() - delta;
dy = 2.0*delta*random->uniform() - delta;
dz = 2.0*delta*random->uniform() - delta;
xnew[0] = xold[0] + dx;
xnew[1] = xold[1] + dx;
xnew[2] = xold[2] + dx;
// send atom ID and its new coords to MD
// recv new energy
cs->send(DISPLACE,2);
cs->pack_int(1,iatom+1);
cs->pack(2,4,3,xnew);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
pe_final = cs->unpack_double(1);
// decide whether to accept/reject MC event
if (pe_final <= pe_initial) accept = 1;
else if (temperature == 0.0) accept = 0;
else if (random->uniform() >
exp(natoms*(pe_initial-pe_final)/temperature)) accept = 0;
else accept = 1;
nattempt++;
if (accept) naccept++;
// send accept (1) or reject (0) flag to MD
cs->send(ACCEPT,1);
cs->pack_int(1,accept);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
// send dynamics timesteps
cs->send(RUN,1);
cs->pack_int(1,ndynamics);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
}
// send exit message to MD
cs->send(-1,0);
msgID = cs->recv(nfield,fieldID,fieldtype,fieldlen);
}
/* ---------------------------------------------------------------------- */
void MC::options(char *filename)
{
// default params
nsteps = 0;
ndynamics = 100;
delta = 0.1;
temperature = 1.0;
seed = 12345;
// read and parse file
FILE *fp = fopen(filename,"r");
if (fp == NULL) error("Could not open MC file");
char line[MAXLINE];
char *keyword,*value;
char *eof = fgets(line,MAXLINE,fp);
while (eof) {
if (line[0] == '#') { // comment line
eof = fgets(line,MAXLINE,fp);
continue;
}
value = strtok(line," \t\n\r\f");
if (value == NULL) { // blank line
eof = fgets(line,MAXLINE,fp);
continue;
}
keyword = strtok(NULL," \t\n\r\f");
if (keyword == NULL) error("Missing keyword in MC file");
if (strcmp(keyword,"nsteps") == 0) nsteps = atoi(value);
else if (strcmp(keyword,"ndynamics") == 0) ndynamics = atoi(value);
else if (strcmp(keyword,"delta") == 0) delta = atof(value);
else if (strcmp(keyword,"temperature") == 0) temperature = atof(value);
else if (strcmp(keyword,"seed") == 0) seed = atoi(value);
else error("Unknown param in MC file");
eof = fgets(line,MAXLINE,fp);
}
// derived params
nloop = nsteps/ndynamics;
}

View File

@ -1,40 +0,0 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/ Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
------------------------------------------------------------------------- */
#ifndef MC_H
#define MC_H
/* ---------------------------------------------------------------------- */
class MC {
public:
int naccept; // # of accepted MC events
int nattempt; // # of attempted MC events
MC(char *, void *);
~MC();
void run();
private:
int nsteps; // total # of MD steps
int ndynamics; // steps in one short dynamics run
int nloop; // nsteps/ndynamics
int natoms; // # of MD atoms
double delta; // MC displacement distance
double temperature; // MC temperature for Boltzmann criterion
double *x; // atom coords as 3N 1d vector
double energy; // global potential energy
int seed; // RNG seed
class RanPark *random;
void *cs_void; // messaging library
void options(char *);
};
#endif

View File

@ -1,72 +0,0 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
// Park/Miller RNG
#include <math.h>
#include "random_park.h"
//#include "error.h"
#define IA 16807
#define IM 2147483647
#define AM (1.0/IM)
#define IQ 127773
#define IR 2836
/* ---------------------------------------------------------------------- */
RanPark::RanPark(int seed_init)
{
//if (seed_init <= 0)
// error->one(FLERR,"Invalid seed for Park random # generator");
seed = seed_init;
save = 0;
}
/* ----------------------------------------------------------------------
uniform RN
------------------------------------------------------------------------- */
double RanPark::uniform()
{
int k = seed/IQ;
seed = IA*(seed-k*IQ) - IR*k;
if (seed < 0) seed += IM;
double ans = AM*seed;
return ans;
}
/* ----------------------------------------------------------------------
gaussian RN
------------------------------------------------------------------------- */
double RanPark::gaussian()
{
double first,v1,v2,rsq,fac;
if (!save) {
do {
v1 = 2.0*uniform()-1.0;
v2 = 2.0*uniform()-1.0;
rsq = v1*v1 + v2*v2;
} while ((rsq >= 1.0) || (rsq == 0.0));
fac = sqrt(-2.0*log(rsq)/rsq);
second = v1*fac;
first = v2*fac;
save = 1;
} else {
first = second;
save = 0;
}
return first;
}

View File

@ -1,28 +0,0 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/ Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef RANPARK_H
#define RANPARK_H
class RanPark {
public:
RanPark(int);
double uniform();
double gaussian();
private:
int seed,save;
double second;
};
#endif

View File

@ -1,197 +0,0 @@
Sample LAMMPS MD wrapper on NWChem via client/server coupling
See the MESSAGE package documentation Build_extras.html#message
and Build_extras.html#message for more details on how client/server
coupling works in LAMMPS.
In this dir, the nwchem_wrap.py is a wrapper on the NWChem electronic
structure code so it can work as a "server" code which LAMMPS drives
as a "client" code to perform ab initio MD. LAMMPS performs the MD
timestepping, sends NWChem a current set of coordinates each timestep,
NWChem computes forces and energy (and virial) and returns that info
to LAMMPS.
Messages are exchanged between NWChem and LAMMPS via a client/server
library (CSlib), which is included in the LAMMPS distribution in
lib/message. As explained below you can choose to exchange data
between the two programs either via files or sockets (ZMQ). If the
nwchem_wrap.py program became parallel, or the CSlib library calls were
integrated into NWChem directly, then data could also be exchanged via
MPI.
There are 2 examples provided in the planeware and ao_basis
sub-directories. See details below.
----------------
Build LAMMPS with its MESSAGE package installed:
See the Build extras doc page and its MESSAGE package
section for details.
CMake:
-D PKG_MESSAGE=yes # include the MESSAGE package
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
Traditional make:
cd lammps/lib/message
python Install.py -m -z # build CSlib with MPI and ZMQ support
cd lammps/src
make yes-message
make mpi
You can leave off the -z if you do not have ZMQ on your system.
----------------
Build the CSlib in a form usable by the nwchem_wrapper.py script:
% cd lammps/lib/message/cslib/src
% make shlib # build serial and parallel shared lib with ZMQ support
% make shlib zmq=no # build serial and parallel shared lib w/out ZMQ support
This will make a shared library versions of the CSlib, which Python
requires. Python must be able to find both the cslib.py script and
the libcsnompi.so library in your lammps/lib/message/cslib/src
directory. If it is not able to do this, you will get an error when
you run nwchem_wrapper.py.
You can do this by augmenting two environment variables, either from
the command line, or in your shell start-up script. Here is the
sample syntax for the csh or tcsh shells:
setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/lib/message/cslib/src
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/lib/message/cslib/src
----------------
Prepare to use NWChem and the nwchem_wrap.py script
You can run the nwchem_wrap.py script as-is to test that the coupling
between it and LAMMPS is functional. This will use the included
nwchem_lammps.out files output by a previous NWChem run.
But note that the as-is version of nwchem_wrap.py will not attempt to
run NWChem.
To do this, you must edit the 1st nwchemcmd line at the top of
nwchem_wrapper.py to be the launch command needed to run NWChem on
your system. It can be a command to run NWChem in serial or in
parallel, e.g. an mpirun command. Then comment out the 2nd nwchemcmd
line immediately following it.
Ensure you have the necessary NWChem input file in this directory,
suitable for the NWChem calculation you want to perform.
Example input files are provided for both atom-centered AO basis sets
and plane-wave basis sets. Note that the NWChem template file should
be matched to the LAMMPS input script (# of atoms and atom types, box
size, etc).
Once you run NWChem yourself, the nwchem_lammps.out file will be
overwritten.
The syntax of the wrapper is:
nwchem_wrap.py file/zmq ao/pw input_template
* file/zmg = messaging mode, must match LAMMPS messaging mode
* ao/pw = basis set mode, selects between atom-centered and plane-wave
the input_template file must correspond to the appropriate basis set mode:
the "ao" mode supports the scf and dft modules in NWChem,
the "pw" mode supports the nwpw module.
* input_template = NWChem input file used as template, must include a
"geometry" block with the atoms in the simulation, dummy
xyz coordinates should be included (but are not used).
Atom ordering must match LAMMPS input.
During a simulation, the molecular orbitals from the previous timestep
will be used as the initial guess for the next NWChem calculation. If
a file named "nwchem_lammps.movecs" is in the directory the wrapper is
called from, these orbitals will be used as the initial guess orbitals
in the first step of the simulation.
----------------
Example directories
(1) planewave
Demonstrates coupling of the nwpw module in NWChem with LAMMPS. Only fully
periodic boundary conditions and orthogonal simulation boxes are currently
supported by the wrapper. The included files provide an example run using a
2 atom unit cell of tungsten.
Files:
* data.W LAMMPS input with geometry information
* in.client.W LAMMPS simulation input
* log.client.output LAMMPS simulation output
* w.nw NWChem template input file
* nwchem_lammps.out NWChem output
(2) ao_basis
Demonstrates coupling of the scf (or dft) modules in NWChem with
LAMMPS. Only fully aperiodic boundary conditions are currently
supported by the wrapper. The included files provide an example run
using a single water molecule.
Files:
* data.h2o LAMMPS input with geometry information
* in.client.h2o LAMMPS simulation input
* log.client.output LAMMPS simulation output
* h2o.nw NWChem template input file
* nwchem_lammps.out NWChem output
As noted above, you can run the nwchem_wrap.py script as-is to test that
the coupling between it and LAMMPS is functional. This will use the included
nwchem_lammps.out files.
----------------
To run in client/server mode:
NOTE: The nwchem_wrap.py script must be run with Python version 2, not
3. This is because it used the CSlib python wrapper, which only
supports version 2. We plan to upgrade CSlib to support Python 3.
Both the client (LAMMPS) and server (nwchem_wrap.py) must use the same
messaging mode, namely file or zmq. This is an argument to the
nwchem_wrap.py code; it can be selected by setting the "mode" variable
when you run LAMMPS. The default mode = file.
Here we assume LAMMPS was built to run in parallel, and the MESSAGE
package was installed with socket (ZMQ) support. This means either of
the messaging modes can be used and LAMMPS can be run in serial or
parallel. The nwchem_wrap.py code is always run in serial, but it
launches NWChem from Python via an mpirun command which can run NWChem
itself in parallel.
When you run, the server should print out thermodynamic info every
timestep which corresponds to the forces and virial computed by NWChem.
NWChem will also generate output files each timestep. Output files from
previous timesteps are archived in a "nwchem_logs" directory.
The examples below are commands you should use in two different
terminal windows. The order of the two commands (client or server
launch) does not matter. You can run them both in the same window if
you append a "&" character to the first one to run it in the
background.
--------------
File mode of messaging:
% mpirun -np 1 lmp_mpi -v mode file -in in.client.W
% python nwchem_wrap.py file pw w.nw
% mpirun -np 2 lmp_mpi -v mode file -in in.client.h2o
% python nwchem_wrap.py file ao h2o.nw
ZMQ mode of messaging:
% mpirun -np 1 lmp_mpi -v mode zmq -in in.client.W
% python nwchem_wrap.py zmq pw w.nw
% mpirun -np 2 lmp_mpi -v mode zmq -in in.client.h2o
% python nwchem_wrap.py zmq ao h2o.nw

View File

@ -1,20 +0,0 @@
LAMMPS H2O data file
3 atoms
2 atom types
-10.0 10.0 xlo xhi
-10.0 10.0 ylo yhi
-10.0 10.0 zlo zhi
Masses
1 15.994915008544922
2 1.0078250169754028
Atoms
1 1 0.0 0.0 0.0
2 2 0.0 0.756723 -0.585799
3 2 0.0 -0.756723 -0.585799

View File

@ -1,25 +0,0 @@
echo
memory global 40 mb stack 23 mb heap 5 mb
geometry units angstrom noautosym
O 0.0 0.0 0.0
H 1.0 0.5 0.0
H -1.0 0.5 0.0
end
basis
O library 6-31g*
H library 6-31g*
end
scf
maxiter 100
end
#dft
# xc b3lyp
#end
task scf gradient
#task dft gradient

View File

@ -1,27 +0,0 @@
# H2O with NWChem
variable mode index file
if "${mode} == file" then &
"message client md file tmp.couple" &
elif "${mode} == zmq" &
"message client md zmq localhost:5555" &
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
boundary m m m
read_data data.h2o
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3

View File

@ -1,30 +0,0 @@
# H2O with NWChem
variable mode index file
if "${mode} == file" then &
"message client md file tmp.couple" &
elif "${mode} == zmq" &
"message client md zmq localhost:5555" &
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
boundary m m m
read_data data.h2o
group one id 2
displace_atoms one move 0.1 0.2 0.3
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
minimize 1.0e-6 1.0e-6 10 50

View File

@ -1,66 +0,0 @@
LAMMPS (19 Sep 2019)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:93)
using 1 OpenMP thread(s) per MPI task
# H2O with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
boundary m m m
read_data data.h2o
orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
reading atoms ...
3 atoms
read_data CPU = 0.000627125 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:166)
Per MPI rank memory allocation (min/avg/max) = 0.0276 | 0.0276 | 0.0276 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 300 0 0 0.077556087 10.354878 8000
1 300 0 0 0.077556087 10.354878 8000
2 300 0 0 0.077556087 10.354878 8000
3 300 0 0 0.077556087 10.354878 8000
Loop time of 0.30198 on 1 procs for 3 steps with 3 atoms
Performance: 0.858 ns/day, 27.961 hours/ns, 9.934 timesteps/s
0.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 2.5979e-06 | 2.5979e-06 | 2.5979e-06 | 0.0 | 0.00
Output | 0.00012053 | 0.00012053 | 0.00012053 | 0.0 | 0.04
Modify | 0.30185 | 0.30185 | 0.30185 | 0.0 | 99.96
Other | | 8.211e-06 | | | 0.00
Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 0
Dangerous builds not checked
Total wall time: 0:00:07

View File

@ -1,66 +0,0 @@
LAMMPS (19 Sep 2019)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:93)
using 1 OpenMP thread(s) per MPI task
# H2O with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
boundary m m m
read_data data.h2o
orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
reading atoms ...
3 atoms
read_data CPU = 0.000608759 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:166)
Per MPI rank memory allocation (min/avg/max) = 0.0276 | 0.0276 | 0.0276 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 300 0 0 -2068.2746 10.354878 8000
1 200.33191 0 0 -2068.2704 6.9147085 8000
2 152.36218 0 0 -2068.269 5.2589726 8000
3 227.40679 0 0 -2068.2722 7.8492321 8000
Loop time of 1.90319 on 1 procs for 3 steps with 3 atoms
Performance: 0.136 ns/day, 176.221 hours/ns, 1.576 timesteps/s
0.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 3.9274e-06 | 3.9274e-06 | 3.9274e-06 | 0.0 | 0.00
Output | 0.00011798 | 0.00011798 | 0.00011798 | 0.0 | 0.01
Modify | 1.9031 | 1.9031 | 1.9031 | 0.0 | 99.99
Other | | 1.054e-05 | | | 0.00
Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 0
Dangerous builds not checked
Total wall time: 0:00:07

View File

@ -1,82 +0,0 @@
LAMMPS (19 Sep 2019)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:93)
using 1 OpenMP thread(s) per MPI task
# H2O with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
boundary m m m
read_data data.h2o
orthogonal box = (-10 -10 -10) to (10 10 10)
1 by 1 by 1 MPI processor grid
reading atoms ...
3 atoms
read_data CPU = 0.000615383 secs
group one id 2
1 atoms in group one
displace_atoms one move 0.1 0.2 0.3
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
minimize 1.0e-6 1.0e-6 10 50
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (src/min.cpp:174)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:166)
Per MPI rank memory allocation (min/avg/max) = 0.0279 | 0.0279 | 0.0279 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
0 300 0 0 -2067.8909 10.354878 8000
1 300 0 0 -2068.0707 10.354878 8000
2 300 0 0 -2068.252 10.354878 8000
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:166)
3 300 0 0 -2068.2797 10.354878 8000
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (src/comm_brick.cpp:166)
4 300 0 0 -2068.2799 10.354878 8000
Loop time of 5.71024 on 1 procs for 4 steps with 3 atoms
0.1% CPU use with 1 MPI tasks x 1 OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
-2067.96847053 -2068.35730416 -2068.35745184
Force two-norm initial, final = 4.54685 0.124714
Force max component initial, final = 3.48924 0.0859263
Final line search alpha, max atom move = 1 0.0859263
Iterations, force evaluations = 4 8
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 6.2305e-07 | 6.2305e-07 | 6.2305e-07 | 0.0 | 0.00
Comm | 1.1522e-05 | 1.1522e-05 | 1.1522e-05 | 0.0 | 0.00
Output | 8.4217e-05 | 8.4217e-05 | 8.4217e-05 | 0.0 | 0.00
Modify | 5.7099 | 5.7099 | 5.7099 | 0.0 | 99.99
Other | | 0.0002355 | | | 0.00
Nlocal: 3 ave 3 max 3 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 2
Dangerous builds not checked
Total wall time: 0:00:10

View File

@ -1,626 +0,0 @@
argument 1 = nwchem_lammps.nw
============================== echo of input deck ==============================
echo
memory global 40 mb stack 23 mb heap 5 mb
geometry units angstrom noautosym nocenter
O 0.00197082 0.0012463 -0.00298048
H -0.0432066 0.769363 -0.596119
H 0.0119282 -0.789143 -0.528177
end
scf
vectors input nwchem_lammps.movecs
end
dft
vectors input nwchem_lammps.movecs
end
basis
O library 6-31g*
H library 6-31g*
end
scf
maxiter 100
end
#dft
# xc b3lyp
#end
task scf gradient
#task dft gradient
================================================================================
Northwest Computational Chemistry Package (NWChem) 6.8
------------------------------------------------------
Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352
Copyright (c) 1994-2018
Pacific Northwest National Laboratory
Battelle Memorial Institute
NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file
ACKNOWLEDGMENT
--------------
This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.
Job information
---------------
hostname = almondjoy
program = /home/jboschen/nwchem-6.8.1-release/bin/LINUX64/nwchem
date = Fri Jan 31 00:31:00 2020
compiled = Tue_Oct_01_13:20:43_2019
source = /home/jboschen/nwchem-6.8.1-release
nwchem branch = Development
nwchem revision = N/A
ga revision = 5.6.5
use scalapack = F
input = nwchem_lammps.nw
prefix = nwchem_lammps.
data base = ./nwchem_lammps.db
status = restart
nproc = 1
time left = -1s
Memory information
------------------
heap = 655358 doubles = 5.0 Mbytes
stack = 3014651 doubles = 23.0 Mbytes
global = 5242880 doubles = 40.0 Mbytes (distinct from heap & stack)
total = 8912889 doubles = 68.0 Mbytes
verify = yes
hardfail = no
Directory information
---------------------
0 permanent = .
0 scratch = .
Previous task information
-------------------------
Theory = scf
Operation = gradient
Status = ok
Qmmm = F
Ignore = F
Geometries in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 geometry 3 Fri Jan 31 00:30:59 2020
The geometry named "geometry" is the default for restart
Basis sets in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 ao basis 2 Fri Jan 31 00:30:59 2020
The basis set named "ao basis" is the default AO basis for restart
NWChem Input Module
-------------------
Scaling coordinates for geometry "geometry" by 1.889725989
(inverse scale = 0.529177249)
------
auto-z
------
no constraints, skipping 0.0000000000000000
no constraints, skipping 0.0000000000000000
Geometry "geometry" -> ""
-------------------------
Output coordinates in angstroms (scale by 1.889725989 to convert to a.u.)
No. Tag Charge X Y Z
---- ---------------- ---------- -------------- -------------- --------------
1 O 8.0000 0.00197082 0.00124630 -0.00298048
2 H 1.0000 -0.04320660 0.76936300 -0.59611900
3 H 1.0000 0.01192820 -0.78914300 -0.52817700
Atomic Mass
-----------
O 15.994910
H 1.007825
Effective nuclear repulsion energy (a.u.) 9.1573270473
Nuclear Dipole moment (a.u.)
----------------------------
X Y Z
---------------- ---------------- ----------------
-0.0293131272 -0.0185374561 -2.1696696942
Z-matrix (autoz)
--------
Units are Angstrom for bonds and degrees for angles
Type Name I J K L M Value
----------- -------- ----- ----- ----- ----- ----- ----------
1 Stretch 1 2 0.97152
2 Stretch 1 3 0.94902
3 Bend 2 1 3 108.72901
XYZ format geometry
-------------------
3
geometry
O 0.00197082 0.00124630 -0.00298048
H -0.04320660 0.76936300 -0.59611900
H 0.01192820 -0.78914300 -0.52817700
==============================================================================
internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 H | 1 O | 1.83591 | 0.97152
3 H | 1 O | 1.79339 | 0.94902
------------------------------------------------------------------------------
number of included internuclear distances: 2
==============================================================================
==============================================================================
internuclear angles
------------------------------------------------------------------------------
center 1 | center 2 | center 3 | degrees
------------------------------------------------------------------------------
2 H | 1 O | 3 H | 108.73
------------------------------------------------------------------------------
number of included internuclear angles: 1
==============================================================================
Basis "ao basis" -> "" (cartesian)
-----
O (Oxygen)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 5.48467170E+03 0.001831
1 S 8.25234950E+02 0.013950
1 S 1.88046960E+02 0.068445
1 S 5.29645000E+01 0.232714
1 S 1.68975700E+01 0.470193
1 S 5.79963530E+00 0.358521
2 S 1.55396160E+01 -0.110778
2 S 3.59993360E+00 -0.148026
2 S 1.01376180E+00 1.130767
3 P 1.55396160E+01 0.070874
3 P 3.59993360E+00 0.339753
3 P 1.01376180E+00 0.727159
4 S 2.70005800E-01 1.000000
5 P 2.70005800E-01 1.000000
6 D 8.00000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.87311370E+01 0.033495
1 S 2.82539370E+00 0.234727
1 S 6.40121700E-01 0.813757
2 S 1.61277800E-01 1.000000
Summary of "ao basis" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31g* 6 15 3s2p1d
H 6-31g* 2 2 2s
NWChem SCF Module
-----------------
ao basis = "ao basis"
functions = 19
atoms = 3
closed shells = 5
open shells = 0
charge = 0.00
wavefunction = RHF
input vectors = ./nwchem_lammps.movecs
output vectors = ./nwchem_lammps.movecs
use symmetry = F
symmetry adapt = F
Summary of "ao basis" -> "ao basis" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31g* 6 15 3s2p1d
H 6-31g* 2 2 2s
Forming initial guess at 0.0s
Loading old vectors from job with title :
Starting SCF solution at 0.0s
----------------------------------------------
Quadratically convergent ROHF
Convergence threshold : 1.000E-04
Maximum no. of iterations : 100
Final Fock-matrix accuracy: 1.000E-07
----------------------------------------------
#quartets = 1.540D+03 #integrals = 1.424D+04 #direct = 0.0% #cached =100.0%
Integral file = ./nwchem_lammps.aoints.0
Record size in doubles = 65536 No. of integs per rec = 43688
Max. records in memory = 2 Max. records in file = 1392051
No. of bits per label = 8 No. of bits per value = 64
iter energy gnorm gmax time
----- ------------------- --------- --------- --------
1 -76.0095751323 4.63D-02 1.64D-02 0.1
2 -76.0097628164 8.13D-04 2.83D-04 0.1
3 -76.0097629130 3.92D-06 1.55D-06 0.1
Final RHF results
------------------
Total SCF energy = -76.009762913030
One-electron energy = -123.002897732381
Two-electron energy = 37.835807772101
Nuclear repulsion energy = 9.157327047250
Time for solution = 0.0s
Final eigenvalues
-----------------
1
1 -20.5584
2 -1.3367
3 -0.7128
4 -0.5617
5 -0.4959
6 0.2104
7 0.3038
8 1.0409
9 1.1202
10 1.1606
11 1.1691
12 1.3840
13 1.4192
14 2.0312
15 2.0334
ROHF Final Molecular Orbital Analysis
-------------------------------------
Vector 2 Occ=2.000000D+00 E=-1.336749D+00
MO Center= -2.8D-03, -1.3D-02, -1.7D-01, r^2= 5.1D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
2 0.476636 1 O s 6 0.442369 1 O s
1 -0.210214 1 O s
Vector 3 Occ=2.000000D+00 E=-7.127948D-01
MO Center= -4.9D-03, 3.9D-03, -2.1D-01, r^2= 7.8D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
4 0.504894 1 O py 8 0.303932 1 O py
18 -0.234724 3 H s 16 0.229765 2 H s
Vector 4 Occ=2.000000D+00 E=-5.617306D-01
MO Center= 3.6D-03, 9.0D-03, 5.6D-02, r^2= 6.9D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
5 0.559565 1 O pz 9 0.410981 1 O pz
6 0.315892 1 O s 2 0.157960 1 O s
Vector 5 Occ=2.000000D+00 E=-4.959173D-01
MO Center= 1.4D-03, 6.9D-05, -2.2D-02, r^2= 6.0D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
3 0.638390 1 O px 7 0.511530 1 O px
Vector 6 Occ=0.000000D+00 E= 2.103822D-01
MO Center= -2.3D-02, 3.5D-02, -7.3D-01, r^2= 2.6D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 1.416869 1 O s 17 -1.068330 2 H s
19 -1.014775 3 H s 9 -0.490951 1 O pz
5 -0.212990 1 O pz
Vector 7 Occ=0.000000D+00 E= 3.037943D-01
MO Center= -1.8D-02, -8.9D-02, -7.1D-01, r^2= 2.8D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
19 -1.426837 3 H s 17 1.332767 2 H s
8 -0.842141 1 O py 4 -0.327553 1 O py
Vector 8 Occ=0.000000D+00 E= 1.040852D+00
MO Center= -7.4D-03, 1.3D-01, -1.6D-01, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
16 0.931594 2 H s 18 -0.747590 3 H s
8 -0.655817 1 O py 17 -0.523035 2 H s
19 0.366407 3 H s 14 -0.357109 1 O dyz
Vector 9 Occ=0.000000D+00 E= 1.120172D+00
MO Center= -6.8D-03, -2.9D-02, -3.1D-01, r^2= 1.5D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 1.145090 1 O s 18 0.841596 3 H s
2 -0.727471 1 O s 16 0.684927 2 H s
9 0.559191 1 O pz 19 -0.546678 3 H s
17 -0.538778 2 H s 10 -0.344609 1 O dxx
15 -0.250035 1 O dzz
Vector 10 Occ=0.000000D+00 E= 1.160603D+00
MO Center= 1.2D-02, -4.3D-02, 2.5D-01, r^2= 1.0D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 1.137949 1 O s 5 -0.844233 1 O pz
9 0.595088 1 O pz 2 -0.475986 1 O s
18 -0.455932 3 H s 16 -0.357325 2 H s
13 -0.317117 1 O dyy 15 -0.196968 1 O dzz
Vector 11 Occ=0.000000D+00 E= 1.169054D+00
MO Center= 1.9D-03, 1.2D-03, -6.4D-03, r^2= 1.1D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
7 -1.034653 1 O px 3 0.962043 1 O px
Vector 12 Occ=0.000000D+00 E= 1.384034D+00
MO Center= 6.0D-04, -2.6D-03, -5.0D-02, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
8 1.557767 1 O py 4 -1.035829 1 O py
17 -0.900920 2 H s 19 0.901756 3 H s
Vector 13 Occ=0.000000D+00 E= 1.419205D+00
MO Center= -1.3D-02, -4.9D-02, -5.2D-01, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 3.605136 1 O s 2 -1.454853 1 O s
9 -1.107532 1 O pz 19 -0.874208 3 H s
17 -0.757016 2 H s 13 -0.634436 1 O dyy
5 0.516593 1 O pz 15 -0.401100 1 O dzz
10 -0.319873 1 O dxx 16 -0.260650 2 H s
Vector 14 Occ=0.000000D+00 E= 2.031234D+00
MO Center= 1.9D-03, 2.3D-03, -3.0D-03, r^2= 6.1D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
11 1.727083 1 O dxy
Vector 15 Occ=0.000000D+00 E= 2.033369D+00
MO Center= 3.4D-03, 3.4D-03, 4.3D-02, r^2= 6.2D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
15 1.012642 1 O dzz 13 -0.512441 1 O dyy
10 -0.438481 1 O dxx 6 -0.226567 1 O s
center of mass
--------------
x = -0.00000001 y = -0.00000003 z = -0.12388979
moments of inertia (a.u.)
------------------
6.378705068992 0.153373998471 -0.069687034145
0.153373998471 2.014476065716 0.150739744400
-0.069687034145 0.150739744400 4.379134195179
Mulliken analysis of the total density
--------------------------------------
Atom Charge Shell Charges
----------- ------ -------------------------------------------------------
1 O 8 8.87 2.00 0.90 2.90 0.92 2.08 0.08
2 H 1 0.56 0.46 0.11
3 H 1 0.56 0.47 0.10
Multipole analysis of the density wrt the origin
------------------------------------------------
L x y z total open nuclear
- - - - ----- ---- -------
0 0 0 0 -0.000000 0.000000 10.000000
1 1 0 0 -0.026417 0.000000 -0.029313
1 0 1 0 -0.023604 0.000000 -0.018537
1 0 0 1 -0.846090 0.000000 -2.169670
2 2 0 0 -5.373227 0.000000 0.007286
2 1 1 0 -0.085617 0.000000 -0.152252
2 1 0 1 0.038215 0.000000 0.069311
2 0 2 0 -2.927589 0.000000 4.337695
2 0 1 1 -0.071410 0.000000 -0.149465
2 0 0 2 -4.159949 0.000000 2.265483
Parallel integral file used 1 records with 0 large values
NWChem Gradients Module
-----------------------
wavefunction = RHF
RHF ENERGY GRADIENTS
atom coordinates gradient
x y z x y z
1 O 0.003724 0.002355 -0.005632 0.000909 -0.019294 0.007866
2 H -0.081649 1.453885 -1.126502 -0.001242 0.025549 -0.011605
3 H 0.022541 -1.491264 -0.998110 0.000333 -0.006255 0.003739
----------------------------------------
| Time | 1-e(secs) | 2-e(secs) |
----------------------------------------
| CPU | 0.00 | 0.03 |
----------------------------------------
| WALL | 0.00 | 0.03 |
----------------------------------------
Task times cpu: 0.1s wall: 0.1s
NWChem Input Module
-------------------
Summary of allocated global arrays
-----------------------------------
No active global arrays
GA Statistics for process 0
------------------------------
create destroy get put acc scatter gather read&inc
calls: 182 182 2869 728 468 0 0 68
number of processes/call 1.00e+00 1.00e+00 1.00e+00 0.00e+00 0.00e+00
bytes total: 6.18e+05 3.56e+05 1.04e+05 0.00e+00 0.00e+00 5.44e+02
bytes remote: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
Max memory consumed for GA by this process: 39432 bytes
MA_summarize_allocated_blocks: starting scan ...
MA_summarize_allocated_blocks: scan completed: 0 heap blocks, 0 stack blocks
MA usage statistics:
allocation statistics:
heap stack
---- -----
current number of blocks 0 0
maximum number of blocks 18 28
current total bytes 0 0
maximum total bytes 1060104 16000888
maximum total K-bytes 1061 16001
maximum total M-bytes 2 17
CITATION
--------
Please cite the following reference when publishing
results obtained with NWChem:
M. Valiev, E.J. Bylaska, N. Govind, K. Kowalski,
T.P. Straatsma, H.J.J. van Dam, D. Wang, J. Nieplocha,
E. Apra, T.L. Windus, W.A. de Jong
"NWChem: a comprehensive and scalable open-source
solution for large scale molecular simulations"
Comput. Phys. Commun. 181, 1477 (2010)
doi:10.1016/j.cpc.2010.04.018
AUTHORS
-------
E. Apra, E. J. Bylaska, W. A. de Jong, N. Govind, K. Kowalski,
T. P. Straatsma, M. Valiev, H. J. J. van Dam, D. Wang, T. L. Windus,
J. Hammond, J. Autschbach, K. Bhaskaran-Nair, J. Brabec, K. Lopata,
S. A. Fischer, S. Krishnamoorthy, M. Jacquelin, W. Ma, M. Klemm, O. Villa,
Y. Chen, V. Anisimov, F. Aquino, S. Hirata, M. T. Hackler, V. Konjkov,
D. Mejia-Rodriguez, T. Risthaus, M. Malagoli, A. Marenich,
A. Otero-de-la-Roza, J. Mullin, P. Nichols, R. Peverati, J. Pittner, Y. Zhao,
P.-D. Fan, A. Fonari, M. J. Williamson, R. J. Harrison, J. R. Rehr,
M. Dupuis, D. Silverstein, D. M. A. Smith, J. Nieplocha, V. Tipparaju,
M. Krishnan, B. E. Van Kuiken, A. Vazquez-Mayagoitia, L. Jensen, M. Swart,
Q. Wu, T. Van Voorhis, A. A. Auer, M. Nooijen, L. D. Crosby, E. Brown,
G. Cisneros, G. I. Fann, H. Fruchtl, J. Garza, K. Hirao, R. A. Kendall,
J. A. Nichols, K. Tsemekhman, K. Wolinski, J. Anchell, D. E. Bernholdt,
P. Borowski, T. Clark, D. Clerc, H. Dachsel, M. J. O. Deegan, K. Dyall,
D. Elwood, E. Glendening, M. Gutowski, A. C. Hess, J. Jaffe, B. G. Johnson,
J. Ju, R. Kobayashi, R. Kutteh, Z. Lin, R. Littlefield, X. Long, B. Meng,
T. Nakajima, S. Niu, L. Pollack, M. Rosing, K. Glaesemann, G. Sandrone,
M. Stave, H. Taylor, G. Thomas, J. H. van Lenthe, A. T. Wong, Z. Zhang.
Total times cpu: 0.1s wall: 0.2s

View File

@ -1,626 +0,0 @@
argument 1 = nwchem_lammps.nw
============================== echo of input deck ==============================
echo
memory global 40 mb stack 23 mb heap 5 mb
geometry units angstrom noautosym nocenter
O -0.00836667 0.0010006 0.0866404
H 0.0968795 0.837453 -0.346117
H 0.0114839 -0.638453 -0.612122
end
scf
vectors input nwchem_lammps.movecs
end
dft
vectors input nwchem_lammps.movecs
end
basis
O library 6-31g*
H library 6-31g*
end
scf
maxiter 100
end
#dft
# xc b3lyp
#end
task scf gradient
#task dft gradient
================================================================================
Northwest Computational Chemistry Package (NWChem) 6.8
------------------------------------------------------
Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352
Copyright (c) 1994-2018
Pacific Northwest National Laboratory
Battelle Memorial Institute
NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file
ACKNOWLEDGMENT
--------------
This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.
Job information
---------------
hostname = almondjoy
program = /home/jboschen/nwchem-6.8.1-release/bin/LINUX64/nwchem
date = Fri Jan 31 00:33:40 2020
compiled = Tue_Oct_01_13:20:43_2019
source = /home/jboschen/nwchem-6.8.1-release
nwchem branch = Development
nwchem revision = N/A
ga revision = 5.6.5
use scalapack = F
input = nwchem_lammps.nw
prefix = nwchem_lammps.
data base = ./nwchem_lammps.db
status = restart
nproc = 1
time left = -1s
Memory information
------------------
heap = 655358 doubles = 5.0 Mbytes
stack = 3014651 doubles = 23.0 Mbytes
global = 5242880 doubles = 40.0 Mbytes (distinct from heap & stack)
total = 8912889 doubles = 68.0 Mbytes
verify = yes
hardfail = no
Directory information
---------------------
0 permanent = .
0 scratch = .
Previous task information
-------------------------
Theory = scf
Operation = gradient
Status = ok
Qmmm = F
Ignore = F
Geometries in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 geometry 3 Fri Jan 31 00:33:40 2020
The geometry named "geometry" is the default for restart
Basis sets in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 ao basis 2 Fri Jan 31 00:33:40 2020
The basis set named "ao basis" is the default AO basis for restart
NWChem Input Module
-------------------
Scaling coordinates for geometry "geometry" by 1.889725989
(inverse scale = 0.529177249)
------
auto-z
------
no constraints, skipping 0.0000000000000000
no constraints, skipping 0.0000000000000000
Geometry "geometry" -> ""
-------------------------
Output coordinates in angstroms (scale by 1.889725989 to convert to a.u.)
No. Tag Charge X Y Z
---- ---------------- ---------- -------------- -------------- --------------
1 O 8.0000 -0.00836667 0.00100060 0.08664040
2 H 1.0000 0.09687950 0.83745300 -0.34611700
3 H 1.0000 0.01148390 -0.63845300 -0.61212200
Atomic Mass
-----------
O 15.994910
H 1.007825
Effective nuclear repulsion energy (a.u.) 9.2881144400
Nuclear Dipole moment (a.u.)
----------------------------
X Y Z
---------------- ---------------- ----------------
0.0782914233 0.3911823503 -0.5009962172
Z-matrix (autoz)
--------
Units are Angstrom for bonds and degrees for angles
Type Name I J K L M Value
----------- -------- ----- ----- ----- ----- ----- ----------
1 Stretch 1 2 0.94763
2 Stretch 1 3 0.94740
3 Bend 2 1 3 104.86952
XYZ format geometry
-------------------
3
geometry
O -0.00836667 0.00100060 0.08664040
H 0.09687950 0.83745300 -0.34611700
H 0.01148390 -0.63845300 -0.61212200
==============================================================================
internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 H | 1 O | 1.79077 | 0.94763
3 H | 1 O | 1.79032 | 0.94740
------------------------------------------------------------------------------
number of included internuclear distances: 2
==============================================================================
==============================================================================
internuclear angles
------------------------------------------------------------------------------
center 1 | center 2 | center 3 | degrees
------------------------------------------------------------------------------
2 H | 1 O | 3 H | 104.87
------------------------------------------------------------------------------
number of included internuclear angles: 1
==============================================================================
Basis "ao basis" -> "" (cartesian)
-----
O (Oxygen)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 5.48467170E+03 0.001831
1 S 8.25234950E+02 0.013950
1 S 1.88046960E+02 0.068445
1 S 5.29645000E+01 0.232714
1 S 1.68975700E+01 0.470193
1 S 5.79963530E+00 0.358521
2 S 1.55396160E+01 -0.110778
2 S 3.59993360E+00 -0.148026
2 S 1.01376180E+00 1.130767
3 P 1.55396160E+01 0.070874
3 P 3.59993360E+00 0.339753
3 P 1.01376180E+00 0.727159
4 S 2.70005800E-01 1.000000
5 P 2.70005800E-01 1.000000
6 D 8.00000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.87311370E+01 0.033495
1 S 2.82539370E+00 0.234727
1 S 6.40121700E-01 0.813757
2 S 1.61277800E-01 1.000000
Summary of "ao basis" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31g* 6 15 3s2p1d
H 6-31g* 2 2 2s
NWChem SCF Module
-----------------
ao basis = "ao basis"
functions = 19
atoms = 3
closed shells = 5
open shells = 0
charge = 0.00
wavefunction = RHF
input vectors = ./nwchem_lammps.movecs
output vectors = ./nwchem_lammps.movecs
use symmetry = F
symmetry adapt = F
Summary of "ao basis" -> "ao basis" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31g* 6 15 3s2p1d
H 6-31g* 2 2 2s
Forming initial guess at 0.0s
Loading old vectors from job with title :
Starting SCF solution at 0.0s
----------------------------------------------
Quadratically convergent ROHF
Convergence threshold : 1.000E-04
Maximum no. of iterations : 100
Final Fock-matrix accuracy: 1.000E-07
----------------------------------------------
#quartets = 1.540D+03 #integrals = 1.424D+04 #direct = 0.0% #cached =100.0%
Integral file = ./nwchem_lammps.aoints.0
Record size in doubles = 65536 No. of integs per rec = 43688
Max. records in memory = 2 Max. records in file = 1392051
No. of bits per label = 8 No. of bits per value = 64
iter energy gnorm gmax time
----- ------------------- --------- --------- --------
1 -76.0107350035 4.75D-05 2.49D-05 0.1
Final RHF results
------------------
Total SCF energy = -76.010735003510
One-electron energy = -123.220958992568
Two-electron energy = 37.922109549024
Nuclear repulsion energy = 9.288114440035
Time for solution = 0.0s
Final eigenvalues
-----------------
1
1 -20.5583
2 -1.3466
3 -0.7130
4 -0.5721
5 -0.4985
6 0.2129
7 0.3068
8 1.0286
9 1.1338
10 1.1678
11 1.1807
12 1.3845
13 1.4334
14 2.0187
15 2.0311
ROHF Final Molecular Orbital Analysis
-------------------------------------
Vector 2 Occ=2.000000D+00 E=-1.346587D+00
MO Center= 1.1D-02, 3.1D-02, -8.5D-02, r^2= 5.0D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
2 0.475648 1 O s 6 0.435095 1 O s
1 -0.209463 1 O s
Vector 3 Occ=2.000000D+00 E=-7.129747D-01
MO Center= 1.5D-02, 3.8D-02, -1.3D-01, r^2= 7.6D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
4 0.500246 1 O py 8 0.299047 1 O py
16 0.232138 2 H s 18 -0.232195 3 H s
Vector 4 Occ=2.000000D+00 E=-5.720760D-01
MO Center= -1.5D-02, -9.7D-03, 1.5D-01, r^2= 6.8D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
5 0.545527 1 O pz 9 0.395332 1 O pz
6 0.326735 1 O s 2 0.164593 1 O s
Vector 5 Occ=2.000000D+00 E=-4.984552D-01
MO Center= -6.2D-03, 4.4D-03, 6.7D-02, r^2= 6.0D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
3 0.634559 1 O px 7 0.507891 1 O px
Vector 6 Occ=0.000000D+00 E= 2.128732D-01
MO Center= 7.5D-02, 1.3D-01, -6.6D-01, r^2= 2.6D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 1.437795 1 O s 17 -1.050892 2 H s
19 -1.050374 3 H s 9 -0.494696 1 O pz
5 -0.208359 1 O pz
Vector 7 Occ=0.000000D+00 E= 3.067764D-01
MO Center= 7.1D-02, 1.3D-01, -6.3D-01, r^2= 2.7D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
17 1.413885 2 H s 19 -1.414835 3 H s
8 -0.824411 1 O py 4 -0.320355 1 O py
Vector 8 Occ=0.000000D+00 E= 1.028607D+00
MO Center= 7.1D-03, 2.6D-02, -5.2D-02, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
16 0.839269 2 H s 18 -0.838060 3 H s
8 -0.692349 1 O py 17 -0.426291 2 H s
19 0.425092 3 H s 14 -0.319117 1 O dyz
Vector 9 Occ=0.000000D+00 E= 1.133833D+00
MO Center= -2.7D-02, -2.9D-02, 2.6D-01, r^2= 1.5D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 1.621086 1 O s 2 -0.910150 1 O s
9 0.744864 1 O pz 16 0.490586 2 H s
18 0.491102 3 H s 5 -0.484186 1 O pz
17 -0.426087 2 H s 19 -0.425823 3 H s
10 -0.375325 1 O dxx 15 -0.317874 1 O dzz
Vector 10 Occ=0.000000D+00 E= 1.167849D+00
MO Center= -8.0D-03, 1.6D-03, 8.3D-02, r^2= 1.1D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
7 -1.028149 1 O px 3 0.955686 1 O px
Vector 11 Occ=0.000000D+00 E= 1.180721D+00
MO Center= 1.8D-02, 4.2D-02, -1.5D-01, r^2= 1.1D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
16 0.710073 2 H s 18 0.711177 3 H s
5 0.704677 1 O pz 17 -0.389719 2 H s
19 -0.389376 3 H s 6 -0.326170 1 O s
9 -0.288739 1 O pz 13 0.229749 1 O dyy
Vector 12 Occ=0.000000D+00 E= 1.384514D+00
MO Center= -7.4D-04, 1.3D-02, 1.8D-02, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
8 1.510506 1 O py 4 -1.021750 1 O py
17 -0.934844 2 H s 19 0.935260 3 H s
9 0.272171 1 O pz 5 -0.184286 1 O pz
Vector 13 Occ=0.000000D+00 E= 1.433397D+00
MO Center= 4.7D-02, 8.7D-02, -4.1D-01, r^2= 1.4D+00
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
6 3.628985 1 O s 2 -1.436467 1 O s
9 -1.143870 1 O pz 17 -0.805578 2 H s
19 -0.806493 3 H s 13 -0.635948 1 O dyy
5 0.489050 1 O pz 15 -0.410417 1 O dzz
16 -0.312860 2 H s 18 -0.312722 3 H s
Vector 14 Occ=0.000000D+00 E= 2.018721D+00
MO Center= -1.4D-02, -7.1D-03, 1.3D-01, r^2= 6.2D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
15 0.947149 1 O dzz 14 -0.531399 1 O dyz
13 -0.526961 1 O dyy 10 -0.358371 1 O dxx
12 -0.297495 1 O dxz 6 -0.233087 1 O s
Vector 15 Occ=0.000000D+00 E= 2.031133D+00
MO Center= -8.4D-03, 1.0D-03, 8.7D-02, r^2= 6.1D-01
Bfn. Coefficient Atom+Function Bfn. Coefficient Atom+Function
----- ------------ --------------- ----- ------------ ---------------
11 1.681563 1 O dxy 12 0.314688 1 O dxz
center of mass
--------------
x = -0.00258245 y = 0.02272235 z = 0.04407491
moments of inertia (a.u.)
------------------
6.155330507195 -0.266185800841 0.185335033231
-0.266185800841 2.211585220634 -0.350250164177
0.185335033231 -0.350250164177 4.020009073007
Mulliken analysis of the total density
--------------------------------------
Atom Charge Shell Charges
----------- ------ -------------------------------------------------------
1 O 8 8.87 2.00 0.90 2.91 0.91 2.06 0.08
2 H 1 0.57 0.47 0.10
3 H 1 0.57 0.47 0.10
Multipole analysis of the density wrt the origin
------------------------------------------------
L x y z total open nuclear
- - - - ----- ---- -------
0 0 0 0 -0.000000 0.000000 10.000000
1 1 0 0 0.094145 0.000000 0.078291
1 0 1 0 0.148179 0.000000 0.391182
1 0 0 1 -0.851621 0.000000 -0.500996
2 2 0 0 -5.338111 0.000000 0.035987
2 1 1 0 0.149191 0.000000 0.263306
2 1 0 1 -0.084723 0.000000 -0.165556
2 0 2 0 -3.114464 0.000000 3.960160
2 0 1 1 0.205130 0.000000 0.362991
2 0 0 2 -4.329185 0.000000 1.980308
Parallel integral file used 1 records with 0 large values
NWChem Gradients Module
-----------------------
wavefunction = RHF
RHF ENERGY GRADIENTS
atom coordinates gradient
x y z x y z
1 O -0.015811 0.001891 0.163727 -0.000201 -0.000505 0.001671
2 H 0.183076 1.582557 -0.654066 0.000065 -0.000505 -0.001056
3 H 0.021701 -1.206501 -1.156743 0.000136 0.001011 -0.000616
----------------------------------------
| Time | 1-e(secs) | 2-e(secs) |
----------------------------------------
| CPU | 0.00 | 0.03 |
----------------------------------------
| WALL | 0.00 | 0.03 |
----------------------------------------
Task times cpu: 0.1s wall: 0.1s
NWChem Input Module
-------------------
Summary of allocated global arrays
-----------------------------------
No active global arrays
GA Statistics for process 0
------------------------------
create destroy get put acc scatter gather read&inc
calls: 46 46 2296 477 27 0 0 68
number of processes/call 1.00e+00 1.00e+00 1.00e+00 0.00e+00 0.00e+00
bytes total: 2.70e+05 1.39e+05 2.27e+04 0.00e+00 0.00e+00 5.44e+02
bytes remote: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
Max memory consumed for GA by this process: 37544 bytes
MA_summarize_allocated_blocks: starting scan ...
MA_summarize_allocated_blocks: scan completed: 0 heap blocks, 0 stack blocks
MA usage statistics:
allocation statistics:
heap stack
---- -----
current number of blocks 0 0
maximum number of blocks 18 28
current total bytes 0 0
maximum total bytes 1060104 16000888
maximum total K-bytes 1061 16001
maximum total M-bytes 2 17
CITATION
--------
Please cite the following reference when publishing
results obtained with NWChem:
M. Valiev, E.J. Bylaska, N. Govind, K. Kowalski,
T.P. Straatsma, H.J.J. van Dam, D. Wang, J. Nieplocha,
E. Apra, T.L. Windus, W.A. de Jong
"NWChem: a comprehensive and scalable open-source
solution for large scale molecular simulations"
Comput. Phys. Commun. 181, 1477 (2010)
doi:10.1016/j.cpc.2010.04.018
AUTHORS
-------
E. Apra, E. J. Bylaska, W. A. de Jong, N. Govind, K. Kowalski,
T. P. Straatsma, M. Valiev, H. J. J. van Dam, D. Wang, T. L. Windus,
J. Hammond, J. Autschbach, K. Bhaskaran-Nair, J. Brabec, K. Lopata,
S. A. Fischer, S. Krishnamoorthy, M. Jacquelin, W. Ma, M. Klemm, O. Villa,
Y. Chen, V. Anisimov, F. Aquino, S. Hirata, M. T. Hackler, V. Konjkov,
D. Mejia-Rodriguez, T. Risthaus, M. Malagoli, A. Marenich,
A. Otero-de-la-Roza, J. Mullin, P. Nichols, R. Peverati, J. Pittner, Y. Zhao,
P.-D. Fan, A. Fonari, M. J. Williamson, R. J. Harrison, J. R. Rehr,
M. Dupuis, D. Silverstein, D. M. A. Smith, J. Nieplocha, V. Tipparaju,
M. Krishnan, B. E. Van Kuiken, A. Vazquez-Mayagoitia, L. Jensen, M. Swart,
Q. Wu, T. Van Voorhis, A. A. Auer, M. Nooijen, L. D. Crosby, E. Brown,
G. Cisneros, G. I. Fann, H. Fruchtl, J. Garza, K. Hirao, R. A. Kendall,
J. A. Nichols, K. Tsemekhman, K. Wolinski, J. Anchell, D. E. Bernholdt,
P. Borowski, T. Clark, D. Clerc, H. Dachsel, M. J. O. Deegan, K. Dyall,
D. Elwood, E. Glendening, M. Gutowski, A. C. Hess, J. Jaffe, B. G. Johnson,
J. Ju, R. Kobayashi, R. Kutteh, Z. Lin, R. Littlefield, X. Long, B. Meng,
T. Nakajima, S. Niu, L. Pollack, M. Rosing, K. Glaesemann, G. Sandrone,
M. Stave, H. Taylor, G. Thomas, J. H. van Lenthe, A. T. Wong, Z. Zhang.
Total times cpu: 0.1s wall: 0.1s

View File

@ -1,447 +0,0 @@
#!/usr/bin/env python
# ----------------------------------------------------------------------
# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
# https://www.lammps.org/ Sandia National Laboratories
# Steve Plimpton, sjplimp@sandia.gov
# ----------------------------------------------------------------------
# Syntax: nwchem_wrap.py file/zmq ao/pw input_template
# file/zmg = messaging mode, must match LAMMPS messaging mode
# ao/pw = basis set mode, selects between atom-centered and plane-wave
# the input_template file must correspond to the appropriate basis set mode:
# the "ao" mode supports the scf and dft modules in NWChem,
# the "pw" mode supports the nwpw module.
# input_template = NWChem input file used as template, must include a
# "geometry" block with the atoms in the simulation, dummy
# xyz coordinates should be included (but are not used).
# Atom ordering must match LAMMPS input.
# wrapper on NWChem
# receives message with list of coords
# creates NWChem inputs
# invokes NWChem to calculate self-consistent energy of that config
# reads NWChem outputs
# sends message with energy, forces, pressure to client
from __future__ import print_function
import sys
version = sys.version_info[0]
if version == 3:
sys.exit("The CSlib python wrapper does not yet support python 3")
import subprocess
import re
import os
import shutil
from cslib import CSlib
# comment out 2nd line once 1st line is correct for your system
nwchemcmd = "mpirun -np 1 /usr/bin/nwchem"
nwchemcmd = "touch tmp"
# enums matching FixClientMD class in LAMMPS
SETUP,STEP = range(1,2+1)
DIM,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE = range(1,10+1)
FORCES,ENERGY,VIRIAL,ERROR = range(1,4+1)
# -------------------------------------
# functions
# error message and exit
def error(txt):
print("ERROR:",txt)
sys.exit(1)
# -------------------------------------
# read initial input file to setup problem
# return natoms
def nwchem_setup_ao(input):
template = open(input,'r')
geometry_block = False
natoms = 0
while True:
line = template.readline()
if not line: break
if geometry_block and re.search("end",line):
geometry_block = False
if geometry_block and not re.match("#",line) :
natoms += 1
if re.search("geometry",line):
geometry_block = True
return natoms
# -------------------------------------
# write a new input file for NWChem
# assumes the NWChem input geometry is to be specified in angstroms
def nwchem_input_write_ao(input,coords):
template = open(input,'r')
new_input = open("nwchem_lammps.nw",'w')
geometry_block = False
i = 0
while True:
line = template.readline()
if not line: break
if geometry_block and not re.match("#",line) and re.search("end",line):
geometry_block = False
if os.path.exists("nwchem_lammps.movecs"):
# The below is hacky, but one of these lines will be ignored
# by NWChem depending on if the input file is for scf/dft.
append = "\nscf\n vectors input nwchem_lammps.movecs\nend\n"
append2 = "\ndft\n vectors input nwchem_lammps.movecs\nend\n"
line = line + append + append2
if geometry_block and not re.match("#",line):
x = coords[3*i+0]
y = coords[3*i+1]
z = coords[3*i+2]
coord_string = " %g %g %g \n" % (x,y,z)
atom_string = line.split()[0]
line = atom_string + coord_string
i += 1
if (not re.match("#",line)) and re.search("geometry",line):
geometry_block = True
line = "geometry units angstrom noautosym nocenter\n"
print(line,file=new_input,end='')
new_input.close()
# -------------------------------------
# read a NWChem output nwchem_lammps.out file
def nwchem_read_ao(natoms, log):
nwchem_output = open(log, 'r')
energy_pattern = r"Total \w+ energy"
gradient_pattern = "x y z x y z"
eout = 0.0
fout = []
while True:
line = nwchem_output.readline()
if not line: break
# pattern match for energy
if re.search(energy_pattern,line):
eout = float(line.split()[4])
# pattern match for forces
if re.search(gradient_pattern, line):
for i in range(natoms):
line = nwchem_output.readline()
forces = line.split()
fout += [float(forces[5]), float(forces[6]), float(forces[7])]
# convert units
hartree2eV = 27.21138602
bohr2angstrom = 0.52917721092
eout = eout * hartree2eV
fout = [i * -hartree2eV/bohr2angstrom for i in fout]
return eout,fout
# -------------------------------------
# read initial planewave input file to setup problem
# return natoms,box
def nwchem_setup_pw(input):
template = open(input,'r')
geometry_block = False
system_block = False
coord_pattern = r"^\s*\w{1,2}(?:\s+-?(?:\d+.?\d*|\d*.?\d+)){3}"
natoms = 0
box = []
while True:
line = template.readline()
if not line: break
if geometry_block and re.search("system crystal",line):
system_block = True
for i in range(3):
line = template.readline()
line = re.sub(r'd|D', 'e', line)
box += [float(line.split()[1])]
if geometry_block and not system_block and re.match("#",line) and re.search("end",line):
geometry_block = False
if system_block and re.search("end",line):
system_block = False
if geometry_block and not re.match("#",line) and re.search(coord_pattern,line):
natoms += 1
if re.search("geometry",line) and not re.match("#",line):
geometry_block = True
return natoms,box
# -------------------------------------
# write a new planewave input file for NWChem
# assumes the NWChem input geometry is to be specified fractional coordinates
def nwchem_input_write_pw(input,coords,box):
template = open(input,'r')
new_input = open("nwchem_lammps.nw",'w')
writing_atoms = False
geometry_block = False
system_block = False
coord_pattern = r"^\s*\w{1,2}(?:\s+-?(?:\d+.?\d*|\d*.?\d+)){3}"
i = 0
while True:
line = template.readline()
if not line: break
if geometry_block and re.search("system crystal",line):
system_block = True
if geometry_block and not system_block and not re.match("#",line) and re.search("end",line):
geometry_block = False
if os.path.exists("nwchem_lammps.movecs"):
append = "\nnwpw\n vectors input nwchem_lammps.movecs\nend\n"
line = line + append
if system_block and re.search("end",line):
system_block = False
if geometry_block and not re.match("#",line) and re.search(coord_pattern,line):
x = coords[3*i+0] / box[0]
y = coords[3*i+1] / box[1]
z = coords[3*i+2] / box[2]
coord_string = " %g %g %g \n" % (x,y,z)
atom_string = line.split()[0]
line = atom_string + coord_string
i += 1
if re.search("geometry",line) and not re.match("#",line):
geometry_block = True
print(line,file=new_input,end='')
new_input.close()
# -------------------------------------
# read a NWChem output nwchem_lammps.out file for planewave calculation
def nwchem_read_pw(log):
nw_output = open(log, 'r')
eout = 0.0
sout = []
fout = []
reading_forces = False
while True:
line = nw_output.readline()
if not line: break
# pattern match for energy
if re.search("PSPW energy",line):
eout = float(line.split()[4])
# pattern match for forces
if re.search("C\.O\.M", line):
reading_forces = False
if reading_forces:
forces = line.split()
fout += [float(forces[3]), float(forces[4]), float(forces[5])]
if re.search("Ion Forces",line):
reading_forces = True
# pattern match for stress
if re.search("=== total gradient ===",line):
stensor = []
for i in range(3):
line = nw_output.readline()
line = line.replace("S ="," ")
stress = line.split()
stensor += [float(stress[1]), float(stress[2]), float(stress[3])]
sxx = stensor[0]
syy = stensor[4]
szz = stensor[8]
sxy = 0.5 * (float(stensor[1]) + float(stensor[3]))
sxz = 0.5 * (stensor[2] + stensor[6])
syz = 0.5 * (stensor[5] + stensor[7])
sout = [sxx,syy,szz,sxy,sxz,syz]
# convert units
hartree2eV = 27.21138602
bohr2angstrom = 0.52917721092
austress2bar = 294210156.97
eout = eout * hartree2eV
fout = [i * hartree2eV/bohr2angstrom for i in fout]
sout = [i * austress2bar for i in sout]
return eout,fout,sout
# -------------------------------------
# main program
# command-line args
#
if len(sys.argv) != 4:
print("Syntax: python nwchem_wrap.py file/zmq ao/pw input_template")
sys.exit(1)
comm_mode = sys.argv[1]
basis_type = sys.argv[2]
input_template = sys.argv[3]
if comm_mode == "file": cs = CSlib(1,comm_mode,"tmp.couple",None)
elif comm_mode == "zmq": cs = CSlib(1,comm_mode,"*:5555",None)
else:
print("Syntax: python nwchem_wrap.py file/zmq")
sys.exit(1)
natoms = 0
box = []
if basis_type == "ao":
natoms = nwchem_setup_ao(input_template)
elif basis_type == "pw":
natoms,box = nwchem_setup_pw(input_template)
# initial message for AIMD protocol
msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv()
if msgID != 0: error("Bad initial client/server handshake")
protocol = cs.unpack_string(1)
if protocol != "md": error("Mismatch in client/server protocol")
cs.send(0,0)
# endless server loop
i = 0
if not os.path.exists("nwchem_logs"):
os.mkdir("nwchem_logs")
while 1:
# recv message from client
# msgID = 0 = all-done message
msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv()
if msgID < 0: break
# SETUP receive at beginning of each run
# required fields: DIM, PERIODICITY, ORIGIN, BOX,
# NATOMS, COORDS
# optional fields: others in enum above, but NWChem ignores them
if msgID == SETUP:
origin = []
box_lmp = []
natoms_recv = ntypes_recv = 0
types = []
coords = []
for field in fieldID:
if field == DIM:
dim = cs.unpack_int(DIM)
if dim != 3: error("NWChem only performs 3d simulations")
elif field == PERIODICITY:
periodicity = cs.unpack(PERIODICITY,1)
if basis_type == "ao":
if periodicity[0] or periodicity[1] or periodicity[2]:
error("NWChem AO basis wrapper only currently supports fully aperiodic systems")
elif basis_type == "pw":
if not periodicity[0] or not periodicity[1] or not periodicity[2]:
error("NWChem PW basis wrapper only currently supports fully periodic systems")
elif field == ORIGIN:
origin = cs.unpack(ORIGIN,1)
elif field == BOX:
box_lmp = cs.unpack(BOX,1)
if (basis_type == "pw"):
if (box[0] != box_lmp[0] or box[1] != box_lmp[4] or box[2] != box_lmp[8]):
error("NWChem wrapper mismatch in box dimensions")
elif field == NATOMS:
natoms_recv = cs.unpack_int(NATOMS)
if natoms != natoms_recv:
error("NWChem wrapper mismatch in number of atoms")
elif field == COORDS:
coords = cs.unpack(COORDS,1)
if not origin or not box_lmp or not natoms or not coords:
error("Required NWChem wrapper setup field not received");
# STEP receive at each timestep of run or minimization
# required fields: COORDS
# optional fields: ORIGIN, BOX
elif msgID == STEP:
coords = []
for field in fieldID:
if field == COORDS:
coords = cs.unpack(COORDS,1)
if not coords: error("Required NWChem wrapper step field not received");
else: error("NWChem wrapper received unrecognized message")
# unpack coords from client
# create NWChem input
if basis_type == "ao":
nwchem_input_write_ao(input_template,coords)
elif basis_type == "pw":
nwchem_input_write_pw(input_template,coords,box)
# invoke NWChem
i += 1
log = "nwchem_lammps.out"
archive = "nwchem_logs/nwchem_lammps" + str(i) + ".out"
cmd = nwchemcmd + " nwchem_lammps.nw > " + log
print("\nLaunching NWChem ...")
print(cmd)
subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
shutil.copyfile(log,archive)
# process NWChem output
if basis_type == "ao":
energy,forces = nwchem_read_ao(natoms,log)
virial = [0,0,0,0,0,0]
elif basis_type == "pw":
energy,forces,virial = nwchem_read_pw(log)
# return forces, energy to client
cs.send(msgID,3)
cs.pack(FORCES,4,3*natoms,forces)
cs.pack_double(ENERGY,energy)
cs.pack(VIRIAL,4,6,virial)
# final reply to client
cs.send(0,0)
# clean-up
del cs

View File

@ -1,15 +0,0 @@
LAMMPS W data file
2 atoms
1 atom types
0.0 3.16 xlo xhi
0.0 3.16 ylo yhi
0.0 3.16 zlo zhi
Atoms
1 1 0.000 0.000 0.000
2 1 1.58 1.58 1.58

View File

@ -1,34 +0,0 @@
# small W unit cell for use with NWChem
variable mode index file
if "${mode} == file" then &
"message client md file tmp.couple" &
elif "${mode} == zmq" &
"message client md zmq localhost:5555" &
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
mass 1 183.85
replicate $x $y $z
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3

View File

@ -1,38 +0,0 @@
# small W unit cell for use with NWChem
variable mode index file
if "${mode} == file" then &
"message client md file tmp.couple" &
elif "${mode} == zmq" &
"message client md zmq localhost:5555" &
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
mass 1 183.85
group one id 2
displace_atoms one move 0.1 0.2 0.3
replicate $x $y $z
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
dump 1 all custom 1 dump.W.min id type x y z
thermo 1
minimize 1.0e-6 1.0e-6 10 50

View File

@ -1,76 +0,0 @@
LAMMPS (18 Sep 2018)
# small W unit cell for use with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
reading atoms ...
2 atoms
mass 1 183.85
replicate $x $y $z
replicate 1 $y $z
replicate 1 1 $z
replicate 1 1 1
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
2 atoms
Time spent = 0.000187325 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
Per MPI rank memory allocation (min/avg/max) = 1.8 | 1.8 | 1.8 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 0 0 -549.75686 36815830
1 300 0 0 -549.75686 36815830
2 300 0 0 -549.75686 36815830
3 300 0 0 -549.75686 36815830
Loop time of 0.400933 on 1 procs for 3 steps with 2 atoms
Performance: 0.646 ns/day, 37.123 hours/ns, 7.483 timesteps/s
0.1% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 4.755e-06 | 4.755e-06 | 4.755e-06 | 0.0 | 0.00
Output | 0.00010114 | 0.00010114 | 0.00010114 | 0.0 | 0.03
Modify | 0.40082 | 0.40082 | 0.40082 | 0.0 | 99.97
Other | | 1.232e-05 | | | 0.00
Nlocal: 2 ave 2 max 2 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7 ave 7 max 7 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 0
Dangerous builds not checked
Total wall time: 0:00:09

View File

@ -1,78 +0,0 @@
LAMMPS (19 Sep 2019)
# small W unit cell for use with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
reading atoms ...
2 atoms
read_data CPU = 0.0014801 secs
mass 1 183.85
replicate $x $y $z
replicate 1 $y $z
replicate 1 1 $z
replicate 1 1 1
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
2 atoms
replicate CPU = 0.000123978 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:166)
Per MPI rank memory allocation (min/avg/max) = 1.801 | 1.801 | 1.801 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 0 0 -549.75686 36815830
1 298.93216 0 0 -549.75686 36815825
2 295.76254 0 0 -549.75687 36814830
3 290.55935 0 0 -549.75687 36811865
Loop time of 2.60414 on 1 procs for 3 steps with 2 atoms
Performance: 0.100 ns/day, 241.124 hours/ns, 1.152 timesteps/s
0.0% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 7.1526e-06 | 7.1526e-06 | 7.1526e-06 | 0.0 | 0.00
Output | 0.00012779 | 0.00012779 | 0.00012779 | 0.0 | 0.00
Modify | 2.604 | 2.604 | 2.604 | 0.0 | 99.99
Other | | 9.06e-06 | | | 0.00
Nlocal: 2 ave 2 max 2 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7 ave 7 max 7 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 0
Dangerous builds not checked
Total wall time: 0:00:05

View File

@ -1,92 +0,0 @@
LAMMPS (19 Sep 2019)
# small W unit cell for use with NWChem
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md file tmp.couple
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
reading atoms ...
2 atoms
read_data CPU = 0.00183487 secs
mass 1 183.85
group one id 2
1 atoms in group one
displace_atoms one move 0.1 0.2 0.3
replicate $x $y $z
replicate 1 $y $z
replicate 1 1 $z
replicate 1 1 1
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 1 MPI processor grid
2 atoms
replicate CPU = 0.000159979 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
dump 1 all custom 1 tmp.dump id type x y z
thermo 1
minimize 1.0e-6 1.0e-6 10 50
WARNING: Using 'neigh_modify every 1 delay 0 check yes' setting during minimization (../min.cpp:174)
WARNING: Communication cutoff is 0.0. No ghost atoms will be generated. Atoms may get lost. (../comm_brick.cpp:166)
Per MPI rank memory allocation (min/avg/max) = 4.676 | 4.676 | 4.676 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 0 0 -547.52142 28510277
1 300 0 0 -549.43104 35614471
2 300 0 0 -549.75661 36815830
3 300 0 0 -549.75662 36815830
Loop time of 7.71121 on 1 procs for 3 steps with 2 atoms
0.0% CPU use with 1 MPI tasks x no OpenMP threads
Minimization stats:
Stopping criterion = energy tolerance
Energy initial, next-to-last, final =
-547.560202518 -549.795386038 -549.795398827
Force two-norm initial, final = 16.0041 0.00108353
Force max component initial, final = 9.57978 0.000719909
Final line search alpha, max atom move = 1 0.000719909
Iterations, force evaluations = 3 5
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 9.5367e-07 | 9.5367e-07 | 9.5367e-07 | 0.0 | 0.00
Comm | 1.3113e-05 | 1.3113e-05 | 1.3113e-05 | 0.0 | 0.00
Output | 0.00017023 | 0.00017023 | 0.00017023 | 0.0 | 0.00
Modify | 7.7109 | 7.7109 | 7.7109 | 0.0 |100.00
Other | | 0.0001729 | | | 0.00
Nlocal: 2 ave 2 max 2 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 1
Dangerous builds not checked
Total wall time: 0:00:19

File diff suppressed because it is too large Load Diff

View File

@ -1,817 +0,0 @@
argument 1 = nwchem_lammps.nw
============================== echo of input deck ==============================
echo
#**** Enter the geometry using fractional coordinates ****
geometry units angstrom noautosym
system crystal
lat_a 3.16d0
lat_b 3.16d0
lat_c 3.16d0
end
W 0.999335 0.99967 0.998875
W 0.500665 0.50033 0.501125
end
nwpw
vectors input nwchem_lammps.movecs
end
#***** setup the nwpw gamma point code ****
nwpw
simulation_cell
ngrid 16 16 16
end
ewald_ncut 8
mulliken
lcao #old default
end
nwpw
tolerances 1.0d-9 1.0d-9
end
task pspw stress
================================================================================
Northwest Computational Chemistry Package (NWChem) 6.8
------------------------------------------------------
Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352
Copyright (c) 1994-2018
Pacific Northwest National Laboratory
Battelle Memorial Institute
NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file
ACKNOWLEDGMENT
--------------
This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.
Job information
---------------
hostname = singsing
program = /home/sjplimp/tools/nwchem-6.8.1-release/bin/LINUX64/nwchem
date = Thu Oct 3 16:57:17 2019
compiled = Wed_Oct_02_09:25:27_2019
source = /home/sjplimp/tools/nwchem-6.8.1-release
nwchem branch = Development
nwchem revision = N/A
ga revision = 5.6.5
use scalapack = F
input = nwchem_lammps.nw
prefix = nwchem_lammps.
data base = ./nwchem_lammps.db
status = restart
nproc = 1
time left = -1s
Memory information
------------------
heap = 13107200 doubles = 100.0 Mbytes
stack = 13107197 doubles = 100.0 Mbytes
global = 26214400 doubles = 200.0 Mbytes (distinct from heap & stack)
total = 52428797 doubles = 400.0 Mbytes
verify = yes
hardfail = no
Directory information
---------------------
0 permanent = .
0 scratch = .
Previous task information
-------------------------
Theory = pspw
Operation = stress
Status = unknown
Qmmm = F
Ignore = F
Geometries in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 geometry 2 Thu Oct 3 16:57:16 2019
The geometry named "geometry" is the default for restart
Basis sets in the database
--------------------------
There are no basis sets in the database
NWChem Input Module
-------------------
!!!!!!!!! geom_3d NEEDS TESTING !!!!!!!!!!
Geometry "geometry" -> ""
-------------------------
Output coordinates in angstroms (scale by 1.889725989 to convert to a.u.)
No. Tag Charge X Y Z
---- ---------------- ---------- -------------- -------------- --------------
1 W 74.0000 3.15789860 3.15895720 3.15644500
2 W 74.0000 1.58210140 1.58104280 1.58355500
Lattice Parameters
------------------
lattice vectors in angstroms (scale by 1.889725989 to convert to a.u.)
a1=< 3.160 0.000 0.000 >
a2=< 0.000 3.160 0.000 >
a3=< 0.000 0.000 3.160 >
a= 3.160 b= 3.160 c= 3.160
alpha= 90.000 beta= 90.000 gamma= 90.000
omega= 31.6
reciprocal lattice vectors in a.u.
b1=< 1.052 0.000 -0.000 >
b2=< -0.000 1.052 -0.000 >
b3=< 0.000 0.000 1.052 >
Atomic Mass
-----------
W 183.951000
XYZ format geometry
-------------------
2
geometry
W 3.15789860 3.15895720 3.15644500
W 1.58210140 1.58104280 1.58355500
==============================================================================
internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 W | 1 W | 5.15689 | 2.72891
------------------------------------------------------------------------------
number of included internuclear distances: 1
==============================================================================
>>>> PSPW Parallel Module - stress <<<<
****************************************************
* *
* NWPW PSPW Calculation *
* *
* [ (Grassmann/Stiefel manifold implementation) ] *
* *
* [ NorthWest Chemistry implementation ] *
* *
* version #5.10 06/12/02 *
* *
* This code was developed by Eric J. Bylaska, *
* and was based upon algorithms and code *
* developed by the group of Prof. John H. Weare *
* *
****************************************************
>>> JOB STARTED AT Thu Oct 3 16:57:17 2019 <<<
================ input data ========================
input psi filename:./nwchem_lammps.movecs
initializing pspw_APC data structure
------------------------------------
nga, ngs: 3 6
Gc : 2.5000000000000000
APC gamma: 1 0.59999999999999998
APC gamma: 2 0.90000000000000002
APC gamma: 3 1.3500000000000001
number of processors used: 1
processor grid : 1 x 1
parallel mapping :2d hilbert
parallel mapping : balanced
number of threads : 1
parallel io : off
options:
boundary conditions = periodic (version3)
electron spin = restricted
exchange-correlation = LDA (Vosko et al) parameterization
elements involved in the cluster:
1: W valence charge: 6.0000 lmax= 2
comment : Troullier-Martins pseudopotential
pseudpotential type : 0
highest angular component : 2
local potential used : 0
number of non-local projections: 8
semicore corrections included : 1.800 (radius) 4.538 (charge)
cutoff = 2.389 3.185 2.244
total charge: 0.000
atomic composition:
W : 2
number of electrons: spin up= 6 ( 6 per task) down= 6 ( 6 per task) (Fourier space)
number of orbitals : spin up= 6 ( 6 per task) down= 6 ( 6 per task) (Fourier space)
supercell:
cell_name: cell_default
lattice: a1=< 5.972 0.000 0.000 >
a2=< 0.000 5.972 0.000 >
a3=< 0.000 0.000 5.972 >
reciprocal: b1=< 1.052 0.000 -0.000 >
b2=< -0.000 1.052 -0.000 >
b3=< 0.000 0.000 1.052 >
lattice: a= 5.972 b= 5.972 c= 5.972
alpha= 90.000 beta= 90.000 gamma= 90.000
omega= 212.9
density cutoff= 35.427 fft= 16x 16x 16( 1052 waves 1052 per task)
wavefnc cutoff= 35.427 fft= 16x 16x 16( 1052 waves 1052 per task)
Ewald summation: cut radius= 1.90 and 8
Madelung Wigner-Seitz= 1.76011888 (alpha= 2.83729748 rs= 3.70444413)
technical parameters:
time step= 5.80 fictitious mass= 400000.0
tolerance=0.100E-08 (energy) 0.100E-08 (density)
maximum iterations = 1000 ( 10 inner 100 outer )
== Energy Calculation ==
====== Grassmann conjugate gradient iteration ======
>>> ITERATION STARTED AT Thu Oct 3 16:57:17 2019 <<<
iter. Energy DeltaE DeltaRho
------------------------------------------------------
10 -0.2020457267E+02 -0.12753E-06 0.54770E-09
20 -0.2020457281E+02 -0.96520E-09 0.65680E-11
*** tolerance ok. iteration terminated
>>> ITERATION ENDED AT Thu Oct 3 16:57:18 2019 <<<
== Summary Of Results ==
number of electrons: spin up= 6.00000 down= 6.00000 (real space)
total energy : -0.2020457281E+02 ( -0.10102E+02/ion)
total orbital energy: 0.5093546150E+01 ( 0.84892E+00/electron)
hartree energy : 0.2903382088E+00 ( 0.48390E-01/electron)
exc-corr energy : -0.9445078100E+01 ( -0.15742E+01/electron)
ion-ion energy : -0.2193939674E+02 ( -0.10970E+02/ion)
kinetic (planewave) : 0.1441586264E+02 ( 0.24026E+01/electron)
V_local (planewave) : 0.1156111351E+02 ( 0.19269E+01/electron)
V_nl (planewave) : -0.1508741234E+02 ( -0.25146E+01/electron)
V_Coul (planewave) : 0.5806764176E+00 ( 0.96779E-01/electron)
V_xc. (planewave) : -0.6376694082E+01 ( -0.10628E+01/electron)
Virial Coefficient : -0.6466707350E+00
orbital energies:
0.5414291E+00 ( 14.733eV)
0.5414285E+00 ( 14.733eV)
0.5414070E+00 ( 14.733eV)
0.3596871E+00 ( 9.788eV)
0.3596781E+00 ( 9.787eV)
0.2031433E+00 ( 5.528eV)
Total PSPW energy : -0.2020457281E+02
=== Spin Contamination ===
<Sexact^2> = 0.0000000000000000
<S^2> = 0.0000000000000000
== Center of Charge ==
spin up ( -0.0030, -0.0015, -0.0050 )
spin down ( -0.0030, -0.0015, -0.0050 )
total ( -0.0030, -0.0015, -0.0050 )
ionic ( -1.4929, -1.4929, -1.4929 )
== Molecular Dipole wrt Center of Mass ==
mu = ( -17.8792, -17.8970, -17.8547 ) au
|mu| = 30.9638 au, 78.6976 Debye
Translation force removed: ( -0.00000 -0.00000 -0.00000)
============= Ion Gradients =================
Ion Forces:
1 W ( 0.002737 0.001358 0.004631 )
2 W ( -0.002737 -0.001358 -0.004631 )
C.O.M. ( 0.000000 0.000000 0.000000 )
===============================================
|F| = 0.784689E-02
|F|/nion = 0.392344E-02
max|Fatom|= 0.554859E-02 ( 0.285eV/Angstrom)
======================
= Stress calculation =
======================
============= total gradient ==============
S = ( 0.12512 0.00000 0.00000 )
( 0.00000 0.12512 0.00001 )
( 0.00000 0.00001 0.12511 )
===================================================
|S| = 0.21671E+00
pressure = 0.125E+00 au
= 0.368E+02 Mbar
= 0.368E+04 GPa
= 0.363E+08 atm
dE/da = 0.12512
dE/db = 0.12512
dE/dc = 0.12511
dE/dalpha = -0.00003
dE/dbeta = -0.00002
dE/dgamma = -0.00001
*************************************************************
** **
** PSPW Mulliken analysis **
** **
** Population analysis algorithm devloped by Ryoichi Kawai **
** **
** Thu Oct 3 16:57 **
** **
*************************************************************
== XYZ OUTPUT ==
2
W -0.002101 -0.001043 -0.003555
W -1.577898 -1.578956 -1.576444
== Atomic Orbital Expansion ==
W nodamping
=====================================================
| POPULATION ANALYSIS OF FILLED MOLECULAR ORBITALS |
=====================================================
== Using pseudoatomic orbital expansion ==
------------------------------------------------------------------------------
*** ORBITAL= 1*** SPIN=BOTH SUM= 0.12471E+01 E= 0.54143E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 0.00000
px pz py
1 W 1 0.00000 -0.00018 -0.00011 0.00005
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.49999 0.00003 -0.68532 0.00001 0.10591 0.13824
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00001 -0.00003 -0.00187 -0.00238 -0.00028 0.00001 0.00000 -0.00017
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00000 0.00018 0.00011 -0.00005
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.49999 0.00003 -0.68532 0.00001 0.10591 0.13824
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00001 -0.00003 0.00187 0.00238 0.00028 -0.00001 -0.00000 0.00017
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 2*** SPIN=BOTH SUM= 0.12472E+01 E= 0.54143E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 0.00000
px pz py
1 W 1 0.00000 0.00002 -0.00005 -0.00011
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.49998 -0.00001 -0.02322 0.00001 -0.61187 0.35363
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00002 -0.00001 0.00071 -0.00049 -0.00015 -0.00283 0.00006 0.00266
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00000 -0.00002 0.00005 0.00011
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.49998 -0.00001 -0.02322 0.00001 -0.61187 0.35363
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00002 -0.00001 -0.00071 0.00049 0.00015 0.00283 -0.00006 -0.00266
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 3*** SPIN=BOTH SUM= 0.12472E+01 E= 0.54141E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 -0.00000
px pz py
1 W 1 0.00000 0.00010 0.00006 0.00020
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.49999 0.00000 0.17259 0.00000 0.33820 0.59651
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00001 0.00000 0.00001 -0.00015 0.00015 -0.00033 -0.00325 -0.00033
s
2 W 0 0.00000 -0.00000
px pz py
2 W 1 0.00000 -0.00010 -0.00006 -0.00020
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.49999 0.00000 0.17259 0.00000 0.33820 0.59651
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00001 0.00000 -0.00001 0.00015 -0.00015 0.00033 0.00325 0.00033
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 4*** SPIN=BOTH SUM= 0.14577E+01 E= 0.35969E+00 ( 9.788eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 -0.00000
px pz py
1 W 1 0.00002 0.00162 -0.00440 0.00049
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.48998 -0.09896 0.00001 0.69296 0.00001 -0.00001
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00999 -0.09993 0.00031 -0.00131 -0.00234 -0.00064 0.00000 0.00022
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00002 0.00162 -0.00440 0.00049
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.48998 0.09896 -0.00001 -0.69296 -0.00001 0.00001
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00999 0.09993 0.00031 -0.00131 -0.00234 -0.00064 0.00000 0.00022
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 0.9800 0.0200
------------------------------------------------------------------------------
*** ORBITAL= 5*** SPIN=BOTH SUM= 0.14616E+01 E= 0.35968E+00 ( 9.787eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 0.00000
px pz py
1 W 1 0.00001 0.00206 0.00063 -0.00121
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.48871 -0.69206 -0.00002 -0.09883 0.00001 0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.01129 -0.10621 0.00214 0.00009 0.00033 0.00014 0.00000 0.00063
s
2 W 0 0.00000 -0.00000
px pz py
2 W 1 0.00001 0.00206 0.00063 -0.00121
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.48871 0.69206 0.00002 0.09883 -0.00001 -0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.01129 0.10621 0.00214 0.00009 0.00033 0.00014 0.00000 0.00063
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 0.9774 0.0226
------------------------------------------------------------------------------
*** ORBITAL= 6*** SPIN=BOTH SUM= 0.19540E+01 E= 0.20314E+00 ( 5.528eV)
NO ATOM L POPULATION
s
1 W 0 0.49974 -0.70692
px pz py
1 W 1 0.00000 0.00028 0.00047 0.00014
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.00000 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00026 0.01609 -0.00000 -0.00007 0.00021 -0.00003 0.00000 -0.00004
s
2 W 0 0.49974 -0.70692
px pz py
2 W 1 0.00000 -0.00028 -0.00047 -0.00014
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.00000 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00026 0.01609 0.00000 0.00007 -0.00021 0.00003 -0.00000 0.00004
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.9995 0.0000 0.0000 0.0005
========================================
| POPULATION ANALYSIS ON EACH ATOM |
========================================
NO ATOM SPIN TOTAL s p d f
1 W UP 3.00000 0.49974 0.00003 2.47866 0.02157
1 W DOWN 3.00000 0.49974 0.00003 2.47866 0.02157
2 W UP 3.00000 0.49974 0.00003 2.47866 0.02157
2 W DOWN 3.00000 0.49974 0.00003 2.47866 0.02157
=== TOTAL ANGULAR MOMENTUM POPULATION ===
SPIN s p d f
UP 16.66% 0.00% 82.62% 0.72%
UP 16.66% 0.00% 82.62% 0.72%
TOTAL 16.66% 0.00% 82.62% 0.72%
*************************************************************
** **
** PSPW Atomic Point Charge (APC) Analysis **
** **
** Point charge analysis based on paper by P.E. Blochl **
** (J. Chem. Phys. vol 103, page 7422, 1995) **
** **
*************************************************************
pspw_APC data structure
-----------------------
nga, ngs: 3 6
Gc : 2.5000000000000000
APC gamma: 1 0.59999999999999998
APC gamma: 2 0.90000000000000002
APC gamma: 3 1.3500000000000001
charge analysis on each atom
----------------------------
no atom Qelc Qion Qtotal
-- ---- ------- ------- -------
1 W -6.000 6.000 -0.000
2 W -6.000 6.000 -0.000
Total Q -12.000 12.000 -0.000
gaussian coefficients of model density
--------------------------------------
no atom g=0.000 g=0.600 g=0.900 g=1.350
-- ---- ------- ------- ------- -------
1 W 6.000 -7.235 17.653 -16.419
2 W 6.000 -7.235 17.653 -16.419
=== Electric Field at Atoms ===
1 W Atomic Electric Field =( -0.00022 -0.00011 -0.00038 )
(ion) =( 0.00094 0.00047 0.00159 )
(electronic) =( -0.00116 -0.00058 -0.00197 )
2 W Atomic Electric Field =( 0.00022 0.00011 0.00038 )
(ion) =( -0.00094 -0.00047 -0.00159 )
(electronic) =( 0.00116 0.00058 0.00197 )
output psi filename:./nwchem_lammps.movecs
== Timing ==
cputime in seconds
prologue : 0.114428E+00
main loop : 0.475396E+00
epilogue : 0.316691E-01
total : 0.621493E+00
cputime/step: 0.559289E-02 ( 85 evalulations, 20 linesearches)
Time spent doing total step percent
total time : 0.623259E+00 0.733246E-02 100.0 %
i/o time : 0.103071E-01 0.121260E-03 1.7 %
FFTs : 0.348712E-01 0.410250E-03 5.6 %
dot products : 0.981057E-02 0.115418E-03 1.6 %
geodesic : 0.696999E-01 0.819999E-03 11.2 %
ffm_dgemm : 0.104145E-02 0.122523E-04 0.2 %
fmf_dgemm : 0.565297E-01 0.665055E-03 9.1 %
mmm_dgemm : 0.129490E-03 0.152342E-05 0.0 %
m_diagonalize : 0.701885E-03 0.825747E-05 0.1 %
exchange correlation : 0.764353E-01 0.899239E-03 12.3 %
local pseudopotentials : 0.439882E-03 0.517509E-05 0.1 %
non-local pseudopotentials : 0.271890E-01 0.319871E-03 4.4 %
hartree potentials : 0.202482E-02 0.238214E-04 0.3 %
ion-ion interaction : 0.104062E+00 0.122426E-02 16.7 %
structure factors : 0.152984E-01 0.179981E-03 2.5 %
phase factors : 0.107278E-04 0.126210E-06 0.0 %
masking and packing : 0.304392E-01 0.358108E-03 4.9 %
queue fft : 0.111536E+00 0.131219E-02 17.9 %
queue fft (serial) : 0.708244E-01 0.833228E-03 11.4 %
queue fft (message passing): 0.360800E-01 0.424470E-03 5.8 %
non-local psp FFM : 0.860008E-02 0.101177E-03 1.4 %
non-local psp FMF : 0.111482E-01 0.131155E-03 1.8 %
non-local psp FFM A : 0.214632E-02 0.252509E-04 0.3 %
non-local psp FFM B : 0.560879E-02 0.659858E-04 0.9 %
>>> JOB COMPLETED AT Thu Oct 3 16:57:18 2019 <<<
Task times cpu: 0.6s wall: 0.6s
Summary of allocated global arrays
-----------------------------------
No active global arrays
GA Statistics for process 0
------------------------------
create destroy get put acc scatter gather read&inc
calls: 0 0 0 0 0 0 0 0
number of processes/call 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
bytes total: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
bytes remote: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
Max memory consumed for GA by this process: 0 bytes
MA_summarize_allocated_blocks: starting scan ...
MA_summarize_allocated_blocks: scan completed: 0 heap blocks, 0 stack blocks
MA usage statistics:
allocation statistics:
heap stack
---- -----
current number of blocks 0 0
maximum number of blocks 294 17
current total bytes 0 0
maximum total bytes 4879496 351944
maximum total K-bytes 4880 352
maximum total M-bytes 5 1
NWChem Input Module
-------------------
CITATION
--------
Please cite the following reference when publishing
results obtained with NWChem:
M. Valiev, E.J. Bylaska, N. Govind, K. Kowalski,
T.P. Straatsma, H.J.J. van Dam, D. Wang, J. Nieplocha,
E. Apra, T.L. Windus, W.A. de Jong
"NWChem: a comprehensive and scalable open-source
solution for large scale molecular simulations"
Comput. Phys. Commun. 181, 1477 (2010)
doi:10.1016/j.cpc.2010.04.018
AUTHORS
-------
E. Apra, E. J. Bylaska, W. A. de Jong, N. Govind, K. Kowalski,
T. P. Straatsma, M. Valiev, H. J. J. van Dam, D. Wang, T. L. Windus,
J. Hammond, J. Autschbach, K. Bhaskaran-Nair, J. Brabec, K. Lopata,
S. A. Fischer, S. Krishnamoorthy, M. Jacquelin, W. Ma, M. Klemm, O. Villa,
Y. Chen, V. Anisimov, F. Aquino, S. Hirata, M. T. Hackler, V. Konjkov,
D. Mejia-Rodriguez, T. Risthaus, M. Malagoli, A. Marenich,
A. Otero-de-la-Roza, J. Mullin, P. Nichols, R. Peverati, J. Pittner, Y. Zhao,
P.-D. Fan, A. Fonari, M. J. Williamson, R. J. Harrison, J. R. Rehr,
M. Dupuis, D. Silverstein, D. M. A. Smith, J. Nieplocha, V. Tipparaju,
M. Krishnan, B. E. Van Kuiken, A. Vazquez-Mayagoitia, L. Jensen, M. Swart,
Q. Wu, T. Van Voorhis, A. A. Auer, M. Nooijen, L. D. Crosby, E. Brown,
G. Cisneros, G. I. Fann, H. Fruchtl, J. Garza, K. Hirao, R. A. Kendall,
J. A. Nichols, K. Tsemekhman, K. Wolinski, J. Anchell, D. E. Bernholdt,
P. Borowski, T. Clark, D. Clerc, H. Dachsel, M. J. O. Deegan, K. Dyall,
D. Elwood, E. Glendening, M. Gutowski, A. C. Hess, J. Jaffe, B. G. Johnson,
J. Ju, R. Kobayashi, R. Kutteh, Z. Lin, R. Littlefield, X. Long, B. Meng,
T. Nakajima, S. Niu, L. Pollack, M. Rosing, K. Glaesemann, G. Sandrone,
M. Stave, H. Taylor, G. Thomas, J. H. van Lenthe, A. T. Wong, Z. Zhang.
Total times cpu: 0.6s wall: 0.7s

View File

@ -1,816 +0,0 @@
argument 1 = nwchem_lammps.nw
============================== echo of input deck ==============================
echo
#**** Enter the geometry using fractional coordinates ****
geometry units angstrom noautosym
system crystal
lat_a 3.16d0
lat_b 3.16d0
lat_c 3.16d0
end
W 0.0158218 0.0316436 0.0474661
W 0.515824 0.531647 0.547471
end
nwpw
vectors input nwchem_lammps.movecs
end
#***** setup the nwpw gamma point code ****
nwpw
simulation_cell
ngrid 16 16 16
end
ewald_ncut 8
mulliken
lcao #old default
end
nwpw
tolerances 1.0d-9 1.0d-9
end
task pspw stress
================================================================================
Northwest Computational Chemistry Package (NWChem) 6.8
------------------------------------------------------
Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352
Copyright (c) 1994-2018
Pacific Northwest National Laboratory
Battelle Memorial Institute
NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file
ACKNOWLEDGMENT
--------------
This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.
Job information
---------------
hostname = singsing
program = /home/sjplimp/tools/nwchem-6.8.1-release/bin/LINUX64/nwchem
date = Thu Oct 3 16:58:54 2019
compiled = Wed_Oct_02_09:25:27_2019
source = /home/sjplimp/tools/nwchem-6.8.1-release
nwchem branch = Development
nwchem revision = N/A
ga revision = 5.6.5
use scalapack = F
input = nwchem_lammps.nw
prefix = nwchem_lammps.
data base = ./nwchem_lammps.db
status = restart
nproc = 1
time left = -1s
Memory information
------------------
heap = 13107200 doubles = 100.0 Mbytes
stack = 13107197 doubles = 100.0 Mbytes
global = 26214400 doubles = 200.0 Mbytes (distinct from heap & stack)
total = 52428797 doubles = 400.0 Mbytes
verify = yes
hardfail = no
Directory information
---------------------
0 permanent = .
0 scratch = .
Previous task information
-------------------------
Theory = pspw
Operation = stress
Status = unknown
Qmmm = F
Ignore = F
Geometries in the database
--------------------------
Name Natoms Last Modified
-------------------------------- ------ ------------------------
1 geometry 2 Thu Oct 3 16:58:53 2019
The geometry named "geometry" is the default for restart
Basis sets in the database
--------------------------
There are no basis sets in the database
NWChem Input Module
-------------------
!!!!!!!!! geom_3d NEEDS TESTING !!!!!!!!!!
Geometry "geometry" -> ""
-------------------------
Output coordinates in angstroms (scale by 1.889725989 to convert to a.u.)
No. Tag Charge X Y Z
---- ---------------- ---------- -------------- -------------- --------------
1 W 74.0000 0.04999689 0.09999378 0.14999288
2 W 74.0000 1.63000384 1.68000452 1.73000836
Lattice Parameters
------------------
lattice vectors in angstroms (scale by 1.889725989 to convert to a.u.)
a1=< 3.160 0.000 0.000 >
a2=< 0.000 3.160 0.000 >
a3=< 0.000 0.000 3.160 >
a= 3.160 b= 3.160 c= 3.160
alpha= 90.000 beta= 90.000 gamma= 90.000
omega= 31.6
reciprocal lattice vectors in a.u.
b1=< 1.052 0.000 -0.000 >
b2=< -0.000 1.052 -0.000 >
b3=< 0.000 0.000 1.052 >
Atomic Mass
-----------
W 183.951000
XYZ format geometry
-------------------
2
geometry
W 0.04999689 0.09999378 0.14999288
W 1.63000384 1.68000452 1.73000836
==============================================================================
internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 W | 1 W | 5.17154 | 2.73666
------------------------------------------------------------------------------
number of included internuclear distances: 1
==============================================================================
>>>> PSPW Parallel Module - stress <<<<
****************************************************
* *
* NWPW PSPW Calculation *
* *
* [ (Grassmann/Stiefel manifold implementation) ] *
* *
* [ NorthWest Chemistry implementation ] *
* *
* version #5.10 06/12/02 *
* *
* This code was developed by Eric J. Bylaska, *
* and was based upon algorithms and code *
* developed by the group of Prof. John H. Weare *
* *
****************************************************
>>> JOB STARTED AT Thu Oct 3 16:58:54 2019 <<<
================ input data ========================
input psi filename:./nwchem_lammps.movecs
initializing pspw_APC data structure
------------------------------------
nga, ngs: 3 6
Gc : 2.5000000000000000
APC gamma: 1 0.59999999999999998
APC gamma: 2 0.90000000000000002
APC gamma: 3 1.3500000000000001
number of processors used: 1
processor grid : 1 x 1
parallel mapping :2d hilbert
parallel mapping : balanced
number of threads : 1
parallel io : off
options:
boundary conditions = periodic (version3)
electron spin = restricted
exchange-correlation = LDA (Vosko et al) parameterization
elements involved in the cluster:
1: W valence charge: 6.0000 lmax= 2
comment : Troullier-Martins pseudopotential
pseudpotential type : 0
highest angular component : 2
local potential used : 0
number of non-local projections: 8
semicore corrections included : 1.800 (radius) 4.538 (charge)
cutoff = 2.389 3.185 2.244
total charge: 0.000
atomic composition:
W : 2
number of electrons: spin up= 6 ( 6 per task) down= 6 ( 6 per task) (Fourier space)
number of orbitals : spin up= 6 ( 6 per task) down= 6 ( 6 per task) (Fourier space)
supercell:
cell_name: cell_default
lattice: a1=< 5.972 0.000 0.000 >
a2=< 0.000 5.972 0.000 >
a3=< 0.000 0.000 5.972 >
reciprocal: b1=< 1.052 0.000 -0.000 >
b2=< -0.000 1.052 -0.000 >
b3=< 0.000 0.000 1.052 >
lattice: a= 5.972 b= 5.972 c= 5.972
alpha= 90.000 beta= 90.000 gamma= 90.000
omega= 212.9
density cutoff= 35.427 fft= 16x 16x 16( 1052 waves 1052 per task)
wavefnc cutoff= 35.427 fft= 16x 16x 16( 1052 waves 1052 per task)
Ewald summation: cut radius= 1.90 and 8
Madelung Wigner-Seitz= 1.76011888 (alpha= 2.83729748 rs= 3.70444413)
technical parameters:
time step= 5.80 fictitious mass= 400000.0
tolerance=0.100E-08 (energy) 0.100E-08 (density)
maximum iterations = 1000 ( 10 inner 100 outer )
== Energy Calculation ==
====== Grassmann conjugate gradient iteration ======
>>> ITERATION STARTED AT Thu Oct 3 16:58:54 2019 <<<
iter. Energy DeltaE DeltaRho
------------------------------------------------------
10 -0.2020460841E+02 -0.37164E-09 0.13892E-11
*** tolerance ok. iteration terminated
>>> ITERATION ENDED AT Thu Oct 3 16:58:54 2019 <<<
== Summary Of Results ==
number of electrons: spin up= 6.00000 down= 6.00000 (real space)
total energy : -0.2020460841E+02 ( -0.10102E+02/ion)
total orbital energy: 0.5093526999E+01 ( 0.84892E+00/electron)
hartree energy : 0.2902689593E+00 ( 0.48378E-01/electron)
exc-corr energy : -0.9445045626E+01 ( -0.15742E+01/electron)
ion-ion energy : -0.2193948849E+02 ( -0.10970E+02/ion)
kinetic (planewave) : 0.1441573280E+02 ( 0.24026E+01/electron)
V_local (planewave) : 0.1156119613E+02 ( 0.19269E+01/electron)
V_nl (planewave) : -0.1508727219E+02 ( -0.25145E+01/electron)
V_Coul (planewave) : 0.5805379185E+00 ( 0.96756E-01/electron)
V_xc. (planewave) : -0.6376667662E+01 ( -0.10628E+01/electron)
Virial Coefficient : -0.6466688811E+00
orbital energies:
0.5414223E+00 ( 14.733eV)
0.5414201E+00 ( 14.733eV)
0.5414174E+00 ( 14.733eV)
0.3596809E+00 ( 9.787eV)
0.3596804E+00 ( 9.787eV)
0.2031424E+00 ( 5.528eV)
Total PSPW energy : -0.2020460841E+02
=== Spin Contamination ===
<Sexact^2> = 0.0000000000000000
<S^2> = 0.0000000000000000
== Center of Charge ==
spin up ( 0.0106, 0.0203, 0.0283 )
spin down ( 0.0106, 0.0203, 0.0283 )
total ( 0.0106, 0.0203, 0.0283 )
ionic ( -1.3984, -1.3039, -1.2094 )
== Molecular Dipole wrt Center of Mass ==
mu = ( -16.9083, -15.8910, -14.8528 ) au
|mu| = 27.5503 au, 70.0218 Debye
Translation force removed: ( -0.00002 0.00000 0.00002)
============= Ion Gradients =================
Ion Forces:
1 W ( -0.000001 0.000005 0.000014 )
2 W ( 0.000001 -0.000005 -0.000014 )
C.O.M. ( -0.000000 0.000000 0.000000 )
===============================================
|F| = 0.216488E-04
|F|/nion = 0.108244E-04
max|Fatom|= 0.153080E-04 ( 0.001eV/Angstrom)
======================
= Stress calculation =
======================
============= total gradient ==============
S = ( 0.12513 0.00001 -0.00003 )
( 0.00001 0.12513 -0.00001 )
( -0.00003 -0.00001 0.12513 )
===================================================
|S| = 0.21673E+00
pressure = 0.125E+00 au
= 0.368E+02 Mbar
= 0.368E+04 GPa
= 0.363E+08 atm
dE/da = 0.12513
dE/db = 0.12513
dE/dc = 0.12513
dE/dalpha = 0.00006
dE/dbeta = 0.00020
dE/dgamma = -0.00008
*************************************************************
** **
** PSPW Mulliken analysis **
** **
** Population analysis algorithm devloped by Ryoichi Kawai **
** **
** Thu Oct 3 16:58 **
** **
*************************************************************
== XYZ OUTPUT ==
2
W 0.049997 0.099994 0.149993
W -1.529995 -1.479995 -1.429991
== Atomic Orbital Expansion ==
W nodamping
=====================================================
| POPULATION ANALYSIS OF FILLED MOLECULAR ORBITALS |
=====================================================
== Using pseudoatomic orbital expansion ==
------------------------------------------------------------------------------
*** ORBITAL= 1*** SPIN=BOTH SUM= 0.12471E+01 E= 0.54142E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 0.00000
px pz py
1 W 1 0.00000 0.00000 0.00000 0.00000
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.50000 -0.00001 -0.03953 0.00002 0.50309 0.49532
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00000 -0.00001 -0.00000 -0.00000 0.00000 0.00000 -0.00001 -0.00000
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00000 -0.00000 -0.00000 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.50000 -0.00001 -0.03953 0.00002 0.50309 0.49532
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00000 -0.00001 0.00000 0.00000 -0.00000 -0.00000 0.00001 0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 2*** SPIN=BOTH SUM= 0.12471E+01 E= 0.54142E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 -0.00000
px pz py
1 W 1 0.00000 0.00000 0.00000 0.00000
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.50000 0.00004 0.62658 0.00003 -0.20360 0.25680
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00000 -0.00004 0.00000 0.00000 -0.00000 -0.00000 -0.00001 0.00000
s
2 W 0 0.00000 -0.00000
px pz py
2 W 1 0.00000 -0.00000 -0.00000 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.50000 0.00004 0.62658 0.00003 -0.20360 0.25680
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00000 -0.00004 -0.00000 -0.00000 -0.00000 0.00000 0.00001 -0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 3*** SPIN=BOTH SUM= 0.12471E+01 E= 0.54142E+00 ( 14.733eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 0.00001
px pz py
1 W 1 0.00000 0.00000 -0.00000 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.50000 -0.00001 -0.32532 -0.00000 -0.45327 0.43441
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00000 0.00001 0.00000 -0.00000 -0.00000 -0.00000 -0.00000 0.00000
s
2 W 0 0.00000 0.00001
px pz py
2 W 1 0.00000 -0.00000 0.00000 0.00000
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.50000 -0.00001 -0.32532 -0.00000 -0.45327 0.43441
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00000 0.00001 -0.00000 0.00001 0.00000 0.00000 0.00000 -0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 1.0000 0.0000
------------------------------------------------------------------------------
*** ORBITAL= 4*** SPIN=BOTH SUM= 0.14785E+01 E= 0.35968E+00 ( 9.787eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 -0.00000
px pz py
1 W 1 0.00000 -0.00000 0.00001 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.48310 0.33381 0.00000 -0.60965 0.00000 0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.01690 0.13001 -0.00000 0.00000 0.00000 0.00000 0.00000 -0.00000
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00000 -0.00000 0.00001 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.48310 -0.33381 -0.00000 0.60965 -0.00000 -0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.01690 -0.13001 -0.00000 0.00000 0.00000 0.00000 0.00000 -0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 0.9662 0.0338
------------------------------------------------------------------------------
*** ORBITAL= 5*** SPIN=BOTH SUM= 0.14407E+01 E= 0.35968E+00 ( 9.787eV)
NO ATOM L POPULATION
s
1 W 0 0.00000 -0.00000
px pz py
1 W 1 0.00000 -0.00000 -0.00000 0.00001
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.49580 0.61761 -0.00000 0.33817 0.00000 -0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00420 0.06484 -0.00001 0.00000 -0.00000 -0.00000 -0.00000 -0.00000
s
2 W 0 0.00000 0.00000
px pz py
2 W 1 0.00000 -0.00000 -0.00000 0.00001
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.49580 -0.61761 0.00000 -0.33817 -0.00000 0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00420 -0.06484 -0.00001 0.00000 -0.00000 -0.00000 -0.00000 -0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.0000 0.0000 0.9916 0.0084
------------------------------------------------------------------------------
*** ORBITAL= 6*** SPIN=BOTH SUM= 0.19540E+01 E= 0.20314E+00 ( 5.528eV)
NO ATOM L POPULATION
s
1 W 0 0.49974 -0.70692
px pz py
1 W 1 0.00000 0.00000 -0.00000 0.00000
dx2-y2 dzx d3z2-1 dyz dxy
1 W 2 0.00000 0.00000 -0.00000 -0.00000 -0.00000 0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
1 W 3 0.00026 0.01609 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000
s
2 W 0 0.49974 -0.70692
px pz py
2 W 1 0.00000 -0.00000 0.00000 -0.00000
dx2-y2 dzx d3z2-1 dyz dxy
2 W 2 0.00000 0.00000 -0.00000 -0.00000 -0.00000 0.00000
fx(x2-3y2) fz(5z2-1) fx(5z2-1) fz(5z2-3) fy(5z2-1) fxyz fy(3x2-y2)
2 W 3 0.00026 0.01609 0.00000 0.00000 -0.00000 0.00000 0.00000 0.00000
=== DISTRIBUTION ===
1(W ) 0.5000 2(W ) 0.5000
== ANGULAR MOMENTUM POPULATIONS ===
s p d f
0.9995 0.0000 0.0000 0.0005
========================================
| POPULATION ANALYSIS ON EACH ATOM |
========================================
NO ATOM SPIN TOTAL s p d f
1 W UP 3.00000 0.49974 0.00000 2.47889 0.02137
1 W DOWN 3.00000 0.49974 0.00000 2.47889 0.02137
2 W UP 3.00000 0.49974 0.00000 2.47889 0.02137
2 W DOWN 3.00000 0.49974 0.00000 2.47889 0.02137
=== TOTAL ANGULAR MOMENTUM POPULATION ===
SPIN s p d f
UP 16.66% 0.00% 82.63% 0.71%
UP 16.66% 0.00% 82.63% 0.71%
TOTAL 16.66% 0.00% 82.63% 0.71%
*************************************************************
** **
** PSPW Atomic Point Charge (APC) Analysis **
** **
** Point charge analysis based on paper by P.E. Blochl **
** (J. Chem. Phys. vol 103, page 7422, 1995) **
** **
*************************************************************
pspw_APC data structure
-----------------------
nga, ngs: 3 6
Gc : 2.5000000000000000
APC gamma: 1 0.59999999999999998
APC gamma: 2 0.90000000000000002
APC gamma: 3 1.3500000000000001
charge analysis on each atom
----------------------------
no atom Qelc Qion Qtotal
-- ---- ------- ------- -------
1 W -6.000 6.000 -0.000
2 W -6.000 6.000 0.000
Total Q -12.000 12.000 -0.000
gaussian coefficients of model density
--------------------------------------
no atom g=0.000 g=0.600 g=0.900 g=1.350
-- ---- ------- ------- ------- -------
1 W 6.000 -7.235 17.654 -16.419
2 W 6.000 -7.234 17.651 -16.418
=== Electric Field at Atoms ===
1 W Atomic Electric Field =( -0.00002 0.00000 0.00001 )
(ion) =( 0.00000 0.00000 0.00000 )
(electronic) =( -0.00002 -0.00000 0.00001 )
2 W Atomic Electric Field =( -0.00002 0.00000 0.00002 )
(ion) =( -0.00000 -0.00000 -0.00000 )
(electronic) =( -0.00002 0.00000 0.00002 )
output psi filename:./nwchem_lammps.movecs
== Timing ==
cputime in seconds
prologue : 0.991130E-01
main loop : 0.101190E+00
epilogue : 0.203540E-01
total : 0.220657E+00
cputime/step: 0.252975E-01 ( 4 evalulations, 1 linesearches)
Time spent doing total step percent
total time : 0.222262E+00 0.555655E-01 100.0 %
i/o time : 0.847340E-02 0.211835E-02 3.8 %
FFTs : 0.576015E-02 0.144004E-02 2.6 %
dot products : 0.157053E-02 0.392634E-03 0.7 %
geodesic : 0.203228E-02 0.508070E-03 0.9 %
ffm_dgemm : 0.641376E-04 0.160344E-04 0.0 %
fmf_dgemm : 0.202988E-02 0.507471E-03 0.9 %
mmm_dgemm : 0.286302E-05 0.715756E-06 0.0 %
m_diagonalize : 0.101088E-03 0.252721E-04 0.0 %
exchange correlation : 0.287819E-02 0.719547E-03 1.3 %
local pseudopotentials : 0.346661E-03 0.866652E-04 0.2 %
non-local pseudopotentials : 0.268912E-02 0.672280E-03 1.2 %
hartree potentials : 0.163791E-03 0.409476E-04 0.1 %
ion-ion interaction : 0.699389E-01 0.174847E-01 31.5 %
structure factors : 0.889608E-02 0.222402E-02 4.0 %
phase factors : 0.102510E-04 0.256275E-05 0.0 %
masking and packing : 0.839656E-02 0.209914E-02 3.8 %
queue fft : 0.418949E-02 0.104737E-02 1.9 %
queue fft (serial) : 0.264608E-02 0.661519E-03 1.2 %
queue fft (message passing): 0.136477E-02 0.341193E-03 0.6 %
non-local psp FFM : 0.391964E-03 0.979910E-04 0.2 %
non-local psp FMF : 0.407219E-03 0.101805E-03 0.2 %
non-local psp FFM A : 0.144235E-03 0.360588E-04 0.1 %
non-local psp FFM B : 0.216961E-03 0.542402E-04 0.1 %
>>> JOB COMPLETED AT Thu Oct 3 16:58:54 2019 <<<
Task times cpu: 0.2s wall: 0.2s
Summary of allocated global arrays
-----------------------------------
No active global arrays
GA Statistics for process 0
------------------------------
create destroy get put acc scatter gather read&inc
calls: 0 0 0 0 0 0 0 0
number of processes/call 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
bytes total: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
bytes remote: 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00
Max memory consumed for GA by this process: 0 bytes
MA_summarize_allocated_blocks: starting scan ...
MA_summarize_allocated_blocks: scan completed: 0 heap blocks, 0 stack blocks
MA usage statistics:
allocation statistics:
heap stack
---- -----
current number of blocks 0 0
maximum number of blocks 294 17
current total bytes 0 0
maximum total bytes 4879496 351944
maximum total K-bytes 4880 352
maximum total M-bytes 5 1
NWChem Input Module
-------------------
CITATION
--------
Please cite the following reference when publishing
results obtained with NWChem:
M. Valiev, E.J. Bylaska, N. Govind, K. Kowalski,
T.P. Straatsma, H.J.J. van Dam, D. Wang, J. Nieplocha,
E. Apra, T.L. Windus, W.A. de Jong
"NWChem: a comprehensive and scalable open-source
solution for large scale molecular simulations"
Comput. Phys. Commun. 181, 1477 (2010)
doi:10.1016/j.cpc.2010.04.018
AUTHORS
-------
E. Apra, E. J. Bylaska, W. A. de Jong, N. Govind, K. Kowalski,
T. P. Straatsma, M. Valiev, H. J. J. van Dam, D. Wang, T. L. Windus,
J. Hammond, J. Autschbach, K. Bhaskaran-Nair, J. Brabec, K. Lopata,
S. A. Fischer, S. Krishnamoorthy, M. Jacquelin, W. Ma, M. Klemm, O. Villa,
Y. Chen, V. Anisimov, F. Aquino, S. Hirata, M. T. Hackler, V. Konjkov,
D. Mejia-Rodriguez, T. Risthaus, M. Malagoli, A. Marenich,
A. Otero-de-la-Roza, J. Mullin, P. Nichols, R. Peverati, J. Pittner, Y. Zhao,
P.-D. Fan, A. Fonari, M. J. Williamson, R. J. Harrison, J. R. Rehr,
M. Dupuis, D. Silverstein, D. M. A. Smith, J. Nieplocha, V. Tipparaju,
M. Krishnan, B. E. Van Kuiken, A. Vazquez-Mayagoitia, L. Jensen, M. Swart,
Q. Wu, T. Van Voorhis, A. A. Auer, M. Nooijen, L. D. Crosby, E. Brown,
G. Cisneros, G. I. Fann, H. Fruchtl, J. Garza, K. Hirao, R. A. Kendall,
J. A. Nichols, K. Tsemekhman, K. Wolinski, J. Anchell, D. E. Bernholdt,
P. Borowski, T. Clark, D. Clerc, H. Dachsel, M. J. O. Deegan, K. Dyall,
D. Elwood, E. Glendening, M. Gutowski, A. C. Hess, J. Jaffe, B. G. Johnson,
J. Ju, R. Kobayashi, R. Kutteh, Z. Lin, R. Littlefield, X. Long, B. Meng,
T. Nakajima, S. Niu, L. Pollack, M. Rosing, K. Glaesemann, G. Sandrone,
M. Stave, H. Taylor, G. Thomas, J. H. van Lenthe, A. T. Wong, Z. Zhang.
Total times cpu: 0.2s wall: 0.3s

View File

@ -1,28 +0,0 @@
echo
#**** Enter the geometry using fractional coordinates ****
geometry units angstrom noautosym
system crystal
lat_a 3.16d0
lat_b 3.16d0
lat_c 3.16d0
end
W 0.0 0.0 0.0
W 0.5 0.5 0.5
end
#***** setup the nwpw gamma point code ****
nwpw
simulation_cell
ngrid 16 16 16
end
ewald_ncut 8
mulliken
lcao #old default
end
nwpw
tolerances 1.0d-9 1.0d-9
end
task pspw stress

View File

@ -1,53 +0,0 @@
# Startparameter for this run:
NWRITE = 2 write-flag & timer
PREC = normal normal or accurate (medium, high low for compatibility)
ISTART = 0 job : 0-new 1-cont 2-samecut
ICHARG = 2 charge: 1-file 2-atom 10-const
ISPIN = 1 spin polarized calculation?
LSORBIT = F spin-orbit coupling
INIWAV = 1 electr: 0-lowe 1-rand 2-diag
# Electronic Relaxation 1
ENCUT = 600.0 eV #Plane wave energy cutoff
ENINI = 600.0 initial cutoff
NELM = 100; NELMIN= 2; NELMDL= -5 # of ELM steps
EDIFF = 0.1E-05 stopping-criterion for ELM
# Ionic relaxation
EDIFFG = 0.1E-02 stopping-criterion for IOM
NSW = 0 number of steps for IOM
NBLOCK = 1; KBLOCK = 1 inner block; outer block
IBRION = -1 ionic relax: 0-MD 1-quasi-New 2-CG #No ion relaxation with -1
NFREE = 0 steps in history (QN), initial steepest desc. (CG)
ISIF = 2 stress and relaxation # 2: F-yes Sts-yes RlxIon-yes cellshape-no cellvol-no
IWAVPR = 10 prediction: 0-non 1-charg 2-wave 3-comb # 10: TMPCAR stored in memory rather than file
POTIM = 0.5000 time-step for ionic-motion
TEBEG = 3500.0; TEEND = 3500.0 temperature during run # Finite Temperature variables if AI-MD is on
SMASS = -3.00 Nose mass-parameter (am)
estimated Nose-frequenzy (Omega) = 0.10E-29 period in steps =****** mass= -0.366E-27a.u.
PSTRESS= 0.0 pullay stress
# DOS related values:
EMIN = 10.00; EMAX =-10.00 energy-range for DOS
EFERMI = 0.00
ISMEAR = 0; SIGMA = 0.10 broadening in eV -4-tet -1-fermi 0-gaus
# Electronic relaxation 2 (details)
IALGO = 48 algorithm
# Write flags
LWAVE = T write WAVECAR
LCHARG = T write CHGCAR
LVTOT = F write LOCPOT, total local potential
LVHAR = F write LOCPOT, Hartree potential only
LELF = F write electronic localiz. function (ELF)
# Dipole corrections
LMONO = F monopole corrections only (constant potential shift)
LDIPOL = F correct potential (dipole corrections)
IDIPOL = 0 1-x, 2-y, 3-z, 4-all directions
EPSILON= 1.0000000 bulk dielectric constant
# Exchange correlation treatment:
GGA = -- GGA type

View File

@ -1,6 +0,0 @@
K-Points
0
Monkhorst Pack
15 15 15
0 0 0

View File

@ -1,11 +0,0 @@
W unit cell
1.0
3.16 0.00000000 0.00000000
0.00000000 3.16 0.00000000
0.00000000 0.00000000 3.16
W
2
Direct
0.00000000 0.00000000 0.00000000
0.50000000 0.50000000 0.50000000

View File

@ -1,149 +0,0 @@
Sample LAMMPS MD wrapper on VASP quantum DFT via client/server
coupling
See the MESSAGE package documentation Build_extras.html#message
and Build_extras.html#message for more details on how client/server
coupling works in LAMMPS.
In this dir, the vasp_wrap.py is a wrapper on the VASP quantum DFT
code so it can work as a "server" code which LAMMPS drives as a
"client" code to perform ab initio MD. LAMMPS performs the MD
timestepping, sends VASP a current set of coordinates each timestep,
VASP computes forces and energy and virial and returns that info to
LAMMPS.
Messages are exchanged between MC and LAMMPS via a client/server
library (CSlib), which is included in the LAMMPS distribution in
lib/message. As explained below you can choose to exchange data
between the two programs either via files or sockets (ZMQ). If the
vasp_wrap.py program became parallel, or the CSlib library calls were
integrated into VASP directly, then data could also be exchanged via
MPI.
----------------
Build LAMMPS with its MESSAGE package installed:
See the Build extras doc page and its MESSAGE package
section for details.
CMake:
-D PKG_MESSAGE=yes # include the MESSAGE package
-D MESSAGE_ZMQ=value # build with ZeroMQ support, value = no (default) or yes
Traditional make:
cd lammps/lib/message
python Install.py -m -z # build CSlib with MPI and ZMQ support
cd lammps/src
make yes-message
make mpi
You can leave off the -z if you do not have ZMQ on your system.
----------------
Build the CSlib in a form usable by the vasp_wrapper.py script:
% cd lammps/lib/message/cslib/src
% make shlib # build serial and parallel shared lib with ZMQ support
% make shlib zmq=no # build serial and parallel shared lib w/out ZMQ support
This will make a shared library versions of the CSlib, which Python
requires. Python must be able to find both the cslib.py script and
the libcsnompi.so library in your lammps/lib/message/cslib/src
directory. If it is not able to do this, you will get an error when
you run vasp_wrapper.py.
You can do this by augmenting two environment variables, either
from the command line, or in your shell start-up script.
Here is the sample syntax for the csh or tcsh shells:
setenv PYTHONPATH ${PYTHONPATH}:/home/sjplimp/lammps/lib/message/cslib/src
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sjplimp/lammps/lib/message/cslib/src
----------------
Prepare to use VASP and the vasp_wrapper.py script
You can run the vasp_wrap.py script as-is to test that the coupling
between it and LAMMPS is functional. This will use the included
vasprun.xml file output by a previous VASP run.
But note that the as-is version of vasp_wrap.py will not attempt to
run VASP.
To do this, you must edit the 1st vaspcmd line at the top of
vasp_wrapper.py to be the launch command needed to run VASP on your
system. It can be a command to run VASP in serial or in parallel,
e.g. an mpirun command. Then comment out the 2nd vaspcmd line
immediately following it.
Insure you have the necessary VASP input files in this
directory, suitable for the VASP calculation you want to perform:
INCAR
KPOINTS
POSCAR_template
POTCAR
Examples of all but the POTCAR file are provided. As explained below,
POSCAR_W is an input file for a 2-atom unit cell of tungsten and can
be used to test the LAMMPS/VASP coupling. The POTCAR file is a
proprietary VASP file, so use one from your VASP installation.
Note that the POSCAR_template file should be matched to the LAMMPS
input script (# of atoms and atom types, box size, etc). The provided
POSCAR_W matches in.client.W.
Once you run VASP yourself, the vasprun.xml file will be overwritten.
----------------
To run in client/server mode:
NOTE: The vasp_wrap.py script must be run with Python version 2, not
3. This is because it used the CSlib python wrapper, which only
supports version 2. We plan to upgrade CSlib to support Python 3.
Both the client (LAMMPS) and server (vasp_wrap.py) must use the same
messaging mode, namely file or zmq. This is an argument to the
vasp_wrap.py code; it can be selected by setting the "mode" variable
when you run LAMMPS. The default mode = file.
Here we assume LAMMPS was built to run in parallel, and the MESSAGE
package was installed with socket (ZMQ) support. This means either of
the messaging modes can be used and LAMMPS can be run in serial or
parallel. The vasp_wrap.py code is always run in serial, but it
launches VASP from Python via an mpirun command which can run VASP
itself in parallel.
When you run, the server should print out thermodynamic info every
timestep which corresponds to the forces and virial computed by VASP.
VASP will also generate output files each timestep. The vasp_wrapper.py
script could be generalized to archive these.
The examples below are commands you should use in two different
terminal windows. The order of the two commands (client or server
launch) does not matter. You can run them both in the same window if
you append a "&" character to the first one to run it in the
background.
--------------
File mode of messaging:
% mpirun -np 1 lmp_mpi -v mode file -in in.client.W
% python vasp_wrap.py file POSCAR_W
% mpirun -np 2 lmp_mpi -v mode file -in in.client.W
% python vasp_wrap.py file POSCAR_W
ZMQ mode of messaging:
% mpirun -np 1 lmp_mpi -v mode zmq -in in.client.W
% python vasp_wrap.py zmq POSCAR_W
% mpirun -np 2 lmp_mpi -v mode zmq -in in.client.W
% python vasp_wrap.py zmq POSCAR_W

View File

@ -1,15 +0,0 @@
LAMMPS W data file
2 atoms
1 atom types
0.0 3.16 xlo xhi
0.0 3.16 ylo yhi
0.0 3.16 zlo zhi
Atoms
1 1 0.000 0.000 0.000
2 1 1.58 1.58 1.58

View File

@ -1,35 +0,0 @@
# small W unit cell for use with VASP
variable mode index file
if "${mode} == file" then &
"message client md file tmp.couple" &
elif "${mode} == zmq" &
"message client md zmq localhost:5555" &
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
mass 1 183.85
replicate $x $y $z
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
message quit

View File

@ -1,76 +0,0 @@
LAMMPS (22 Aug 2018)
# small W unit cell for use with VASP
variable mode index file
if "${mode} == file" then "message client md file tmp.couple" elif "${mode} == zmq" "message client md zmq localhost:5555"
message client md zmq localhost:5555
variable x index 1
variable y index 1
variable z index 1
units metal
atom_style atomic
atom_modify sort 0 0.0 map yes
read_data data.W
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 2 MPI processor grid
reading atoms ...
2 atoms
mass 1 183.85
replicate $x $y $z
replicate 1 $y $z
replicate 1 1 $z
replicate 1 1 1
orthogonal box = (0 0 0) to (3.16 3.16 3.16)
1 by 1 by 2 MPI processor grid
2 atoms
Time spent = 0.000148058 secs
velocity all create 300.0 87287 loop geom
neighbor 0.3 bin
neigh_modify delay 0 every 10 check no
fix 1 all nve
fix 2 all client/md
fix_modify 2 energy yes
thermo 1
run 3
Per MPI rank memory allocation (min/avg/max) = 1.8 | 1.8 | 1.8 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 0 0 -48.030793 -78159.503
1 298.24318 0 0 -48.03102 -78167.19
2 296.85584 0 0 -48.031199 -78173.26
3 295.83795 0 0 -48.031331 -78177.714
Loop time of 0.457491 on 2 procs for 3 steps with 2 atoms
Performance: 0.567 ns/day, 42.360 hours/ns, 6.558 timesteps/s
50.1% CPU use with 2 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 1.3828e-05 | 2.9922e-05 | 4.6015e-05 | 0.0 | 0.01
Output | 7.5817e-05 | 9.3937e-05 | 0.00011206 | 0.0 | 0.02
Modify | 0.45735 | 0.45736 | 0.45736 | 0.0 | 99.97
Other | | 1.204e-05 | | | 0.00
Nlocal: 1 ave 1 max 1 min
Histogram: 2 0 0 0 0 0 0 0 0 0
Nghost: 4 ave 4 max 4 min
Histogram: 2 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 2 0 0 0 0 0 0 0 0 0
Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 0
Dangerous builds not checked
Total wall time: 0:01:21

View File

@ -1,300 +0,0 @@
#!/usr/bin/env python
# ----------------------------------------------------------------------
# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
# https://www.lammps.org/ Sandia National Laboratories
# Steve Plimpton, sjplimp@sandia.gov
# ----------------------------------------------------------------------
# Syntax: vasp_wrap.py file/zmq POSCARfile
# wrapper on VASP to act as server program using CSlib
# receives message with list of coords from client
# creates VASP inputs
# invokes VASP to calculate self-consistent energy of that config
# reads VASP outputs
# sends message with energy, forces, pressure to client
# NOTES:
# check to insure basic VASP input files are in place?
# could archive VASP input/output in special filenames or dirs?
# need to check that POTCAR file is consistent with atom ordering?
# could make syntax for launching VASP more flexible
# e.g. command-line arg for # of procs
# detect if VASP had an error and return ERROR field, e.g. non-convergence ??
from __future__ import print_function
import sys
version = sys.version_info[0]
if version == 3:
sys.exit("The CSlib python wrapper does not yet support python 3")
import subprocess
import xml.etree.ElementTree as ET
from cslib import CSlib
# comment out 2nd line once 1st line is correct for your system
vaspcmd = "srun -N 1 --ntasks-per-node=4 " + \
"-n 4 /projects/vasp/2017-build/cts1/vasp5.4.4/vasp_tfermi/bin/vasp_std"
vaspcmd = "touch tmp"
# enums matching FixClientMD class in LAMMPS
SETUP,STEP = range(1,2+1)
DIM,PERIODICITY,ORIGIN,BOX,NATOMS,NTYPES,TYPES,COORDS,UNITS,CHARGE = range(1,10+1)
FORCES,ENERGY,VIRIAL,ERROR = range(1,4+1)
# -------------------------------------
# functions
# error message and exit
def error(txt):
print("ERROR:",txt)
sys.exit(1)
# -------------------------------------
# read initial VASP POSCAR file to setup problem
# return natoms,ntypes,box
def vasp_setup(poscar):
ps = open(poscar,'r').readlines()
# box size
words = ps[2].split()
xbox = float(words[0])
words = ps[3].split()
ybox = float(words[1])
words = ps[4].split()
zbox = float(words[2])
box = [xbox,ybox,zbox]
ntypes = 0
natoms = 0
words = ps[6].split()
for word in words:
if word == '#': break
ntypes += 1
natoms += int(word)
return natoms,ntypes,box
# -------------------------------------
# write a new POSCAR file for VASP
def poscar_write(poscar,natoms,ntypes,types,coords,box):
psold = open(poscar,'r').readlines()
psnew = open("POSCAR",'w')
# header, including box size
psnew.write(psold[0])
psnew.write(psold[1])
psnew.write("%g %g %g\n" % (box[0],box[1],box[2]))
psnew.write("%g %g %g\n" % (box[3],box[4],box[5]))
psnew.write("%g %g %g\n" % (box[6],box[7],box[8]))
psnew.write(psold[5])
psnew.write(psold[6])
# per-atom coords
# grouped by types
psnew.write("Cartesian\n")
for itype in range(1,ntypes+1):
for i in range(natoms):
if types[i] != itype: continue
x = coords[3*i+0]
y = coords[3*i+1]
z = coords[3*i+2]
aline = " %g %g %g\n" % (x,y,z)
psnew.write(aline)
psnew.close()
# -------------------------------------
# read a VASP output vasprun.xml file
# uses ElementTree module
# see https://docs.python.org/2/library/xml.etree.elementtree.html
def vasprun_read():
tree = ET.parse('vasprun.xml')
root = tree.getroot()
#fp = open("vasprun.xml","r")
#root = ET.parse(fp)
scsteps = root.findall('calculation/scstep')
energy = scsteps[-1].find('energy')
for child in energy:
if child.attrib["name"] == "e_0_energy":
eout = float(child.text)
fout = []
sout = []
varrays = root.findall('calculation/varray')
for varray in varrays:
if varray.attrib["name"] == "forces":
forces = varray.findall("v")
for line in forces:
fxyz = line.text.split()
fxyz = [float(value) for value in fxyz]
fout += fxyz
if varray.attrib["name"] == "stress":
tensor = varray.findall("v")
stensor = []
for line in tensor:
sxyz = line.text.split()
sxyz = [float(value) for value in sxyz]
stensor.append(sxyz)
sxx = stensor[0][0]
syy = stensor[1][1]
szz = stensor[2][2]
# symmetrize off-diagonal components
sxy = 0.5 * (stensor[0][1] + stensor[1][0])
sxz = 0.5 * (stensor[0][2] + stensor[2][0])
syz = 0.5 * (stensor[1][2] + stensor[2][1])
sout = [sxx,syy,szz,sxy,sxz,syz]
#fp.close()
return eout,fout,sout
# -------------------------------------
# main program
# command-line args
if len(sys.argv) != 3:
print("Syntax: python vasp_wrap.py file/zmq POSCARfile")
sys.exit(1)
mode = sys.argv[1]
poscar_template = sys.argv[2]
if mode == "file": cs = CSlib(1,mode,"tmp.couple",None)
elif mode == "zmq": cs = CSlib(1,mode,"*:5555",None)
else:
print("Syntax: python vasp_wrap.py file/zmq POSCARfile")
sys.exit(1)
natoms,ntypes,box = vasp_setup(poscar_template)
# initial message for MD protocol
msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv()
if msgID != 0: error("Bad initial client/server handshake")
protocol = cs.unpack_string(1)
if protocol != "md": error("Mismatch in client/server protocol")
cs.send(0,0)
# endless server loop
while 1:
# recv message from client
# msgID = 0 = all-done message
msgID,nfield,fieldID,fieldtype,fieldlen = cs.recv()
if msgID < 0: break
# SETUP receive at beginning of each run
# required fields: DIM, PERIODICTY, ORIGIN, BOX,
# NATOMS, NTYPES, TYPES, COORDS
# optional fields: others in enum above, but VASP ignores them
if msgID == SETUP:
origin = []
box = []
natoms_recv = ntypes_recv = 0
types = []
coords = []
for field in fieldID:
if field == DIM:
dim = cs.unpack_int(DIM)
if dim != 3: error("VASP only performs 3d simulations")
elif field == PERIODICITY:
periodicity = cs.unpack(PERIODICITY,1)
if not periodicity[0] or not periodicity[1] or not periodicity[2]:
error("VASP wrapper only currently supports fully periodic systems")
elif field == ORIGIN:
origin = cs.unpack(ORIGIN,1)
elif field == BOX:
box = cs.unpack(BOX,1)
elif field == NATOMS:
natoms_recv = cs.unpack_int(NATOMS)
if natoms != natoms_recv:
error("VASP wrapper mis-match in number of atoms")
elif field == NTYPES:
ntypes_recv = cs.unpack_int(NTYPES)
if ntypes != ntypes_recv:
error("VASP wrapper mis-match in number of atom types")
elif field == TYPES:
types = cs.unpack(TYPES,1)
elif field == COORDS:
coords = cs.unpack(COORDS,1)
if not origin or not box or not natoms or not ntypes or \
not types or not coords:
error("Required VASP wrapper setup field not received");
# STEP receive at each timestep of run or minimization
# required fields: COORDS
# optional fields: ORIGIN, BOX
elif msgID == STEP:
coords = []
for field in fieldID:
if field == COORDS:
coords = cs.unpack(COORDS,1)
elif field == ORIGIN:
origin = cs.unpack(ORIGIN,1)
elif field == BOX:
box = cs.unpack(BOX,1)
if not coords: error("Required VASP wrapper step field not received");
else: error("VASP wrapper received unrecognized message")
# create POSCAR file
poscar_write(poscar_template,natoms,ntypes,types,coords,box)
# invoke VASP
print("\nLaunching VASP ...")
print(vaspcmd)
subprocess.check_output(vaspcmd,stderr=subprocess.STDOUT,shell=True)
# process VASP output
energy,forces,virial = vasprun_read()
# convert VASP kilobars to bars
for i,value in enumerate(virial): virial[i] *= 1000.0
# return forces, energy, pressure to client
cs.send(msgID,3);
cs.pack(FORCES,4,3*natoms,forces)
cs.pack_double(ENERGY,energy)
cs.pack(VIRIAL,4,6,virial)
# final reply to client
cs.send(0,0)
# clean-up
del cs

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
3.36316 1.87373 1.87607 -0.00346 -0.00172 -0.00104
1.87373 3.36170 1.87425 0.00443 0.00033 0.00014
1.87607 1.87425 3.36573 0.00143 0.00155 0.00127
-0.00346 0.00443 0.00143 1.87425 0.00127 0.00033
-0.00172 0.00033 0.00155 0.00127 1.87607 -0.00346
-0.00104 0.00014 0.00127 0.00033 -0.00346 1.87373

View File

@ -0,0 +1,118 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import numpy as np
def reduce_Born(Cf):
C = np.zeros((6,6), dtype=np.float64)
C[0,0] = Cf[0]
C[1,1] = Cf[1]
C[2,2] = Cf[2]
C[3,3] = Cf[3]
C[4,4] = Cf[4]
C[5,5] = Cf[5]
C[0,1] = Cf[6]
C[0,2] = Cf[7]
C[0,3] = Cf[8]
C[0,4] = Cf[9]
C[0,5] = Cf[10]
C[1,2] = Cf[11]
C[1,3] = Cf[12]
C[1,4] = Cf[13]
C[1,5] = Cf[14]
C[2,3] = Cf[15]
C[2,4] = Cf[16]
C[2,5] = Cf[17]
C[3,4] = Cf[18]
C[3,5] = Cf[19]
C[4,5] = Cf[20]
C = np.where(C,C,C.T)
return C
def compute_delta():
D = np.zeros((3,3,3,3))
for a in range(3):
for b in range(3):
for m in range(3):
for n in range(3):
D[a,b,m,n] = (a==m)*(b==n) + (a==n)*(b==m)
d = np.zeros((6,6))
d[0,0] = D[0,0,0,0]
d[1,1] = D[1,1,1,1]
d[2,2] = D[2,2,2,2]
d[3,3] = D[1,2,1,2]
d[4,4] = D[0,2,0,2]
d[5,5] = D[0,1,0,1]
d[0,1] = D[0,0,1,1]
d[0,2] = D[0,0,2,2]
d[0,3] = D[0,0,1,2]
d[0,4] = D[0,0,0,2]
d[0,5] = D[0,0,0,1]
d[1,2] = D[1,1,2,2]
d[1,3] = D[1,1,1,2]
d[1,4] = D[1,1,0,2]
d[1,5] = D[1,1,0,1]
d[2,3] = D[2,2,1,2]
d[2,4] = D[2,2,0,2]
d[2,5] = D[2,2,0,1]
d[3,4] = D[1,2,0,2]
d[3,5] = D[1,2,0,1]
d[4,5] = D[0,2,0,1]
d = np.where(d,d,d.T)
return d
def write_matrix(C, filename):
with open(filename, 'w') as f:
f.write("# Cij Matrix from post process computation\n")
for i in C:
f.write("{:8.5f} {:8.5f} {:8.5f} {:8.5f} {:8.5f} {:8.5f}\n".format(
i[0]*10**-9, i[1]*10**-9, i[2]*10**-9, i[3]*10**-9, i[4]*10**-9, i[5]*10**-9,
)
)
return
def main():
N = 500
vol = 27.047271**3 * 10**-30 # m^3
T = 60 # K
kb = 1.380649 * 10**-23 # J/K
kbT = T*kb # J
kcalmol2J = 4183.9954/(6.022*10**23)
born = np.loadtxt('born.out')
stre = np.loadtxt('vir.out')
stre[:, 1:] = -stre[:, 1:]*101325 # -> Pa
try:
mean_born = np.mean(born[:, 1:], axis=0)
except IndexError:
mean_born = born[1:]
CB = kcalmol2J/vol*reduce_Born(mean_born) # -> J/m^3=Pa
Cs = vol/kbT*np.cov(stre[:,1:].T)
Ct = N*kbT/vol * compute_delta()
C = CB - Cs + Ct
write_matrix(CB, 'born_matrix.out')
write_matrix(Cs, 'stre_matrix.out')
write_matrix(Ct, 'temp_matrix.out')
write_matrix(C, 'full_matrix.out')
C11 = np.mean([C[0,0], C[1,1], C[2,2]]) * 10**-9
C12 = np.mean([C[0,1], C[0,2], C[1,2]]) * 10**-9
C44 = np.mean([C[3,3], C[4,4], C[5,5]]) * 10**-9
eC11 = np.std([C[0,0], C[1,1], C[2,2]]) * 10**-9
eC12 = np.std([C[0,1], C[0,2], C[1,2]]) * 10**-9
eC44 = np.std([C[3,3], C[4,4], C[5,5]]) * 10**-9
print(C*10**-9)
print("C11 = {:f} ± {:f}; C12 = {:f} ± {:f}; C44 = {:f} ± {:f}".format(C11, eC11, C12, eC12, C44, eC44))
return
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
raise SystemExit("User interruption.")

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
2.18161 1.13726 1.16596 -0.01607 -0.02637 0.00291
1.13726 2.20242 1.16714 0.00386 -0.05820 0.02644
1.16596 1.16714 2.24704 -0.00354 -0.00368 0.02714
-0.01607 0.00386 -0.00354 1.43706 0.00210 0.01003
-0.02637 -0.05820 -0.00368 0.00210 1.37530 0.01401
0.00291 0.02644 0.02714 0.01003 0.01401 1.42403

View File

@ -0,0 +1,154 @@
# Analytical calculation
# of Born matrix
# Note that because of cubic symmetry and central forces, we have:
# C11, pure axial == positive mean value: 1,2,3
# C44==C23, pure shear == positive mean value, exactly match in pairs: (4,12),(5,8),(6,7)
# C14==C56, shear/axial(normal) == zero mean, exactly match in pairs: (9,21),(14,20),(18,19)
# C15, shear/axial(in-plane) == zero mean: 10,11,13,15,16,17
# adjustable parameters
units real
variable nsteps index 100000 # length of run
variable nthermo index 1000 # thermo output interval
variable nlat equal 5 # size of box
variable T equal 60. # Temperature in K
variable rho equal 5.405 # Lattice spacing in A
atom_style atomic
lattice fcc ${rho}
region box block 0 ${nlat} 0 ${nlat} 0 ${nlat}
create_box 1 box
create_atoms 1 box
mass * 39.948
velocity all create ${T} 87287 loop geom
velocity all zero linear
pair_style lj/cut 12.0
pair_coeff 1 1 0.238067 3.405
neighbor 0.0 bin
neigh_modify every 1 delay 0 check no
variable vol equal vol
thermo 100
fix aL all ave/time 1 1 1 v_vol ave running
fix NPT all npt temp $T $T 100 aniso 1. 1. 1000 fixedpoint 0. 0. 0.
run 20000
unfix NPT
variable newL equal "f_aL^(1./3.)"
change_box all x final 0 ${newL} y final 0. ${newL} z final 0. ${newL} remap units box
unfix aL
reset_timestep 0
# Conversion variables
variable kb equal 1.38065e-23 # J/K
variable Myvol equal "vol*10^-30" # Volume in m^3
variable kbt equal "v_kb*v_T"
variable Nat equal atoms
variable Rhokbt equal "v_kbt*v_Nat/v_Myvol"
variable at2Pa equal 101325
variable kcalmol2J equal "4183.9954/(6.022e23)"
variable C1 equal "v_kcalmol2J/v_Myvol" # Convert Cb from energy to pressure units
variable C2 equal "v_Myvol/v_kbt" # Factor for Cfl terms
variable Pa2GPa equal 1e-9
# Born compute giving <C^b> terms
compute born all born/matrix
# The six virial stress component to compute <C^fl>
compute VIR all pressure NULL virial
variable s1 equal "-c_VIR[1]*v_at2Pa"
variable s2 equal "-c_VIR[2]*v_at2Pa"
variable s3 equal "-c_VIR[3]*v_at2Pa"
variable s6 equal "-c_VIR[4]*v_at2Pa"
variable s5 equal "-c_VIR[5]*v_at2Pa"
variable s4 equal "-c_VIR[6]*v_at2Pa"
variable press equal press
# Average of Born term and vector to store stress
# for post processing
fix CB all ave/time 1 ${nthermo} ${nthermo} c_born[*] ave running file born.out overwrite
fix CPR all ave/time 1 1 1 c_VIR[*] file vir.out
fix APR all ave/time 1 1 1 v_press ave running
fix VEC all vector 1 v_s1 v_s2 v_s3 v_s4 v_s5 v_s6
thermo ${nthermo}
thermo_style custom step temp press f_APR c_born[1] f_CB[1] c_born[12] f_CB[12] c_born[4] f_CB[4]
thermo_modify line multi
fix 1 all nvt temp $T $T 100
run ${nsteps}
# Compute vector averages
# Note the indice switch.
# LAMMPS convention is NOT the Voigt notation.
variable aves1 equal "ave(f_VEC[1])"
variable aves2 equal "ave(f_VEC[2])"
variable aves3 equal "ave(f_VEC[3])"
variable aves4 equal "ave(f_VEC[6])"
variable aves5 equal "ave(f_VEC[5])"
variable aves6 equal "ave(f_VEC[4])"
# Computing the covariance through the <s_{i}s_{j}>-<s_i><s_j>
# is numerically instable. Here we go through the <(s-<s>)^2>
# definition.
# Computing difference relative to average values
variable ds1 vector "f_VEC[1]-v_aves1"
variable ds2 vector "f_VEC[2]-v_aves2"
variable ds3 vector "f_VEC[3]-v_aves3"
variable ds4 vector "f_VEC[4]-v_aves4"
variable ds5 vector "f_VEC[5]-v_aves5"
variable ds6 vector "f_VEC[6]-v_aves6"
# Squaring and averaging
variable dds1 vector "v_ds1*v_ds1"
variable dds2 vector "v_ds2*v_ds2"
variable dds3 vector "v_ds3*v_ds3"
variable vars1 equal "ave(v_dds1)"
variable vars2 equal "ave(v_dds2)"
variable vars3 equal "ave(v_dds3)"
variable C11 equal "v_Pa2GPa*(v_C1*f_CB[1] - v_C2*v_vars1 + 2*v_Rhokbt)"
variable C22 equal "v_Pa2GPa*(v_C1*f_CB[2] - v_C2*v_vars2 + 2*v_Rhokbt)"
variable C33 equal "v_Pa2GPa*(v_C1*f_CB[3] - v_C2*v_vars3 + 2*v_Rhokbt)"
variable dds12 vector "v_ds1*v_ds2"
variable dds13 vector "v_ds1*v_ds3"
variable dds23 vector "v_ds2*v_ds3"
variable vars12 equal "ave(v_dds12)"
variable vars13 equal "ave(v_dds13)"
variable vars23 equal "ave(v_dds23)"
variable C12 equal "v_Pa2GPa*(v_C1*f_CB[7] - v_C2*v_vars12)"
variable C13 equal "v_Pa2GPa*(v_C1*f_CB[8] - v_C2*v_vars13)"
variable C23 equal "v_Pa2GPa*(v_C1*f_CB[12] - v_C2*v_vars23)"
variable dds4 vector "v_ds4*v_ds4"
variable dds5 vector "v_ds5*v_ds5"
variable dds6 vector "v_ds6*v_ds6"
variable vars4 equal "ave(v_dds4)"
variable vars5 equal "ave(v_dds5)"
variable vars6 equal "ave(v_dds6)"
variable C44 equal "v_Pa2GPa*(v_C1*f_CB[4] - v_C2*v_vars4 + v_Rhokbt)"
variable C55 equal "v_Pa2GPa*(v_C1*f_CB[5] - v_C2*v_vars5 + v_Rhokbt)"
variable C66 equal "v_Pa2GPa*(v_C1*f_CB[6] - v_C2*v_vars6 + v_Rhokbt)"
variable aC11 equal "(v_C11 + v_C22 + v_C33)/3."
variable aC12 equal "(v_C12 + v_C13 + v_C23)/3."
variable aC44 equal "(v_C44 + v_C55 + v_C66)/3."
print """
C11 = ${aC11}
C12 = ${aC12}
C44 = ${aC44}
"""

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
1.22342 0.73647 0.71011 0.01261 0.02465 -0.00395
0.73647 1.20115 0.70711 0.00057 0.05854 -0.02630
0.71011 0.70711 1.16055 0.00497 0.00524 -0.02587
0.01261 0.00057 0.00497 0.45813 -0.00083 -0.00969
0.02465 0.05854 0.00524 -0.00083 0.52170 -0.01747
-0.00395 -0.02630 -0.02587 -0.00969 -0.01747 0.47064

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
0.04187 0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.04187 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.04187 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.02093 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 0.02093 0.00000
0.00000 0.00000 0.00000 0.00000 0.00000 0.02093

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
3.35855 1.86892 1.87139 0.00233 0.00218 -0.00179
1.86892 3.37104 1.87285 0.00112 0.00085 -0.00007
1.87139 1.87285 3.37707 -0.00058 0.00038 -0.00057
0.00233 0.00112 -0.00058 1.88326 -0.00039 0.00065
0.00218 0.00085 0.00038 -0.00039 1.88229 0.00242
-0.00179 -0.00007 -0.00057 0.00065 0.00242 1.87968

View File

@ -0,0 +1,118 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import numpy as np
def reduce_Born(Cf):
C = np.zeros((6,6), dtype=np.float64)
C[0,0] = Cf[0]
C[1,1] = Cf[1]
C[2,2] = Cf[2]
C[3,3] = Cf[3]
C[4,4] = Cf[4]
C[5,5] = Cf[5]
C[0,1] = Cf[6]
C[0,2] = Cf[7]
C[0,3] = Cf[8]
C[0,4] = Cf[9]
C[0,5] = Cf[10]
C[1,2] = Cf[11]
C[1,3] = Cf[12]
C[1,4] = Cf[13]
C[1,5] = Cf[14]
C[2,3] = Cf[15]
C[2,4] = Cf[16]
C[2,5] = Cf[17]
C[3,4] = Cf[18]
C[3,5] = Cf[19]
C[4,5] = Cf[20]
C = np.where(C,C,C.T)
return C
def compute_delta():
D = np.zeros((3,3,3,3))
for a in range(3):
for b in range(3):
for m in range(3):
for n in range(3):
D[a,b,m,n] = (a==m)*(b==n) + (a==n)*(b==m)
d = np.zeros((6,6))
d[0,0] = D[0,0,0,0]
d[1,1] = D[1,1,1,1]
d[2,2] = D[2,2,2,2]
d[3,3] = D[1,2,1,2]
d[4,4] = D[0,2,0,2]
d[5,5] = D[0,1,0,1]
d[0,1] = D[0,0,1,1]
d[0,2] = D[0,0,2,2]
d[0,3] = D[0,0,1,2]
d[0,4] = D[0,0,0,2]
d[0,5] = D[0,0,0,1]
d[1,2] = D[1,1,2,2]
d[1,3] = D[1,1,1,2]
d[1,4] = D[1,1,0,2]
d[1,5] = D[1,1,0,1]
d[2,3] = D[2,2,1,2]
d[2,4] = D[2,2,0,2]
d[2,5] = D[2,2,0,1]
d[3,4] = D[1,2,0,2]
d[3,5] = D[1,2,0,1]
d[4,5] = D[0,2,0,1]
d = np.where(d,d,d.T)
return d
def write_matrix(C, filename):
with open(filename, 'w') as f:
f.write("# Cij Matrix from post process computation\n")
for i in C:
f.write("{:8.5f} {:8.5f} {:8.5f} {:8.5f} {:8.5f} {:8.5f}\n".format(
i[0]*10**-9, i[1]*10**-9, i[2]*10**-9, i[3]*10**-9, i[4]*10**-9, i[5]*10**-9,
)
)
return
def main():
N = 500
vol = 27.047271**3 * 10**-30 # m^3
T = 60 # K
kb = 1.380649 * 10**-23 # J/K
kbT = T*kb # J
kcalmol2J = 4183.9954/(6.022*10**23)
born = np.loadtxt('born.out')
stre = np.loadtxt('vir.out')
stre[:, 1:] = -stre[:, 1:]*101325 # -> Pa
try:
mean_born = np.mean(born[:, 1:], axis=0)
except IndexError:
mean_born = born[1:]
CB = kcalmol2J/vol*reduce_Born(mean_born) # -> J/m^3=Pa
Cs = vol/kbT*np.cov(stre[:,1:].T)
Ct = N*kbT/vol * compute_delta()
C = CB - Cs + Ct
write_matrix(CB, 'born_matrix.out')
write_matrix(Cs, 'stre_matrix.out')
write_matrix(Ct, 'temp_matrix.out')
write_matrix(C, 'full_matrix.out')
C11 = np.mean([C[0,0], C[1,1], C[2,2]]) * 10**-9
C12 = np.mean([C[0,1], C[0,2], C[1,2]]) * 10**-9
C44 = np.mean([C[3,3], C[4,4], C[5,5]]) * 10**-9
eC11 = np.std([C[0,0], C[1,1], C[2,2]]) * 10**-9
eC12 = np.std([C[0,1], C[0,2], C[1,2]]) * 10**-9
eC44 = np.std([C[3,3], C[4,4], C[5,5]]) * 10**-9
print(C*10**-9)
print("C11 = {:f} ± {:f}; C12 = {:f} ± {:f}; C44 = {:f} ± {:f}".format(C11, eC11, C12, eC12, C44, eC44))
return
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
raise SystemExit("User interruption.")

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
2.29922 1.17439 1.20854 -0.01653 -0.01684 0.01188
1.17439 2.20673 1.21718 -0.00781 -0.00753 0.00867
1.20854 1.21718 2.30804 0.01535 -0.01596 0.00426
-0.01653 -0.00781 0.01535 1.47647 -0.01355 -0.01601
-0.01684 -0.00753 -0.01596 -0.01355 1.37905 0.01975
0.01188 0.00867 0.00426 -0.01601 0.01975 1.40170

View File

@ -0,0 +1,154 @@
# Numerical difference calculation
# of Born matrix
# Note that because of cubic symmetry and central forces, we have:
# C11, pure axial == positive mean value: 1,2,3
# C44==C23, pure shear == positive mean value, exactly match in pairs: (4,12),(5,8),(6,7)
# C14==C56, shear/axial(normal) == zero mean, exactly match in pairs: (9,21),(14,20),(18,19)
# C15, shear/axial(in-plane) == zero mean: 10,11,13,15,16,17
# adjustable parameters
units real
variable nsteps index 100000 # length of run
variable nthermo index 1000 # thermo output interval
variable nlat equal 5 # size of box
variable T equal 60. # Temperature in K
variable rho equal 5.405 # Lattice spacing in A
atom_style atomic
lattice fcc ${rho}
region box block 0 ${nlat} 0 ${nlat} 0 ${nlat}
create_box 1 box
create_atoms 1 box
mass * 39.948
velocity all create ${T} 87287 loop geom
velocity all zero linear
pair_style lj/cut 12.0
pair_coeff 1 1 0.238067 3.405
neighbor 0.0 bin
neigh_modify every 1 delay 0 check no
variable vol equal vol
thermo 100
fix aL all ave/time 1 1 1 v_vol ave running
fix NPT all npt temp $T $T 100 aniso 1. 1. 1000 fixedpoint 0. 0. 0.
run 20000
unfix NPT
variable newL equal "f_aL^(1./3.)"
change_box all x final 0 ${newL} y final 0. ${newL} z final 0. ${newL} remap units box
unfix aL
reset_timestep 0
# Conversion variables
variable kb equal 1.38065e-23 # J/K
variable Myvol equal "vol*10^-30" # Volume in m^3
variable kbt equal "v_kb*v_T"
variable Nat equal atoms
variable Rhokbt equal "v_kbt*v_Nat/v_Myvol"
variable at2Pa equal 101325
variable kcalmol2J equal "4183.9954/(6.022e23)"
variable C1 equal "v_kcalmol2J/v_Myvol" # Convert Cb from energy to pressure units
variable C2 equal "v_Myvol/v_kbt" # Factor for Cfl terms
variable Pa2GPa equal 1e-9
# Born compute giving <C^b> terms
# The six virial stress component to compute <C^fl>
compute VIR all pressure NULL virial
compute born all born/matrix numdiff 1e-6 VIR
variable s1 equal "-c_VIR[1]*v_at2Pa"
variable s2 equal "-c_VIR[2]*v_at2Pa"
variable s3 equal "-c_VIR[3]*v_at2Pa"
variable s6 equal "-c_VIR[4]*v_at2Pa"
variable s5 equal "-c_VIR[5]*v_at2Pa"
variable s4 equal "-c_VIR[6]*v_at2Pa"
variable press equal press
# Average of Born term and vector to store stress
# for post processing
fix CB all ave/time 1 ${nthermo} ${nthermo} c_born[*] ave running file born.out overwrite
fix CPR all ave/time 1 1 1 c_VIR[*] file vir.out
fix APR all ave/time 1 1 1 v_press ave running
fix VEC all vector 1 v_s1 v_s2 v_s3 v_s4 v_s5 v_s6
thermo ${nthermo}
thermo_style custom step temp press f_APR c_born[1] f_CB[1] c_born[12] f_CB[12] c_born[4] f_CB[4]
thermo_modify line multi
fix 1 all nvt temp $T $T 100
run ${nsteps}
# Compute vector averages
# Note the indice switch.
# LAMMPS convention is NOT the Voigt notation.
variable aves1 equal "ave(f_VEC[1])"
variable aves2 equal "ave(f_VEC[2])"
variable aves3 equal "ave(f_VEC[3])"
variable aves4 equal "ave(f_VEC[6])"
variable aves5 equal "ave(f_VEC[5])"
variable aves6 equal "ave(f_VEC[4])"
# Computing the covariance through the <s_{i}s_{j}>-<s_i><s_j>
# is numerically instable. Here we go through the <(s-<s>)^2>
# definition.
# Computing difference relative to average values
variable ds1 vector "f_VEC[1]-v_aves1"
variable ds2 vector "f_VEC[2]-v_aves2"
variable ds3 vector "f_VEC[3]-v_aves3"
variable ds4 vector "f_VEC[4]-v_aves4"
variable ds5 vector "f_VEC[5]-v_aves5"
variable ds6 vector "f_VEC[6]-v_aves6"
# Squaring and averaging
variable dds1 vector "v_ds1*v_ds1"
variable dds2 vector "v_ds2*v_ds2"
variable dds3 vector "v_ds3*v_ds3"
variable vars1 equal "ave(v_dds1)"
variable vars2 equal "ave(v_dds2)"
variable vars3 equal "ave(v_dds3)"
variable C11 equal "v_Pa2GPa*(v_C1*f_CB[1] - v_C2*v_vars1 + 2*v_Rhokbt)"
variable C22 equal "v_Pa2GPa*(v_C1*f_CB[2] - v_C2*v_vars2 + 2*v_Rhokbt)"
variable C33 equal "v_Pa2GPa*(v_C1*f_CB[3] - v_C2*v_vars3 + 2*v_Rhokbt)"
variable dds12 vector "v_ds1*v_ds2"
variable dds13 vector "v_ds1*v_ds3"
variable dds23 vector "v_ds2*v_ds3"
variable vars12 equal "ave(v_dds12)"
variable vars13 equal "ave(v_dds13)"
variable vars23 equal "ave(v_dds23)"
variable C12 equal "v_Pa2GPa*(v_C1*f_CB[7] - v_C2*v_vars12)"
variable C13 equal "v_Pa2GPa*(v_C1*f_CB[8] - v_C2*v_vars13)"
variable C23 equal "v_Pa2GPa*(v_C1*f_CB[12] - v_C2*v_vars23)"
variable dds4 vector "v_ds4*v_ds4"
variable dds5 vector "v_ds5*v_ds5"
variable dds6 vector "v_ds6*v_ds6"
variable vars4 equal "ave(v_dds4)"
variable vars5 equal "ave(v_dds5)"
variable vars6 equal "ave(v_dds6)"
variable C44 equal "v_Pa2GPa*(v_C1*f_CB[4] - v_C2*v_vars4 + v_Rhokbt)"
variable C55 equal "v_Pa2GPa*(v_C1*f_CB[5] - v_C2*v_vars5 + v_Rhokbt)"
variable C66 equal "v_Pa2GPa*(v_C1*f_CB[6] - v_C2*v_vars6 + v_Rhokbt)"
variable aC11 equal "(v_C11 + v_C22 + v_C33)/3."
variable aC12 equal "(v_C12 + v_C13 + v_C23)/3."
variable aC44 equal "(v_C44 + v_C55 + v_C66)/3."
print """
C11 = ${aC11}
C12 = ${aC12}
C44 = ${aC44}
"""

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
1.10120 0.69454 0.66285 0.01885 0.01902 -0.01367
0.69454 1.20617 0.65567 0.00893 0.00839 -0.00873
0.66285 0.65567 1.11090 -0.01593 0.01634 -0.00483
0.01885 0.00893 -0.01593 0.42772 0.01316 0.01666
0.01902 0.00839 0.01634 0.01316 0.52416 -0.01733
-0.01367 -0.00873 -0.00483 0.01666 -0.01733 0.49891

View File

@ -0,0 +1,7 @@
# Cij Matrix from post process computation
0.04187 0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.04187 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.04187 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.02093 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 0.02093 0.00000
0.00000 0.00000 0.00000 0.00000 0.00000 0.02093

View File

@ -0,0 +1,13 @@
This repository is a test case for the compute born/matrix. It provides short
scripts creating argon fcc crystal and computing the Born term using the two
methods described in the documentation.
In the __Analytical__ directory the terms are computed using the analytical
derivation of the Born term for the lj/cut pair style.
In the __Numdiff__ directory, the Born term is evaluated through small
numerical differences of the stress tensor. This method can be used with any
interaction potential.
Both script show examples on how to compute the full Cij elastic stiffness
tensor in LAMMPS.

View File

@ -0,0 +1 @@
../../../../potentials/Si.sw

View File

@ -0,0 +1,68 @@
# Average moduli for cubic crystals
variable C11cubic equal (${C11}+${C22}+${C33})/3.0
variable C12cubic equal (${C12}+${C13}+${C23})/3.0
variable C44cubic equal (${C44}+${C55}+${C66})/3.0
variable bulkmodulus equal (${C11cubic}+2*${C12cubic})/3.0
variable shearmodulus1 equal ${C44cubic}
variable shearmodulus2 equal (${C11cubic}-${C12cubic})/2.0
variable poissonratio equal 1.0/(1.0+${C11cubic}/${C12cubic})
# For Stillinger-Weber silicon, the analytical results
# are known to be (E. R. Cowley, 1988):
# C11 = 151.4 GPa
# C12 = 76.4 GPa
# C44 = 56.4 GPa
#print "========================================="
#print "Components of the Elastic Constant Tensor"
#print "========================================="
print "Elastic Constant C11 = ${C11} ${cunits}"
print "Elastic Constant C22 = ${C22} ${cunits}"
print "Elastic Constant C33 = ${C33} ${cunits}"
print "Elastic Constant C12 = ${C12} ${cunits}"
print "Elastic Constant C13 = ${C13} ${cunits}"
print "Elastic Constant C23 = ${C23} ${cunits}"
print "Elastic Constant C44 = ${C44} ${cunits}"
print "Elastic Constant C55 = ${C55} ${cunits}"
print "Elastic Constant C66 = ${C66} ${cunits}"
print "Elastic Constant C14 = ${C14} ${cunits}"
print "Elastic Constant C15 = ${C15} ${cunits}"
print "Elastic Constant C16 = ${C16} ${cunits}"
print "Elastic Constant C24 = ${C24} ${cunits}"
print "Elastic Constant C25 = ${C25} ${cunits}"
print "Elastic Constant C26 = ${C26} ${cunits}"
print "Elastic Constant C34 = ${C34} ${cunits}"
print "Elastic Constant C35 = ${C35} ${cunits}"
print "Elastic Constant C36 = ${C36} ${cunits}"
print "Elastic Constant C45 = ${C45} ${cunits}"
print "Elastic Constant C46 = ${C46} ${cunits}"
print "Elastic Constant C56 = ${C56} ${cunits}"
print "========================================="
print "Average properties for a cubic crystal"
print "========================================="
print "Bulk Modulus = ${bulkmodulus} ${cunits}"
print "Shear Modulus 1 = ${shearmodulus1} ${cunits}"
print "Shear Modulus 2 = ${shearmodulus2} ${cunits}"
print "Poisson Ratio = ${poissonratio}"
# summarize sampling protocol
variable tmp equal atoms
print "Number of atoms = ${tmp}"
print "Stress sampling interval = ${nevery}"
variable tmp equal ${nrun}/${nevery}
print "Stress sample count = ${tmp}"
print "Born sampling interval = ${neveryborn}"
variable tmp equal ${nrun}/${neveryborn}
print "Born sample count = ${tmp}"

View File

@ -0,0 +1,25 @@
# Compute elastic constant tensor for a crystal at finite temperature
# These settings replicate the 1477~K benchmark of
# Kluge, Ray, and Rahman (1986) that is Ref.[15] in:
# Y. Zhen, C. Chu, Computer Physics Communications 183(2012) 261-265
# here: Y. Zhen, C. Chu, Computer Physics Communications 183(2012) 261-265
include init.in
# Compute initial state
include potential.in
thermo_style custom step temp pe press density
run ${nequil}
# Run dynamics
include potential.in
include output.in
run ${nrun}
# Output final values
include final_output.in

View File

@ -0,0 +1,59 @@
# NOTE: This script can be modified for different atomic structures,
# units, etc. See in.elastic for more info.
#
# Define MD parameters
# These can be modified by the user
# These settings replicate the 1477~K benchmark of
# Kluge, Ray, and Rahman (1986) that is Ref.[15] in:
# Y. Zhen, C. Chu, Computer Physics Communications 183(2012) 261-265
# select temperature and pressure (lattice constant)
variable temp index 1477.0 # temperature of initial sample
variable a index 5.457 # lattice constant
# select sampling parameters, important for speed/convergence
variable nthermo index 1500 # interval for thermo output
variable nevery index 10 # stress sampling interval
variable neveryborn index 100 # Born sampling interval
variable timestep index 0.000766 # timestep
variable nlat index 3 # number of lattice unit cells
# other settings
variable mass1 index 28.06 # mass
variable tdamp index 0.01 # time constant for thermostat
variable seed index 123457 # seed for thermostat
variable thermostat index 1 # 0 if NVE, 1 if NVT
variable delta index 1.0e-6 # Born numdiff strain magnitude
# hard-coded rules-of-thumb for run length, etc.
variable nfreq equal ${nthermo} # interval for averaging output
variable nrepeat equal floor(${nfreq}/${nevery}) # number of samples
variable nrepeatborn equal floor(${nfreq}/${neveryborn}) # number of samples
variable nequil equal 10*${nthermo} # length of equilibration run
variable nrun equal 100*${nthermo} # length of equilibrated run
# generate the box and atom positions using a diamond lattice
units metal
boundary p p p
# this generates a standard 8-atom cubic cell
lattice diamond $a
region box prism 0 1 0 1 0 1 0 0 0
# this generates a 2-atom triclinic cell
#include tri.in
create_box 1 box
create_atoms 1 box
mass 1 ${mass1}
replicate ${nlat} ${nlat} ${nlat}
velocity all create ${temp} 87287

View File

@ -0,0 +1,141 @@
# Setup output
# Stress fluctuation term F
compute stress all pressure thermo_temp
variable s1 equal c_stress[1]
variable s2 equal c_stress[2]
variable s3 equal c_stress[3]
variable s4 equal c_stress[6]
variable s5 equal c_stress[5]
variable s6 equal c_stress[4]
variable s11 equal v_s1*v_s1
variable s22 equal v_s2*v_s2
variable s33 equal v_s3*v_s3
variable s44 equal v_s4*v_s4
variable s55 equal v_s5*v_s5
variable s66 equal v_s6*v_s6
variable s33 equal v_s3*v_s3
variable s12 equal v_s1*v_s2
variable s13 equal v_s1*v_s3
variable s14 equal v_s1*v_s4
variable s15 equal v_s1*v_s5
variable s16 equal v_s1*v_s6
variable s23 equal v_s2*v_s3
variable s24 equal v_s2*v_s4
variable s25 equal v_s2*v_s5
variable s26 equal v_s2*v_s6
variable s34 equal v_s3*v_s4
variable s35 equal v_s3*v_s5
variable s36 equal v_s3*v_s6
variable s45 equal v_s4*v_s5
variable s46 equal v_s4*v_s6
variable s56 equal v_s5*v_s6
variable mytemp equal temp
variable mypress equal press
variable mype equal pe/atoms
fix avt all ave/time ${nevery} ${nrepeat} ${nfreq} v_mytemp ave running
fix avp all ave/time ${nevery} ${nrepeat} ${nfreq} v_mypress ave running
fix avpe all ave/time ${nevery} ${nrepeat} ${nfreq} v_mype ave running
fix avs all ave/time ${nevery} ${nrepeat} ${nfreq} v_s1 v_s2 v_s3 v_s4 v_s5 v_s6 ave running
fix avssq all ave/time ${nevery} ${nrepeat} ${nfreq} &
v_s11 v_s22 v_s33 v_s44 v_s55 v_s66 &
v_s12 v_s13 v_s14 v_s15 v_s16 &
v_s23 v_s24 v_s25 v_s26 &
v_s34 v_s35 v_s36 &
v_s45 v_s46 &
v_s56 &
ave running
# bar to GPa
variable pconv equal 1.0e5/1.0e9
variable cunits index GPa
# metal unit constants from LAMMPS
# force->nktv2p = 1.6021765e6;
# force->boltz = 8.617343e-5;
variable boltz equal 8.617343e-5
variable nktv2p equal 1.6021765e6
variable vkt equal vol/(${boltz}*${temp})/${nktv2p}
variable ffac equal ${pconv}*${vkt}
variable F11 equal -(f_avssq[1]-f_avs[1]*f_avs[1])*${ffac}
variable F22 equal -(f_avssq[2]-f_avs[2]*f_avs[2])*${ffac}
variable F33 equal -(f_avssq[3]-f_avs[3]*f_avs[3])*${ffac}
variable F44 equal -(f_avssq[4]-f_avs[4]*f_avs[4])*${ffac}
variable F55 equal -(f_avssq[5]-f_avs[5]*f_avs[5])*${ffac}
variable F66 equal -(f_avssq[6]-f_avs[6]*f_avs[6])*${ffac}
variable F12 equal -(f_avssq[7]-f_avs[1]*f_avs[2])*${ffac}
variable F13 equal -(f_avssq[8]-f_avs[1]*f_avs[3])*${ffac}
variable F14 equal -(f_avssq[9]-f_avs[1]*f_avs[4])*${ffac}
variable F15 equal -(f_avssq[10]-f_avs[1]*f_avs[5])*${ffac}
variable F16 equal -(f_avssq[11]-f_avs[1]*f_avs[6])*${ffac}
variable F23 equal -(f_avssq[12]-f_avs[2]*f_avs[3])*${ffac}
variable F24 equal -(f_avssq[13]-f_avs[2]*f_avs[4])*${ffac}
variable F25 equal -(f_avssq[14]-f_avs[2]*f_avs[5])*${ffac}
variable F26 equal -(f_avssq[15]-f_avs[2]*f_avs[6])*${ffac}
variable F34 equal -(f_avssq[16]-f_avs[3]*f_avs[4])*${ffac}
variable F35 equal -(f_avssq[17]-f_avs[3]*f_avs[5])*${ffac}
variable F36 equal -(f_avssq[18]-f_avs[3]*f_avs[6])*${ffac}
variable F45 equal -(f_avssq[19]-f_avs[4]*f_avs[5])*${ffac}
variable F46 equal -(f_avssq[20]-f_avs[4]*f_avs[6])*${ffac}
variable F56 equal -(f_avssq[21]-f_avs[5]*f_avs[6])*${ffac}
# Born term
compute virial all pressure NULL virial
compute born all born/matrix numdiff ${delta} virial
fix avborn all ave/time ${neveryborn} ${nrepeatborn} ${nfreq} c_born[*] ave running
variable bfac equal ${pconv}*${nktv2p}/vol
variable B vector f_avborn*${bfac}
# Kinetic term
variable kfac equal ${pconv}*${nktv2p}*atoms*${boltz}*${temp}/vol
variable K11 equal 4.0*${kfac}
variable K22 equal 4.0*${kfac}
variable K33 equal 4.0*${kfac}
variable K44 equal 2.0*${kfac}
variable K55 equal 2.0*${kfac}
variable K66 equal 2.0*${kfac}
# Add F, K, and B together
variable C11 equal v_F11+v_B[1]+v_K11
variable C22 equal v_F22+v_B[2]+v_K22
variable C33 equal v_F33+v_B[3]+v_K33
variable C44 equal v_F44+v_B[4]+v_K44
variable C55 equal v_F55+v_B[5]+v_K55
variable C66 equal v_F66+v_B[6]+v_K66
variable C12 equal v_F12+v_B[7]
variable C13 equal v_F13+v_B[8]
variable C14 equal v_F14+v_B[9]
variable C15 equal v_F15+v_B[10]
variable C16 equal v_F16+v_B[11]
variable C23 equal v_F23+v_B[12]
variable C24 equal v_F24+v_B[13]
variable C25 equal v_F25+v_B[14]
variable C26 equal v_F26+v_B[15]
variable C34 equal v_F34+v_B[16]
variable C35 equal v_F35+v_B[17]
variable C36 equal v_F36+v_B[18]
variable C45 equal v_F45+v_B[19]
variable C46 equal v_F46+v_B[20]
variable C56 equal v_F56+v_B[21]
thermo ${nthermo}
thermo_style custom step temp pe press density f_avt f_avp f_avpe v_F11 v_F22 v_F33 v_F44 v_F55 v_F66 v_F12 v_F13 v_F23 v_B[*8] v_B[12]
thermo_modify norm no

View File

@ -0,0 +1,21 @@
# NOTE: This script can be modified for different pair styles
# See in.elastic for more info.
reset_timestep 0
# Choose potential
pair_style sw
pair_coeff * * Si.sw Si
# Setup neighbor style
neighbor 1.0 nsq
neigh_modify once no every 1 delay 0 check yes
# Setup MD
timestep ${timestep}
fix 4 all nve
if "${thermostat} == 1" then &
"fix 5 all langevin ${temp} ${temp} ${tdamp} ${seed}"

View File

@ -0,0 +1,26 @@
# this generates a 2-atom triclinic cell
# due to rotation on to x-axis,
# elastic constant analysis is not working yet
# unit lattice vectors are
# a1 = (1 0 0)
# a2 = (1/2 sqrt3/2 0)
# a3 = (1/2 1/(2sqrt3) sqrt2/sqrt3)
variable a1x equal 1
variable a2x equal 1/2
variable a2y equal sqrt(3)/2
variable a3x equal 1/2
variable a3y equal 1/(2*sqrt(3))
variable a3z equal sqrt(2/3)
variable l equal $a/sqrt(2)
lattice custom ${l} &
a1 ${a1x} 0 0 &
a2 ${a2x} ${a2y} 0.0 &
a3 ${a3x} ${a3y} ${a3z} &
basis 0 0 0 &
basis 0.25 0.25 0.25 &
spacing 1 1 1
region box prism 0 ${a1x} 0 ${a2y} 0 ${a3z} ${a2x} ${a3x} ${a3y}

View File

@ -0,0 +1 @@
../../../../potentials/Si.sw

View File

@ -1,6 +1,8 @@
# NOTE: This script can be modified for different pair styles
# See in.elastic for more info.
# we must undefine any fix ave/* fix before using reset_timestep
if "$(is_defined(fix,avp))" then "unfix avp"
reset_timestep 0
# Choose potential

View File

@ -1,18 +0,0 @@
# DATE: 2007-06-11 CONTRIBUTOR: Aidan Thompson, athomps@sandia.gov CITATION: Stillinger and Weber, Phys Rev B, 31, 5262, (1985)
# Stillinger-Weber parameters for various elements and mixtures
# multiple entries can be added to this file, LAMMPS reads the ones it needs
# these entries are in LAMMPS "metal" units:
# epsilon = eV; sigma = Angstroms
# other quantities are unitless
# format of a single entry (one or more lines):
# element 1, element 2, element 3,
# epsilon, sigma, a, lambda, gamma, costheta0, A, B, p, q, tol
# Here are the original parameters in metal units, for Silicon from:
#
# Stillinger and Weber, Phys. Rev. B, v. 31, p. 5262, (1985)
#
Si Si Si 2.1683 2.0951 1.80 21.0 1.20 -0.333333333333
7.049556277 0.6022245584 4.0 0.0 0.0

View File

@ -1,72 +1,72 @@
# DESCRIPTION: haynes-schockley
echo both
units metal
variable V equal 5000.0
variable n0 equal 0.085
variable dn equal 2.0*${n0}
variable dt equal 0.0005
variable s equal 10
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block -50 50 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc convective_drift_diffusion Cu_cddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 100 1 1 simRegion f p p
fix_modify AtC material all Cu
fix_modify AtC mesh create_nodeset lbc -50.0 -50.0 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 50.0 50.0 -INF INF -INF INF
# fix a temperature
fix_modify AtC initial temperature all 300.0
#fix_modify AtC initial electron_temperature all 300.0
fix_modify AtC fix electron_temperature all 300.
#fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5.0 300. 300.
fix_modify AtC initial electron_density all gaussian 0 0 0 1 0 0 5.0 ${dn} ${n0}
#fix_modify AtC fix electron_density all ${n0}
# isolate system:
# diffusion: dn/dx = 0
# drift : n = 0
fix_modify AtC fix electron_density lbc ${n0}
fix_modify AtC fix electron_density rbc ${n0}
fix_modify AtC fix temperature lbc 300.0
fix_modify AtC fix temperature rbc 300.0
fix_modify AtC fix electron_temperature lbc 300.0
fix_modify AtC fix electron_temperature rbc 300.0
fix_modify AtC fix electric_potential all 0.
fix_modify AtC extrinsic electron_integration implicit
# electron velocity
fix_modify AtC initial electron_velocity x all 0.
#fix_modify AtC fix electron_velocity x all 0.
fix_modify AtC initial electron_velocity y all 0.
fix_modify AtC fix electron_velocity y all 0
fix_modify AtC initial electron_velocity z all 0.
fix_modify AtC fix electron_velocity z all 0.
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output convective_pulseFE $s text binary
thermo $s
#run 100
# free electric field and allow shielding
fix_modify AtC unfix electric_potential all
fix_modify AtC fix electric_potential lbc -$V
fix_modify AtC fix electric_potential rbc 0
fix_modify AtC source electric_potential all ${n0}
fix_modify AtC extrinsic electron_integration implicit 10
run 100
# DESCRIPTION: haynes-schockley
echo both
units metal
variable V equal 5000.0
variable n0 equal 0.085
variable dn equal 2.0*${n0}
variable dt equal 0.0005
variable s equal 10
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block -50 50 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc convective_drift_diffusion Cu_cddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 100 1 1 simRegion f p p
fix_modify AtC material all Cu
fix_modify AtC mesh create_nodeset lbc -50.0 -50.0 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 50.0 50.0 -INF INF -INF INF
# fix a temperature
fix_modify AtC initial temperature all 300.0
#fix_modify AtC initial electron_temperature all 300.0
fix_modify AtC fix electron_temperature all 300.
#fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5.0 300. 300.
fix_modify AtC initial electron_density all gaussian 0 0 0 1 0 0 5.0 ${dn} ${n0}
#fix_modify AtC fix electron_density all ${n0}
# isolate system:
# diffusion: dn/dx = 0
# drift : n = 0
fix_modify AtC fix electron_density lbc ${n0}
fix_modify AtC fix electron_density rbc ${n0}
fix_modify AtC fix temperature lbc 300.0
fix_modify AtC fix temperature rbc 300.0
fix_modify AtC fix electron_temperature lbc 300.0
fix_modify AtC fix electron_temperature rbc 300.0
fix_modify AtC fix electric_potential all 0.
fix_modify AtC extrinsic electron_integration implicit
# electron velocity
fix_modify AtC initial electron_velocity x all 0.
#fix_modify AtC fix electron_velocity x all 0.
fix_modify AtC initial electron_velocity y all 0.
fix_modify AtC fix electron_velocity y all 0
fix_modify AtC initial electron_velocity z all 0.
fix_modify AtC fix electron_velocity z all 0.
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output convective_pulseFE $s text binary
thermo $s
#run 100
# free electric field and allow shielding
fix_modify AtC unfix electric_potential all
fix_modify AtC fix electric_potential lbc -$V
fix_modify AtC fix electric_potential rbc 0
fix_modify AtC source electric_potential all ${n0}
fix_modify AtC extrinsic electron_integration implicit 10
run 100

View File

@ -1,66 +1,66 @@
# needs description
# DESCRIPTION: haynes-schockley
# poisson eqn for E-field: epsilon phi,xx = -e (n - p + N_D - N_A)
# w/ E = phi,x
echo both
units metal
variable dt equal 0.0000001
variable s equal 1
variable L equal 10.0
variable N equal 40
variable T equal 30000.0
variable E equal 0.5
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block 0 $L 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion-schrodinger Si_ddm_schrodinger.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create $N 1 1 simRegion f p p
variable a equal $L-0.1
variable b equal $L+0.1
fix_modify AtC mesh create_nodeset lbc -0.1 0.1 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc $a $b -INF INF -INF INF
# ics/bcs : density consistent with wave function
fix_modify AtC initial temperature all 300.0
fix_modify AtC fix temperature all 300.0
fix_modify AtC initial electron_temperature all $T
fix_modify AtC fix electron_temperature all $T
fix_modify AtC initial electron_density all 0.0
#fix_modify AtC fix electron_density lbc 0
#fix_modify AtC fix electron_density rbc 0
fix_modify AtC initial electric_potential all 0.0
fix_modify AtC initial electron_wavefunction all 0.0
fix_modify AtC fix electron_wavefunction lbc 0
fix_modify AtC fix electron_wavefunction rbc 0
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output ddm_schrodingerFE $s text
fix_modify AtC extrinsic electron_integration implicit 1
fix_modify AtC extrinsic schrodinger_poisson_solver self_consistency 1 # 100
fix_modify AtC unfix electric_potential all
# ends zero
fix_modify AtC fix electric_potential lbc 0
fix_modify AtC fix electric_potential rbc 0
run 1
# ends from gradient
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 0
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 0
run 1
# needs description
# DESCRIPTION: haynes-schockley
# poisson eqn for E-field: epsilon phi,xx = -e (n - p + N_D - N_A)
# w/ E = phi,x
echo both
units metal
variable dt equal 0.0000001
variable s equal 1
variable L equal 10.0
variable N equal 40
variable T equal 30000.0
variable E equal 0.5
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block 0 $L 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion-schrodinger Si_ddm_schrodinger.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create $N 1 1 simRegion f p p
variable a equal $L-0.1
variable b equal $L+0.1
fix_modify AtC mesh create_nodeset lbc -0.1 0.1 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc $a $b -INF INF -INF INF
# ics/bcs : density consistent with wave function
fix_modify AtC initial temperature all 300.0
fix_modify AtC fix temperature all 300.0
fix_modify AtC initial electron_temperature all $T
fix_modify AtC fix electron_temperature all $T
fix_modify AtC initial electron_density all 0.0
#fix_modify AtC fix electron_density lbc 0
#fix_modify AtC fix electron_density rbc 0
fix_modify AtC initial electric_potential all 0.0
fix_modify AtC initial electron_wavefunction all 0.0
fix_modify AtC fix electron_wavefunction lbc 0
fix_modify AtC fix electron_wavefunction rbc 0
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output ddm_schrodingerFE $s text
fix_modify AtC extrinsic electron_integration implicit 1
fix_modify AtC extrinsic schrodinger_poisson_solver self_consistency 1 # 100
fix_modify AtC unfix electric_potential all
# ends zero
fix_modify AtC fix electric_potential lbc 0
fix_modify AtC fix electric_potential rbc 0
run 1
# ends from gradient
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 0
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 0
run 1

View File

@ -1,75 +1,75 @@
#needs description
echo both
units metal
variable E equal 0.1
variable L equal 10.0
#variable N equal 100
variable N equal 80
variable T equal 1000
variable n0 equal 0.0001
variable dn equal 2.0*${n0}
variable dt equal 0.0000001
variable s equal 1
timestep ${dt}
atom_style atomic
lattice fcc 1.0
variable a equal 0.5*$L
region simRegion block -$a $a 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion-schrodinger SiGe_ddm_schrodinger.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create $N 1 1 simRegion f p p
variable a equal 0.2*$L+0.001
fix_modify AtC mesh create_elementset well -$a $a -INF INF -INF INF
fix_modify AtC mesh create_nodeset well -$a $a -INF INF -INF INF
fix_modify AtC material well Ge
variable b equal $a-0.002
fix_modify AtC mesh create_nodeset lbc -$a -$b -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc $b $a -INF INF -INF INF
# ics/bcs
fix_modify AtC initial temperature all 300.0
fix_modify AtC fix temperature all 300.0
#
fix_modify AtC initial electron_temperature all $T
fix_modify AtC fix electron_temperature all $T
#
fix_modify AtC initial electron_density all 0.0
#fix_modify AtC fix electron_density all -0.001
#fix_modify AtC fix electron_density well 0.002
#
fix_modify AtC initial electric_potential all 0.0
#fix_modify AtC fix electric_potential lbc 0.5
#fix_modify AtC fix electric_potential rbc 0.5
fix_modify AtC fix electric_potential lbc 0.0
fix_modify AtC fix electric_potential rbc 0.0
#
fix_modify AtC initial electron_wavefunction all 0.0
fix_modify AtC fix electron_wavefunction lbc 0.0
fix_modify AtC fix electron_wavefunction rbc 0.0
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output finite_wellFE $s text
fix_modify AtC extrinsic electron_integration implicit 3
fix_modify AtC extrinsic schrodinger_poisson_solver self_consistency 3 # 30
variable m equal 1*$s
# (A) no field
run $m
# (B) fixed boundary field
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 1
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 1
run $m
#needs description
echo both
units metal
variable E equal 0.1
variable L equal 10.0
#variable N equal 100
variable N equal 80
variable T equal 1000
variable n0 equal 0.0001
variable dn equal 2.0*${n0}
variable dt equal 0.0000001
variable s equal 1
timestep ${dt}
atom_style atomic
lattice fcc 1.0
variable a equal 0.5*$L
region simRegion block -$a $a 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion-schrodinger SiGe_ddm_schrodinger.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create $N 1 1 simRegion f p p
variable a equal 0.2*$L+0.001
fix_modify AtC mesh create_elementset well -$a $a -INF INF -INF INF
fix_modify AtC mesh create_nodeset well -$a $a -INF INF -INF INF
fix_modify AtC material well Ge
variable b equal $a-0.002
fix_modify AtC mesh create_nodeset lbc -$a -$b -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc $b $a -INF INF -INF INF
# ics/bcs
fix_modify AtC initial temperature all 300.0
fix_modify AtC fix temperature all 300.0
#
fix_modify AtC initial electron_temperature all $T
fix_modify AtC fix electron_temperature all $T
#
fix_modify AtC initial electron_density all 0.0
#fix_modify AtC fix electron_density all -0.001
#fix_modify AtC fix electron_density well 0.002
#
fix_modify AtC initial electric_potential all 0.0
#fix_modify AtC fix electric_potential lbc 0.5
#fix_modify AtC fix electric_potential rbc 0.5
fix_modify AtC fix electric_potential lbc 0.0
fix_modify AtC fix electric_potential rbc 0.0
#
fix_modify AtC initial electron_wavefunction all 0.0
fix_modify AtC fix electron_wavefunction lbc 0.0
fix_modify AtC fix electron_wavefunction rbc 0.0
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output finite_wellFE $s text
fix_modify AtC extrinsic electron_integration implicit 3
fix_modify AtC extrinsic schrodinger_poisson_solver self_consistency 3 # 30
variable m equal 1*$s
# (A) no field
run $m
# (B) fixed boundary field
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 1
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 1
run $m

View File

@ -1,65 +1,65 @@
# needs description
# DESCRIPTION: haynes-schockley
# continuity eqn: n,t = J,x + (G-R) = D n,xx + mu (n E),x + G - 1/tau (n - n_0)
# w/ J = D n,x + mu n phi,x
# poisson eqn for E-field: epsilon phi,xx = -e (n - p + N_D - N_A)
# w/ E = phi,x
# NOTE: does not conserve electrons even with fixed E field and zero mobility
# if J=0 --> n,x = mu/D n phi,x
echo both
units metal
variable E equal 10.0
variable n0 equal 0.0001
variable dn equal 2.0*${n0}
variable dt equal 0.0000001
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block -50 50 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion Si_ddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 100 1 1 simRegion f p p
fix_modify AtC mesh create_nodeset lbc -50.1 -49.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 49.9 50.1 -INF INF -INF INF
# fix a temperature
fix_modify AtC initial temperature all 300.0
fix_modify AtC initial electron_temperature all 300.0
fix_modify AtC initial electron_density all gaussian 0 0 0 1 0 0 5.0 ${dn} ${n0}
# isolate system:
# diffusion: dn/dx = 0
# drift : n = 0
fix_modify AtC fix electron_density lbc ${n0}
fix_modify AtC fix electron_density rbc ${n0}
fix_modify AtC fix electric_potential all linear 0 0 0 $E 0 0 1
variable perm equal 0.06
variable nD equal 1.0e-4
fix_modify AtC source electric_potential all ${nD}
variable s equal 10
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output no_atoms_ddmFE $s text
fix_modify AtC extrinsic electron_integration implicit
run 40
# free electric field and allow shielding
fix_modify AtC unfix electric_potential all
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 1
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 1
fix_modify AtC extrinsic electron_integration implicit 10
run 40
# needs description
# DESCRIPTION: haynes-schockley
# continuity eqn: n,t = J,x + (G-R) = D n,xx + mu (n E),x + G - 1/tau (n - n_0)
# w/ J = D n,x + mu n phi,x
# poisson eqn for E-field: epsilon phi,xx = -e (n - p + N_D - N_A)
# w/ E = phi,x
# NOTE: does not conserve electrons even with fixed E field and zero mobility
# if J=0 --> n,x = mu/D n phi,x
echo both
units metal
variable E equal 10.0
variable n0 equal 0.0001
variable dn equal 2.0*${n0}
variable dt equal 0.0000001
timestep ${dt}
atom_style atomic
lattice fcc 1.0
region simRegion block -50 50 0 1 0 1
boundary f p p
create_box 1 simRegion
mass 1 1.0 # need to keep this
atom_modify sort 0 1
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion Si_ddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 100 1 1 simRegion f p p
fix_modify AtC mesh create_nodeset lbc -50.1 -49.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 49.9 50.1 -INF INF -INF INF
# fix a temperature
fix_modify AtC initial temperature all 300.0
fix_modify AtC initial electron_temperature all 300.0
fix_modify AtC initial electron_density all gaussian 0 0 0 1 0 0 5.0 ${dn} ${n0}
# isolate system:
# diffusion: dn/dx = 0
# drift : n = 0
fix_modify AtC fix electron_density lbc ${n0}
fix_modify AtC fix electron_density rbc ${n0}
fix_modify AtC fix electric_potential all linear 0 0 0 $E 0 0 1
variable perm equal 0.06
variable nD equal 1.0e-4
fix_modify AtC source electric_potential all ${nD}
variable s equal 10
thermo $s
# f_AtC:1 thermal energy, 2 avg T, 3 electron energy, 4 avg Te, 5 total n
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4] f_AtC[5]
thermo_modify format 1 %5i format 2 %7.2g
fix_modify AtC output no_atoms_ddmFE $s text
fix_modify AtC extrinsic electron_integration implicit
run 40
# free electric field and allow shielding
fix_modify AtC unfix electric_potential all
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 1
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 1
fix_modify AtC extrinsic electron_integration implicit 10
run 40

View File

@ -1,79 +1,79 @@
# needs description
#AtC drift diffusion Coupling
# DESCRIPTION:
# electric potential solved over whole domain
# all others only over the lower half
# temperature is fixed over whole domain
# NOTE the vacuum can fully masked out by making the material
# have null electron_density in Ar_ddm.mat
echo both
units metal
variable s equal 100
variable T equal 20
variable n equal 0.000004
variable tol equal 0.1
variable W equal 1000
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region FE block -8 8 -6 6 0 3
region MD block -7 7 -6 0 0 3
region FREE block -4 4 -6 0 0 3
boundary f f p
# create atoms
create_box 1 FE
mass 1 39.95
atom_modify sort 0 1
timestep 0.002
thermo $s
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion Ar_ddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 4 4 1 FE f f p
variable a equal $W+${tol}
fix_modify AtC mesh create_elementset wire -$a $a -INF ${tol} -INF INF
fix_modify AtC mesh create_elementset gap -$a $a -${tol} INF -INF INF
# void is the complement of the wire nodeset
variable a equal $W-${tol}
fix_modify AtC mesh create_nodeset void -$a $a ${tol} INF -INF INF
fix_modify AtC mesh output null_material_ddmMESH binary
fix_modify AtC control thermal none
# fix a temperature
fix_modify AtC initial temperature all $T
fix_modify AtC initial electron_temperature all $T
fix_modify AtC initial electron_density all $n
fix_modify AtC initial electric_potential all 0.0
fix_modify AtC initial temperature void 0.0
fix_modify AtC initial electron_density void 0.0
fix_modify AtC initial electric_potential void 0.0
# create vacuum
fix_modify AtC material gap Vacuum
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output null_material_ddmFE $s full_text binary
fix_modify AtC extrinsic electron_integration implicit
#
fix_modify AtC mesh create_nodeset lbc -8.1 -7.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 7.9 8.1 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc $T
fix_modify AtC fix electron_temperature rbc $T
fix_modify AtC fix electron_density lbc $n
fix_modify AtC fix electric_potential lbc 0.0
variable m equal $s*10
run $m
# needs description
#AtC drift diffusion Coupling
# DESCRIPTION:
# electric potential solved over whole domain
# all others only over the lower half
# temperature is fixed over whole domain
# NOTE the vacuum can fully masked out by making the material
# have null electron_density in Ar_ddm.mat
echo both
units metal
variable s equal 100
variable T equal 20
variable n equal 0.000004
variable tol equal 0.1
variable W equal 1000
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region FE block -8 8 -6 6 0 3
region MD block -7 7 -6 0 0 3
region FREE block -4 4 -6 0 0 3
boundary f f p
# create atoms
create_box 1 FE
mass 1 39.95
atom_modify sort 0 1
timestep 0.002
thermo $s
# ID group atc PhysicsType ParameterFile
fix AtC all atc drift_diffusion Ar_ddm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 4 4 1 FE f f p
variable a equal $W+${tol}
fix_modify AtC mesh create_elementset wire -$a $a -INF ${tol} -INF INF
fix_modify AtC mesh create_elementset gap -$a $a -${tol} INF -INF INF
# void is the complement of the wire nodeset
variable a equal $W-${tol}
fix_modify AtC mesh create_nodeset void -$a $a ${tol} INF -INF INF
fix_modify AtC mesh output null_material_ddmMESH binary
fix_modify AtC control thermal none
# fix a temperature
fix_modify AtC initial temperature all $T
fix_modify AtC initial electron_temperature all $T
fix_modify AtC initial electron_density all $n
fix_modify AtC initial electric_potential all 0.0
fix_modify AtC initial temperature void 0.0
fix_modify AtC initial electron_density void 0.0
fix_modify AtC initial electric_potential void 0.0
# create vacuum
fix_modify AtC material gap Vacuum
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output null_material_ddmFE $s full_text binary
fix_modify AtC extrinsic electron_integration implicit
#
fix_modify AtC mesh create_nodeset lbc -8.1 -7.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 7.9 8.1 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc $T
fix_modify AtC fix electron_temperature rbc $T
fix_modify AtC fix electron_density lbc $n
fix_modify AtC fix electric_potential lbc 0.0
variable m equal $s*10
run $m

View File

@ -1,91 +1,91 @@
# needs description
#AtC Thermal Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.5
#pair_coeff 1 1 0.010323166 3.405 13.5
pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum glc_velocity
fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0
fix_modify AtC filter on
# run to extension
#fix_modify AtC output bar1dFE 50 text
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1dFE 500 text
# run to equilibrium
timestep 5
thermo 100
run 10000
# needs description
#AtC Thermal Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.5
#pair_coeff 1 1 0.010323166 3.405 13.5
pair_coeff 1 1 .238 3.405 13.5
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum glc_velocity
fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.0
fix_modify AtC filter on
# run to extension
#fix_modify AtC output bar1dFE 50 text
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1dFE 500 text
# run to equilibrium
timestep 5
thermo 100
run 10000

View File

@ -1,116 +1,116 @@
# needs description
echo both
units metal
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 2 simRegion
create_atoms 1 region mdRegion
mass * 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.5
#pair_coeff * * .238 3.405 13.5
pair_coeff * * 0.010323166 3.405 13.5
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_damped.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
variable v equal 0.00000004e3
variable n equal 1000
variable dt equal 0.005
variable u equal $v*$n*${dt}
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc $v
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
fix_modify AtC boundary ghosts
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum glc_velocity
#fix_modify AtC filter type exponential
#fix_modify AtC filter scale 1.0
#fix_modify AtC filter on
# run to extension
timestep 0.005
thermo 100
thermo_style custom step cpu ke pe
run 0
variable pe0 equal pe
variable pe equal pe-${pe0}
thermo_style custom step cpu ke pe v_pe f_AtC[1] f_AtC[2] f_AtC[4] f_AtC[5]
run $n
fix_modify AtC output bar1d_dampedFE 500 text
dump CONFIG all custom 500 bar1d_damped.dmp id type x y z vx vy vz
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc $u
# run to equilibrium
thermo 100
log bar1d_damped.log
run 2000
fix_modify AtC material all cubic # M damping
run 2000
fix_modify AtC material all damped # K damping
run 2000
# ATC: CB stiffness: 7.56717 Einstein freq: 0.355649 from Ar_CauchyBorn.mat
# real to metal 1 kcal/mol = 0.04336 eV
variable kCal2eV equal 0.04336
variable fconv equal 1./0.000103643 # NOTE old routine was doing calculations in lammps units, not atc units, so this conversion is necessary for bmark to pass
#variable k equal 1.e-3 # 7.56717*${kCal2eV} NOTE <<<
#variable k equal 0.75*0.355649e3*${kCal2eV}
variable k equal 0.5*39.95*${fconv} # NOTE it was set to above, should have been 2 above, but there was a bug so this value is here for bmark
#variable g equal 0.75*0.355649e3*${kCal2eV}
variable g equal 1.e-3*${fconv} # NOTE it should be above, but there was a bug so this value is here for bmark
variable m equal 2. #0.5*39.95
fix_modify AtC boundary_dynamics damped_harmonic $k $g $m
run 2000
# needs description
echo both
units metal
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 2 simRegion
create_atoms 1 region mdRegion
mass * 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.5
#pair_coeff * * .238 3.405 13.5
pair_coeff * * 0.010323166 3.405 13.5
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_damped.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
variable v equal 0.00000004e3
variable n equal 1000
variable dt equal 0.005
variable u equal $v*$n*${dt}
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc $v
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
fix_modify AtC boundary ghosts
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum glc_velocity
#fix_modify AtC filter type exponential
#fix_modify AtC filter scale 1.0
#fix_modify AtC filter on
# run to extension
timestep 0.005
thermo 100
thermo_style custom step cpu ke pe
run 0
variable pe0 equal pe
variable pe equal pe-${pe0}
thermo_style custom step cpu ke pe v_pe f_AtC[1] f_AtC[2] f_AtC[4] f_AtC[5]
run $n
fix_modify AtC output bar1d_dampedFE 500 text
dump CONFIG all custom 500 bar1d_damped.dmp id type x y z vx vy vz
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc $u
# run to equilibrium
thermo 100
log bar1d_damped.log
run 2000
fix_modify AtC material all cubic # M damping
run 2000
fix_modify AtC material all damped # K damping
run 2000
# ATC: CB stiffness: 7.56717 Einstein freq: 0.355649 from Ar_CauchyBorn.mat
# real to metal 1 kcal/mol = 0.04336 eV
variable kCal2eV equal 0.04336
variable fconv equal 1./0.000103643 # NOTE old routine was doing calculations in lammps units, not atc units, so this conversion is necessary for bmark to pass
#variable k equal 1.e-3 # 7.56717*${kCal2eV} NOTE <<<
#variable k equal 0.75*0.355649e3*${kCal2eV}
variable k equal 0.5*39.95*${fconv} # NOTE it was set to above, should have been 2 above, but there was a bug so this value is here for bmark
#variable g equal 0.75*0.355649e3*${kCal2eV}
variable g equal 1.e-3*${fconv} # NOTE it should be above, but there was a bug so this value is here for bmark
variable m equal 2. #0.5*39.95
fix_modify AtC boundary_dynamics damped_harmonic $k $g $m
run 2000

View File

@ -1,98 +1,98 @@
# needs description
#AtC Thermal Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
#fix_modify AtC control lumped_lambda_solve on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
fix_modify AtC control momentum flux interpolate
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_fluxFE 10 text
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1d_fluxFE 500 text
# run to equilibrium
timestep 5
thermo 100
run 10000
# needs description
#AtC Thermal Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -9 9 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0
#velocity internal create 40. 87287 mom yes loop geom
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
#fix_modify AtC output follow_ex.fe 50
fix_modify AtC internal_quadrature off
#fix_modify AtC control lumped_lambda_solve on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
fix_modify AtC control momentum flux interpolate
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_fluxFE 10 text
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1d_fluxFE 500 text
# run to equilibrium
timestep 5
thermo 100
run 10000

View File

@ -1,99 +1,99 @@
# needs description
#AtC Elastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -8 8 -3 3 -3 3
region mdRegion block -6 6 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region atomRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.5
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
fix_modify AtC time_integration fractional_step
fix_modify AtC internal_atom_integrate off
fix iNVE internal nve
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum flux interpolate
#fix_modify AtC control momentum hoover # tested in this mode
#fix_modify AtC filter type exponential
#fix_modify AtC filter scale 1000.0
#fix_modify AtC filter on
# run to extension
#fix_modify AtC output bar1d_frac_step_initFE 50 text binary
#dump D1 all atom 50 bar1d_frac_step_init.dmp
timestep 5
thermo 100
run 1000
# reset time
fix_modify AtC reset_time 0.
reset_timestep 0
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1d_frac_stepFE 500 text #binary
#fix_modify AtC output index step
#undump D1
#dump D1 all atom 500 bar1d_frac_step.dmp
# run to equilibrium
timestep 5
thermo 100
run 5000
# needs description
#AtC Elastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# create atoms
region simRegion block -12 12 -3 3 -3 3
region atomRegion block -8 8 -3 3 -3 3
region mdRegion block -6 6 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region atomRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.5
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC initial displacement y all 0.0
fix_modify AtC initial displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC initial velocity y all 0.0
fix_modify AtC initial velocity z all 0.0
fix_modify AtC time_integration fractional_step
fix_modify AtC internal_atom_integrate off
fix iNVE internal nve
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# specify atom types
#fix_modify AtC boundary Lghost
#fix_modify AtC boundary Rghost
fix_modify AtC boundary ghosts
fix_modify AtC internal_quadrature off
fix_modify AtC control localized_lambda on
fix_modify AtC control momentum flux interpolate
#fix_modify AtC control momentum hoover # tested in this mode
#fix_modify AtC filter type exponential
#fix_modify AtC filter scale 1000.0
#fix_modify AtC filter on
# run to extension
#fix_modify AtC output bar1d_frac_step_initFE 50 text binary
#dump D1 all atom 50 bar1d_frac_step_init.dmp
timestep 5
thermo 100
run 1000
# reset time
fix_modify AtC reset_time 0.
reset_timestep 0
# change nodes to fixed
fix_modify AtC fix velocity x rbc 0.
fix_modify AtC fix displacement x rbc 0.0002
fix_modify AtC output bar1d_frac_stepFE 500 text #binary
#fix_modify AtC output index step
#undump D1
#dump D1 all atom 500 bar1d_frac_step.dmp
# run to equilibrium
timestep 5
thermo 100
run 5000

View File

@ -1,101 +1,101 @@
# Computes elastic waves propagating in and out of a finite temperature region
#AtC ThermoElastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0, NOTE next for lines commented out for restart
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
fix_modify AtC internal_atom_integrate off
fix iNVE internal nve
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# turn on multiscale
fix_modify AtC control momentum ghost_flux
# new boundary conditions
fix_modify AtC fix velocity x rbc 0.00000004
#fix_modify AtC output follow_ex.fe 50
#fix_modify AtC localized_lambda on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
#fix_modify AtC control momentum flux
#fix_modify AtC control momentum ghost_flux
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_ghost_fluxFE 500 text
#dump D1 all atom 100 bar1d_ghost_flux.dmp
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC unfix velocity x rbc
#fix_modify AtC fix displacement x rbc 0.0002
#fix_modify AtC output bar1d_fluxFE 500 text binary
# run to equilibrium
timestep 5
thermo 100
run 3000
# Computes elastic waves propagating in and out of a finite temperature region
#AtC ThermoElastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
region simRegion block -12 12 -3 3 -3 3
region mdRegion block -8 8 -3 3 -3 3
boundary f p p
create_box 1 simRegion
create_atoms 1 region mdRegion
mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0, NOTE next for lines commented out for restart
pair_style lj/cut 13.
#pair_coeff 1 1 0.010323166 3.405 13.
pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc elastic Ar_elastic.mat
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
fix_modify AtC internal_atom_integrate off
fix iNVE internal nve
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# turn on multiscale
fix_modify AtC control momentum ghost_flux
# new boundary conditions
fix_modify AtC fix velocity x rbc 0.00000004
#fix_modify AtC output follow_ex.fe 50
#fix_modify AtC localized_lambda on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
#fix_modify AtC control momentum flux
#fix_modify AtC control momentum ghost_flux
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_ghost_fluxFE 500 text
#dump D1 all atom 100 bar1d_ghost_flux.dmp
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC unfix velocity x rbc
#fix_modify AtC fix displacement x rbc 0.0002
#fix_modify AtC output bar1d_fluxFE 500 text binary
# run to equilibrium
timestep 5
thermo 100
run 3000

View File

@ -1,139 +1,139 @@
# Computes elastic waves propagating in and out of a finite temperature region
#AtC ThermoElastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# NOTE following 3 lines added for restart
boundary f p p
pair_style lj/cut 13.
read_data temp.init
region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart
#region mdRegion block -8 8 -3 3 -3 3
#boundary f p p
#region mdBox block -9 9 -3 3 -3 3
#create_box 1 mdBox
#create_atoms 1 region mdRegion
#mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0, NOTE next for lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.
##pair_coeff 1 1 0.010323166 3.405 13.
#pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
#write_restart tinit.dat
# zero initial momentum
fix AtC internal atc elastic Ar_thermo_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
fix_modify AtC fix displacement x all 0.
fix_modify AtC fix displacement y all 0.
fix_modify AtC fix displacement z all 0.
fix_modify AtC fix velocity x all 0.
fix_modify AtC fix velocity y all 0.
fix_modify AtC fix velocity z all 0.
fix_modify AtC control momentum glc_velocity
#fix_modify AtC output bar1d_thermo_elastic_initializeFE 1 text #binary
timestep 0
thermo 1
run 1
unfix AtC
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc thermo_elastic Ar_thermo_elastic.mat
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
fix_modify AtC fix temperature all 20.
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# rescale thermostat for initial atomic temperatures
fix_modify AtC control thermal rescale 10
fix_modify AtC control momentum ghost_flux
fix_modify AtC output bar1d_thermo_elasticFE 100 text #binary
timestep 5
thermo 100
run 1000
# free all nodes
#fix_modify AtC unfix displacement x all
#fix_modify AtC unfix velocity x all
fix_modify AtC unfix temperature all
# new boundary conditions
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix temperature lbc 20.
#fix_modify AtC output follow_ex.fe 50
#fix_modify AtC localized_lambda on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
#fix_modify AtC control momentum flux
#fix_modify AtC control momentum ghost_flux
fix_modify AtC control thermal flux
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_thermo_elasticFE 500 text
#dump D1 all custom 100 bar1d_thermo_elastic.dmp id type x y z vx vy vz
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC unfix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.0002
#fix_modify AtC output bar1d_fluxFE 500 text binary
# run to equilibrium
timestep 5
thermo 100
run 3000
# Computes elastic waves propagating in and out of a finite temperature region
#AtC ThermoElastic Coupling
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3, where N=4 for fcc, s = 3.405 A (Wagner) and a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.2582305 origin 0.25 0.25 0.25
# NOTE following 3 lines added for restart
boundary f p p
pair_style lj/cut 13.
read_data temp.init
region simRegion block -12 12 -3 3 -3 3
# create atoms, NOTE commented out for restart
#region mdRegion block -8 8 -3 3 -3 3
#boundary f p p
#region mdBox block -9 9 -3 3 -3 3
#create_box 1 mdBox
#create_atoms 1 region mdRegion
#mass 1 39.95
# specify interal/ghost atoms
region mdInternal block -6 6 -3 3 -3 3
region leftghost block -8 -6 -3 3 -3 3
region rightghost block 6 8 -3 3 -3 3
group internal region mdInternal
group Lghost region leftghost
group Rghost region rightghost
group ghosts union Lghost Rghost
# velocities have Vcm = 0, NOTE next for lines commented out for restart
#velocity internal create 40. 87287 mom yes loop geom
#pair_style lj/cut 13.
##pair_coeff 1 1 0.010323166 3.405 13.
#pair_coeff 1 1 .2381 3.405 13.
neighbor 5. bin
neigh_modify every 10 delay 0 check no
#write_restart tinit.dat
# zero initial momentum
fix AtC internal atc elastic Ar_thermo_elastic.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
fix_modify AtC fix displacement x all 0.
fix_modify AtC fix displacement y all 0.
fix_modify AtC fix displacement z all 0.
fix_modify AtC fix velocity x all 0.
fix_modify AtC fix velocity y all 0.
fix_modify AtC fix velocity z all 0.
fix_modify AtC control momentum glc_velocity
#fix_modify AtC output bar1d_thermo_elastic_initializeFE 1 text #binary
timestep 0
thermo 1
run 1
unfix AtC
# define layer
# ID group atc PhysicsType ParameterFile
fix AtC internal atc thermo_elastic Ar_thermo_elastic.mat
fix_modify AtC boundary ghosts
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 simRegion f p p
fix_modify AtC mesh create_faceset obndy box -6.0 6.0 -INF INF -INF INF outward
fix_modify AtC internal_quadrature off
# initial conditions
fix_modify AtC initial displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC initial velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
fix_modify AtC fix temperature all 20.
# set node sets and bcs
# ID mesh create_nodeset tag xmin xmax ymin ymax zmin zmax
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
#fix_modify AtC fix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.
fix_modify AtC fix displacement x lbc 0.
fix_modify AtC fix velocity x lbc 0.
# rescale thermostat for initial atomic temperatures
fix_modify AtC control thermal rescale 10
fix_modify AtC control momentum ghost_flux
fix_modify AtC output bar1d_thermo_elasticFE 100 text #binary
timestep 5
thermo 100
run 1000
# free all nodes
#fix_modify AtC unfix displacement x all
#fix_modify AtC unfix velocity x all
fix_modify AtC unfix temperature all
# new boundary conditions
fix_modify AtC fix velocity x rbc 0.00000004
fix_modify AtC fix temperature lbc 20.
#fix_modify AtC output follow_ex.fe 50
#fix_modify AtC localized_lambda on
#fix_modify AtC momentum control glc_velocity
#fix_modify AtC momentum control flux faceset obndy
#fix_modify AtC control momentum flux
#fix_modify AtC control momentum ghost_flux
fix_modify AtC control thermal flux
#fix_modify AtC filter scale 1000.0
# run to extension
compute myTemp internal temp
compute atomStress internal stress/atom NULL
compute avgStress internal reduce sum c_atomStress[1] c_atomStress[2] c_atomStress[3]
variable myPres equal -(c_avgStress[1]+c_avgStress[2]+c_avgStress[3])/(3*vol)
thermo_style custom step c_myTemp v_myPres pe
fix_modify AtC output bar1d_thermo_elasticFE 500 text
#dump D1 all custom 100 bar1d_thermo_elastic.dmp id type x y z vx vy vz
timestep 5
thermo 100
run 1000
# change nodes to fixed
fix_modify AtC unfix velocity x rbc 0.
#fix_modify AtC fix displacement x rbc 0.0002
#fix_modify AtC output bar1d_fluxFE 500 text binary
# run to equilibrium
timestep 5
thermo 100
run 3000

View File

@ -1,80 +1,80 @@
echo both
units metal
atom_style atomic
atom_modify map hash
boundary p p p
variable l equal 3
variable l2 equal 0.5*$l
variable L equal 10
variable L2 equal 0.5*$L
variable h equal $L
lattice fcc 4.08 origin 0.25 0.25 0.25
region BOX block -${l2} ${l2} -${L2} ${L2} -${l2} ${l2}
create_box 1 BOX
create_atoms 1 region BOX
pair_style eam
pair_coeff * * Au_u3.eam
mass * 196.97
### NOTE change to CB -linear
fix PP all atc field Au_elastic.mat
fix_modify PP mesh create 1 $h 1 BOX p f p
fix_modify PP fields add displacement velocity potential_energy cauchy_born_energy # kinetic_energy
fix_modify PP gradients add displacement
fix_modify PP set reference_potential_energy
fix_modify PP output counter step
fix_modify PP output eam_energyPP 1 text
fix ATC all atc elastic Au_elastic.mat
fix_modify ATC mesh create 1 $h 1 BOX p f p
fix_modify ATC internal_quadrature off
fix_modify ATC control momentum none
#fix_modify ATC consistent_fe_initialization on
fix_modify ATC output counter step
fix_modify ATC output eam_energyFE 1 text binary
fix_modify ATC material all Au_cubic
dump CONFIG all custom 1 eam_energy.dmp id type x y z
thermo 1
timestep 0 # 1.e-20 # 0
variable e0 equal pe
variable L0 equal ly
run 0
variable pe equal pe-${e0}
variable dL equal ly-${L0}
variable strain equal v_dL/${L0}
variable x equal y[1]
variable x2 equal y[2]
variable v equal vy[1]
thermo_style custom step etotal v_pe ke f_ATC[1] f_ATC[2] v_x v_v v_x2 ly v_dL v_strain
thermo_modify format 2 %15.8g
###############################################################################
log eam_energy.log
run 1
velocity all set 0 0.1 0 units box
fix_modify ATC fix velocity y all 0.1
run 1
velocity all set 0 0.2 0 units box
fix_modify ATC fix velocity y all 0.2
run 1
velocity all set 0 0.3 0 units box
fix_modify ATC fix velocity y all 0.3
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.01 0 0
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.0201 0 0
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.030301 0 0
run 1
echo both
units metal
atom_style atomic
atom_modify map hash
boundary p p p
variable l equal 3
variable l2 equal 0.5*$l
variable L equal 10
variable L2 equal 0.5*$L
variable h equal $L
lattice fcc 4.08 origin 0.25 0.25 0.25
region BOX block -${l2} ${l2} -${L2} ${L2} -${l2} ${l2}
create_box 1 BOX
create_atoms 1 region BOX
pair_style eam
pair_coeff * * Au_u3.eam
mass * 196.97
### NOTE change to CB -linear
fix PP all atc field Au_elastic.mat
fix_modify PP mesh create 1 $h 1 BOX p f p
fix_modify PP fields add displacement velocity potential_energy cauchy_born_energy # kinetic_energy
fix_modify PP gradients add displacement
fix_modify PP set reference_potential_energy
fix_modify PP output counter step
fix_modify PP output eam_energyPP 1 text
fix ATC all atc elastic Au_elastic.mat
fix_modify ATC mesh create 1 $h 1 BOX p f p
fix_modify ATC internal_quadrature off
fix_modify ATC control momentum none
#fix_modify ATC consistent_fe_initialization on
fix_modify ATC output counter step
fix_modify ATC output eam_energyFE 1 text binary
fix_modify ATC material all Au_cubic
dump CONFIG all custom 1 eam_energy.dmp id type x y z
thermo 1
timestep 0 # 1.e-20 # 0
variable e0 equal pe
variable L0 equal ly
run 0
variable pe equal pe-${e0}
variable dL equal ly-${L0}
variable strain equal v_dL/${L0}
variable x equal y[1]
variable x2 equal y[2]
variable v equal vy[1]
thermo_style custom step etotal v_pe ke f_ATC[1] f_ATC[2] v_x v_v v_x2 ly v_dL v_strain
thermo_modify format 2 %15.8g
###############################################################################
log eam_energy.log
run 1
velocity all set 0 0.1 0 units box
fix_modify ATC fix velocity y all 0.1
run 1
velocity all set 0 0.2 0 units box
fix_modify ATC fix velocity y all 0.2
run 1
velocity all set 0 0.3 0 units box
fix_modify ATC fix velocity y all 0.3
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.01 0 0
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.0201 0 0
run 1
change_box all y scale 1.01 remap
fix_modify ATC fix displacement y all linear 0 0 0 0 0.030301 0 0
run 1

View File

@ -1,74 +1,74 @@
# needs description
echo both
units metal
# PARAMETERS-----------------------------
variable s equal 1
variable L equal 10
variable e equal 4
variable E equal 0.0001
variable V equal $E*$L
# END -----------------------------------
atom_style atomic
lattice diamond 1.0
boundary f p p
region box block -$L $L 0 1 0 1
create_box 1 box
group box region box
atom_modify sort 0 1
timestep 0.0
mass * 12.01
# coupling
### NOTE ATC: material cnt does not provide all interfaces for charge_density physics and will be treated as null
fix AtC box atc electrostatic-equilibrium CNT.mat
fix_modify AtC internal_quadrature off
#fix_modify AtC atom_weight constant internal 1.0 NOTE penultimate is a group
fix_modify AtC atom_weight constant box 1.0
fix_modify AtC omit atomic_charge
fix_modify AtC mesh create $e 1 1 box f p p
#fix_modify AtC control momentum flux
fix_modify AtC mesh create_elementset all -INF INF -INF INF -INF INF
# bcs/ics conditions
fix_modify AtC fix displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC fix velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
fix_modify AtC mesh create_nodeset lbc -10 -10 INF INF INF INF
fix_modify AtC mesh create_nodeset rbc 10 10 INF INF INF INF
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 $V
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 $V
# run
thermo_style custom step cpu etotal ke
thermo $s
fix_modify AtC output electron_densityFE $s text
fix_modify AtC output index step
log electron_density.log
# run default material
print "default material - table linear"
run $s
# run CNT1 material
print "CNT1 material - analytical linear"
fix_modify AtC material all CNT1
run $s
# run CNT2 material
print "CNT2 material - analytical exponetial"
fix_modify AtC material all CNT2
run $s
# run CNT material
print "CNT material - table DOS"
fix_modify AtC material all CNT
#variable E equal 10*$E
#fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 $V
#fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 $V
run $s
# needs description
echo both
units metal
# PARAMETERS-----------------------------
variable s equal 1
variable L equal 10
variable e equal 4
variable E equal 0.0001
variable V equal $E*$L
# END -----------------------------------
atom_style atomic
lattice diamond 1.0
boundary f p p
region box block -$L $L 0 1 0 1
create_box 1 box
group box region box
atom_modify sort 0 1
timestep 0.0
mass * 12.01
# coupling
### NOTE ATC: material cnt does not provide all interfaces for charge_density physics and will be treated as null
fix AtC box atc electrostatic-equilibrium CNT.mat
fix_modify AtC internal_quadrature off
#fix_modify AtC atom_weight constant internal 1.0 NOTE penultimate is a group
fix_modify AtC atom_weight constant box 1.0
fix_modify AtC omit atomic_charge
fix_modify AtC mesh create $e 1 1 box f p p
#fix_modify AtC control momentum flux
fix_modify AtC mesh create_elementset all -INF INF -INF INF -INF INF
# bcs/ics conditions
fix_modify AtC fix displacement x all 0.0
fix_modify AtC fix displacement y all 0.0
fix_modify AtC fix displacement z all 0.0
fix_modify AtC fix velocity x all 0.0
fix_modify AtC fix velocity y all 0.0
fix_modify AtC fix velocity z all 0.0
fix_modify AtC mesh create_nodeset lbc -10 -10 INF INF INF INF
fix_modify AtC mesh create_nodeset rbc 10 10 INF INF INF INF
fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 $V
fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 $V
# run
thermo_style custom step cpu etotal ke
thermo $s
fix_modify AtC output electron_densityFE $s text
fix_modify AtC output index step
log electron_density.log
# run default material
print "default material - table linear"
run $s
# run CNT1 material
print "CNT1 material - analytical linear"
fix_modify AtC material all CNT1
run $s
# run CNT2 material
print "CNT2 material - analytical exponetial"
fix_modify AtC material all CNT2
run $s
# run CNT material
print "CNT material - table DOS"
fix_modify AtC material all CNT
#variable E equal 10*$E
#fix_modify AtC fix electric_potential lbc linear 0 0 0 $E 0 0 $V
#fix_modify AtC fix electric_potential rbc linear 0 0 0 $E 0 0 $V
run $s

View File

@ -1,56 +1,56 @@
echo both
units real
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdRegion block -12 12 -3 3 -3 3
region mdInternal block -10 10 -3 3 -3 3
# create atoms
boundary f p p
create_box 1 mdRegion
create_atoms 1 region mdRegion
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
# specify interal/ghost atoms
group internal region mdInternal
velocity internal create 40 87287 mom yes loop geom # <<< NOTE
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC1d_hex.mesh
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# turn on thermostat
fix_modify AtC extrinsic exchange off
fix_modify AtC control thermal rescale 10
# equilibrate MD field
timestep 5.0
thermo 10
#output
fix_modify AtC output gaussianIC1d_hexFE 10 text
# change thermostat
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
# run with FE
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
reset_timestep 0
run 100 # 400
echo both
units real
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdRegion block -12 12 -3 3 -3 3
region mdInternal block -10 10 -3 3 -3 3
# create atoms
boundary f p p
create_box 1 mdRegion
create_atoms 1 region mdRegion
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
# specify interal/ghost atoms
group internal region mdInternal
velocity internal create 40 87287 mom yes loop geom # <<< NOTE
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC1d_hex.mesh
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# turn on thermostat
fix_modify AtC extrinsic exchange off
fix_modify AtC control thermal rescale 10
# equilibrate MD field
timestep 5.0
thermo 10
#output
fix_modify AtC output gaussianIC1d_hexFE 10 text
# change thermostat
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
# run with FE
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
reset_timestep 0
run 100 # 400

View File

@ -1,69 +1,69 @@
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdRegion cylinder z 0. 0. ${l2} -$w $w
region mdInternal cylinder z 0. 0. $l -$w $w
boundary f f f
pair_style lj/cut 13.5
read_data circle_temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
group ghost subtract all internal
fix AtC internal atc two_temperature Ar_ttm.mat
# computational geometry
fix_modify AtC mesh read gaussianIC2d_hex.mesh
#fix_modify AtC mesh read gaussianIC2d_hex.exo
#fix_modify AtC mesh read gaussianIC2d_hex2.exo
#fix_modify AtC mesh read gaussianIC2d_hex2.mesh
fix_modify AtC mesh write parsed_gaussianIC2d_hex.mesh
fix_modify AtC mesh output gaussianIC2d_hexMESH
fix_modify AtC boundary ghost
# numerical parameters
fix_modify AtC time_integration fractional_step
fix_modify AtC internal_quadrature off
# initial conditions
fix_modify AtC fix temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# thermostat
fix_modify AtC control thermal rescale 10
fix_modify AtC extrinsic exchange off
# run to equilibrate
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 400
# boundary conditions
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
# numerical parameters
fix_modify AtC extrinsic electron_integration explicit 10
# thermostat
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
# output
fix_modify AtC output gaussianIC2d_hexFE 10 full_text binary
dump D1 all atom 10 gaussianIC2d_hex.dmp
# relax the system
run 1000
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdRegion cylinder z 0. 0. ${l2} -$w $w
region mdInternal cylinder z 0. 0. $l -$w $w
boundary f f f
pair_style lj/cut 13.5
read_data circle_temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
group ghost subtract all internal
fix AtC internal atc two_temperature Ar_ttm.mat
# computational geometry
fix_modify AtC mesh read gaussianIC2d_hex.mesh
#fix_modify AtC mesh read gaussianIC2d_hex.exo
#fix_modify AtC mesh read gaussianIC2d_hex2.exo
#fix_modify AtC mesh read gaussianIC2d_hex2.mesh
fix_modify AtC mesh write parsed_gaussianIC2d_hex.mesh
fix_modify AtC mesh output gaussianIC2d_hexMESH
fix_modify AtC boundary ghost
# numerical parameters
fix_modify AtC time_integration fractional_step
fix_modify AtC internal_quadrature off
# initial conditions
fix_modify AtC fix temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# thermostat
fix_modify AtC control thermal rescale 10
fix_modify AtC extrinsic exchange off
# run to equilibrate
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 400
# boundary conditions
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
# numerical parameters
fix_modify AtC extrinsic electron_integration explicit 10
# thermostat
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
# output
fix_modify AtC output gaussianIC2d_hexFE 10 full_text binary
dump D1 all atom 10 gaussianIC2d_hex.dmp
# relax the system
run 1000

View File

@ -1,37 +1,37 @@
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_hex20_uniform.mesh
fix_modify AtC output gaussianIC2d_hex20_uniformFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_hex20_uniform.mesh
fix_modify AtC output gaussianIC2d_hex20_uniformFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100

View File

@ -1,37 +1,37 @@
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_hex27_uniform.mesh
fix_modify AtC output gaussianIC2d_hex27_uniformFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_hex27_uniform.mesh
fix_modify AtC output gaussianIC2d_hex27_uniformFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100

View File

@ -1,40 +1,40 @@
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_tet.mesh
#fix_modify AtC mesh read gaussianIC2d_tet.exo
fix_modify AtC mesh write parsed_gaussianIC2d_tet.mesh
fix_modify AtC mesh output parsed_gaussianIC2d_tetMESH
fix_modify AtC output gaussianIC2d_tetFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100
echo both
units real
atom_style atomic
variable L equal 12
variable l2 equal 6
variable l equal 4
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region mdInternal block -$l $l -$l $l -$w $w
boundary f f f # p
pair_style lj/cut 13.5
read_data temp.init
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
mass 1 39.95
pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
fix AtC internal atc two_temperature Ar_ttm.mat
fix_modify AtC mesh read gaussianIC2d_tet.mesh
#fix_modify AtC mesh read gaussianIC2d_tet.exo
fix_modify AtC mesh write parsed_gaussianIC2d_tet.mesh
fix_modify AtC mesh output parsed_gaussianIC2d_tetMESH
fix_modify AtC output gaussianIC2d_tetFE 10 full_text
fix_modify AtC initial temperature all 20.0
# NOTE this is only gaussian in x
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix temperature 11 20.0
fix_modify AtC fix temperature 12 20.0
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
timestep 1.0
thermo 10
run 100

View File

@ -1,32 +1,32 @@
echo both
units real
atom_style atomic
# correct mass density = 1.0120
# NOTE the mesh is not currently periodic, so the density estimate is off by a factor of 2
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc hardy
fix_modify AtC kernel quartic_cylinder 5.0
fix_modify AtC mesh read gaussianIC2d_hex.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output kernel2d_hexFE 1 full_text binary
#dump CONFIG all custom 1 kernel2d_hexMD.dmp id type x y z
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2
echo both
units real
atom_style atomic
# correct mass density = 1.0120
# NOTE the mesh is not currently periodic, so the density estimate is off by a factor of 2
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc hardy
fix_modify AtC kernel quartic_cylinder 5.0
fix_modify AtC mesh read gaussianIC2d_hex.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output kernel2d_hexFE 1 full_text binary
#dump CONFIG all custom 1 kernel2d_hexMD.dmp id type x y z
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2

View File

@ -1,28 +1,28 @@
echo both
units real
atom_style atomic
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc hardy
fix_modify AtC kernel quartic_sphere 5.0
fix_modify AtC mesh read gaussianIC2d_tet.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output kernel2d_tetFE 1 full_text binary
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2
echo both
units real
atom_style atomic
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc hardy
fix_modify AtC kernel quartic_sphere 5.0
fix_modify AtC mesh read gaussianIC2d_tet.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output kernel2d_tetFE 1 full_text binary
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2

View File

@ -1,29 +1,29 @@
echo both
units real
atom_style atomic
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc field
fix_modify AtC mesh read gaussianIC2d_tet.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output mesh2d_tetFE 1 full_text binary
dump CONFIG all custom 10 mesh2d_tet.dmp id type x y z
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2
echo both
units real
atom_style atomic
variable L equal 6
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
region BOX block -$L $L -$L $L -$w $w
boundary f f p
create_box 1 BOX
create_atoms 1 region BOX
mass 1 39.95
pair_style lj/cut 13.5
pair_coeff 1 1 .238 3.405 13.5
group internal region BOX
fix AtC internal atc field
fix_modify AtC mesh read gaussianIC2d_tet.mesh
fix_modify AtC fields add mass_density
fix_modify AtC output mesh2d_tetFE 1 full_text binary
dump CONFIG all custom 10 mesh2d_tet.dmp id type x y z
thermo_style custom step cpu temp
timestep 0.0
thermo 1
run 2

View File

@ -1,101 +1,101 @@
# this input can be used to generate the benchmark for in.gaussianIC2d_hex_uniform
echo both
units real
atom_style atomic
variable l equal 8
variable g equal 2
variable lg equal $l+$g
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
boundary f f f
# region to create atoms
region bigCyl cylinder z 0. 0. ${lg} -$w $w
region offsetPlane block -${lg} $g -${lg} ${lg} -$w $w
region mdRegion intersect 2 bigCyl offsetPlane
#create_box 1 mdRegion
pair_style lj/cut 13.5
read_data semicircle.init
# region for internal atoms
region mdInternalCyl cylinder z 0. 0. $l -$w $w
region leftHalfPlane block INF 0. INF INF INF INF
region mdInternal intersect 2 mdInternalCyl leftHalfPlane
# region for coupling ghosts
region rightHalfPlane block 0. INF INF INF INF INF
region mdGhost union 2 rightHalfPlane mdInternal side out
#create_atoms 1 region mdRegion
#create_atoms 1 region mdInternal
#create_atoms 2 region mdGhost
#region outerGhost intersect 2 rightHalfPlane mdRegion
#create_atoms 3 region outerGhost
#pair_style lj/cut 13.5
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
#mass 1 39.95
#pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
group ghost region mdGhost
#velocity internal create 40 102486 mom yes rot yes dist gaussian
#write_restart semicircle_init.rst
# ATC commands
fix AtC internal atc thermal Ar_ttm.mat
fix_modify AtC boundary ghost
fix_modify AtC mesh read semicircle.mesh f f p
fix_modify AtC mesh nodeset_to_elementset 2 hole min
fix_modify AtC internal_quadrature off
fix_modify AtC time_integration fractional_step
# initial conditions
fix_modify AtC fix temperature all 20.
fix_modify AtC control thermal rescale 10
fix_modify AtC control tolerance 1.e-14 # tolerance needed to produce consistent parallel and serial results
# initial output
#fix_modify AtC mesh output semicircle_mesh
#fix_modify AtC output semicircle_init 100 text binary
#dump D1 all atom 100 semicircle_init.dmp
# run
timestep 5.0
thermo 100
run 500
# boundary conditions
fix_modify AtC unfix temperature all
fix_modify AtC fix temperature 1 20.
fix_modify AtC control thermal flux
fix_modify AtC control localized_lambda on
# NOTE appears to be a problem with the temporal ramp function
variable delta_t equal 1000*5.
fix_modify AtC source temperature hole temporal_ramp 0. 0.0000000001 ${delta_t}
# equilibrate filter
fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.
fix_modify AtC filter on
# equilibration output
fix_modify AtC output semicircleFE 100 full_text #binary
#undump D1
#dump D1 all atom 100 semicircle_equil.dmp
# run
fix_modify AtC reset_time 0.
reset_timestep 0
thermo 100
run 1000
# heat source
# NOTE second run omitted as it causes diffs in parallel execution after just one timestep, not sure why
#fix_modify AtC source temperature hole 0.0000000001
#fix_modify AtC output semicircleFE 1 full_text #binary
#undump D1
#dump D1 all atom 100 semicircle.dmp
#run 1#000
# this input can be used to generate the benchmark for in.gaussianIC2d_hex_uniform
echo both
units real
atom_style atomic
variable l equal 8
variable g equal 2
variable lg equal $l+$g
variable w equal 2
lattice fcc 5.405 origin 0.25 0.25 0.25
boundary f f f
# region to create atoms
region bigCyl cylinder z 0. 0. ${lg} -$w $w
region offsetPlane block -${lg} $g -${lg} ${lg} -$w $w
region mdRegion intersect 2 bigCyl offsetPlane
#create_box 1 mdRegion
pair_style lj/cut 13.5
read_data semicircle.init
# region for internal atoms
region mdInternalCyl cylinder z 0. 0. $l -$w $w
region leftHalfPlane block INF 0. INF INF INF INF
region mdInternal intersect 2 mdInternalCyl leftHalfPlane
# region for coupling ghosts
region rightHalfPlane block 0. INF INF INF INF INF
region mdGhost union 2 rightHalfPlane mdInternal side out
#create_atoms 1 region mdRegion
#create_atoms 1 region mdInternal
#create_atoms 2 region mdGhost
#region outerGhost intersect 2 rightHalfPlane mdRegion
#create_atoms 3 region outerGhost
#pair_style lj/cut 13.5
fix ZWALLS all wall/reflect zlo EDGE zhi EDGE
#mass 1 39.95
#pair_coeff 1 1 .238 3.405 13.5
group internal region mdInternal
group ghost region mdGhost
#velocity internal create 40 102486 mom yes rot yes dist gaussian
#write_restart semicircle_init.rst
# ATC commands
fix AtC internal atc thermal Ar_ttm.mat
fix_modify AtC boundary ghost
fix_modify AtC mesh read semicircle.mesh f f p
fix_modify AtC mesh nodeset_to_elementset 2 hole min
fix_modify AtC internal_quadrature off
fix_modify AtC time_integration fractional_step
# initial conditions
fix_modify AtC fix temperature all 20.
fix_modify AtC control thermal rescale 10
fix_modify AtC control tolerance 1.e-14 # tolerance needed to produce consistent parallel and serial results
# initial output
#fix_modify AtC mesh output semicircle_mesh
#fix_modify AtC output semicircle_init 100 text binary
#dump D1 all atom 100 semicircle_init.dmp
# run
timestep 5.0
thermo 100
run 500
# boundary conditions
fix_modify AtC unfix temperature all
fix_modify AtC fix temperature 1 20.
fix_modify AtC control thermal flux
fix_modify AtC control localized_lambda on
# NOTE appears to be a problem with the temporal ramp function
variable delta_t equal 1000*5.
fix_modify AtC source temperature hole temporal_ramp 0. 0.0000000001 ${delta_t}
# equilibrate filter
fix_modify AtC filter type exponential
fix_modify AtC filter scale 1000.
fix_modify AtC filter on
# equilibration output
fix_modify AtC output semicircleFE 100 full_text #binary
#undump D1
#dump D1 all atom 100 semicircle_equil.dmp
# run
fix_modify AtC reset_time 0.
reset_timestep 0
thermo 100
run 1000
# heat source
# NOTE second run omitted as it causes diffs in parallel execution after just one timestep, not sure why
#fix_modify AtC source temperature hole 0.0000000001
#fix_modify AtC output semicircleFE 1 full_text #binary
#undump D1
#dump D1 all atom 100 semicircle.dmp
#run 1#000

View File

@ -1,56 +1,56 @@
# needs description
#AtC thermal Coupling
#
echo both
units real
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region feRegion block -10 10 -1 1 -1 1
boundary f p p
create_box 1 feRegion
mass 1 39.95 # need to keep this
atom_modify sort 0 1
region dummyRegion block -100 -99 -1 1 -1 1
group dummy region dummyRegion
# ID group atc PhysicsType ParameterFile
fix AtC dummy atc thermal Ar_thermal.mat
timestep 5.0
# ID part keywords nx ny nz region
fix_modify AtC mesh create 10 1 1 feRegion f p p
# fix end temperatures and an internal source
fix_modify AtC initial temperature all 20.0
fix_modify AtC source temperature all 0.0000000000632
fix_modify AtC mesh create_nodeset lbc -10.1 -9.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 9.9 10.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 20.
fix_modify AtC fix temperature rbc 20.
fix_modify AtC mesh create_elementset middle -4.1 4.1 -INF INF -INF INF
fix_modify AtC material middle Ar2
thermo_style custom step cpu f_AtC[1] f_AtC[2]
fix_modify AtC output no_atomsFE 1000 text binary
thermo 100
run 10000
fix_modify AtC remove_source temperature all
fix_modify AtC unfix temperature rbc
fix_modify AtC fix temperature all 20.
run 1
fix_modify AtC unfix temperature all
reset_timestep 0
# fix one end temperature and the a source at the other
fix_modify AtC fix temperature lbc 20.
fix_modify AtC mesh create_faceset rbcFace plane x 10.0
fix_modify AtC fix_flux temperature rbcFace 0.000000001
fix_modify AtC output no_atoms_flux_FE 1000 text binary # NOTE not used
thermo 100
run 10000
# needs description
#AtC thermal Coupling
#
echo both
units real
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region feRegion block -10 10 -1 1 -1 1
boundary f p p
create_box 1 feRegion
mass 1 39.95 # need to keep this
atom_modify sort 0 1
region dummyRegion block -100 -99 -1 1 -1 1
group dummy region dummyRegion
# ID group atc PhysicsType ParameterFile
fix AtC dummy atc thermal Ar_thermal.mat
timestep 5.0
# ID part keywords nx ny nz region
fix_modify AtC mesh create 10 1 1 feRegion f p p
# fix end temperatures and an internal source
fix_modify AtC initial temperature all 20.0
fix_modify AtC source temperature all 0.0000000000632
fix_modify AtC mesh create_nodeset lbc -10.1 -9.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 9.9 10.1 -INF INF -INF INF
fix_modify AtC fix temperature lbc 20.
fix_modify AtC fix temperature rbc 20.
fix_modify AtC mesh create_elementset middle -4.1 4.1 -INF INF -INF INF
fix_modify AtC material middle Ar2
thermo_style custom step cpu f_AtC[1] f_AtC[2]
fix_modify AtC output no_atomsFE 1000 text binary
thermo 100
run 10000
fix_modify AtC remove_source temperature all
fix_modify AtC unfix temperature rbc
fix_modify AtC fix temperature all 20.
run 1
fix_modify AtC unfix temperature all
reset_timestep 0
# fix one end temperature and the a source at the other
fix_modify AtC fix temperature lbc 20.
fix_modify AtC mesh create_faceset rbcFace plane x 10.0
fix_modify AtC fix_flux temperature rbcFace 0.000000001
fix_modify AtC output no_atoms_flux_FE 1000 text binary # NOTE not used
thermo 100
run 10000

View File

@ -1,87 +1,87 @@
# needs description
#AtC Two temperature Coupling
# DESCRIPTION:
# delete elements from the mesh
# heating and then relaxation
echo both
units metal
variable INF equal 1000
variable T equal 20
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region FE block -8 8 -6 6 0 3
region MD block -7 7 -6 0 0 3
region FREE block -4 4 -6 0 0 3
boundary f f p
# create atoms
#create_box 1 FE
#create_atoms 1 region MD
#group internal region FREE
#mass 1 39.95
#read_data cutout.data
#pair_coeff * * .238 3.405 13.5
#velocity internal create 40 87287 mom yes loop geom
#fix NVE internal nve
#thermo 100
#dump CONFIG all atom 100 cutout.dump
##run 1000
#unfix NVE
#write_restart cutout.rst
pair_style lj/cut 13.5
read_data cutout.init
group internal region FREE
group ghost subtract all internal
timestep 0.002
thermo 20
# allow initial state to relax
fix NVT internal nvt temp $T $T 10 drag 0.2
fix RESCALE internal temp/rescale 25 $T $T 0.05 1.0
run 200
unfix RESCALE
run 800
unfix NVT
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 8 6 1 FE f f p
fix_modify AtC mesh create_elementset wire -4 4 -INF 0 -INF INF
fix_modify AtC mesh create_nodeset gap -4 4 -0 INF -INF INF
fix_modify AtC mesh create_elementset gap -4 4 -0 INF -INF INF
fix_modify AtC mesh delete_elements gap
fix_modify AtC mesh create_faceset bndy box -4 4 -INF 0 -INF INF
fix_modify AtC control thermal flux faceset bndy
# fix a temperature
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all 30.0
fix_modify AtC initial temperature gap 0.0
# relaxation
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output cutoutFE 10 text
fix_modify AtC extrinsic electron_integration implicit
# heating
fix_modify AtC mesh create_nodeset lbc -8 -8 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 8 8 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc 20.
fix_modify AtC fix electron_temperature rbc 20.
fix_modify AtC source electron_temperature wire 0.001
run 200
# relaxation
fix_modify AtC remove_source electron_temperature wire
run 200
# needs description
#AtC Two temperature Coupling
# DESCRIPTION:
# delete elements from the mesh
# heating and then relaxation
echo both
units metal
variable INF equal 1000
variable T equal 20
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region FE block -8 8 -6 6 0 3
region MD block -7 7 -6 0 0 3
region FREE block -4 4 -6 0 0 3
boundary f f p
# create atoms
#create_box 1 FE
#create_atoms 1 region MD
#group internal region FREE
#mass 1 39.95
#read_data cutout.data
#pair_coeff * * .238 3.405 13.5
#velocity internal create 40 87287 mom yes loop geom
#fix NVE internal nve
#thermo 100
#dump CONFIG all atom 100 cutout.dump
##run 1000
#unfix NVE
#write_restart cutout.rst
pair_style lj/cut 13.5
read_data cutout.init
group internal region FREE
group ghost subtract all internal
timestep 0.002
thermo 20
# allow initial state to relax
fix NVT internal nvt temp $T $T 10 drag 0.2
fix RESCALE internal temp/rescale 25 $T $T 0.05 1.0
run 200
unfix RESCALE
run 800
unfix NVT
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 8 6 1 FE f f p
fix_modify AtC mesh create_elementset wire -4 4 -INF 0 -INF INF
fix_modify AtC mesh create_nodeset gap -4 4 -0 INF -INF INF
fix_modify AtC mesh create_elementset gap -4 4 -0 INF -INF INF
fix_modify AtC mesh delete_elements gap
fix_modify AtC mesh create_faceset bndy box -4 4 -INF 0 -INF INF
fix_modify AtC control thermal flux faceset bndy
# fix a temperature
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all 30.0
fix_modify AtC initial temperature gap 0.0
# relaxation
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output cutoutFE 10 text
fix_modify AtC extrinsic electron_integration implicit
# heating
fix_modify AtC mesh create_nodeset lbc -8 -8 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 8 8 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc 20.
fix_modify AtC fix electron_temperature rbc 20.
fix_modify AtC source electron_temperature wire 0.001
run 200
# relaxation
fix_modify AtC remove_source electron_temperature wire
run 200

View File

@ -1,94 +1,94 @@
#AtC Two temperature Coupling
# DESCRIPTION:
# full overlap of MD and FE regions w/ free ends & lateral periodic bcs
# initial gaussian electron temperature profile and uniform phonon temperature
# results in fast exchange followed by slower diffusion and finally relaxation
# to equilibrium
#
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3,
# where N = 4 for fcc,
# s = 3.405 A (Wagner)
# a = 5.25 A (Ashcroft & Mermin, p. 70)
# to create restart :
# write_restart temp.bin
# then : restart2data temp.bin temp.init
#if {restart}
boundary f p p
pair_style lj/cut 13.5
read_data temp.init
#endif
lattice fcc 5.405 origin 0.25 0.25 0.25
region feRegion block -10 10 -3 3 -3 3
region mdRegion block -12 12 -3 3 -3 3
region mdInternal block -10 10 -3 3 -3 3
# create atoms, NOTE commented out for restart
#if !{restart}
#boundary f p p
#create_box 1 mdRegion
#create_atoms 1 region mdRegion
#mass 1 39.95
#pair_style lj/cut 13.5
#pair_coeff 1 1 .238 3.405 13.5
#velocity internal create 40 87287 mom yes loop geom
#endif
# specify interal/ghost atoms
group internal region mdInternal
# do not define ghosts if outside fe region
#group ghost subtract all internal
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 10 1 1 feRegion f p p
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# turn on thermostat
fix_modify AtC extrinsic exchange off
fix_modify AtC control thermal rescale 10
# equilibrate MD field
timestep 5.0
#timestep 0.1
thermo 10
#if !{restart}
#run 1000
#endif
# write restart file (for atoms)
#if !{restart}
#write_restart gaussianT0.dat
#endif
#output
fix_modify AtC output gaussianIC_ttmFE 10 text
# change thermostat
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
# run with FE
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
reset_timestep 0
run 400
#AtC Two temperature Coupling
# DESCRIPTION:
# full overlap of MD and FE regions w/ free ends & lateral periodic bcs
# initial gaussian electron temperature profile and uniform phonon temperature
# results in fast exchange followed by slower diffusion and finally relaxation
# to equilibrium
#
echo both
units real
atom_style atomic
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3,
# where N = 4 for fcc,
# s = 3.405 A (Wagner)
# a = 5.25 A (Ashcroft & Mermin, p. 70)
# to create restart :
# write_restart temp.bin
# then : restart2data temp.bin temp.init
#if {restart}
boundary f p p
pair_style lj/cut 13.5
read_data temp.init
#endif
lattice fcc 5.405 origin 0.25 0.25 0.25
region feRegion block -10 10 -3 3 -3 3
region mdRegion block -12 12 -3 3 -3 3
region mdInternal block -10 10 -3 3 -3 3
# create atoms, NOTE commented out for restart
#if !{restart}
#boundary f p p
#create_box 1 mdRegion
#create_atoms 1 region mdRegion
#mass 1 39.95
#pair_style lj/cut 13.5
#pair_coeff 1 1 .238 3.405 13.5
#velocity internal create 40 87287 mom yes loop geom
#endif
# specify interal/ghost atoms
group internal region mdInternal
# do not define ghosts if outside fe region
#group ghost subtract all internal
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 10 1 1 feRegion f p p
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC initial temperature all 20.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
fix_modify AtC fix electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# turn on thermostat
fix_modify AtC extrinsic exchange off
fix_modify AtC control thermal rescale 10
# equilibrate MD field
timestep 5.0
#timestep 0.1
thermo 10
#if !{restart}
#run 1000
#endif
# write restart file (for atoms)
#if !{restart}
#write_restart gaussianT0.dat
#endif
#output
fix_modify AtC output gaussianIC_ttmFE 10 text
# change thermostat
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
fix_modify AtC extrinsic exchange on
fix_modify AtC extrinsic electron_integration explicit 10
# run with FE
thermo_style custom step temp pe f_AtC[2] f_AtC[4]
reset_timestep 0
run 400

View File

@ -1,61 +1,61 @@
# needs description
#AtC Two temperature Coupling
# DESCRIPTION:
# no atoms and FE regions with periodic boundary conditions.
# heating and then relaxation
echo both
#units real
units metal
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -14 14 -3 3 -3 3
region feRegion block -12 12 -3 3 -3 3
# need to create atoms or lammps throws an error
region mdRegion block -12 12 -3 3 -3 3
boundary f p p
create_box 1 mdRegion
mass 1 39.95 # need to keep this
atom_modify sort 0 1
region dummyRegion block -100 -99 -1 1 -1 1
group dummy region dummyRegion
# ID group atc PhysicsType ParameterFile
fix AtC dummy atc two_temperature Cu_ttm.mat
timestep 0.002
thermo 20
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 feRegion f p p
# fix a temperature
fix_modify AtC initial temperature all 20.0
#fix_modify AtC initial electron_temperature all 30.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# relaxation
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output no_atomsFE 10 text
#fix_modify AtC extrinsic electron_integration subcycle 100
fix_modify AtC extrinsic electron_integration implicit
run 400
# heating
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc 20.
fix_modify AtC fix electron_temperature rbc 20.
#fix_modify AtC extrinsic exchange off
#fix_modify AtC fix temperature lbc 20.
#fix_modify AtC fix temperature rbc 20.
#fix_modify AtC extrinsic electron_integration lockstep
#fix_modify AtC source electron_temperature all 1000.0
fix_modify AtC source electron_temperature all 0.521981
run 400
# relaxation
fix_modify AtC remove_source electron_temperature all
run 400
# needs description
#AtC Two temperature Coupling
# DESCRIPTION:
# no atoms and FE regions with periodic boundary conditions.
# heating and then relaxation
echo both
#units real
units metal
atom_style atomic
lattice fcc 5.405 origin 0.25 0.25 0.25
region simRegion block -14 14 -3 3 -3 3
region feRegion block -12 12 -3 3 -3 3
# need to create atoms or lammps throws an error
region mdRegion block -12 12 -3 3 -3 3
boundary f p p
create_box 1 mdRegion
mass 1 39.95 # need to keep this
atom_modify sort 0 1
region dummyRegion block -100 -99 -1 1 -1 1
group dummy region dummyRegion
# ID group atc PhysicsType ParameterFile
fix AtC dummy atc two_temperature Cu_ttm.mat
timestep 0.002
thermo 20
# ID part keywords nx ny nz region
fix_modify AtC mesh create 12 1 1 feRegion f p p
# fix a temperature
fix_modify AtC initial temperature all 20.0
#fix_modify AtC initial electron_temperature all 30.0
fix_modify AtC initial electron_temperature all gaussian 0 0 0 1 0 0 5 20 20
# relaxation
thermo_style custom step cpu f_AtC[1] f_AtC[2] f_AtC[3] f_AtC[4]
fix_modify AtC output no_atomsFE 10 text
#fix_modify AtC extrinsic electron_integration subcycle 100
fix_modify AtC extrinsic electron_integration implicit
run 400
# heating
fix_modify AtC mesh create_nodeset lbc -12.1 -11.9 -INF INF -INF INF
fix_modify AtC mesh create_nodeset rbc 11.9 12.1 -INF INF -INF INF
fix_modify AtC fix electron_temperature lbc 20.
fix_modify AtC fix electron_temperature rbc 20.
#fix_modify AtC extrinsic exchange off
#fix_modify AtC fix temperature lbc 20.
#fix_modify AtC fix temperature rbc 20.
#fix_modify AtC extrinsic electron_integration lockstep
#fix_modify AtC source electron_temperature all 1000.0
fix_modify AtC source electron_temperature all 0.521981
run 400
# relaxation
fix_modify AtC remove_source electron_temperature all
run 400

View File

@ -1,66 +1,66 @@
#AtC Two temperature Coupling
# DESCRIPTION:
# full overlap of MD and FE regions with full periodic boundary conditions.
# initial electron and phonon temperatures are different and then allowed to
# relax.
#
units real
atom_style atomic
boundary p p p
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3,
# where N = 4 for fcc,
# s = 3.405 A (Wagner)
# a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
pair_style lj/cut 13.5
read_data uniform_exchange.init
region simRegion block -12 12 -3 3 -3 3
region feRegion block -12 12 -3 3 -3 3
# create atoms
region mdRegion block -12 12 -3 3 -3 3
# specify interal/ghost atoms
region mdInternal block -12 12 -3 3 -3 3
group internal region mdInternal
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 4 1 1 feRegion p p p
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC fix electron_temperature all 30.0
timestep 5.0
# output
thermo_style custom step pe temp f_AtC[2] f_AtC[4]
thermo 10
# equilibrate MD field
fix_modify AtC control thermal rescale 13
run 500
# relax
fix_modify AtC output uniform_exchangeFE 100 text
fix_modify AtC filter type exponential
fix_modify AtC filter scale 5.0e2
fix_modify AtC filter on
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
# run with FE
run 5000
#AtC Two temperature Coupling
# DESCRIPTION:
# full overlap of MD and FE regions with full periodic boundary conditions.
# initial electron and phonon temperatures are different and then allowed to
# relax.
#
units real
atom_style atomic
boundary p p p
# create domain
#lattice type reduced density rho* = 4*(sigma/a)^3,
# where N = 4 for fcc,
# s = 3.405 A (Wagner)
# a = 5.25 A (Ashcroft & Mermin, p. 70)
lattice fcc 5.405 origin 0.25 0.25 0.25
pair_style lj/cut 13.5
read_data uniform_exchange.init
region simRegion block -12 12 -3 3 -3 3
region feRegion block -12 12 -3 3 -3 3
# create atoms
region mdRegion block -12 12 -3 3 -3 3
# specify interal/ghost atoms
region mdInternal block -12 12 -3 3 -3 3
group internal region mdInternal
neighbor 5. bin
neigh_modify every 10 delay 0 check no
# ID group atc PhysicsType ParameterFile
fix AtC internal atc two_temperature Ar_ttm.mat
# ID part keywords nx ny nz region
fix_modify AtC mesh create 4 1 1 feRegion p p p
# fix a temperature
fix_modify AtC fix temperature all 20.0
fix_modify AtC fix electron_temperature all 30.0
timestep 5.0
# output
thermo_style custom step pe temp f_AtC[2] f_AtC[4]
thermo 10
# equilibrate MD field
fix_modify AtC control thermal rescale 13
run 500
# relax
fix_modify AtC output uniform_exchangeFE 100 text
fix_modify AtC filter type exponential
fix_modify AtC filter scale 5.0e2
fix_modify AtC filter on
fix_modify AtC unfix temperature all
fix_modify AtC unfix electron_temperature all
fix_modify AtC control thermal flux
# run with FE
run 5000

View File

@ -1,20 +1,24 @@
#! /bin/bash
DATE='2Jul21'
LMPDIR=/Users/ohenrich/Work/code/lammps
DATE='14Dec21'
TOL=1e-8
LMPDIR=/Users/ohenrich/Work/code/lammps
SRCDIR=$LMPDIR/src
EXDIR=$LMPDIR/examples/PACKAGES/cgdna/examples
if [ $# -eq 1 ] && [ $1 = run ]; then
echo '# Compiling executable in' $SRCDIR
echo '# Compiling executable in' $SRCDIR | tee -a $EXDIR/test.log
cd $SRCDIR
make clean-all
make -j8 mpi
make clean-all | tee -a $EXDIR/test.log
make purge | tee -a $EXDIR/test.log
make pu | tee -a $EXDIR/test.log
make ps | tee -a $EXDIR/test.log
make -j8 mpi | tee -a $EXDIR/test.log
######################################################
echo '# Running oxDNA duplex1 test'
echo '# Running oxDNA duplex1 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA/duplex1
mkdir test
cd test
@ -24,20 +28,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.1
grep etot log.$DATE.duplex1.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.4
grep etot log.$DATE.duplex1.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA duplex2 test'
echo '# Running oxDNA duplex2 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA/duplex2
mkdir test
cd test
@ -47,20 +63,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA2 duplex1 test'
echo '# Running oxDNA2 duplex1 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex1
mkdir test
cd test
@ -70,20 +98,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.1
grep etot log.$DATE.duplex1.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.4
grep etot log.$DATE.duplex1.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA2 duplex2 test'
echo '# Running oxDNA2 duplex2 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex2
mkdir test
cd test
@ -93,20 +133,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA2 duplex3 test'
echo '# Running oxDNA2 duplex3 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex3
mkdir test
cd test
@ -116,20 +168,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex3 > /dev/null
mv log.lammps log.$DATE.duplex3.g++.1
grep etot log.$DATE.duplex3.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex3.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex3 > /dev/null
mv log.lammps log.$DATE.duplex3.g++.4
grep etot log.$DATE.duplex3.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex3.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA2 unique_bp test'
echo '# Running oxDNA2 unique_bp test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/unique_bp
mkdir test
cd test
@ -141,32 +205,56 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex4.4type > /dev/null
mv log.lammps log.$DATE.duplex4.4type.g++.1
grep etot log.$DATE.duplex4.4type.g++.1 > e_test.dat
grep etot ../log*4type*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex4.4type.g++.1 > e_test.4type.1.dat
grep etot ../log*4type*1 > e_old.4type.1.dat
ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task 4 types passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task 4 types unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex4.4type > /dev/null
mv log.lammps log.$DATE.duplex4.4type.g++.4
grep etot log.$DATE.duplex4.4type.g++.4 > e_test.dat
grep etot ../log*4type*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex4.4type.g++.4 > e_test.4type.4.dat
grep etot ../log*4type*4 > e_old.4type.4.dat
ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks 4 types passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks 4 types unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 1 ./lmp_mpi < in.duplex4.8type > /dev/null
mv log.lammps log.$DATE.duplex4.8type.g++.1
grep etot log.$DATE.duplex4.8type.g++.1 > e_test.dat
grep etot ../log*8type*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex4.8type.g++.1 > e_test.8type.1.dat
grep etot ../log*8type*1 > e_old.8type.1.dat
ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task 8 types passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task 8 types unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex4.8type > /dev/null
mv log.lammps log.$DATE.duplex4.8type.g++.4
grep etot log.$DATE.duplex4.8type.g++.4 > e_test.dat
grep etot ../log*8type*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex4.8type.g++.4 > e_test.8type.4.dat
grep etot ../log*8type*4 > e_old.8type.4.dat
ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks 8 types passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks 8 types unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxDNA2 dsring test'
echo '# Running oxDNA2 dsring test' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/dsring
mkdir test
cd test
@ -176,20 +264,32 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.dsring > /dev/null
mv log.lammps log.$DATE.dsring.g++.1
grep etot log.$DATE.dsring.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.dsring.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.dsring > /dev/null
mv log.lammps log.$DATE.dsring.g++.4
grep etot log.$DATE.dsring.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.dsring.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
echo '# Running oxRNA2 duplex2 test'
echo '# Running oxRNA2 duplex2 test' | tee -a $EXDIR/test.log
cd $EXDIR/oxRNA2/duplex2
mkdir test
cd test
@ -199,18 +299,30 @@ if [ $# -eq 1 ] && [ $1 = run ]; then
mpirun -np 1 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.dat
grep etot ../log*1 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task unsuccessful" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi < in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.dat
grep etot ../log*4 > e_old.dat
ndiff -relerr 1e-8 e_test.dat e_old.dat
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks unsuccessful" | tee -a $EXDIR/test.log
fi
######################################################
echo '# Done'
echo '# Done' | tee -a $EXDIR/test.log
elif [ $# -eq 1 ] && [ $1 = clean ]; then
echo '# Deleting test directories'
@ -222,6 +334,7 @@ elif [ $# -eq 1 ] && [ $1 = clean ]; then
rm -rf $EXDIR/oxDNA2/unique_bp/test
rm -rf $EXDIR/oxDNA2/dsring/test
rm -rf $EXDIR/oxRNA2/duplex2/test
rm -rf $EXDIR/test.log
echo '# Done'
else

View File

@ -1,4 +1,4 @@
LAMMPS data file: two oppositely charged ions confined between two walls
LAMMPS data file: two oppositely charged ions confined between two walls epsilon1=2 | epsilon2=10 | epsilon1=2
4002 atoms
3 atom types
@ -4015,5 +4015,5 @@ Atoms # dielectric: id mol type q x y z normx normy normz area_per_patch ed em e
3998 0 1 0 38.5078 42.4438 30.002 0 0 -1 0.866 8 6 6 0
3999 0 1 0 39.0079 41.5776 30.002 0 0 -1 0.866 8 6 6 0
4000 0 1 0 39.508 42.4438 30.002 0 0 -1 0.866 8 6 6 0
4001 0 2 1 15 20 15 0 0 1 0.866 8 6 10 0
4002 0 3 -1 25 20 25 0 0 1 0.866 8 6 10 0
4001 0 2 1 15 20 15 0 0 1 1.0 8 6 10 0
4002 0 3 -1 25 20 25 0 0 1 1.0 8 6 10 0

View File

@ -4,6 +4,8 @@
# top interface: n = (0, 0, -1)
# so that ed's are the same for both interfaces
# Dielectric constants can be set to be different from the input data file
variable epsilon1 index 20
variable epsilon2 index 8
@ -21,6 +23,8 @@ variable method index gmres # gmres = BEM/GMRES
# dof = Direct optimization of the functional
# none
# compute the relevant values for the interface particles
variable ed equal "v_epsilon2 - v_epsilon1"
variable em equal "(v_epsilon2 + v_epsilon1)/2"
variable epsilon equal 1.0 # epsilon at the patch, not used for now
@ -34,12 +38,10 @@ group ions type 2 3
group cations type 2
group anions type 3
# 1.0 = q * epsilon2 = qreal for cations
# -1.0 = q * epsilon2 = qreal for anions
variable qscale equal "1.0 / v_epsilon2"
set group cations charge ${qscale}
variable qscale equal "-1.0 / v_epsilon2"
set group anions charge ${qscale}
# set the dielectric constant of the medium where the ions reside
set group cations epsilon ${epsilon2}
set group anions epsilon ${epsilon2}
pair_style lj/cut/coul/long/dielectric 1.122 10.0
pair_coeff * * 1.0 1.0
@ -59,6 +61,8 @@ dump 3 ions custom 100 ions.dump id mol type q x y z fx fy fz #c_ef[1
fix 1 ions nve
# fix modify is used to set the properties of the interface particle group
if "${method} == gmres" then &
"fix 3 interface polarize/bem/gmres 1 1.0e-4" &
"fix_modify 3 itr_max 50 dielectrics ${ed} ${em} ${epsilon} ${area} NULL" &

View File

@ -1,10 +1,16 @@
Examples for Extended Dissipative Particle Dynamics (DPD)
---------------------------------------------------------
This directory contains examples for extended DPD simulations
Examples for Basic Dissipative Particle Dynamics (DPD)
------------------------------------------------------
This directory contains examples for DPD simulations using
pair styles from the DPD-BASIC package.
1) 'dpdext' - test case (DPD fluid) for 'dpdext' pair style (in.dpdext) and an initial
configuration (dpdext.data)
1) 'dpd' - simple example (DPD fluid) for 'dpd' pair style (in.dpd)
2) 'dpdext_tstat' - test case (coarse-grained SPC/E water) for 'dpdext/tstat' pair style
(in.cg_spce), an initial configuration (dpdext.data) and tabulated potential
2) 'dpd_tstat' - coarse-grained SPC/E water example for 'dpd/tstat' pair style
(in.dpd_tstat), an initial configuration (dpdext.data) and tabulated potential
(cg_spce_table.pot) obtained by bottom-up coarse-graining of the atomistic SPC/E water.
3) 'dpdext' - simple example (DPD fluid) for 'dpd/ext' pair style (in.dpdext)
4) 'dpdext_tstat' - coarse-grained SPC/E water example for 'dpd/ext/tstat' pair style
(in.dpdext_tstat), an initial configuration (dpdext.data) and tabulated potential
(cg_spce_table.pot) obtained by bottom-up coarse-graining of the atomistic SPC/E water.

Some files were not shown because too many files have changed in this diff Show More