mirror of
https://github.com/ParticulateFlow/LIGGGHTS-PFM.git
synced 2025-12-08 06:47:43 +00:00
release on 2012-07-06_15-28-16
This commit is contained in:
350
LICENSE
Normal file
350
LICENSE
Normal file
@ -0,0 +1,350 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom
|
||||
to share and change it. By contrast, the GNU General Public License is
|
||||
intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on,
|
||||
we want its recipients to know that what they have is not the
|
||||
original, so that any problems introduced by others will not reflect
|
||||
on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at
|
||||
all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains a
|
||||
notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the Program
|
||||
(independent of having been made by running the Program). Whether that
|
||||
is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source
|
||||
code as you receive it, in any medium, provided that you conspicuously
|
||||
and appropriately publish on each copy an appropriate copyright notice
|
||||
and disclaimer of warranty; keep intact all the notices that refer to
|
||||
this License and to the absence of any warranty; and give any other
|
||||
recipients of the Program a copy of this License along with the
|
||||
Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of
|
||||
it, thus forming a work based on the Program, and copy and distribute
|
||||
such modifications or work under the terms of Section 1 above,
|
||||
provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that
|
||||
in whole or in part contains or is derived from the Program or
|
||||
any part thereof, to be licensed as a whole at no charge to all
|
||||
third parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you
|
||||
provide a warranty) and that users may redistribute the program
|
||||
under these conditions, and telling the user how to view a copy
|
||||
of this License. (Exception: if the Program itself is interactive
|
||||
but does not normally print such an announcement, your work based
|
||||
on the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of
|
||||
Sections 1 and 2 above on a medium customarily used for software
|
||||
interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt otherwise
|
||||
to copy, modify, sublicense or distribute the Program is void, and
|
||||
will automatically terminate your rights under this License. However,
|
||||
parties who have received copies, or rights, from you under this
|
||||
License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted
|
||||
herein. You are not responsible for enforcing compliance by third
|
||||
parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new
|
||||
versions of the General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Program does not specify a
|
||||
version number of this License, you may choose any version ever
|
||||
published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the
|
||||
author to ask for permission. For software which is copyrighted by the
|
||||
Free Software Foundation, write to the Free Software Foundation; we
|
||||
sometimes make exceptions for this. Our decision will be guided by the
|
||||
two goals of preserving the free status of all derivatives of our free
|
||||
software and of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||||
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
|
||||
AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF
|
||||
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these
|
||||
terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to
|
||||
attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
one line to give the program's name and an idea of what it does.
|
||||
Copyright (C) yyyy name of author
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or (at
|
||||
your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||||
type `show w'. This is free software, and you are welcome
|
||||
to redistribute it under certain conditions; type `show c'
|
||||
for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the
|
||||
appropriate parts of the General Public License. Of course, the
|
||||
commands you use may be called something other than `show w' and `show
|
||||
c'; they could even be mouse-clicks or menu items--whatever suits your
|
||||
program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the program,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright
|
||||
interest in the program `Gnomovision'
|
||||
(which makes passes at compilers) written
|
||||
by James Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library,
|
||||
you may consider it more useful to permit linking proprietary
|
||||
applications with the library. If this is what you want to do, use the
|
||||
GNU Library General Public License instead of this License.
|
||||
53
README
Normal file
53
README
Normal file
@ -0,0 +1,53 @@
|
||||
This is the LIGGGHTS software package.
|
||||
|
||||
LIGGGHTS - LAMMPS Improved for General Granular and Granular Heat
|
||||
Transfer Simulations
|
||||
|
||||
LIGGGHTS is part of the CFDEMproject
|
||||
www.liggghts.com | www.cfdem.com
|
||||
|
||||
Christoph Kloss, christoph.kloss@cfdem.com
|
||||
Copyright 2009-2012 JKU Linz
|
||||
Copyright 2012- DCS Computing GmbH, Linz
|
||||
|
||||
LIGGGHTS is based on LAMMPS
|
||||
LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel
|
||||
Simulator.
|
||||
|
||||
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.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
LAMMPS is a classical molecular dynamics simulation code designed to
|
||||
run efficiently on parallel computers. It was developed at Sandia
|
||||
National Laboratories, a US Department of Energy facility, with
|
||||
funding from the DOE. It is an open-source code, distributed freely
|
||||
under the terms of the GNU Public License (GPL).
|
||||
|
||||
The primary author of the code is Steve Plimpton, who can be emailed
|
||||
at sjplimp@sandia.gov. The LAMMPS WWW Site at lammps.sandia.gov has
|
||||
more information about the code and its uses.
|
||||
|
||||
The LAMMPS distribution includes the following files and directories:
|
||||
|
||||
README this file
|
||||
LICENSE the GNU General Public License (GPL)
|
||||
bench benchmark problems
|
||||
couple code coupling examples using LAMMPS as a library
|
||||
doc documentation
|
||||
examples simple test problems
|
||||
lib libraries LAMMPS can be linked with
|
||||
potentials interatomic potential files
|
||||
python Python wrapper on LAMMPS as a library
|
||||
src source files
|
||||
tools pre- and post-processing tools
|
||||
|
||||
Point your browser at any of these files to get started:
|
||||
|
||||
doc/Manual.html the LAMMPS manual
|
||||
doc/Section_intro.html hi-level introduction to LAMMPS
|
||||
doc/Section_start.html how to build and use LAMMPS
|
||||
doc/Developer.pdf LAMMPS developer guide
|
||||
305
bench/Cu_u3.eam
Normal file
305
bench/Cu_u3.eam
Normal file
@ -0,0 +1,305 @@
|
||||
Cu functions (universal 3)
|
||||
29 63.550 3.6150 FCC
|
||||
500 5.0100200400801306e-04 500 1.0000000000000009e-02 4.9499999999999886e+00
|
||||
0. -3.1561636903424350e-01 -5.2324876182494506e-01 -6.9740831416804383e-01 -8.5202525457518519e-01
|
||||
-9.9329216586042435e-01 -1.1246331970890324e+00 -1.2481882647347859e+00 -1.3654054700363645e+00 -1.4773214276236644e+00
|
||||
-1.5847099936904741e+00 -1.6865851873526410e+00 -1.7843534091637920e+00 -1.8790616476576076e+00 -1.9710188604521761e+00
|
||||
-2.0604838665854572e+00 -2.1476762477372944e+00 -2.2327843595560068e+00 -2.3159713409697673e+00 -2.3973797031286352e+00
|
||||
-2.4771348895887826e+00 -2.5553480773272810e+00 -2.6321184083774227e+00 -2.7075347880408458e+00 -2.7816773487592030e+00
|
||||
-2.8546186529652005e+00 -2.9264246898861899e+00 -2.9971557080624507e+00 -3.0668669157065978e+00 -3.1356090736776849e+00
|
||||
-3.2034290008357829e+00 -3.2703700069757247e+00 -3.3364722658277230e+00 -3.4017731379735778e+00 -3.4663074517059016e+00
|
||||
-3.5301077484029122e+00 -3.5932044977085980e+00 -3.6556262870729199e+00 -3.7173999892229403e+00 -3.7785509106421671e+00
|
||||
-3.8391029237823773e+00 -3.8990785849196925e+00 -3.9584992397079333e+00 -4.0173851179270912e+00 -4.0744518500210916e+00
|
||||
-4.1306733564032641e+00 -4.1864034067843932e+00 -4.2416582335814326e+00 -4.2964533268445280e+00 -4.3508034838872618e+00
|
||||
-4.4047228547107977e+00 -4.4582249835318351e+00 -4.5113228468570128e+00 -4.5640288884490872e+00 -4.6163550514904443e+00
|
||||
-4.6683128082199232e+00 -4.7199131872767452e+00 -4.7711667990036801e+00 -4.8220838587683374e+00 -4.8726742087289665e+00
|
||||
-4.9229473379113813e+00 -4.9729124009208192e+00 -5.0225782353423369e+00 -5.0719533779533492e+00 -5.1210460798461668e+00
|
||||
-5.1698643205481289e+00 -5.2184158212228908e+00 -5.2667080570261362e+00 -5.3147482686812282e+00 -5.3625434733324937e+00
|
||||
-5.4101004747367369e+00 -5.4574258728391953e+00 -5.5045260727784751e+00 -5.5514072933650311e+00 -5.5980755750691458e+00
|
||||
-5.6445367875538750e+00 -5.6907966367860183e+00 -5.7368606717507191e+00 -5.7827342908000219e+00 -5.8284227476608805e+00
|
||||
-5.8739311571204382e+00 -5.9192645004390272e+00 -5.9644276303605182e+00 -6.0094252761103064e+00 -6.0542620478988169e+00
|
||||
-6.0989424413057520e+00 -6.1434708414539330e+00 -6.1878515269578429e+00 -6.2320886736884802e+00 -6.2761863583589275e+00
|
||||
-6.3201485619430571e+00 -6.3639791729330000e+00 -6.4076819904493902e+00 -6.4512607272098990e+00 -6.4947190123648113e+00
|
||||
-6.5380603942065250e+00 -6.5812883427622069e+00 -6.6243939095620874e+00 -6.6670830925929181e+00 -6.7096660473058591e+00
|
||||
-6.7521459135001862e+00 -6.7945257643836499e+00 -6.8368086085521611e+00 -6.8789973918942735e+00 -6.9210949994162263e+00
|
||||
-6.9631042569970703e+00 -7.0050279330721992e+00 -7.0468687402560874e+00 -7.0886293368973554e+00 -7.1303123285804020e+00
|
||||
-7.1719202695651916e+00 -7.2134556641788095e+00 -7.2549209681507421e+00 -7.2963185899023415e+00 -7.3376508917899628e+00
|
||||
-7.3789201913012903e+00 -7.4201287622117036e+00 -7.4612788356982946e+00 -7.5023726014152032e+00 -7.5434122085331978e+00
|
||||
-7.5843997667427345e+00 -7.6253373472216595e+00 -7.6662269835740062e+00 -7.7070706727342895e+00 -7.7478703758424388e+00
|
||||
-7.7886280190928119e+00 -7.8293454945503811e+00 -7.8700246609474789e+00 -7.9106673444489104e+00 -7.9512753393968865e+00
|
||||
-7.9918504090315139e+00 -8.0323942861870705e+00 -8.0729086739704030e+00 -8.1133952464140293e+00 -8.1538556491162808e+00
|
||||
-8.1942914998523975e+00 -8.2347043891773524e+00 -8.2750958810033808e+00 -8.3154675131659701e+00 -8.3558207979692725e+00
|
||||
-8.3961572227176475e+00 -8.4364782502312892e+00 -8.4767853193496308e+00 -8.5170798454139458e+00 -8.5573632207473906e+00
|
||||
-8.5976368151087286e+00 -8.6379019761436666e+00 -8.6781600298199919e+00 -8.7184122808490656e+00 -8.7586600130993020e+00
|
||||
-8.7989044899963460e+00 -8.8391469549140993e+00 -8.8793886315543773e+00 -8.9196307243150841e+00 -8.9598744186541239e+00
|
||||
-9.0001208814363167e+00 -9.0403712612778122e+00 -9.0806266888772029e+00 -9.1208882773446476e+00 -9.1611571225108719e+00
|
||||
-9.2014343032440138e+00 -9.2417208817437881e+00 -9.2820179038447463e+00 -9.3223263992829857e+00 -9.3626473819958278e+00
|
||||
-9.4029818503831279e+00 -9.4433307875392529e+00 -9.4836951616705960e+00 -9.5237840547885071e+00 -9.5637918926951784e+00
|
||||
-9.6038142178817338e+00 -9.6438519061474608e+00 -9.6839058194810832e+00 -9.7239768064614509e+00 -9.7640657024289226e+00
|
||||
-9.8041733297054634e+00 -9.8443004978059889e+00 -9.8844480036373170e+00 -9.9246166317080906e+00 -9.9648071543198853e+00
|
||||
-1.0005020331762637e+01 -1.0045256912501884e+01 -1.0085517633366123e+01 -1.0125803219723423e+01 -1.0166114385662183e+01
|
||||
-1.0206451834160134e+01 -1.0246816257258331e+01 -1.0287208336224353e+01 -1.0327628741713852e+01 -1.0368078133934148e+01
|
||||
-1.0408557162795717e+01 -1.0449066468066974e+01 -1.0489606679525650e+01 -1.0530178417100558e+01 -1.0570782291022510e+01
|
||||
-1.0611418901960292e+01 -1.0652088841158786e+01 -1.0692792690577562e+01 -1.0733531023022920e+01 -1.0774304402276016e+01
|
||||
-1.0815113383222808e+01 -1.0855958511980305e+01 -1.0896840326017184e+01 -1.0937759354276295e+01 -1.0978716117290730e+01
|
||||
-1.1019711127305925e+01 -1.1060744888386239e+01 -1.1101817896531486e+01 -1.1142930639787664e+01 -1.1184083598352004e+01
|
||||
-1.1225277244679319e+01 -1.1266512043589387e+01 -1.1307788452364719e+01 -1.1349106920870327e+01 -1.1390467891550486e+01
|
||||
-1.1431871799781504e+01 -1.1473319073642074e+01 -1.1514810134213008e+01 -1.1556345395619132e+01 -1.1597925265115521e+01
|
||||
-1.1639550143177303e+01 -1.1681220423591583e+01 -1.1722936493536452e+01 -1.1764698733669888e+01 -1.1806507518187232e+01
|
||||
-1.1848363215029394e+01 -1.1890266185706139e+01 -1.1932216785634637e+01 -1.1974215364086319e+01 -1.2016262264291129e+01
|
||||
-1.2058357823507606e+01 -1.2100502373105996e+01 -1.2142696238631970e+01 -1.2184939739884385e+01 -1.2227233190982815e+01
|
||||
-1.2269576900438324e+01 -1.2311971171220080e+01 -1.2354416300827552e+01 -1.2396912581348374e+01 -1.2439460299532641e+01
|
||||
-1.2482059736851909e+01 -1.2524711169562636e+01 -1.2567414868772744e+01 -1.2610171100495961e+01 -1.2652980125719694e+01
|
||||
-1.2695842200459083e+01 -1.2738757575819193e+01 -1.2781726498053729e+01 -1.2824749208615117e+01 -1.2867825944219817e+01
|
||||
-1.2910956936899197e+01 -1.2954142414054047e+01 -1.2997382598508125e+01 -1.3040677708563408e+01 -1.3084027958052218e+01
|
||||
-1.3127433556386677e+01 -1.3170894708610035e+01 -1.3214411615448739e+01 -1.3257984473359954e+01 -1.3301613474583519e+01
|
||||
-1.3345298807190659e+01 -1.3389040655121903e+01 -1.3432839198243016e+01 -1.3476694612386723e+01 -1.3520607069407617e+01
|
||||
-1.3564576737214225e+01 -1.3608603779754390e+01 -1.3652688357330362e+01 -1.3696830626228689e+01 -1.3741030739041094e+01
|
||||
-1.3785288844633044e+01 -1.3829605088192579e+01 -1.3873979611263849e+01 -1.3918412551792358e+01 -1.3962904044165157e+01
|
||||
-1.4007454219246995e+01 -1.4052063204422609e+01 -1.4096731123636516e+01 -1.4141458097424390e+01 -1.4186244242962175e+01
|
||||
-1.4231089674089560e+01 -1.4275994501358696e+01 -1.4320958832063411e+01 -1.4365982770278379e+01 -1.4411066416893846e+01
|
||||
-1.4456209869649911e+01 -1.4501413223171539e+01 -1.4546676569005058e+01 -1.4591999995647598e+01 -1.4637383588581656e+01
|
||||
-1.4682827430315228e+01 -1.4728331600403862e+01 -1.4773896175488971e+01 -1.4819521229330235e+01 -1.4865206832833337e+01
|
||||
-1.4910953054084985e+01 -1.4956759958383259e+01 -1.5002627608264334e+01 -1.5048556063539081e+01 -1.5094545381317744e+01
|
||||
-1.5140595616041765e+01 -1.5186706819511983e+01 -1.5232879040916600e+01 -1.5279112326867676e+01 -1.5325406721414765e+01
|
||||
-1.5371762266086876e+01 -1.5418178999911675e+01 -1.5464656959446415e+01 -1.5511196178805903e+01 -1.5557796689685119e+01
|
||||
-1.5604458521389688e+01 -1.5651181700861002e+01 -1.5697966252703509e+01 -1.5744812199205967e+01 -1.5791719560374304e+01
|
||||
-1.5838688353945599e+01 -1.5885718595428898e+01 -1.5932810298111235e+01 -1.5979963473102316e+01 -1.6027178129340314e+01
|
||||
-1.6074454273625634e+01 -1.6121791910645470e+01 -1.6169191042992907e+01 -1.6216651671189425e+01 -1.6264173793714576e+01
|
||||
-1.6311757407021901e+01 -1.6359402505566209e+01 -1.6407109081822910e+01 -1.6454877126310635e+01 -1.6502706627614998e+01
|
||||
-1.6550597572407241e+01 -1.6598549945469813e+01 -1.6646563729715353e+01 -1.6694638906205682e+01 -1.6742775454176012e+01
|
||||
-1.6790973351056778e+01 -1.6839232572488413e+01 -1.6887553092348412e+01 -1.6935934882766333e+01 -1.6984377914146876e+01
|
||||
-1.7032882155186826e+01 -1.7081447572897673e+01 -1.7130074132623690e+01 -1.7178761798061373e+01 -1.7227510531275698e+01
|
||||
-1.7276320292724563e+01 -1.7325191041271864e+01 -1.7374122734215121e+01 -1.7423115327299456e+01 -1.7472168774711918e+01
|
||||
-1.7521283029136725e+01 -1.7570458041655343e+01 -1.7619693762170868e+01 -1.7668990138814479e+01 -1.7718347118374936e+01
|
||||
-1.7767764646209685e+01 -1.7817242666259403e+01 -1.7866781121071881e+01 -1.7916379951810882e+01 -1.7966039098283659e+01
|
||||
-1.8015758498943796e+01 -1.8065538090918608e+01 -1.8115377810021755e+01 -1.8165277590764617e+01 -1.8215237366381530e+01
|
||||
-1.8265257068836149e+01 -1.8315336628844307e+01 -1.8365475975885602e+01 -1.8415675038220570e+01 -1.8465933742903644e+01
|
||||
-1.8516252015799409e+01 -1.8566629781600568e+01 -1.8617066963838965e+01 -1.8667563484898778e+01 -1.8718119266039025e+01
|
||||
-1.8768734227397317e+01 -1.8819408288014415e+01 -1.8870141365839345e+01 -1.8920933377750998e+01 -1.8971784239569388e+01
|
||||
-1.9022693866067016e+01 -1.9073662170983084e+01 -1.9124689067045438e+01 -1.9175774465969539e+01 -1.9226918278483254e+01
|
||||
-1.9278120414338218e+01 -1.9329380782317116e+01 -1.9380699290257098e+01 -1.9432075845048644e+01 -1.9483510352663075e+01
|
||||
-1.9535002718153464e+01 -1.9586552845676124e+01 -1.9638160638497766e+01 -1.9689825999008235e+01 -1.9741548828738019e+01
|
||||
-1.9793329028359494e+01 -1.9845166497711489e+01 -1.9897061135804051e+01 -1.9949012840833348e+01 -2.0001021510188707e+01
|
||||
-2.0053087040468540e+01 -2.0105209327494322e+01 -2.0157388266314911e+01 -2.0209623751249865e+01 -2.0261915675825890e+01
|
||||
-2.0314263932714312e+01 -2.0366668414255741e+01 -2.0419129011700647e+01 -2.0471645615726288e+01 -2.0524218116314501e+01
|
||||
-2.0576846402769888e+01 -2.0629530363722893e+01 -2.0682269887147754e+01 -2.0735064860369221e+01 -2.0787915170073120e+01
|
||||
-2.0840820702317274e+01 -2.0893781342541502e+01 -2.0946796975575580e+01 -2.0999867485656864e+01 -2.1052992756428125e+01
|
||||
-2.1106172670961428e+01 -2.1159407111702421e+01 -2.1212695960751944e+01 -2.1266039099329419e+01 -2.1319436408360275e+01
|
||||
-2.1372887768154328e+01 -2.1426393058473991e+01 -2.1479952158748461e+01 -2.1533564947619766e+01 -2.1587231303431395e+01
|
||||
-2.1640951103995235e+01 -2.1694724226644553e+01 -2.1748550548245930e+01 -2.1802429945213817e+01 -2.1856362293508028e+01
|
||||
-2.1910347468648524e+01 -2.1964385345728829e+01 -2.2018475799410339e+01 -2.2072618703948137e+01 -2.2126813933181779e+01
|
||||
-2.2181061360561898e+01 -2.2235360859143157e+01 -2.2289712301596296e+01 -2.2344115560361388e+01 -2.2398570507087584e+01
|
||||
-2.2453077013515781e+01 -2.2507634950890292e+01 -2.2562244190064348e+01 -2.2616904601590250e+01 -2.2671616055687764e+01
|
||||
-2.2726378422261405e+01 -2.2781191570901910e+01 -2.2836055370890790e+01 -2.2890969691219198e+01 -2.2945934400583837e+01
|
||||
-2.3000949367399926e+01 -2.3056014459808921e+01 -2.3111129545678523e+01 -2.3166294492618363e+01 -2.3221509167983868e+01
|
||||
-2.3276773438880355e+01 -2.3332087172173260e+01 -2.3387450234495873e+01 -2.3442862492249787e+01 -2.3498323811618320e+01
|
||||
-2.3553834058571510e+01 -2.3609393098863848e+01 -2.3665000798062465e+01 -2.3720657021526677e+01 -2.3776361634436626e+01
|
||||
-2.3832114501780552e+01 -2.3887915488378439e+01 -2.3943764458878377e+01 -2.3999661277761106e+01 -2.4055605809352301e+01
|
||||
-2.4111597917826657e+01 -2.4167637467209488e+01 -2.4223724321393092e+01 -2.4279858344124932e+01 -2.4336039399030597e+01
|
||||
-2.4392267349614485e+01 -2.4448542059257761e+01 -2.4504863391234494e+01 -2.4561231208711206e+01 -2.4617645374753693e+01
|
||||
-2.4674105752332935e+01 -2.4730612204329191e+01 -2.4787164593538137e+01 -2.4843762782677913e+01 -2.4900406634392539e+01
|
||||
-2.4957096011252133e+01 -2.5013830775771112e+01 -2.5070610790396586e+01 -2.5127435917366029e+01 -2.5184306019355063e+01
|
||||
-2.5241220958503845e+01 -2.5298180597080318e+01 -2.5355184797285347e+01 -2.5412233421340488e+01 -2.5469326331427965e+01
|
||||
1.0000000000000000e+01 1.0801534951171448e+01 1.0617375158244670e+01 1.0436688151228793e+01 1.0259403283230313e+01
|
||||
1.0085451405601304e+01 9.9147648356938589e+00 9.7472773253084029e+00 9.5829240298195373e+00 9.4216414779654656e+00
|
||||
9.2633675422888473e+00 9.1080414102110012e+00 8.9556035557302494e+00 8.8059957117284853e+00 8.6591608428743143e+00
|
||||
8.5150431191084976e+00 8.3735878897014118e+00 8.2347416578681987e+00 8.0984520559319435e+00 7.9646678210201571e+00
|
||||
7.8333387712866624e+00 7.7044157826449009e+00 7.5778507660022569e+00 7.4535966449878401e+00 7.3316073341564731e+00
|
||||
7.2118377176659578e+00 7.0942436284134374e+00 6.9787818276207929e+00 6.8654099848621115e+00 6.7540866585212882e+00
|
||||
6.6447712766712357e+00 6.5374241183666584e+00 6.4320062953403578e+00 6.3284797340946000e+00 6.2268071583795574e+00
|
||||
6.1269520720505000e+00 6.0288787422946655e+00 5.9325521832211621e+00 5.8379381398054591e+00 5.7450030721804524e+00
|
||||
5.6537141402680220e+00 5.5640391887418730e+00 5.4759467323160322e+00 5.3894059413519244e+00 5.3043866277758980e+00
|
||||
5.2208592313018016e+00 5.1387948059520454e+00 5.0581650068698707e+00 4.9789420774166615e+00 4.9010988365496075e+00
|
||||
4.8246086664712777e+00 4.7494455005478358e+00 4.6755838114879396e+00 4.6029985997776066e+00 4.5316653823665547e+00
|
||||
4.4615601815980312e+00 4.3926595143797726e+00 4.3249403815888456e+00 4.2583802577058805e+00 4.1929570806747449e+00
|
||||
4.1286492419807814e+00 4.0654355769448500e+00 4.0032953552278059e+00 3.9422082715398403e+00 3.8821544365521561e+00
|
||||
3.8231143680053350e+00 3.7650689820101348e+00 3.7079995845373759e+00 3.6518878630917868e+00 3.5967158785670392e+00
|
||||
3.5424660572764992e+00 3.4891211831576925e+00 3.4366643901451397e+00 3.3850791547089756e+00 3.3343492885547761e+00
|
||||
3.2844589314827459e+00 3.2353925444006251e+00 3.1871349024889781e+00 3.1396710885139782e+00 3.0929864862859660e+00
|
||||
3.0470667742591075e+00 3.0018979192706325e+00 2.9574661704151453e+00 2.9137580530522627e+00 2.8707603629438552e+00
|
||||
2.8284601605189152e+00 2.7868447652620318e+00 2.7459017502243626e+00 2.7056189366531243e+00 2.6659843887374848e+00
|
||||
2.6269864084689516e+00 2.5886135306124487e+00 2.5508545177868598e+00 2.5136983556521244e+00 2.4771342482006986e+00
|
||||
2.4411516131510069e+00 2.4057400774406830e+00 2.3708894728175807e+00 2.3365898315265383e+00 2.3028313820887689e+00
|
||||
2.2696045451740474e+00 2.2368999295609058e+00 2.2047083281853901e+00 2.1730207142748128e+00 2.1418282375653348e+00
|
||||
2.1111222206016862e+00 2.0808941551166384e+00 2.0511356984892615e+00 2.0218386702793651e+00 1.9929950488372441e+00
|
||||
1.9645969679867363e+00 1.9366367137799969e+00 1.9091067213223525e+00 1.8819995716660998e+00 1.8553079887710169e+00
|
||||
1.8290248365311754e+00 1.8031431158652609e+00 1.7776559618705363e+00 1.7525566410377422e+00 1.7278385485262007e+00
|
||||
1.7034952054980579e+00 1.6795202565098251e+00 1.6559074669601728e+00 1.6326507205929630e+00 1.6097440170540054e+00
|
||||
1.5871814695006066e+00 1.5649573022624637e+00 1.5430658485530984e+00 1.5215015482308161e+00 1.5002589456071576e+00
|
||||
1.4793326873036463e+00 1.4587175201534635e+00 1.4384082891492156e+00 1.4183999354343300e+00 1.3986874943378140e+00
|
||||
1.3792660934511431e+00 1.3601309507466510e+00 1.3412773727360872e+00 1.3227007526689576e+00 1.3043965687692420e+00
|
||||
1.2863603825102174e+00 1.2685878369261090e+00 1.2510746549598935e+00 1.2338166378466084e+00 1.2168096635312082e+00
|
||||
1.2000496851203266e+00 1.1835327293670588e+00 1.1672548951882362e+00 1.1512123522134416e+00 1.1354013393647548e+00
|
||||
1.1198181634671940e+00 1.1044591978884952e+00 1.0893208812080033e+00 1.0743997159140335e+00 1.0596922671287743e+00
|
||||
1.0451951613605601e+00 1.0309050852825337e+00 1.0168187845373140e+00 1.0029330625671378e+00 9.8924477946872713e-01
|
||||
9.7575085087259694e-01 9.6244824684604424e-01 9.4933399081931213e-01 9.3640515853477169e-01 9.2365887701803118e-01
|
||||
9.1109232357100112e-01 8.9870272478628266e-01 8.8648735558209424e-01 8.7444353825798160e-01 8.6256864157006774e-01
|
||||
8.5086007982605949e-01 8.3931531199913678e-01 8.2793184086057892e-01 8.1670721213066955e-01 8.0563901364725510e-01
|
||||
7.9472487455206675e-01 7.8396246449372953e-01 7.7334949284779597e-01 7.6288370795296245e-01 7.5256289636327622e-01
|
||||
7.4238488211596021e-01 7.3234752601463171e-01 7.2244872492728618e-01 7.1268641109915265e-01 7.0305855147956464e-01
|
||||
6.9356314706317335e-01 6.8419823224459719e-01 6.7496187418651843e-01 6.6585217220099224e-01 6.5686725714346750e-01
|
||||
6.4800529081937697e-01 6.3926446540306614e-01 6.3064300286859520e-01 6.2213915443241774e-01 6.1375120000748140e-01
|
||||
6.0547744766850542e-01 5.9731623312840654e-01 5.8926591922531912e-01 5.8132489542033028e-01 5.7349157730523359e-01
|
||||
5.6576440612064971e-01 5.5814184828379609e-01 5.5062239492602316e-01 5.4320456143964790e-01 5.3588688703414888e-01
|
||||
5.2866793430138515e-01 5.2154628878946241e-01 5.1452055858552015e-01 5.0758937390678227e-01 5.0075138669987496e-01
|
||||
4.9400527024841523e-01 4.8734971878830358e-01 4.8078344713093557e-01 4.7430519029390972e-01 4.6791370313911962e-01
|
||||
4.6160776001828552e-01 4.5538615442535857e-01 4.4924769865602876e-01 4.4319122347399365e-01 4.3721557778390086e-01
|
||||
4.3131962831075654e-01 4.2550225928575891e-01 4.1976237213834899e-01 4.1409888519439697e-01 4.0851073338028954e-01
|
||||
4.0299686793291478e-01 3.9755625611540779e-01 3.9218788093843493e-01 3.8689074088692443e-01 3.8166384965228239e-01
|
||||
3.7650623586976018e-01 3.7141694286095728e-01 3.6639502838144544e-01 3.6143956437320846e-01 3.5654963672189943e-01
|
||||
3.5172434501901328e-01 3.4696280232829579e-01 3.4226413495707497e-01 3.3762748223177219e-01 3.3305199627774762e-01
|
||||
3.2853684180349596e-01 3.2408119588894380e-01 3.1968424777773841e-01 3.1534519867361155e-01 3.1106326154055530e-01
|
||||
3.0683766090688813e-01 3.0266763267296426e-01 2.9855242392259740e-01 2.9449129273803010e-01 2.9048350801842027e-01
|
||||
2.8652834930171167e-01 2.8262510658997009e-01 2.7877308017785829e-01 2.7497158048439907e-01 2.7121992788793392e-01
|
||||
2.6751745256412462e-01 2.6386349432690004e-01 2.6025740247248841e-01 2.5669853562631850e-01 2.5318626159266877e-01
|
||||
2.4971995720718354e-01 2.4629900819206618e-01 2.4292280901402563e-01 2.3959076274464408e-01 2.3630228092351846e-01
|
||||
2.3305678342376535e-01 2.2985369832002167e-01 2.2669246175884616e-01 2.2357251783148069e-01 2.2049331844890929e-01
|
||||
2.1745432321916880e-01 2.1445499932688783e-01 2.1149482141498144e-01 2.0857327146848004e-01 2.0568983870040114e-01
|
||||
2.0284401943976604e-01 2.0003531702142130e-01 1.9726324167804599e-01 1.9452731043391402e-01 1.9182704700056608e-01
|
||||
1.8916198167437770e-01 1.8653165123588344e-01 1.8393559885088084e-01 1.8137337397327791e-01 1.7884453224959973e-01
|
||||
1.7634863542523593e-01 1.7388525125224241e-01 1.7145395339876757e-01 1.6905432136008169e-01 1.6668594037109052e-01
|
||||
1.6434840132036665e-01 1.6204130066570688e-01 1.5976424035106618e-01 1.5751682772493769e-01 1.5529867546015819e-01
|
||||
1.5310940147503249e-01 1.5094862885580707e-01 1.4881598578045718e-01 1.4671110544379484e-01 1.4463362598375351e-01
|
||||
1.4258319040899092e-01 1.4055944652768915e-01 1.3856204687748974e-01 1.3659064865666881e-01 1.3464491365640630e-01
|
||||
1.3272450819420012e-01 1.3082910304837103e-01 1.2895837339364213e-01 1.2711199873781265e-01 1.2528966285941134e-01
|
||||
1.2349105374641756e-01 1.2171586353596986e-01 1.1996378845505173e-01 1.1823452876211782e-01 1.1652778868972380e-01
|
||||
1.1484327638801961e-01 1.1318070386919254e-01 1.1153978695277944e-01 1.0992024521187505e-01 1.0832180192018548e-01
|
||||
1.0674418399992769e-01 1.0518712197055757e-01 1.0365034989832456e-01 1.0213360534659532e-01 1.0063662932698936e-01
|
||||
9.9159166251264974e-02 9.7700963883974534e-02 9.6261773295835962e-02 9.4841348817873428e-02 9.3439447996227276e-02
|
||||
9.2055831547688260e-02 9.0690263315935660e-02 8.9342510228411331e-02 8.8012342253891429e-02 8.6699532360706044e-02
|
||||
8.5403856475584128e-02 8.4125093443141896e-02 8.2863024985984080e-02 8.1617435665412685e-02 8.0388112842733062e-02
|
||||
7.9174846641143493e-02 7.7977429908209661e-02 7.6795658178889781e-02 7.5629329639115728e-02 7.4478245089953710e-02
|
||||
7.3342207912248103e-02 7.2221024031827064e-02 7.1114501885225945e-02 7.0022452385910761e-02 6.8944688890991479e-02
|
||||
6.7881027168450458e-02 6.6831285364849169e-02 6.5795283973477225e-02 6.4772845803028556e-02 6.3763795946680801e-02
|
||||
6.2767961751651669e-02 6.1785172789201148e-02 6.0815260825057393e-02 5.9858059790287577e-02 5.8913405752569759e-02
|
||||
5.7981136887894191e-02 5.7061093452682510e-02 5.6153117756271964e-02 5.5257054133826422e-02 5.4372748919636837e-02
|
||||
5.3500050420772105e-02 5.2638808891131372e-02 5.1788876505864945e-02 5.0950107336147354e-02 5.0122357324306366e-02
|
||||
4.9305484259319243e-02 4.8499347752635869e-02 4.7703809214351578e-02 4.6918731829721727e-02 4.6143980535982010e-02
|
||||
4.5379421999521163e-02 4.4624924593352100e-02 4.3880358374905226e-02 4.3145595064128850e-02 4.2420508021892900e-02
|
||||
4.1704972228691739e-02 4.0998864263647405e-02 4.0302062283785300e-02 3.9614446003616965e-02 3.8935896674993531e-02
|
||||
3.8266297067221844e-02 3.7605531447481688e-02 3.6953485561492139e-02 3.6310046614435487e-02 3.5675103252157392e-02
|
||||
3.5048545542616605e-02 3.4430264957581835e-02 3.3820154354582632e-02 3.3218107959093635e-02 3.2624021346983278e-02
|
||||
3.2037791427166340e-02 3.1459316424514716e-02 3.0888495862994469e-02 3.0325230549015147e-02 2.9769422555015357e-02
|
||||
2.9220975203265720e-02 2.8679793049885216e-02 2.8145781869070463e-02 2.7618848637539717e-02 2.7098901519172047e-02
|
||||
2.6585849849867671e-02 2.6079604122596356e-02 2.5580075972643668e-02 2.5087178163056167e-02 2.4600824570288671e-02
|
||||
2.4120930170012267e-02 2.3647411023137499e-02 2.3180184262011627e-02 2.2719168076792418e-02 2.2264281702001121e-02
|
||||
2.1815445403263078e-02 2.1372580464206647e-02 2.0935609173537761e-02 2.0504454812290795e-02 2.0079041641240414e-02
|
||||
1.9659294888467183e-02 1.9245140737102040e-02 1.8836506313223755e-02 1.8433319673904158e-02 1.8035509795416238e-02
|
||||
1.7643006561603891e-02 1.7255740752380899e-02 1.6873644032391555e-02 1.6496648939823388e-02 1.6124688875347792e-02
|
||||
1.5757698091213634e-02 1.5395611680482646e-02 1.5038365566394485e-02 1.4685896491875350e-02 1.4338142009180710e-02
|
||||
1.3995040469664266e-02 1.3656531013687800e-02 1.3322553560652262e-02 1.2993048799157525e-02 1.2667958177290606e-02
|
||||
1.2347223893038994e-02 1.2030788884814458e-02 1.1718596822117511e-02 1.1410592096299910e-02 1.1106719811460941e-02
|
||||
1.0806925775450060e-02 1.0511156490982998e-02 1.0219359146882878e-02 9.9314816094114855e-03 9.6474724137328716e-03
|
||||
9.3672807554677773e-03 9.0908564823645177e-03 8.8181500860711193e-03 8.5491126940134832e-03 8.2836960613733579e-03
|
||||
8.0218525631707838e-03 7.7635351864465685e-03 7.5086975225370223e-03 7.2572937594544973e-03 7.0092786743605195e-03
|
||||
6.7646076261301813e-03 6.5232365480138998e-03 6.2851219403949887e-03 6.0502208636273869e-03 5.8184909309735300e-03
|
||||
5.5898903016277091e-03 5.3643776738254711e-03 5.1419122780385074e-03 4.9224538702609122e-03 4.7059627253757674e-03
|
||||
4.4923996305976099e-03 4.2817258790122659e-03 4.0739032631877392e-03 3.8688940688609841e-03 3.6666610687164924e-03
|
||||
3.4671675162341598e-03 3.2703771396105918e-03 3.0762541357672313e-03 2.8847631644254856e-03 2.6958693422570179e-03
|
||||
2.5095382371091990e-03 2.3257358623008373e-03 2.1444286709895732e-03 1.9655835506104946e-03 1.7891678173820869e-03
|
||||
1.6151492108847365e-03 1.4434958887007410e-03 1.2741764211267048e-03 1.1071597859496629e-03 9.4241536328815156e-04
|
||||
7.7991293049733956e-04 6.1962265713921827e-04 4.6151510001329887e-04 3.0556119825198014e-04 1.5173226847375876e-04
|
||||
0. 0. 0. 0. 0.
|
||||
0. 5.4383329664155645e-05 9.3944898415945083e-04 4.3251847212615047e-03 1.2334244035325348e-02
|
||||
2.7137722173468548e-02 5.0697119791449641e-02 8.4607638668976470e-02 1.3001641279549414e-01 1.8759487452762702e-01
|
||||
2.5754900895683441e-01 3.3965493779430744e-01 4.3331024634064264e-01 5.3759384878832961e-01 6.5132908316254046e-01
|
||||
7.7314622535699939e-01 9.0154178511424377e-01 1.0349328562818201e+00 1.1717054897399350e+00 1.3102565818166738e+00
|
||||
1.4490291582473986e+00 1.5865412121263560e+00 1.7214084470448441e+00 1.8523614026473965e+00 1.9782575145276269e+00
|
||||
2.0980886961566938e+00 2.2109850373516764e+00 2.3162151996095730e+00 2.4131840597491703e+00 2.5014281146549706e+00
|
||||
2.5806091153285706e+00 2.6505063508648590e+00 2.7110079545661563e+00 2.7621015568249447e+00 2.8038645637913220e+00
|
||||
2.8364542979766156e+00 2.8600981973448825e+00 2.8750842333755031e+00 2.8817516761559574e+00 2.8804823057701157e+00
|
||||
2.8716921439699092e+00 2.8558237581894161e+00 2.8333391711552594e+00 2.8047133934346959e+00 2.7704285829676252e+00
|
||||
2.7309688247181469e+00 2.6868155147671331e+00 2.6384433262347358e+00 2.5863167291097398e+00 2.5308870321738226e+00
|
||||
2.4725899125317596e+00 2.4118433966060167e+00 2.3490462556752334e+00 2.2845767789603002e+00 2.2187918877813502e+00
|
||||
2.1520265552815943e+00 2.0845934975626363e+00 2.0167831036919637e+00 1.9488635738636404e+00 1.8810812369508270e+00
|
||||
1.8136610207193371e+00 1.7468070500507196e+00 1.6807033505858371e+00 1.6155146372447149e+00 1.5513871690559142e+00
|
||||
1.4884496536383409e+00 1.4268141864958608e+00 1.3665772120042590e+00 1.3078204945836447e+00 1.2506120900523854e+00
|
||||
1.1950073085502879e+00 1.1410496616995687e+00 1.0887717878420631e+00 1.0381963502565981e+00 9.8933690422003551e-01
|
||||
9.4219872964247031e-01 8.9677962677415124e-01 8.5307067316958651e-01 8.1105694069385592e-01 7.7071817188505065e-01
|
||||
7.3202941544290212e-01 6.9496162100761794e-01 6.5948219372701189e-01 6.2555550939233484e-01 5.9314339115629977e-01
|
||||
5.6220554903693554e-01 5.3269998356387660e-01 5.0458335504023211e-01 4.7781131998032222e-01 4.5233883634534777e-01
|
||||
4.2812043923464138e-01 4.0511048870905242e-01 3.8326339142174781e-01 3.6253379771729577e-01 3.4287677583286325e-01
|
||||
3.2424796479760154e-01 3.0660370758054967e-01 2.8990116598452254e-01 2.7409841872609064e-01 2.5915454407883409e-01
|
||||
2.4502968839369110e-01 2.3168512174254197e-01 2.1908328186436687e-01 2.0718780752542632e-01 1.9596356233750800e-01
|
||||
1.8537665001230508e-01 1.7539442196444632e-01 1.6598547811304609e-01 1.5711966166996927e-01 1.4876804864444715e-01
|
||||
1.4090293273673637e-01 1.3349780623990259e-01 1.2652733751724909e-01 1.1996734557434463e-01 1.1379477219856060e-01
|
||||
1.0798765209582406e-01 1.0252508141368288e-01 9.7387185001678311e-02 9.2555082724584015e-02 8.8010855111109620e-02
|
||||
8.3737508589961873e-02 7.9718940536826377e-02 7.5939904329596963e-02 7.2385974585237101e-02 6.9043512729294765e-02
|
||||
6.5899633029043336e-02 6.2942169202580001e-02 6.0159641699440547e-02 5.7541225732930634e-02 5.5076720130546430e-02
|
||||
5.2756517056398833e-02 5.0571572648238083e-02 4.8513378601664936e-02 4.6573934725081756e-02 4.4745722480991068e-02
|
||||
4.3021679522073253e-02 4.1395175224364866e-02 3.9859987214311721e-02 3.8410278881708670e-02 3.7040577866510604e-02
|
||||
3.5745755503880039e-02 3.4521007208912380e-02 3.3361833779917971e-02 3.2264023597108116e-02 3.1223635691821294e-02
|
||||
3.0236983660070216e-02 2.9300620393215571e-02 2.8411323597772320e-02 2.7566082075896281e-02 2.6762082737777249e-02
|
||||
2.5996698317105604e-02 2.5267475760840985e-02 2.4572125264713973e-02 2.3908509926274246e-02 2.3274635987705516e-02
|
||||
2.2668643641204911e-02 2.2088798370316409e-02 2.1533482801290083e-02 2.1001189039288493e-02 2.0490511464994254e-02
|
||||
2.0000139967999431e-02 1.9528853594166895e-02 1.9075514584991349e-02 1.8639062787818239e-02 1.8218510416650235e-02
|
||||
1.7812937144080498e-02 1.7421485505751177e-02 1.7043356599549031e-02 1.6677806062561751e-02 1.6324140309613155e-02
|
||||
1.5981713017976018e-02 1.5649921843605585e-02 1.5328205354974755e-02 1.5016040171312250e-02 1.4712938292708366e-02
|
||||
1.4418444610242331e-02 1.4132134584901757e-02 1.3853612084676337e-02 1.3582507369821917e-02 1.3318475216818060e-02
|
||||
1.3061193172097418e-02 1.2810359927147186e-02 1.2565693807050415e-02 1.2326931365025051e-02 1.2093826075940506e-02
|
||||
1.1866147122233661e-02 1.1643678266026136e-02 1.1426216801644407e-02 1.1213572583084475e-02 1.1005567121320226e-02
|
||||
1.0802032746662471e-02 1.0602811831688208e-02 1.0407756070544782e-02 1.0216725810699157e-02 1.0029589433467268e-02
|
||||
9.8462227798860602e-03 9.6665086187306404e-03 9.4903361536790021e-03 9.3176005668363371e-03 9.1482025960089031e-03
|
||||
8.9820481433065535e-03 8.8190479128032462e-03 8.6591170751522117e-03 8.5021749571883021e-03 8.3481447546937537e-03
|
||||
8.1969532666261724e-03 8.0485306492223962e-03 7.9028101885199598e-03 7.7597280899136256e-03 7.6192232834934315e-03
|
||||
7.4812372439735375e-03 7.3457138241272979e-03 7.2125991007052359e-03 7.0818412319012813e-03 6.9533903254870300e-03
|
||||
6.8271983168139705e-03 6.7032188559211503e-03 6.5814072030662141e-03 6.4617201320263939e-03 6.3441158405819764e-03
|
||||
6.2285538676237207e-03 6.1149950163802147e-03 6.0034012832899109e-03 5.8937357920846312e-03 5.7859627326801166e-03
|
||||
5.6800473044990030e-03 5.5759556638887986e-03 5.4736548753111791e-03 5.3731128660109428e-03 5.2742983838981461e-03
|
||||
5.1771809583849582e-03 5.0817308639591330e-03 4.9879190862693046e-03 4.8957172905357560e-03 4.8050977921015592e-03
|
||||
4.7160335289582467e-03 4.6284980360953021e-03 4.5424654215287241e-03 4.4579103438822931e-03 4.3748079913988880e-03
|
||||
4.2931340622749670e-03 4.2128647462132407e-03 4.1339767071033873e-03 4.0564470667446839e-03 3.9802533895282599e-03
|
||||
3.9053736680121076e-03 3.8317863093158128e-03 3.7594701222811860e-03 3.6884043053326127e-03 3.6185684349951674e-03
|
||||
3.5499424550168301e-03 3.4825066660512660e-03 3.4162417158645347e-03 3.3511285900229004e-03 3.2871486030347646e-03
|
||||
3.2242833899080170e-03 3.1625148980992668e-03 3.1018253798278661e-03 3.0421973847258310e-03 2.9836137528083811e-03
|
||||
2.9260576077371064e-03 2.8695123503632708e-03 2.8139616525287708e-03 2.7593894511106498e-03 2.7057799422959966e-03
|
||||
2.6531175760685227e-03 2.6013870509009052e-03 2.5505733086344240e-03 2.5006615295404683e-03 2.4516371275501436e-03
|
||||
2.4034857456453340e-03 2.3561932514012535e-03 2.3097457326723414e-03 2.2641294934160616e-03 2.2193310496436136e-03
|
||||
2.1753371254977782e-03 2.1321346494441173e-03 2.0897107505768314e-03 2.0480527550303662e-03 2.0071481824917164e-03
|
||||
1.9669847428123305e-03 1.9275503327108034e-03 1.8888330325659355e-03 1.8508211032951805e-03 1.8135029833145980e-03
|
||||
1.7768672855772646e-03 1.7409027946878666e-03 1.7055984640891586e-03 1.6709434133182904e-03 1.6369269253308227e-03
|
||||
1.6035384438881917e-03 1.5707675710093030e-03 1.5386040644797400e-03 1.5070378354209296e-03 1.4760589459142243e-03
|
||||
1.4456576066784674e-03 1.4158241748004133e-03 1.3865491515145517e-03 1.3578231800324136e-03 1.3296370434173130e-03
|
||||
1.3019816625059188e-03 1.2748480938728074e-03 1.2482275278369870e-03 1.2221112865106742e-03 1.1964908218862064e-03
|
||||
1.1713577139624703e-03 1.1467036689077198e-03 1.1225205172586891e-03 1.0988002121543120e-03 1.0755348276031765e-03
|
||||
1.0527165567835728e-03 1.0303377103750150e-03 1.0083907149206553e-03 9.8686811121878604e-04 9.6576255274356815e-04
|
||||
9.4506680409354657e-04 9.2477373946662708e-04 9.0487634116191706e-04 8.8536769810608137e-04 8.6624100440530968e-04
|
||||
8.4748955791986991e-04 8.2910675886310736e-04 8.1108610842155551e-04 7.9342120739794852e-04 7.7610575487466887e-04
|
||||
7.5913354689786591e-04 7.4249847518158968e-04 7.2619452583109687e-04 7.1021577808524222e-04 6.9455640307671332e-04
|
||||
6.7921066261025093e-04 6.6417290795844214e-04 6.4943757867335500e-04 6.3499920141575628e-04 6.2085238879914031e-04
|
||||
6.0699183824991856e-04 5.9341233088238896e-04 5.8010873038847818e-04 5.6707598194186137e-04 5.5430911111587280e-04
|
||||
5.4180322281523891e-04 5.2955350022104025e-04 5.1755520374872563e-04 5.0580367001857793e-04 4.9429431083891986e-04
|
||||
4.8302261220136561e-04 4.7198413328763435e-04 4.6117450548847222e-04 4.5058943143359842e-04 4.4022468403297037e-04
|
||||
4.3007610552883886e-04 4.2013960655883260e-04 4.1041116522908330e-04 4.0088682619821882e-04 3.9156269977118005e-04
|
||||
3.8243496100300207e-04 3.7349984881274514e-04 3.6475366510662147e-04 3.5619277391102898e-04 3.4781360051482253e-04
|
||||
3.3961263062063513e-04 3.3158640950565685e-04 3.2373154119109092e-04 3.1604468762060252e-04 3.0852256784754707e-04
|
||||
3.0116195723081836e-04 2.9395968663908575e-04 2.8691264166377101e-04 2.8001776184017647e-04 2.7327203987681688e-04
|
||||
2.6667252089326854e-04 2.6021630166557681e-04 2.5390052988028163e-04 2.4772240339593181e-04 2.4167916951265550e-04
|
||||
2.3576812424967210e-04 2.2998661163024531e-04 2.2433202297460642e-04 2.1880179620031078e-04 2.1339341513026532e-04
|
||||
2.0810440880823181e-04 2.0293235082175821e-04 1.9787485863260665e-04 1.9292959291436311e-04 1.8809425689761319e-04
|
||||
1.8336659572205580e-04 1.7874439579616125e-04 1.7422548416372047e-04 1.6980772787763936e-04 1.6548903338088530e-04
|
||||
1.6126734589430591e-04 1.5714064881157744e-04 1.5310696310104604e-04 1.4916434671449329e-04 1.4531089400280153e-04
|
||||
1.4154473513841234e-04 1.3786403554466153e-04 1.3426699533172857e-04 1.3075184873951283e-04 1.2731686358694039e-04
|
||||
1.2396034072819674e-04 1.2068061351527565e-04 1.1747604726729168e-04 1.1434503874632306e-04 1.1128601563955686e-04
|
||||
1.0829743604811193e-04 1.0537778798212988e-04 1.0252558886227753e-04 9.9739385027582898e-05 9.7017751249615057e-05
|
||||
9.4359290252773662e-05 9.1762632240957511e-05 8.9226434430383569e-05 8.6749380588361721e-05 8.4330180578390864e-05
|
||||
8.1967569911181246e-05 7.9660309301724484e-05 7.7407184232279429e-05 7.5207004521348451e-05 7.3058603898526649e-05
|
||||
7.0960839585107720e-05 6.8912591880629977e-05 6.6912763755002085e-05 6.4960280446513426e-05 6.3054089065330086e-05
|
||||
6.1193158202771814e-05 5.9376477546041213e-05 5.7603057498502742e-05 5.5871928805544500e-05 5.4182142185708361e-05
|
||||
5.2532767967318744e-05 5.0922895730446966e-05 4.9351633954125953e-05 4.7818109668823321e-05 4.6321468114150300e-05
|
||||
4.4860872401664663e-05 4.3435503182825573e-05 4.2044558321957873e-05 4.0687252574273750e-05 3.9362817268785450e-05
|
||||
3.8070499996214428e-05 3.6809564301621984e-05 3.5579289382025496e-05 3.4378969788611451e-05 3.3207915133769052e-05
|
||||
3.2065449802711312e-05 3.0950912669766876e-05 2.9863656819185611e-05 2.8803049270468119e-05 2.7768470708167169e-05
|
||||
2.6759315216115260e-05 2.5774990015931323e-05 2.4814915209964844e-05 2.3878523528387922e-05 2.2965260080560611e-05
|
||||
2.2074582110528148e-05 2.1205958756658535e-05 2.0358870815317476e-05 1.9532810508535560e-05 1.8727281255713447e-05
|
||||
1.7941797449145505e-05 1.7175884233475961e-05 1.6429077288930018e-05 1.5700922618341645e-05 1.4990976337865471e-05
|
||||
1.4298804471386687e-05 1.3623982748522034e-05 1.2966096406226424e-05 1.2324739993882115e-05 1.1699517181902770e-05
|
||||
1.1090040573734860e-05 1.0495931521266495e-05 9.9168199435395021e-06 9.3523441487842465e-06 8.8021506596591475e-06
|
||||
8.2658940417265321e-06 7.7432367350197678e-06 7.2338488887770244e-06 6.7374081991923703e-06 6.2535997501888662e-06
|
||||
5.7821158571569505e-06 5.3226559136389283e-06 4.8749262408651290e-06 4.4386399401326240e-06 4.0135167480073166e-06
|
||||
3.5992828942305738e-06 3.1956709623667747e-06 2.8024197531120341e-06 2.4192741502208947e-06 2.0459849890155880e-06
|
||||
1.6823089274468580e-06 1.3280083196495871e-06 9.8285109196557868e-07 6.4661062138351467e-07 3.1906561636122974e-07
|
||||
0. 0. 0. 0. 0.
|
||||
|
||||
|
||||
94
bench/README
Normal file
94
bench/README
Normal file
@ -0,0 +1,94 @@
|
||||
LAMMPS benchmark problems
|
||||
|
||||
This directory contains 5 benchmark problems which are discussed in
|
||||
the Benchmark section of the LAMMPS documentation.
|
||||
|
||||
Each of the 5 problems has 32,000 atoms and runs for 100 timesteps.
|
||||
Each can be run as a serial benchmark (on one processor) or in
|
||||
parallel. In parallel, each benchmark can be run as a fixed-size or
|
||||
scaled-size problem. For fixed-size benchmarking, the same 32K atom
|
||||
problem is run on various numbers of processors. For scaled-size
|
||||
benchmarking, the model size is increased with the number of
|
||||
processors. E.g. on 8 processors, a 256K-atom problem is run; on 1024
|
||||
processors, a 32-million atom problem is run, etc.
|
||||
|
||||
A few sample log file outputs on different machines and different
|
||||
numbers of processors are included in this directory to compare your
|
||||
answers to. E.g. a log file like log.date.chain.lmp.scaled.foo.P is
|
||||
for a scaled-size version of the Chain benchmark, run on P processors
|
||||
of machine "foo" with the dated version of LAMMPS. Note that the Eam
|
||||
and Lj benchmarks may not give identical answers on different machines
|
||||
because of the "velocity loop geom" option that assigns velocities
|
||||
based on atom coordinates - see the discussion in the documentation
|
||||
for the velocity command for details.
|
||||
|
||||
The CPU time (in seconds) for the run is in the "Loop time" line
|
||||
of the log files, e.g.
|
||||
|
||||
Loop time of 3.89418 on 8 procs for 100 steps with 32000 atoms
|
||||
|
||||
Timing results for these problems run on various machines are listed
|
||||
on the Benchmarks page of the LAMMPS WWW Site.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
These are the 5 benchmark problems:
|
||||
|
||||
LJ = atomic fluid, Lennard-Jones potential with 2.5 sigma cutoff (55
|
||||
neighbors per atom), NVE integration
|
||||
|
||||
Chain = bead-spring polymer melt of 100-mer chains, FENE bonds and LJ
|
||||
pairwise interactions with a 2^(1/6) sigma cutoff (5 neighbors per
|
||||
atom), NVE integration
|
||||
|
||||
EAM = metallic solid, Cu EAM potential with 4.95 Angstrom cutoff (45
|
||||
neighbors per atom), NVE integration
|
||||
|
||||
Chute = granular chute flow, frictional history potential with 1.1
|
||||
sigma cutoff (7 neighbors per atom), NVE integration
|
||||
|
||||
Rhodo = rhodopsin protein in solvated lipid bilayer, CHARMM force
|
||||
field with a 10 Angstrom LJ cutoff (440 neighbors per atom),
|
||||
particle-particle particle-mesh (PPPM) for long-range Coulombics, NPT
|
||||
integration
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Here is how to run each problem, assuming the LAMMPS executable is
|
||||
named lmp_foo, and you are using the mpirun command to launch parallel
|
||||
runs:
|
||||
|
||||
Serial (one processor runs):
|
||||
|
||||
lmp_foo < in.lj
|
||||
lmp_foo < in.chain
|
||||
lmp_foo < in.eam
|
||||
lmp_foo < in.chute
|
||||
lmp_foo < in.rhodo
|
||||
|
||||
Parallel fixed-size runs (on 8 procs in this case):
|
||||
|
||||
mpirun -np 8 lmp_foo < in.lj
|
||||
mpirun -np 8 lmp_foo < in.chain
|
||||
mpirun -np 8 lmp_foo < in.eam
|
||||
mpirun -np 8 lmp_foo < in.chute
|
||||
mpirun -np 8 lmp_foo < in.rhodo
|
||||
|
||||
Parallel scaled-size runs (on 16 procs in this case):
|
||||
|
||||
mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.lj
|
||||
mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.chain.scaled
|
||||
mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.eam
|
||||
mpirun -np 16 lmp_foo -var x 4 -var y 4 < in.chute.scaled
|
||||
mpirun -np 16 lmp_foo -var x 2 -var y 2 -var z 4 < in.rhodo.scaled
|
||||
|
||||
For each of the scaled-size runs you must set 3 variables as -var
|
||||
command line switches. The variables x,y,z are used in the input
|
||||
scripts to scale up the problem size in each dimension. Imagine the P
|
||||
processors arrayed as a 3d grid, so that P = Px * Py * Pz. For P =
|
||||
16, you might use Px = 2, Py = 2, Pz = 4. To scale up equally in all
|
||||
dimensions you roughly want Px = Py = Pz. Using the var switches, set
|
||||
x = Px, y = Py, and z = Pz.
|
||||
|
||||
For Chute runs, you must have Pz = 1. Therefore P = Px * Py and you
|
||||
only need to set variables x and y.
|
||||
95710
bench/data.chain
Normal file
95710
bench/data.chain
Normal file
File diff suppressed because it is too large
Load Diff
64015
bench/data.chute
Normal file
64015
bench/data.chute
Normal file
File diff suppressed because it is too large
Load Diff
191072
bench/data.rhodo
Normal file
191072
bench/data.rhodo
Normal file
File diff suppressed because it is too large
Load Diff
25
bench/in.chain
Normal file
25
bench/in.chain
Normal file
@ -0,0 +1,25 @@
|
||||
# FENE beadspring benchmark
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
32
bench/in.chain.scaled
Normal file
32
bench/in.chain.scaled
Normal file
@ -0,0 +1,32 @@
|
||||
# FENE beadspring benchmark
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
atom_modify map hash
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
|
||||
replicate $x $y $z
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
33
bench/in.chute
Normal file
33
bench/in.chute
Normal file
@ -0,0 +1,33 @@
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
communicate single vel yes
|
||||
|
||||
read_data data.chute
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
38
bench/in.chute.scaled
Normal file
38
bench/in.chute.scaled
Normal file
@ -0,0 +1,38 @@
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
communicate single vel yes
|
||||
|
||||
read_data data.chute
|
||||
|
||||
replicate $x $y 1
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
group active subtract all bottom
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
32
bench/in.eam
Normal file
32
bench/in.eam
Normal file
@ -0,0 +1,32 @@
|
||||
# bulk Cu lattice
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
30
bench/in.lj
Normal file
30
bench/in.lj
Normal file
@ -0,0 +1,30 @@
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable yy equal 20*$y
|
||||
variable zz equal 20*$z
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
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
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 100
|
||||
27
bench/in.rhodo
Normal file
27
bench/in.rhodo
Normal file
@ -0,0 +1,27 @@
|
||||
# Rhodopsin model
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
34
bench/in.rhodo.scaled
Normal file
34
bench/in.rhodo.scaled
Normal file
@ -0,0 +1,34 @@
|
||||
# Rhodopsin model
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
|
||||
replicate $x $y $z
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
fix 2 all npt temp 300.0 300.0 100.0 &
|
||||
z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
59
bench/log.9Jan12.chain.fixed.linux.1
Normal file
59
bench/log.9Jan12.chain.fixed.linux.1
Normal file
@ -0,0 +1,59 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# FENE beadspring benchmark
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
1 = max bonds/atom
|
||||
orthogonal box = (-16.796 -16.796 -16.796) to (16.796 16.796 16.796)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
31680 bonds
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 11.3536 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0.97029772 0.44484087 20.494523 22.394765 4.6721833
|
||||
100 0.9729966 0.4361122 20.507698 22.40326 4.6548819
|
||||
Loop time of 1.00598 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 0.200669 (19.9477)
|
||||
Bond time (%) = 0.116349 (11.5657)
|
||||
Neigh time (%) = 0.434148 (43.1567)
|
||||
Comm time (%) = 0.0310009 (3.08166)
|
||||
Outpt time (%) = 9.799e-05 (0.00974076)
|
||||
Other time (%) = 0.223714 (22.2385)
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 9493 ave 9493 max 9493 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 155873 ave 155873 max 155873 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 155873
|
||||
Ave neighs/atom = 4.87103
|
||||
Ave special neighs/atom = 1.98
|
||||
Neighbor list builds = 25
|
||||
Dangerous builds = 0
|
||||
59
bench/log.9Jan12.chain.fixed.linux.4
Normal file
59
bench/log.9Jan12.chain.fixed.linux.4
Normal file
@ -0,0 +1,59 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# FENE beadspring benchmark
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
1 = max bonds/atom
|
||||
orthogonal box = (-16.796 -16.796 -16.796) to (16.796 16.796 16.796)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
31680 bonds
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 4.80505 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0.97029772 0.44484087 20.494523 22.394765 4.6721833
|
||||
100 0.97145835 0.43803883 20.502691 22.397872 4.626988
|
||||
Loop time of 0.277092 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 0.0511394 (18.4557)
|
||||
Bond time (%) = 0.030314 (10.94)
|
||||
Neigh time (%) = 0.112937 (40.7578)
|
||||
Comm time (%) = 0.0222602 (8.03351)
|
||||
Outpt time (%) = 6.1214e-05 (0.0220915)
|
||||
Other time (%) = 0.0603806 (21.7908)
|
||||
|
||||
Nlocal: 8000 ave 8030 max 7974 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Nghost: 4177 ave 4191 max 4160 min
|
||||
Histogram: 1 0 0 0 1 0 0 1 0 1
|
||||
Neighs: 38995.8 ave 39169 max 38852 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 155983
|
||||
Ave neighs/atom = 4.87447
|
||||
Ave special neighs/atom = 1.98
|
||||
Neighbor list builds = 25
|
||||
Dangerous builds = 0
|
||||
75
bench/log.9Jan12.chain.scaled.linux.4
Normal file
75
bench/log.9Jan12.chain.scaled.linux.4
Normal file
@ -0,0 +1,75 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# FENE beadspring benchmark
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units lj
|
||||
atom_style bond
|
||||
atom_modify map hash
|
||||
special_bonds fene
|
||||
|
||||
read_data data.chain
|
||||
1 = max bonds/atom
|
||||
orthogonal box = (-16.796 -16.796 -16.796) to (16.796 16.796 16.796)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
31680 bonds
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
replicate $x $y $z
|
||||
replicate 2 $y $z
|
||||
replicate 2 2 $z
|
||||
replicate 2 2 1
|
||||
orthogonal box = (-16.796 -16.796 -16.796) to (50.388 50.388 16.796)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
128000 atoms
|
||||
126720 bonds
|
||||
2 = max # of 1-2 neighbors
|
||||
2 = max # of special neighbors
|
||||
|
||||
neighbor 0.4 bin
|
||||
neigh_modify every 1 delay 1
|
||||
|
||||
bond_style fene
|
||||
bond_coeff 1 30.0 1.5 1.0 1.0
|
||||
|
||||
pair_style lj/cut 1.12
|
||||
pair_modify shift yes
|
||||
pair_coeff 1 1 1.0 1.0 1.12
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all langevin 1.0 1.0 10.0 904297
|
||||
|
||||
thermo 100
|
||||
timestep 0.012
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 13.3552 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0.97027498 0.44484087 20.494523 22.394765 4.6721833
|
||||
100 0.97682955 0.44239968 20.500229 22.407862 4.6527025
|
||||
Loop time of 1.16957 on 4 procs for 100 steps with 128000 atoms
|
||||
|
||||
Pair time (%) = 0.227149 (19.4215)
|
||||
Bond time (%) = 0.123806 (10.5856)
|
||||
Neigh time (%) = 0.472906 (40.4341)
|
||||
Comm time (%) = 0.0951706 (8.13721)
|
||||
Outpt time (%) = 0.000224173 (0.0191671)
|
||||
Other time (%) = 0.250317 (21.4025)
|
||||
|
||||
Nlocal: 32000 ave 32015 max 31983 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 1 1
|
||||
Nghost: 9492 ave 9522 max 9432 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 0 2
|
||||
Neighs: 155837 ave 156079 max 155506 min
|
||||
Histogram: 1 0 0 0 0 1 0 0 1 1
|
||||
|
||||
Total # of neighbors = 623349
|
||||
Ave neighs/atom = 4.86991
|
||||
Ave special neighs/atom = 1.98
|
||||
Neighbor list builds = 25
|
||||
Dangerous builds = 0
|
||||
63
bench/log.9Jan12.chute.fixed.linux.1
Normal file
63
bench/log.9Jan12.chute.fixed.linux.1
Normal file
@ -0,0 +1,63 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
communicate single vel yes
|
||||
|
||||
read_data data.chute
|
||||
orthogonal box = (0 0 0) to (40 20 37.2886)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
912 atoms in group bottom
|
||||
group active subtract all bottom
|
||||
31088 atoms in group active
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 34.9301 Mbytes
|
||||
Step Atoms KinEng 1 Volume
|
||||
0 32000 784139.13 1601.1263 29830.88
|
||||
100 32000 784289.99 1571.0137 29831.804
|
||||
Loop time of 0.54713 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 0.328969 (60.1262)
|
||||
Neigh time (%) = 0.04423 (8.084)
|
||||
Comm time (%) = 0.0182245 (3.33092)
|
||||
Outpt time (%) = 0.00019002 (0.0347302)
|
||||
Other time (%) = 0.155517 (28.4242)
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5463 ave 5463 max 5463 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 115133 ave 115133 max 115133 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 115133
|
||||
Ave neighs/atom = 3.59791
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
63
bench/log.9Jan12.chute.fixed.linux.4
Normal file
63
bench/log.9Jan12.chute.fixed.linux.4
Normal file
@ -0,0 +1,63 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
communicate single vel yes
|
||||
|
||||
read_data data.chute
|
||||
orthogonal box = (0 0 0) to (40 20 37.2886)
|
||||
2 by 1 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
912 atoms in group bottom
|
||||
group active subtract all bottom
|
||||
31088 atoms in group active
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 15.2765 Mbytes
|
||||
Step Atoms KinEng 1 Volume
|
||||
0 32000 784139.13 1601.1263 29830.88
|
||||
100 32000 784289.99 1571.0137 29831.804
|
||||
Loop time of 0.146905 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 0.0729731 (49.6735)
|
||||
Neigh time (%) = 0.0111947 (7.62035)
|
||||
Comm time (%) = 0.0153095 (10.4213)
|
||||
Outpt time (%) = 0.000119746 (0.0815122)
|
||||
Other time (%) = 0.0473083 (32.2033)
|
||||
|
||||
Nlocal: 8000 ave 8010 max 7990 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Nghost: 2439 ave 2452 max 2426 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Neighs: 29503.5 ave 30500 max 28507 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 118014
|
||||
Ave neighs/atom = 3.68794
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
73
bench/log.9Jan12.chute.scaled.linux.4
Normal file
73
bench/log.9Jan12.chute.scaled.linux.4
Normal file
@ -0,0 +1,73 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# LAMMPS benchmark of granular flow
|
||||
# chute flow of 32000 atoms with frozen base at 26 degrees
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
|
||||
units lj
|
||||
atom_style sphere
|
||||
boundary p p fs
|
||||
newton off
|
||||
communicate single vel yes
|
||||
|
||||
read_data data.chute
|
||||
orthogonal box = (0 0 0) to (40 20 37.2886)
|
||||
2 by 1 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
|
||||
replicate $x $y 1
|
||||
replicate 2 $y 1
|
||||
replicate 2 2 1
|
||||
orthogonal box = (0 0 0) to (80 40 37.2887)
|
||||
4 by 1 by 1 MPI processor grid
|
||||
128000 atoms
|
||||
|
||||
pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 0
|
||||
pair_coeff * *
|
||||
|
||||
neighbor 0.1 bin
|
||||
neigh_modify every 1 delay 0
|
||||
|
||||
timestep 0.0001
|
||||
|
||||
group bottom type 2
|
||||
3648 atoms in group bottom
|
||||
group active subtract all bottom
|
||||
124352 atoms in group active
|
||||
neigh_modify exclude group bottom bottom
|
||||
|
||||
fix 1 all gravity 1.0 chute 26.0
|
||||
fix 2 bottom freeze
|
||||
fix 3 active nve/sphere
|
||||
|
||||
compute 1 all erotate/sphere
|
||||
thermo_style custom step atoms ke c_1 vol
|
||||
thermo_modify norm no
|
||||
thermo 100
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 37.0464 Mbytes
|
||||
Step Atoms KinEng 1 Volume
|
||||
0 128000 3136556.5 6404.5051 119323.52
|
||||
100 128000 3137160 6284.0549 119327.22
|
||||
Loop time of 0.893496 on 4 procs for 100 steps with 128000 atoms
|
||||
|
||||
Pair time (%) = 0.524706 (58.7251)
|
||||
Neigh time (%) = 0.0462004 (5.17075)
|
||||
Comm time (%) = 0.0590464 (6.60847)
|
||||
Outpt time (%) = 0.00043273 (0.0484311)
|
||||
Other time (%) = 0.26311 (29.4473)
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5456 ave 5456 max 5456 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 115135 ave 115135 max 115135 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 460540
|
||||
Ave neighs/atom = 3.59797
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
67
bench/log.9Jan12.eam.fixed.linux.1
Normal file
67
bench/log.9Jan12.eam.fixed.linux.1
Normal file
@ -0,0 +1,67 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# bulk Cu lattice
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*1
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*1
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
Lattice spacing in x,y,z = 3.615 3.615 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 20 0 ${zz}
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (72.3 72.3 72.3)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 15.3728 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1600 -113280 0 -106662.09 18703.573
|
||||
50 781.69049 -109873.35 0 -106640.13 52273.088
|
||||
100 801.832 -109957.3 0 -106640.77 51322.821
|
||||
Loop time of 5.8924 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 5.20714 (88.3704)
|
||||
Neigh time (%) = 0.579568 (9.83586)
|
||||
Comm time (%) = 0.0308812 (0.524085)
|
||||
Outpt time (%) = 0.000219822 (0.0037306)
|
||||
Other time (%) = 0.0745952 (1.26596)
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 19909 ave 19909 max 19909 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 1.20778e+06 ave 1.20778e+06 max 1.20778e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1207784
|
||||
Ave neighs/atom = 37.7433
|
||||
Neighbor list builds = 13
|
||||
Dangerous builds = 0
|
||||
67
bench/log.9Jan12.eam.fixed.linux.4
Normal file
67
bench/log.9Jan12.eam.fixed.linux.4
Normal file
@ -0,0 +1,67 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# bulk Cu lattice
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*1
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*1
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
Lattice spacing in x,y,z = 3.615 3.615 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 20 0 ${zz}
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (72.3 72.3 72.3)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 4.92442 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1600 -113280 0 -106662.09 18703.573
|
||||
50 781.69049 -109873.35 0 -106640.13 52273.088
|
||||
100 801.832 -109957.3 0 -106640.77 51322.821
|
||||
Loop time of 1.58434 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 1.37178 (86.5835)
|
||||
Neigh time (%) = 0.151559 (9.56606)
|
||||
Comm time (%) = 0.0399128 (2.5192)
|
||||
Outpt time (%) = 0.000169277 (0.0106844)
|
||||
Other time (%) = 0.0209216 (1.32052)
|
||||
|
||||
Nlocal: 8000 ave 8008 max 7993 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 1 1
|
||||
Nghost: 9130.25 ave 9138 max 9122 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Neighs: 301946 ave 302392 max 301360 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||
|
||||
Total # of neighbors = 1207784
|
||||
Ave neighs/atom = 37.7433
|
||||
Neighbor list builds = 13
|
||||
Dangerous builds = 0
|
||||
67
bench/log.9Jan12.eam.scaled.linux.4
Normal file
67
bench/log.9Jan12.eam.scaled.linux.4
Normal file
@ -0,0 +1,67 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# bulk Cu lattice
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*2
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*2
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units metal
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 3.615
|
||||
Lattice spacing in x,y,z = 3.615 3.615 3.615
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 40 0 ${yy} 0 ${zz}
|
||||
region box block 0 40 0 40 0 ${zz}
|
||||
region box block 0 40 0 40 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (144.6 144.6 72.3)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 128000 atoms
|
||||
|
||||
pair_style eam
|
||||
pair_coeff 1 1 Cu_u3.eam
|
||||
|
||||
velocity all create 1600.0 376847 loop geom
|
||||
|
||||
neighbor 1.0 bin
|
||||
neigh_modify every 1 delay 5 check yes
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
timestep 0.005
|
||||
thermo 50
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 15.2892 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1600 -453120 0 -426647.73 18704.012
|
||||
50 779.50001 -439457.02 0 -426560.06 52355.276
|
||||
100 797.97828 -439764.76 0 -426562.07 51474.74
|
||||
Loop time of 6.64398 on 4 procs for 100 steps with 128000 atoms
|
||||
|
||||
Pair time (%) = 5.7169 (86.0464)
|
||||
Neigh time (%) = 0.659102 (9.92029)
|
||||
Comm time (%) = 0.164221 (2.47173)
|
||||
Outpt time (%) = 0.000294626 (0.00443448)
|
||||
Other time (%) = 0.103457 (1.55716)
|
||||
|
||||
Nlocal: 32000 ave 32092 max 31914 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Nghost: 19910 ave 19997 max 19818 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Neighs: 1.20728e+06 ave 1.21142e+06 max 1.2036e+06 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 4829126
|
||||
Ave neighs/atom = 37.7275
|
||||
Neighbor list builds = 14
|
||||
Dangerous builds = 0
|
||||
64
bench/log.9Jan12.lj.fixed.linux.1
Normal file
64
bench/log.9Jan12.lj.fixed.linux.1
Normal file
@ -0,0 +1,64 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*1
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*1
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 20 0 ${zz}
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (33.5919 33.5919 33.5919)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
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
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 13.2267 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.44 -6.7733681 0 -4.6134356 -5.0197073
|
||||
100 0.7574531 -5.7585055 0 -4.6223613 0.20726105
|
||||
Loop time of 2.24442 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 1.92371 (85.7108)
|
||||
Neigh time (%) = 0.23672 (10.547)
|
||||
Comm time (%) = 0.0241742 (1.07708)
|
||||
Outpt time (%) = 0.000104189 (0.00464212)
|
||||
Other time (%) = 0.059711 (2.66042)
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 19657 ave 19657 max 19657 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 1.20283e+06 ave 1.20283e+06 max 1.20283e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 1202833
|
||||
Ave neighs/atom = 37.5885
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds = 0
|
||||
64
bench/log.9Jan12.lj.fixed.linux.4
Normal file
64
bench/log.9Jan12.lj.fixed.linux.4
Normal file
@ -0,0 +1,64 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*1
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*1
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 ${yy} 0 ${zz}
|
||||
region box block 0 20 0 20 0 ${zz}
|
||||
region box block 0 20 0 20 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (33.5919 33.5919 33.5919)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 32000 atoms
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
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
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 4.31284 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.44 -6.7733681 0 -4.6134356 -5.0197073
|
||||
100 0.7574531 -5.7585055 0 -4.6223613 0.20726105
|
||||
Loop time of 0.62139 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 0.502622 (80.8866)
|
||||
Neigh time (%) = 0.0616071 (9.9144)
|
||||
Comm time (%) = 0.0411073 (6.61538)
|
||||
Outpt time (%) = 5.79953e-05 (0.00933316)
|
||||
Other time (%) = 0.0159961 (2.57424)
|
||||
|
||||
Nlocal: 8000 ave 8037 max 7964 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 1 1
|
||||
Nghost: 9007.5 ave 9050 max 8968 min
|
||||
Histogram: 1 1 0 0 0 0 0 1 0 1
|
||||
Neighs: 300708 ave 305113 max 297203 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 1202833
|
||||
Ave neighs/atom = 37.5885
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds = 0
|
||||
64
bench/log.9Jan12.lj.scaled.linux.4
Normal file
64
bench/log.9Jan12.lj.scaled.linux.4
Normal file
@ -0,0 +1,64 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
variable xx equal 20*$x
|
||||
variable xx equal 20*2
|
||||
variable yy equal 20*$y
|
||||
variable yy equal 20*2
|
||||
variable zz equal 20*$z
|
||||
variable zz equal 20*1
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
|
||||
lattice fcc 0.8442
|
||||
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
|
||||
region box block 0 ${xx} 0 ${yy} 0 ${zz}
|
||||
region box block 0 40 0 ${yy} 0 ${zz}
|
||||
region box block 0 40 0 40 0 ${zz}
|
||||
region box block 0 40 0 40 0 20
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (67.1838 67.1838 33.5919)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
create_atoms 1 box
|
||||
Created 128000 atoms
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
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
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 100
|
||||
Memory usage per processor = 13.1495 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.44 -6.7733681 0 -4.6133849 -5.0196788
|
||||
100 0.75841891 -5.759957 0 -4.6223375 0.20008866
|
||||
Loop time of 2.43423 on 4 procs for 100 steps with 128000 atoms
|
||||
|
||||
Pair time (%) = 2.04092 (83.8422)
|
||||
Neigh time (%) = 0.238374 (9.79258)
|
||||
Comm time (%) = 0.0766696 (3.14964)
|
||||
Outpt time (%) = 0.000154495 (0.00634677)
|
||||
Other time (%) = 0.0781193 (3.20919)
|
||||
|
||||
Nlocal: 32000 ave 32060 max 31939 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Nghost: 19630.8 ave 19681 max 19562 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||
Neighs: 1.20195e+06 ave 1.20354e+06 max 1.19931e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 2 0 1
|
||||
|
||||
Total # of neighbors = 4807797
|
||||
Ave neighs/atom = 37.5609
|
||||
Neighbor list builds = 5
|
||||
Dangerous builds = 0
|
||||
98
bench/log.9Jan12.rhodo.fixed.linux.1
Normal file
98
bench/log.9Jan12.rhodo.fixed.linux.1
Normal file
@ -0,0 +1,98 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# Rhodopsin model
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
4 = max bonds/atom
|
||||
8 = max angles/atom
|
||||
18 = max dihedrals/atom
|
||||
2 = max impropers/atom
|
||||
orthogonal box = (-27.5 -38.5 -36.3646) to (27.5 38.5 36.3615)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
27723 bonds
|
||||
40467 angles
|
||||
56829 dihedrals
|
||||
1034 impropers
|
||||
4 = max # of 1-2 neighbors
|
||||
12 = max # of 1-3 neighbors
|
||||
24 = max # of 1-4 neighbors
|
||||
26 = max # of special neighbors
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
1617 = # of size 2 clusters
|
||||
3633 = # of size 3 clusters
|
||||
747 = # of size 4 clusters
|
||||
4233 = # of frozen angles
|
||||
fix 2 all npt temp 300.0 300.0 100.0 z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
PPPM initialization ...
|
||||
G vector = 0.248831
|
||||
grid = 25 32 32
|
||||
stencil order = 5
|
||||
RMS precision = 7.57143e-05
|
||||
using double precision FFTs
|
||||
brick FFT buffer size/proc = 41070 25600 12321
|
||||
Memory usage per processor = 138.965 Mbytes
|
||||
---------------- Step 0 ----- CPU = 0.0000 (sec) ----------------
|
||||
TotEng = -25356.2055 KinEng = 21444.8313 Temp = 299.0397
|
||||
PotEng = -46801.0368 E_bond = 2537.9940 E_angle = 10921.3742
|
||||
E_dihed = 5211.7865 E_impro = 213.5116 E_vdwl = -2307.8634
|
||||
E_coul = 207021.6603 E_long = -270399.5000 Press = -142.6030
|
||||
Volume = 307995.0335
|
||||
---------------- Step 50 ----- CPU = 17.8190 (sec) ----------------
|
||||
TotEng = -25330.0783 KinEng = 21501.0023 Temp = 299.8230
|
||||
PotEng = -46831.0806 E_bond = 2471.7004 E_angle = 10836.4977
|
||||
E_dihed = 5239.6299 E_impro = 227.1218 E_vdwl = -1993.2753
|
||||
E_coul = 206793.4044 E_long = -270406.1594 Press = 237.6744
|
||||
Volume = 308031.5641
|
||||
---------------- Step 100 ----- CPU = 36.2635 (sec) ----------------
|
||||
TotEng = -25290.7642 KinEng = 21592.0080 Temp = 301.0920
|
||||
PotEng = -46882.7722 E_bond = 2567.9806 E_angle = 10781.9408
|
||||
E_dihed = 5198.7431 E_impro = 216.7832 E_vdwl = -1902.4804
|
||||
E_coul = 206654.9995 E_long = -270400.7390 Press = 6.9875
|
||||
Volume = 308133.9900
|
||||
Loop time of 36.2636 on 1 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 25.8498 (71.283)
|
||||
Bond time (%) = 1.49598 (4.1253)
|
||||
Kspce time (%) = 3.27236 (9.02382)
|
||||
Neigh time (%) = 4.27552 (11.7901)
|
||||
Comm time (%) = 0.0665278 (0.183456)
|
||||
Outpt time (%) = 0.000251055 (0.000692305)
|
||||
Other time (%) = 1.30319 (3.59366)
|
||||
|
||||
FFT time (% of Kspce) = 0.279837 (8.55152)
|
||||
FFT Gflps 3d (1d only) = 1.85715 3.22108
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 47958 ave 47958 max 47958 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 1.20281e+07 ave 1.20281e+07 max 1.20281e+07 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 12028107
|
||||
Ave neighs/atom = 375.878
|
||||
Ave special neighs/atom = 7.43187
|
||||
Neighbor list builds = 11
|
||||
Dangerous builds = 0
|
||||
98
bench/log.9Jan12.rhodo.fixed.linux.4
Normal file
98
bench/log.9Jan12.rhodo.fixed.linux.4
Normal file
@ -0,0 +1,98 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# Rhodopsin model
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
4 = max bonds/atom
|
||||
8 = max angles/atom
|
||||
18 = max dihedrals/atom
|
||||
2 = max impropers/atom
|
||||
orthogonal box = (-27.5 -38.5 -36.3646) to (27.5 38.5 36.3615)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
27723 bonds
|
||||
40467 angles
|
||||
56829 dihedrals
|
||||
1034 impropers
|
||||
4 = max # of 1-2 neighbors
|
||||
12 = max # of 1-3 neighbors
|
||||
24 = max # of 1-4 neighbors
|
||||
26 = max # of special neighbors
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
1617 = # of size 2 clusters
|
||||
3633 = # of size 3 clusters
|
||||
747 = # of size 4 clusters
|
||||
4233 = # of frozen angles
|
||||
fix 2 all npt temp 300.0 300.0 100.0 z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
PPPM initialization ...
|
||||
G vector = 0.248831
|
||||
grid = 25 32 32
|
||||
stencil order = 5
|
||||
RMS precision = 7.57143e-05
|
||||
using double precision FFTs
|
||||
brick FFT buffer size/proc = 13230 6400 5670
|
||||
Memory usage per processor = 54.4744 Mbytes
|
||||
---------------- Step 0 ----- CPU = 0.0000 (sec) ----------------
|
||||
TotEng = -25356.2055 KinEng = 21444.8313 Temp = 299.0397
|
||||
PotEng = -46801.0368 E_bond = 2537.9940 E_angle = 10921.3742
|
||||
E_dihed = 5211.7865 E_impro = 213.5116 E_vdwl = -2307.8634
|
||||
E_coul = 207021.6603 E_long = -270399.5000 Press = -142.6030
|
||||
Volume = 307995.0335
|
||||
---------------- Step 50 ----- CPU = 4.7389 (sec) ----------------
|
||||
TotEng = -25330.0783 KinEng = 21501.0023 Temp = 299.8230
|
||||
PotEng = -46831.0806 E_bond = 2471.7004 E_angle = 10836.4977
|
||||
E_dihed = 5239.6299 E_impro = 227.1218 E_vdwl = -1993.2753
|
||||
E_coul = 206793.4044 E_long = -270406.1594 Press = 237.6744
|
||||
Volume = 308031.5641
|
||||
---------------- Step 100 ----- CPU = 9.6394 (sec) ----------------
|
||||
TotEng = -25290.7642 KinEng = 21592.0080 Temp = 301.0920
|
||||
PotEng = -46882.7722 E_bond = 2567.9806 E_angle = 10781.9408
|
||||
E_dihed = 5198.7431 E_impro = 216.7832 E_vdwl = -1902.4804
|
||||
E_coul = 206654.9995 E_long = -270400.7390 Press = 6.9875
|
||||
Volume = 308133.9900
|
||||
Loop time of 9.63943 on 4 procs for 100 steps with 32000 atoms
|
||||
|
||||
Pair time (%) = 6.60502 (68.5208)
|
||||
Bond time (%) = 0.375643 (3.89695)
|
||||
Kspce time (%) = 1.09311 (11.3399)
|
||||
Neigh time (%) = 1.08158 (11.2203)
|
||||
Comm time (%) = 0.0815379 (0.845879)
|
||||
Outpt time (%) = 0.000157952 (0.00163861)
|
||||
Other time (%) = 0.402393 (4.17445)
|
||||
|
||||
FFT time (% of Kspce) = 0.0966156 (8.83863)
|
||||
FFT Gflps 3d (1d only) = 5.37903 12.4303
|
||||
|
||||
Nlocal: 8000 ave 8143 max 7933 min
|
||||
Histogram: 1 2 0 0 0 0 0 0 0 1
|
||||
Nghost: 22733.5 ave 22769 max 22693 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Neighs: 3.00703e+06 ave 3.0975e+06 max 2.96493e+06 min
|
||||
Histogram: 1 2 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 12028107
|
||||
Ave neighs/atom = 375.878
|
||||
Ave special neighs/atom = 7.43187
|
||||
Neighbor list builds = 11
|
||||
Dangerous builds = 0
|
||||
119
bench/log.9Jan12.rhodo.scaled.linux.4
Normal file
119
bench/log.9Jan12.rhodo.scaled.linux.4
Normal file
@ -0,0 +1,119 @@
|
||||
LAMMPS (10 Jan 2012)
|
||||
# Rhodopsin model
|
||||
|
||||
variable x index 1
|
||||
variable y index 1
|
||||
variable z index 1
|
||||
|
||||
units real
|
||||
neigh_modify delay 5 every 1
|
||||
|
||||
atom_style full
|
||||
atom_modify map hash
|
||||
bond_style harmonic
|
||||
angle_style charmm
|
||||
dihedral_style charmm
|
||||
improper_style harmonic
|
||||
pair_style lj/charmm/coul/long 8.0 10.0
|
||||
pair_modify mix arithmetic
|
||||
kspace_style pppm 1e-4
|
||||
|
||||
read_data data.rhodo
|
||||
4 = max bonds/atom
|
||||
8 = max angles/atom
|
||||
18 = max dihedrals/atom
|
||||
2 = max impropers/atom
|
||||
orthogonal box = (-27.5 -38.5 -36.3646) to (27.5 38.5 36.3615)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
32000 atoms
|
||||
32000 velocities
|
||||
27723 bonds
|
||||
40467 angles
|
||||
56829 dihedrals
|
||||
1034 impropers
|
||||
4 = max # of 1-2 neighbors
|
||||
12 = max # of 1-3 neighbors
|
||||
24 = max # of 1-4 neighbors
|
||||
26 = max # of special neighbors
|
||||
|
||||
replicate $x $y $z
|
||||
replicate 2 $y $z
|
||||
replicate 2 2 $z
|
||||
replicate 2 2 1
|
||||
orthogonal box = (-27.5 -38.5 -36.3646) to (82.5 115.5 36.3615)
|
||||
2 by 2 by 1 MPI processor grid
|
||||
128000 atoms
|
||||
110892 bonds
|
||||
161868 angles
|
||||
227316 dihedrals
|
||||
4136 impropers
|
||||
4 = max # of 1-2 neighbors
|
||||
12 = max # of 1-3 neighbors
|
||||
24 = max # of 1-4 neighbors
|
||||
26 = max # of special neighbors
|
||||
|
||||
fix 1 all shake 0.0001 5 0 m 1.0 a 232
|
||||
6468 = # of size 2 clusters
|
||||
14532 = # of size 3 clusters
|
||||
2988 = # of size 4 clusters
|
||||
16932 = # of frozen angles
|
||||
fix 2 all npt temp 300.0 300.0 100.0 z 0.0 0.0 1000.0 mtk no pchain 0 tchain 1
|
||||
|
||||
special_bonds charmm
|
||||
|
||||
thermo 50
|
||||
thermo_style multi
|
||||
timestep 2.0
|
||||
|
||||
run 100
|
||||
PPPM initialization ...
|
||||
G vector = 0.248586
|
||||
grid = 48 60 36
|
||||
stencil order = 5
|
||||
RMS precision = 7.66425e-05
|
||||
using double precision FFTs
|
||||
brick FFT buffer size/proc = 41615 25920 12915
|
||||
Memory usage per processor = 146.135 Mbytes
|
||||
---------------- Step 0 ----- CPU = 0.0000 (sec) ----------------
|
||||
TotEng = -101425.4826 KinEng = 85779.3251 Temp = 299.0304
|
||||
PotEng = -187204.8077 E_bond = 10151.9760 E_angle = 43685.4968
|
||||
E_dihed = 20847.1460 E_impro = 854.0463 E_vdwl = -9231.4537
|
||||
E_coul = 827025.3556 E_long = -1080537.3749 Press = -142.3084
|
||||
Volume = 1231980.1340
|
||||
---------------- Step 50 ----- CPU = 19.1088 (sec) ----------------
|
||||
TotEng = -101320.2612 KinEng = 86003.4849 Temp = 299.8118
|
||||
PotEng = -187323.7461 E_bond = 9887.1072 E_angle = 43346.7920
|
||||
E_dihed = 20958.7034 E_impro = 908.4715 E_vdwl = -7973.4456
|
||||
E_coul = 826113.1533 E_long = -1080564.5278 Press = 238.0165
|
||||
Volume = 1232126.1854
|
||||
---------------- Step 100 ----- CPU = 39.1056 (sec) ----------------
|
||||
TotEng = -101158.1517 KinEng = 86355.6231 Temp = 301.0394
|
||||
PotEng = -187513.7747 E_bond = 10272.0700 E_angle = 43128.6453
|
||||
E_dihed = 20793.9768 E_impro = 867.0826 E_vdwl = -7586.7196
|
||||
E_coul = 825555.5009 E_long = -1080544.3307 Press = 15.2192
|
||||
Volume = 1232535.8453
|
||||
Loop time of 39.1057 on 4 procs for 100 steps with 128000 atoms
|
||||
|
||||
Pair time (%) = 27.0353 (69.1339)
|
||||
Bond time (%) = 1.5462 (3.9539)
|
||||
Kspce time (%) = 4.17715 (10.6817)
|
||||
Neigh time (%) = 4.37974 (11.1997)
|
||||
Comm time (%) = 0.208052 (0.532026)
|
||||
Outpt time (%) = 0.000296533 (0.000758287)
|
||||
Other time (%) = 1.75896 (4.49797)
|
||||
|
||||
FFT time (% of Kspce) = 0.535835 (12.8278)
|
||||
FFT Gflps 3d (1d only) = 4.46931 11.0706
|
||||
|
||||
Nlocal: 32000 ave 32000 max 32000 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 47957 ave 47957 max 47957 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 1.20281e+07 ave 1.20572e+07 max 1.1999e+07 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 48112468
|
||||
Ave neighs/atom = 375.879
|
||||
Ave special neighs/atom = 7.43187
|
||||
Neighbor list builds = 11
|
||||
Dangerous builds = 0
|
||||
38
couple/README
Normal file
38
couple/README
Normal file
@ -0,0 +1,38 @@
|
||||
This directory has examples of how to use LAMMPS as a library, either
|
||||
by itself or in tandem with another code or library.
|
||||
|
||||
These examples is meant to illustrate what is possible when coupling
|
||||
codes or calling LAMMPS as a library. The examples are provided for
|
||||
demonstration purposes. The physics they calculate is too simple to
|
||||
model a realistic problem.
|
||||
|
||||
See these sections of the LAMMPS manaul for details:
|
||||
|
||||
2.4 Building LAMMPS as a library (doc/Section_start.html#2_4)
|
||||
4.10 Coupling LAMMPS to other codes (doc/Section_howto.html#4_10)
|
||||
|
||||
In all of the examples included here, LAMMPS must first be built as a
|
||||
library. Basically, you type something like
|
||||
|
||||
make makelib
|
||||
make -f Makefile.lib g++
|
||||
|
||||
in the LAMMPS src directory to create liblmp_g++.a
|
||||
|
||||
The library interface to LAMMPS is in src/library.cpp. Routines can
|
||||
be easily added to this file so an external program can perform the
|
||||
LAMMPS tasks desired.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
||||
These are the sub-directories included in this directory:
|
||||
|
||||
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
|
||||
library collection of useful inter-code communication routines
|
||||
simple simple example of driver code calling LAMMPS as library
|
||||
fortran a wrapper on the LAMMPS library API that
|
||||
can be called from Fortran
|
||||
|
||||
Each sub-directory has its own README.
|
||||
9
couple/fortran/README
Normal file
9
couple/fortran/README
Normal file
@ -0,0 +1,9 @@
|
||||
libfwrapper.c is a C file that wraps the LAMMPS library API
|
||||
in src/library.h so that it can be called from Fortran.
|
||||
|
||||
See the couple/simple/simple.f90 program for an example
|
||||
of a Fortran code that does this.
|
||||
|
||||
See the README file in that dir for instructions
|
||||
on how to build a Fortran code that uses this
|
||||
wrapper and links to the LAMMPS library.
|
||||
129
couple/fortran/libfwrapper.c
Normal file
129
couple/fortran/libfwrapper.c
Normal file
@ -0,0 +1,129 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
www.cs.sandia.gov/~sjplimp/lammps.html
|
||||
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
|
||||
|
||||
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.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* libwrapper = fortran wrappers for LAMMPS library functions.
|
||||
See README for compilation instructions */
|
||||
|
||||
#include "mpi.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "stdint.h"
|
||||
#include "library.h" /* this is a LAMMPS include file */
|
||||
|
||||
/* wrapper for creating a lammps instance from fortran.
|
||||
since fortran has no simple way to emit a c-compatible
|
||||
argument array, we don't support it. for simplicity,
|
||||
the address of the pointer to the lammps object is
|
||||
stored in a 64-bit integer on all platforms. */
|
||||
|
||||
void lammps_open_(MPI_Fint *comm, int64_t *ptr)
|
||||
{
|
||||
void *obj;
|
||||
MPI_Comm ccomm;
|
||||
|
||||
/* convert MPI communicator from fortran to c */
|
||||
ccomm = MPI_Comm_f2c(*comm);
|
||||
|
||||
lammps_open(0,NULL,ccomm,&obj);
|
||||
*ptr = (int64_t) obj;
|
||||
}
|
||||
|
||||
/* no-MPI version of the wrapper from above. */
|
||||
|
||||
void lammps_open_no_mpi_(int64_t *ptr)
|
||||
{
|
||||
void *obj;
|
||||
|
||||
lammps_open_no_mpi(0,NULL,&obj);
|
||||
*ptr = (int64_t) obj;
|
||||
}
|
||||
|
||||
/* wrapper for shutting down a lammps instance from fortran. */
|
||||
|
||||
void lammps_close_(int64_t *ptr)
|
||||
{
|
||||
void *obj;
|
||||
obj = (void *) *ptr;
|
||||
|
||||
lammps_close(obj);
|
||||
}
|
||||
|
||||
/* wrapper for passing an input file to lammps from fortran.
|
||||
since fortran strings are not zero terminated, we have
|
||||
to pass the length explicitly and make a copy that is. */
|
||||
|
||||
void lammps_file_(int64_t *ptr, char *fname, MPI_Fint *len)
|
||||
{
|
||||
void *obj;
|
||||
char *cpy;
|
||||
|
||||
obj = (void *) *ptr;
|
||||
|
||||
cpy = (char *)calloc(*len + 1,sizeof(char));
|
||||
memcpy(cpy,fname,*len);
|
||||
|
||||
lammps_file(obj,cpy);
|
||||
free(cpy);
|
||||
}
|
||||
|
||||
/* wrapper for passing a line input to lammps from fortran.
|
||||
since fortran strings are not zero terminated, we have
|
||||
to pass the length explicitly and make a copy that is. */
|
||||
|
||||
void lammps_command_(int64_t *ptr, char *line, MPI_Fint *len)
|
||||
{
|
||||
void *obj;
|
||||
char *cpy;
|
||||
|
||||
obj = (void *) *ptr;
|
||||
|
||||
cpy = (char *)calloc(*len + 1,sizeof(char));
|
||||
memcpy(cpy,line,*len);
|
||||
|
||||
lammps_command(obj,cpy);
|
||||
free(cpy);
|
||||
}
|
||||
|
||||
/* fortran wrapper to get the number of atoms from lammps.
|
||||
return values require an interface in fortran, so we
|
||||
make the wrapper into a procedure. */
|
||||
|
||||
void lammps_get_natoms_(int64_t *ptr, MPI_Fint *natoms)
|
||||
{
|
||||
void *obj;
|
||||
obj = (void *) *ptr;
|
||||
|
||||
*natoms = lammps_get_natoms(obj);
|
||||
}
|
||||
|
||||
/* wrapper to copy coordinates from lammps to fortran */
|
||||
|
||||
void lammps_get_coords_(int64_t *ptr, double *coords)
|
||||
{
|
||||
void *obj;
|
||||
obj = (void *) *ptr;
|
||||
|
||||
lammps_get_coords(obj,coords);
|
||||
}
|
||||
|
||||
/* wrapper to copy coordinates from fortran to lammps */
|
||||
|
||||
void lammps_put_coords_(int64_t *ptr, double *coords)
|
||||
{
|
||||
void *obj;
|
||||
obj = (void *) *ptr;
|
||||
|
||||
lammps_put_coords(obj,coords);
|
||||
}
|
||||
|
||||
47
couple/lammps_quest/Makefile.g++
Normal file
47
couple/lammps_quest/Makefile.g++
Normal file
@ -0,0 +1,47 @@
|
||||
# Makefile for MD with quantum forces via LAMMPS <-> Quest coupling
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
# System-specific settings
|
||||
|
||||
LAMMPS = /home/sjplimp/lammps
|
||||
|
||||
CC = g++
|
||||
CCFLAGS = -g -O -DMPICH_IGNORE_CXX_SEEK -I../library
|
||||
DEPFLAGS = -M
|
||||
LINK = g++
|
||||
LINKFLAGS = -g -O -L../library -L${LAMMPS}/src
|
||||
USRLIB = -lcouple -llmp_g++
|
||||
SYSLIB = -lfftw -lmpich -lpthread
|
||||
ARCHIVE = ar
|
||||
ARFLAGS = -rc
|
||||
SIZE = size
|
||||
|
||||
# Files
|
||||
|
||||
EXE = lmpqst
|
||||
SRC = $(wildcard *.cpp)
|
||||
INC = $(wildcard *.h)
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
# Targets
|
||||
|
||||
$(EXE): $(OBJ)
|
||||
$(LINK) $(LINKFLAGS) $(OBJ) $(USRLIB) $(SYSLIB) -o $(EXE)
|
||||
$(SIZE) $(EXE)
|
||||
|
||||
clean:
|
||||
rm $(EXE) *.o
|
||||
|
||||
# Compilation rules
|
||||
|
||||
%.o:%.cpp
|
||||
$(CC) $(CCFLAGS) -c $<
|
||||
|
||||
%.d:%.cpp
|
||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
||||
|
||||
# Individual dependencies
|
||||
|
||||
DEPENDS = $(OBJ:.o=.d)
|
||||
include $(DEPENDS)
|
||||
64
couple/lammps_quest/README
Normal file
64
couple/lammps_quest/README
Normal file
@ -0,0 +1,64 @@
|
||||
This directory has an application that runs classical MD via LAMMPS,
|
||||
but uses quantum forces calculated by the Quest DFT (density
|
||||
functional) code in place of the usual classical MD forces calculated
|
||||
by a pair style in LAMMPS.
|
||||
|
||||
lmpqst.cpp main program
|
||||
it links LAMMPS as a library
|
||||
it invokes Quest as an executable
|
||||
in.lammps LAMMPS input script, without the run command
|
||||
si_111.in Quest input script for an 8-atom Si unit cell
|
||||
lmppath.h contains path to LAMMPS home directory
|
||||
qstexe.h contains full pathname to Quest executable
|
||||
|
||||
After editing the Makefile, lmppath.h, and qstexe.h to make them
|
||||
suitable for your box, type:
|
||||
|
||||
g++ -f Makefile.g++
|
||||
|
||||
and you should get the lmpqst executable.
|
||||
|
||||
NOTE: To run this coupled application, you must of course, have Quest
|
||||
built on your system. It's WWW site is http://dft.sandia.gov/Quest.
|
||||
It is not an open-source code, buy you can contact its authors to
|
||||
obtain a copy.
|
||||
|
||||
You can run lmpqst in serial or parallel as:
|
||||
|
||||
% lmpqst Niter in.lammps in.quest
|
||||
% mpirun -np 4 lmpqst Niter in.lammps in.quest
|
||||
|
||||
where
|
||||
|
||||
Niter = # of MD iterations
|
||||
in.lammps = LAMMPS input script
|
||||
in.quest = Quest input script
|
||||
|
||||
The log files are for this run:
|
||||
|
||||
% lmpqst 10 in.lammps si_111.in
|
||||
|
||||
This application is an example of a coupling where the driver code
|
||||
(lmpqst) runs one code (LAMMPS) as an outer code and facilitates it
|
||||
calling the other code (Quest) as an inner code. Specifically, the
|
||||
driver (lmpqst) invokes one code (LAMMPS) to perform its timestep
|
||||
loop, and grabs information from the other code (Quest) during its
|
||||
timestep. This is done in LAMMPS using the fix external command,
|
||||
which makes a "callback" to the driver application (lmpqst), which in
|
||||
turn invokes Quest with new atom coordinates, lets Quest compute
|
||||
forces, and returns those forces to the LAMMPS fix external.
|
||||
|
||||
The driver code launches LAMMPS in parallel. But Quest is only run on
|
||||
a single processor. It would be possible to change this by using a
|
||||
parallel build of Quest.
|
||||
|
||||
Since Quest does not currently have a library interface, the driver
|
||||
code interfaces with Quest via input and output files.
|
||||
|
||||
Note that essentially 100% of the run time for this coupled
|
||||
application is spent in Quest, as the quantum calculation of forces
|
||||
dominates the calculation.
|
||||
|
||||
You can look at the log files in the directory to see sample LAMMPS
|
||||
output for this simulation. Dump files produced by LAMMPS are stored
|
||||
as dump.md.
|
||||
20
couple/lammps_quest/in.lammps
Normal file
20
couple/lammps_quest/in.lammps
Normal file
@ -0,0 +1,20 @@
|
||||
# LAMMPS input for coupling MD/Quantum
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
atom_style atomic
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
lattice diamond 5.43
|
||||
region box block 0 1 0 1 0 1
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 28.08
|
||||
|
||||
velocity all create 300.0 87293 loop geom
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all external
|
||||
|
||||
dump 1 all custom 1 dump.md id type x y z fx fy fz
|
||||
thermo 1
|
||||
1
couple/lammps_quest/lmppath.h
Normal file
1
couple/lammps_quest/lmppath.h
Normal file
@ -0,0 +1 @@
|
||||
#define LMPPATH /home/sjplimp/lammps
|
||||
262
couple/lammps_quest/lmpqst.cpp
Normal file
262
couple/lammps_quest/lmpqst.cpp
Normal file
@ -0,0 +1,262 @@
|
||||
// lmpqst = umbrella driver to couple LAMMPS + Quest
|
||||
// for MD using quantum forces
|
||||
|
||||
// Syntax: lmpqst Niter in.lammps in.quest
|
||||
// Niter = # of MD iterations
|
||||
// in.lammps = LAMMPS input script
|
||||
// in.quest = Quest input script
|
||||
|
||||
#include "mpi.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "many2one.h"
|
||||
#include "one2many.h"
|
||||
#include "files.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
#define QUOTE_(x) #x
|
||||
#define QUOTE(x) QUOTE_(x)
|
||||
|
||||
#include "lmppath.h"
|
||||
#include QUOTE(LMPPATH/src/lammps.h)
|
||||
#include QUOTE(LMPPATH/src/library.h)
|
||||
#include QUOTE(LMPPATH/src/input.h)
|
||||
#include QUOTE(LMPPATH/src/modify.h)
|
||||
#include QUOTE(LMPPATH/src/fix.h)
|
||||
#include QUOTE(LMPPATH/src/fix_external.h)
|
||||
|
||||
#include "qstexe.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
#define ANGSTROM_per_BOHR 0.529
|
||||
#define EV_per_RYDBERG 13.6056923
|
||||
|
||||
void quest_callback(void *, int, int, int *, double **, double **);
|
||||
|
||||
struct Info {
|
||||
int me;
|
||||
Memory *memory;
|
||||
LAMMPS *lmp;
|
||||
char *quest_input;
|
||||
};
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int main(int narg, char **arg)
|
||||
{
|
||||
int n;
|
||||
char str[128];
|
||||
|
||||
// setup MPI
|
||||
|
||||
MPI_Init(&narg,&arg);
|
||||
MPI_Comm comm = MPI_COMM_WORLD;
|
||||
|
||||
int me,nprocs;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
Memory *memory = new Memory(comm);
|
||||
Error *error = new Error(comm);
|
||||
|
||||
// command-line args
|
||||
|
||||
if (narg != 4) error->all("Syntax: lmpqst Niter in.lammps in.quest");
|
||||
|
||||
int niter = atoi(arg[1]);
|
||||
n = strlen(arg[2]) + 1;
|
||||
char *lammps_input = new char[n];
|
||||
strcpy(lammps_input,arg[2]);
|
||||
n = strlen(arg[3]) + 1;
|
||||
char *quest_input = new char[n];
|
||||
strcpy(quest_input,arg[3]);
|
||||
|
||||
// instantiate LAMMPS
|
||||
|
||||
LAMMPS *lmp = new LAMMPS(0,NULL,MPI_COMM_WORLD);
|
||||
|
||||
// create simulation in LAMMPS from in.lammps
|
||||
|
||||
lmp->input->file(lammps_input);
|
||||
|
||||
// make info avaiable to callback function
|
||||
|
||||
Info info;
|
||||
info.me = me;
|
||||
info.memory = memory;
|
||||
info.lmp = lmp;
|
||||
info.quest_input = quest_input;
|
||||
|
||||
// set callback to Quest inside fix external
|
||||
|
||||
int ifix = lmp->modify->find_fix("2");
|
||||
FixExternal *fix = (FixExternal *) lmp->modify->fix[ifix];
|
||||
fix->set_callback(quest_callback,&info);
|
||||
|
||||
// run LAMMPS for Niter
|
||||
// each time it needs forces, it will invoke quest_callback
|
||||
|
||||
sprintf(str,"run %d",niter);
|
||||
lmp->input->one(str);
|
||||
|
||||
// clean up
|
||||
|
||||
delete lmp;
|
||||
|
||||
delete memory;
|
||||
delete error;
|
||||
|
||||
delete [] lammps_input;
|
||||
delete [] quest_input;
|
||||
|
||||
MPI_Finalize();
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
callback to Quest with atom IDs and coords from each proc
|
||||
invoke Quest to compute forces, load them into f for LAMMPS to use
|
||||
f can be NULL if proc owns no atoms
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void quest_callback(void *ptr, int ntimestep, int nlocal,
|
||||
int *id, double **x, double **f)
|
||||
{
|
||||
int i,j;
|
||||
char str[128];
|
||||
|
||||
Info *info = (Info *) ptr;
|
||||
|
||||
// boxlines = LAMMPS box size converted into Quest lattice vectors
|
||||
|
||||
char **boxlines = NULL;
|
||||
if (info->me == 0) {
|
||||
boxlines = new char*[3];
|
||||
for (i = 0; i < 3; i++) boxlines[i] = new char[128];
|
||||
}
|
||||
|
||||
double boxxlo = *((double *) lammps_extract_global(info->lmp,"boxxlo"));
|
||||
double boxxhi = *((double *) lammps_extract_global(info->lmp,"boxxhi"));
|
||||
double boxylo = *((double *) lammps_extract_global(info->lmp,"boxylo"));
|
||||
double boxyhi = *((double *) lammps_extract_global(info->lmp,"boxyhi"));
|
||||
double boxzlo = *((double *) lammps_extract_global(info->lmp,"boxzlo"));
|
||||
double boxzhi = *((double *) lammps_extract_global(info->lmp,"boxzhi"));
|
||||
|
||||
double xprd = (boxxhi-boxxlo)/ANGSTROM_per_BOHR;
|
||||
double yprd = (boxyhi-boxylo)/ANGSTROM_per_BOHR;
|
||||
double zprd = (boxzhi-boxzlo)/ANGSTROM_per_BOHR;
|
||||
|
||||
if (info->me == 0) {
|
||||
sprintf(boxlines[0],"%g %g %g\n",xprd,0.0,0.0);
|
||||
sprintf(boxlines[1],"%g %g %g\n",0.0,yprd,0.0);
|
||||
sprintf(boxlines[2],"%g %g %g\n",0.0,0.0,zprd);
|
||||
}
|
||||
|
||||
// xlines = x for atoms on each proc converted to text lines
|
||||
// xlines is suitable for insertion into Quest input file
|
||||
// convert LAMMPS Angstroms to Quest bohr
|
||||
|
||||
int natoms;
|
||||
MPI_Allreduce(&nlocal,&natoms,1,MPI_INT,MPI_SUM,MPI_COMM_WORLD);
|
||||
|
||||
Many2One *lmp2qst = new Many2One(MPI_COMM_WORLD);
|
||||
lmp2qst->setup(nlocal,id,natoms);
|
||||
|
||||
char **xlines = NULL;
|
||||
double **xquest = NULL;
|
||||
if (info->me == 0) {
|
||||
xquest = info->memory->create_2d_double_array(natoms,3,"lmpqst:xquest");
|
||||
xlines = new char*[natoms];
|
||||
for (i = 0; i < natoms; i++) xlines[i] = new char[128];
|
||||
}
|
||||
|
||||
if (info->me == 0) lmp2qst->gather(&x[0][0],3,&xquest[0][0]);
|
||||
else lmp2qst->gather(&x[0][0],3,NULL);
|
||||
|
||||
if (info->me == 0) {
|
||||
for (i = 0; i < natoms; i++) {
|
||||
xquest[i][0] /= ANGSTROM_per_BOHR;
|
||||
xquest[i][1] /= ANGSTROM_per_BOHR;
|
||||
xquest[i][2] /= ANGSTROM_per_BOHR;
|
||||
}
|
||||
for (i = 0; i < natoms; i++) {
|
||||
sprintf(xlines[i],"%d %d %g %g %g\n",i+1,1,
|
||||
xquest[i][0],xquest[i][1],xquest[i][2]);
|
||||
}
|
||||
}
|
||||
|
||||
// one-processor tasks:
|
||||
// whack all lcao.* files
|
||||
// cp quest_input to lcao.in
|
||||
// replace atom coords section of lcao.in with new atom coords
|
||||
// run Quest on one proc, save screen output to file
|
||||
// flines = atom forces extracted from Quest screen file
|
||||
// fquest = atom forces
|
||||
// convert Quest Ryd/bohr to LAMMPS eV/Angstrom
|
||||
|
||||
char **flines = NULL;
|
||||
double **fquest = NULL;
|
||||
if (info->me == 0) {
|
||||
fquest = info->memory->create_2d_double_array(natoms,3,"lmpqst:fquest");
|
||||
flines = new char*[natoms];
|
||||
for (i = 0; i < natoms; i++) flines[i] = new char[128];
|
||||
}
|
||||
|
||||
if (info->me == 0) {
|
||||
system("rm lcao.*");
|
||||
sprintf(str,"cp %s lcao.in",info->quest_input);
|
||||
system(str);
|
||||
sprintf(str,"cp %s lcao.x",QUOTE(QUEST));
|
||||
system(str);
|
||||
replace("lcao.in","primitive lattice vectors",3,boxlines);
|
||||
replace("lcao.in","atom, type, position vector",natoms,xlines);
|
||||
system("lcao.x > lcao.screen");
|
||||
extract("lcao.screen","atom x force "
|
||||
"y force z force",natoms,flines);
|
||||
|
||||
int itmp;
|
||||
for (i = 0; i < natoms; i++)
|
||||
sscanf(flines[i],"%d %lg %lg %lg",&itmp,
|
||||
&fquest[i][0],&fquest[i][1],&fquest[i][2]);
|
||||
|
||||
for (i = 0; i < natoms; i++) {
|
||||
fquest[i][0] *= EV_per_RYDBERG / ANGSTROM_per_BOHR;
|
||||
fquest[i][1] *= EV_per_RYDBERG / ANGSTROM_per_BOHR;
|
||||
fquest[i][2] *= EV_per_RYDBERG / ANGSTROM_per_BOHR;
|
||||
}
|
||||
}
|
||||
|
||||
// convert fquest on one proc into f for atoms on each proc
|
||||
|
||||
One2Many *qst2lmp = new One2Many(MPI_COMM_WORLD);
|
||||
qst2lmp->setup(natoms,nlocal,id);
|
||||
double *fvec = NULL;
|
||||
if (f) fvec = &f[0][0];
|
||||
if (info->me == 0) qst2lmp->scatter(&fquest[0][0],3,fvec);
|
||||
else qst2lmp->scatter(NULL,3,fvec);
|
||||
|
||||
// clean up
|
||||
// some data only exists on proc 0
|
||||
|
||||
delete lmp2qst;
|
||||
delete qst2lmp;
|
||||
|
||||
info->memory->destroy_2d_double_array(xquest);
|
||||
info->memory->destroy_2d_double_array(fquest);
|
||||
|
||||
if (boxlines) {
|
||||
for (i = 0; i < 3; i++) delete [] boxlines[i];
|
||||
delete [] boxlines;
|
||||
}
|
||||
if (xlines) {
|
||||
for (i = 0; i < natoms; i++) delete [] xlines[i];
|
||||
delete [] xlines;
|
||||
}
|
||||
if (flines) {
|
||||
for (i = 0; i < natoms; i++) delete [] flines[i];
|
||||
delete [] flines;
|
||||
}
|
||||
}
|
||||
58
couple/lammps_quest/log.lammps.1
Normal file
58
couple/lammps_quest/log.lammps.1
Normal file
@ -0,0 +1,58 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
# LAMMPS input for coupling MD/Quantum
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
atom_style atomic
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
lattice diamond 5.43
|
||||
Lattice spacing in x,y,z = 5.43 5.43 5.43
|
||||
region box block 0 1 0 1 0 1
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (5.43 5.43 5.43)
|
||||
1 by 1 by 1 processor grid
|
||||
create_atoms 1 box
|
||||
Created 8 atoms
|
||||
mass 1 28.08
|
||||
|
||||
velocity all create 300.0 87293 loop geom
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all external
|
||||
|
||||
dump 1 all custom 1 dump.md id type x y z fx fy fz
|
||||
thermo 1
|
||||
run 10
|
||||
Memory usage per processor = 1.25982 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 300 0 0 0.2714463 1810.9378
|
||||
1 298.22165 0 0 0.26983722 1800.2029
|
||||
2 293.2839 0 0 0.26536943 1770.3964
|
||||
3 286.18537 0 0 0.25894654 1727.5464
|
||||
4 277.61576 0 0 0.25119258 1675.8163
|
||||
5 267.3325 0 0 0.24188807 1613.7418
|
||||
6 254.94702 0 0 0.23068142 1538.9774
|
||||
7 240.91176 0 0 0.21798202 1454.2541
|
||||
8 226.27996 0 0 0.20474287 1365.9298
|
||||
9 212.1059 0 0 0.19191788 1280.3687
|
||||
10 199.27609 0 0 0.18030919 1202.922
|
||||
Loop time of 80.663 on 1 procs for 10 steps with 8 atoms
|
||||
|
||||
Pair time (%) = 0 (0)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 4.91142e-05 (6.08882e-05)
|
||||
Outpt time (%) = 0.00111485 (0.0013821)
|
||||
Other time (%) = 80.6618 (99.9986)
|
||||
|
||||
Nlocal: 8 ave 8 max 8 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 10 ave 10 max 10 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 = 0
|
||||
58
couple/lammps_quest/log.lammps.4
Normal file
58
couple/lammps_quest/log.lammps.4
Normal file
@ -0,0 +1,58 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
# LAMMPS input for coupling MD/Quantum
|
||||
|
||||
units metal
|
||||
dimension 3
|
||||
atom_style atomic
|
||||
atom_modify sort 0 0.0
|
||||
|
||||
lattice diamond 5.43
|
||||
Lattice spacing in x,y,z = 5.43 5.43 5.43
|
||||
region box block 0 1 0 1 0 1
|
||||
create_box 1 box
|
||||
Created orthogonal box = (0 0 0) to (5.43 5.43 5.43)
|
||||
1 by 2 by 2 processor grid
|
||||
create_atoms 1 box
|
||||
Created 8 atoms
|
||||
mass 1 28.08
|
||||
|
||||
velocity all create 300.0 87293 loop geom
|
||||
|
||||
fix 1 all nve
|
||||
fix 2 all external
|
||||
|
||||
dump 1 all custom 1 dump.md id type x y z fx fy fz
|
||||
thermo 1
|
||||
run 10
|
||||
Memory usage per processor = 1.25928 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 300 0 0 0.2714463 1810.9378
|
||||
1 298.22166 0 0 0.26983722 1800.2029
|
||||
2 293.28391 0 0 0.26536944 1770.3964
|
||||
3 286.18538 0 0 0.25894655 1727.5464
|
||||
4 277.61578 0 0 0.25119259 1675.8164
|
||||
5 267.33252 0 0 0.24188809 1613.7419
|
||||
6 254.94703 0 0 0.23068143 1538.9774
|
||||
7 240.91175 0 0 0.21798202 1454.254
|
||||
8 226.27997 0 0 0.20474287 1365.9299
|
||||
9 212.10594 0 0 0.19191791 1280.3689
|
||||
10 199.27613 0 0 0.18030923 1202.9223
|
||||
Loop time of 79.8256 on 4 procs for 10 steps with 8 atoms
|
||||
|
||||
Pair time (%) = 0 (0)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.000365376 (0.000457718)
|
||||
Outpt time (%) = 0.00169969 (0.00212925)
|
||||
Other time (%) = 79.8236 (99.9974)
|
||||
|
||||
Nlocal: 2 ave 2 max 2 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 5 ave 5 max 5 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 0 ave 0 max 0 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 0
|
||||
Ave neighs/atom = 0
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
1
couple/lammps_quest/qstexe.h
Normal file
1
couple/lammps_quest/qstexe.h
Normal file
@ -0,0 +1 @@
|
||||
#define QUEST /home/sjplimp/csrf/quest/src/lcao.x
|
||||
161
couple/lammps_quest/si_111.in
Normal file
161
couple/lammps_quest/si_111.in
Normal file
@ -0,0 +1,161 @@
|
||||
do setup
|
||||
do iters
|
||||
do force
|
||||
no relax
|
||||
setup data
|
||||
title
|
||||
Si 1x1x1 unit cell
|
||||
functional
|
||||
PBE
|
||||
dimensions of system (0=cluster ... 3=bulk)
|
||||
3
|
||||
primitive lattice vectors
|
||||
10.261212 0.000000 0.000000
|
||||
0.000000 10.261212 0.000000
|
||||
0.000000 0.000000 10.261212
|
||||
grid dimensions
|
||||
10 10 10
|
||||
atom types
|
||||
1
|
||||
type number, label:
|
||||
1 Si_pbe
|
||||
notes5
|
||||
Originally constructed by Peter A. Schultz, 12Apr01
|
||||
potential generated by new Hamann program PUNSLDX
|
||||
Cite use with: D.R. Hamann, unpublished.
|
||||
Potential: "standard" setting out to l=2
|
||||
Basis: amended Jun05 for better (2d/1d not 1d/1d) d-function
|
||||
effective nuclear charge (s2p2 to 10.0)
|
||||
4.00000000d+00
|
||||
pseudopotentials: Lmax, and effective gaussian range
|
||||
2 0.86000000d+00
|
||||
functional type used in generating potential:
|
||||
PBE
|
||||
radial mesh: number of points for local and non-local pot integrals
|
||||
80 67
|
||||
mesh points for nuclear potential; ham2dh
|
||||
0.02500000 0.02696978 0.02909477 0.03138719 0.03386023 0.03652812
|
||||
0.03940622 0.04251109 0.04586060 0.04947402 0.05337215 0.05757741
|
||||
0.06211402 0.06700807 0.07228773 0.07798338 0.08412779 0.09075634
|
||||
0.09790716 0.10562140 0.11394345 0.12292121 0.13260635 0.14305458
|
||||
0.15432605 0.16648562 0.17960325 0.19375443 0.20902061 0.22548964
|
||||
0.24325628 0.26242278 0.28309943 0.30540522 0.32946852 0.35542780
|
||||
0.38343245 0.41364362 0.44623518 0.48139466 0.51932441 0.56024270
|
||||
0.60438500 0.65200533 0.70337773 0.75879783 0.81858456 0.88308197
|
||||
0.95266121 1.02772271 1.10869840 1.19605428 1.29029305 1.39195702
|
||||
1.50163124 1.61994684 1.74758469 1.88527930 2.03382306 2.19407079
|
||||
2.36694466 2.55343950 2.75462852 2.97166951 3.20581145 3.45840177
|
||||
3.73089402 4.02485632 4.34198031 4.68409093 5.05315693 5.45130215
|
||||
5.88081777 6.34417553 6.84404189 7.38329340 7.96503329 8.59260927
|
||||
9.26963282 10.00000000
|
||||
radwts: weights for radial points
|
||||
0.00189603 0.00204542 0.00220659 0.00238045 0.00256800 0.00277034
|
||||
0.00298862 0.00322410 0.00347813 0.00375218 0.00404781 0.00436675
|
||||
0.00471081 0.00508198 0.00548240 0.00591436 0.00638036 0.00688308
|
||||
0.00742541 0.00801047 0.00864162 0.00932251 0.01005704 0.01084945
|
||||
0.01170429 0.01262649 0.01362135 0.01469459 0.01585240 0.01710143
|
||||
0.01844888 0.01990249 0.02147064 0.02316234 0.02498733 0.02695611
|
||||
0.02908002 0.03137128 0.03384307 0.03650961 0.03938625 0.04248955
|
||||
0.04583736 0.04944895 0.05334510 0.05754823 0.06208254 0.06697411
|
||||
0.07225109 0.07794385 0.08408515 0.09071034 0.09785753 0.10556786
|
||||
0.11388570 0.12285891 0.13253914 0.14298208 0.15424783 0.16640123
|
||||
0.17951222 0.19365623 0.20891467 0.22537535 0.24313298 0.26228977
|
||||
0.28295594 0.30525043 0.32930153 0.35524766 0.38323811 0.41343397
|
||||
0.44600900 0.48115067 0.51906119 0.55995874 0.60407867 0.65167486
|
||||
0.70302122 0.75841323
|
||||
non-local potential: l,potential*integration weight
|
||||
0 0.62022930 0.62128855 0.62243016 0.62366033 0.62498568 0.62641328
|
||||
0.62795061 0.62960563 0.63138673 0.63330275 0.63536294 0.63757692
|
||||
0.63995464 0.64250630 0.64524218 0.64817253 0.65130735 0.65465605
|
||||
0.65822713 0.66202767 0.66606269 0.67033437 0.67484108 0.67957602
|
||||
0.68452576 0.68966817 0.69497006 0.70038419 0.70584566 0.71126756
|
||||
0.71653578 0.72150290 0.72598113 0.72973436 0.73246932 0.73382636
|
||||
0.73337030 0.73058243 0.72485505 0.71549107 0.70171167 0.68267654
|
||||
0.65752236 0.62542611 0.58570073 0.53792896 0.48213811 0.41900888
|
||||
0.35009536 0.27800640 0.20646172 0.14009458 0.08384960 0.04186877
|
||||
0.01596164 0.00423035 0.00115036 0.00066636 0.00047879 0.00029939
|
||||
0.00016329 0.00007995 0.00003517 0.00001362 0.00000445 0.00000111
|
||||
0.00000016 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000
|
||||
non-local potential: l,potential*integration weight
|
||||
1 0.59551624 0.59463303 0.59368033 0.59265268 0.59154422 0.59034862
|
||||
0.58905906 0.58766819 0.58616811 0.58455033 0.58280567 0.58092430
|
||||
0.57889565 0.57670833 0.57435015 0.57180802 0.56906791 0.56611482
|
||||
0.56293268 0.55950435 0.55581158 0.55183493 0.54755377 0.54294628
|
||||
0.53798942 0.53265896 0.52692951 0.52077458 0.51416671 0.50707751
|
||||
0.49947790 0.49133817 0.48262822 0.47331766 0.46337588 0.45277197
|
||||
0.44147437 0.42945016 0.41666374 0.40307468 0.38863443 0.37328165
|
||||
0.35693601 0.33949042 0.32080256 0.30068740 0.27891443 0.25521609
|
||||
0.22931791 0.20100526 0.17024474 0.13737521 0.10336405 0.07007167
|
||||
0.04035673 0.01767907 0.00470635 0.00076638 0.00047880 0.00029939
|
||||
0.00016329 0.00007995 0.00003517 0.00001362 0.00000445 0.00000111
|
||||
0.00000016 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000
|
||||
non-local potential: l,potential*integration weight
|
||||
2 0.56305372 0.55961728 0.55591134 0.55191498 0.54760572 0.54295941
|
||||
0.53795013 0.53255008 0.52672947 0.52045641 0.51369682 0.50641433
|
||||
0.49857022 0.49012333 0.48103004 0.47124429 0.46071759 0.44939919
|
||||
0.43723624 0.42417413 0.41015690 0.39512792 0.37903070 0.36181001
|
||||
0.34341340 0.32379300 0.30290805 0.28072780 0.25723539 0.23243242
|
||||
0.20634465 0.17902876 0.15058041 0.12114359 0.09092117 0.06018665
|
||||
0.02929636 -0.00129833 -0.03104046 -0.05926034 -0.08517498 -0.10789810
|
||||
-0.12646610 -0.13988656 -0.14721657 -0.14767751 -0.14080976 -0.12666296
|
||||
-0.10600305 -0.08049270 -0.05276798 -0.02629475 -0.00486427 0.00837657
|
||||
0.01228139 0.00892332 0.00342796 0.00074936 0.00047880 0.00029939
|
||||
0.00016329 0.00007995 0.00003517 0.00001362 0.00000445 0.00000111
|
||||
0.00000016 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
0.00000000 0.00000000
|
||||
number of radial functions **** Si PBE Ham-II basis 20Feb01-PAS ****
|
||||
5
|
||||
angular momentum, number of alphas
|
||||
0 4
|
||||
alphas - s - 4s/2/4s407 (bulk Si dzp Eopt+reopt c1)
|
||||
0.10460000d+00 0.27226300d+00 1.30050800d+00 2.60103000d+00
|
||||
wave function coefficients
|
||||
0.20995300d+00 0.55978200d+00 -0.99128200d+00 0.33487100d+00
|
||||
angular momentum, number of alphas
|
||||
1 3
|
||||
alphas - p - 3p/2/3p492 (bulk Si dzp Eopt + reopt c1)
|
||||
0.09424100d+00 0.31767900d+00 1.56114500d+00
|
||||
wave function coefficients
|
||||
0.06761600d+00 0.31821200d+00 -0.06638300d+00
|
||||
angular momentum, number of alphas
|
||||
0 1
|
||||
alphas - s - second zeta s polarization
|
||||
0.10460000d+00
|
||||
wave function coefficients
|
||||
1.00000000d+00
|
||||
angular momentum, number of alphas
|
||||
1 1
|
||||
alphas - p - second zeta p polarization
|
||||
0.09424100d+00
|
||||
wave function coefficients
|
||||
1.00000000d+00
|
||||
angular momentum, number of alphas
|
||||
2 2
|
||||
alphas - d - angular polarization (dzp Eopt)
|
||||
0.32000000d+00 1.40000000d+00
|
||||
wave function coefficients
|
||||
0.31557000d+00 1.00000000d+00
|
||||
shell occupancies for this silicon, Si: s(2.00)p(2.00)
|
||||
2.00000000 2.00000000 0.00000000 0.00000000 0.00000000 0.00000000
|
||||
end atom file
|
||||
number of atoms in unit cell
|
||||
8
|
||||
atom, type, position vector
|
||||
1 1 0.0000000000 0.0000000000 0.0000000000
|
||||
2 1 5.1306060590 5.1306060590 0.0000000000
|
||||
3 1 5.1306060590 0.0000000000 5.1306060590
|
||||
4 1 0.0000000000 5.1306060590 5.1306060590
|
||||
5 1 2.5653030295 2.5653030295 2.5653030295
|
||||
6 1 7.6959090885 7.6959090885 2.5653030295
|
||||
7 1 7.6959090885 2.5653030295 7.6959090885
|
||||
8 1 2.5653030295 7.6959090885 7.6959090885
|
||||
kgrid
|
||||
0 0 0
|
||||
end setup phase data
|
||||
run phase input data
|
||||
end of run phase data
|
||||
48
couple/lammps_spparks/Makefile.g++
Normal file
48
couple/lammps_spparks/Makefile.g++
Normal file
@ -0,0 +1,48 @@
|
||||
# Makefile for grain growth via LAMMPS <-> SPPARKS coupling
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
# System-specific settings
|
||||
|
||||
LAMMPS = /home/sjplimp/lammps
|
||||
SPPARKS = /home/sjplimp/spparks
|
||||
|
||||
CC = g++
|
||||
CCFLAGS = -g -O -DMPICH_IGNORE_CXX_SEEK -I../library
|
||||
DEPFLAGS = -M
|
||||
LINK = g++
|
||||
LINKFLAGS = -g -O -L../library -L${LAMMPS}/src -L${SPPARKS}/src
|
||||
USRLIB = -lcouple -llmp_g++ -lspk_g++
|
||||
SYSLIB = -lfftw -lmpich -lpthread
|
||||
ARCHIVE = ar
|
||||
ARFLAGS = -rc
|
||||
SIZE = size
|
||||
|
||||
# Files
|
||||
|
||||
EXE = lmpspk
|
||||
SRC = $(wildcard *.cpp)
|
||||
INC = $(wildcard *.h)
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
# Targets
|
||||
|
||||
lmpspk: $(OBJ)
|
||||
$(LINK) $(LINKFLAGS) $(OBJ) $(USRLIB) $(SYSLIB) -o $(EXE)
|
||||
$(SIZE) $(EXE)
|
||||
|
||||
clean:
|
||||
rm $(EXE) *.o
|
||||
|
||||
# Compilation rules
|
||||
|
||||
%.o:%.cpp
|
||||
$(CC) $(CCFLAGS) -c $<
|
||||
|
||||
%.d:%.cpp
|
||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
||||
|
||||
# Individual dependencies
|
||||
|
||||
DEPENDS = $(OBJ:.o=.d)
|
||||
include $(DEPENDS)
|
||||
71
couple/lammps_spparks/README
Normal file
71
couple/lammps_spparks/README
Normal file
@ -0,0 +1,71 @@
|
||||
This directory has an application that models grain growth in the
|
||||
presence of strain. The grain growth is simulated by a Potts model in
|
||||
a kinetic Monte Carlo code SPPARKS. Clusters of like spins on a
|
||||
lattice represent grains. The Hamiltonian for the energy due of a
|
||||
collection of spins includes a strain term and is described on this
|
||||
page in the SPPARKS documentation:
|
||||
|
||||
http://www.sandia.gov/~sjplimp/spparks/doc/app_potts_strain.html.
|
||||
|
||||
The strain is computed by LAMMPS as a particle displacement where
|
||||
pairs of atoms across a grain boundary are of different types and thus
|
||||
push off from each other due to a Lennard-Jones sigma between
|
||||
particles of different types that is larger than the sigma between
|
||||
particles of the same type (interior to grains).
|
||||
|
||||
lmpspk.cpp main program
|
||||
it links LAMMPS and SPPARKS as libraries
|
||||
in.spparks SPPARKS input script, without the run command
|
||||
lmppath.h contains path to LAMMPS home directory
|
||||
spkpath.h contains path to SPPARKS home directory
|
||||
|
||||
After editing the Makefile, lmppath.h, and spkpath.h to make them
|
||||
suitable for your box, type:
|
||||
|
||||
g++ -f Makefile.g++
|
||||
|
||||
and you should get the lmpspk executable.
|
||||
|
||||
NOTE: To build and run this coupled application, you must of course,
|
||||
have SPPARKS built on your system. It's WWW site is
|
||||
http://www.sandia.gov/~sjplimp/spparks.html. It is an open-source
|
||||
code, written by two of the LAMMPS authors.
|
||||
|
||||
You can run lmpspk in serial or parallel as:
|
||||
|
||||
% lmpspk Niter Ndelta Sfactor in.spparks
|
||||
% mpirun -np 4 lmpspk Niter Ndelta Sfactor in.spparks
|
||||
|
||||
where
|
||||
|
||||
Niter = # of outer iterations
|
||||
Ndelta = time to run MC in each iteration
|
||||
Sfactor = multiplier on strain effect
|
||||
in.spparks = SPPARKS input script
|
||||
|
||||
The log files are for this run:
|
||||
|
||||
% lmpspk 20 10.0 1 in.spparks
|
||||
|
||||
This application is an example of a coupling where the driver code
|
||||
(lmpspk) alternates back and forth between the 2 applications (LAMMPS
|
||||
and SPPARKS). Each outer timestep in the driver code, the following
|
||||
tasks are performed. One code (SPPARKS) is invoked for a few Monte
|
||||
Carlo steps. Some of its output (spin state) is passed to the other
|
||||
code (LAMMPS) as input (atom type). The the other code (LAMMPS) is
|
||||
invoked for a few timesteps. Some of its output (atom coords) is
|
||||
massaged to become an input (per-atom strain) for the original code
|
||||
(SPPARKS).
|
||||
|
||||
The driver code launches both SPPARKS and LAMMPS in parallel and they
|
||||
both decompose their spatial domains in the same manner. The datums
|
||||
in SPPARKS (lattice sites) are the same as the datums in LAMMPS
|
||||
(coarse-grained particles). If this were not the case, more
|
||||
sophisticated inter-code communication could be performed.
|
||||
|
||||
You can look at the log files in the directory to see sample LAMMPS
|
||||
and SPPARKS output for this simulation. Dump files produced by the
|
||||
run are stored as dump.mc and dump.md. The image*.png files show
|
||||
snapshots from both the LAMMPS and SPPARKS output. Note that the
|
||||
in.lammps and data.lammps files are not inputs; they are generated by
|
||||
the lmpspk driver.
|
||||
BIN
couple/lammps_spparks/image.lammps.1.png
Normal file
BIN
couple/lammps_spparks/image.lammps.1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 280 KiB |
BIN
couple/lammps_spparks/image.lammps.10.png
Normal file
BIN
couple/lammps_spparks/image.lammps.10.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 321 KiB |
BIN
couple/lammps_spparks/image.lammps.20.png
Normal file
BIN
couple/lammps_spparks/image.lammps.20.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 329 KiB |
BIN
couple/lammps_spparks/image.spparks.1.png
Normal file
BIN
couple/lammps_spparks/image.spparks.1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 260 KiB |
BIN
couple/lammps_spparks/image.spparks.10.png
Normal file
BIN
couple/lammps_spparks/image.spparks.10.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 KiB |
BIN
couple/lammps_spparks/image.spparks.20.png
Normal file
BIN
couple/lammps_spparks/image.spparks.20.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 261 KiB |
23
couple/lammps_spparks/in.spparks
Normal file
23
couple/lammps_spparks/in.spparks
Normal file
@ -0,0 +1,23 @@
|
||||
# SPPARKS input for coupling MD/MC
|
||||
|
||||
seed 56789
|
||||
|
||||
app_style potts/strain 100
|
||||
|
||||
dimension 2
|
||||
lattice sq/8n 1.0
|
||||
region box block 0 50 0 50 -0.5 0.5
|
||||
create_box box
|
||||
create_sites box
|
||||
set site range 1 100
|
||||
set d1 value 0.0
|
||||
|
||||
sector yes
|
||||
solve_style tree
|
||||
|
||||
diag_style energy
|
||||
|
||||
temperature 1.0
|
||||
|
||||
stats 10.0
|
||||
dump 1 10.0 dump.mc
|
||||
1
couple/lammps_spparks/lmppath.h
Normal file
1
couple/lammps_spparks/lmppath.h
Normal file
@ -0,0 +1 @@
|
||||
#define LMPPATH /home/sjplimp/lammps
|
||||
223
couple/lammps_spparks/lmpspk.cpp
Normal file
223
couple/lammps_spparks/lmpspk.cpp
Normal file
@ -0,0 +1,223 @@
|
||||
// lmpspk = umbrella driver to couple LAMMPS + SPPARKS
|
||||
// for a strain-induced grain growth model
|
||||
|
||||
// Syntax: lmpspk Niter Ndelta Sfactor in.spparks
|
||||
// Niter = # of outer iterations
|
||||
// Ndelta = time to run MC in each iteration
|
||||
// Sfactor = multiplier on strain effect
|
||||
// in.spparks = SPPARKS input script
|
||||
|
||||
#include "mpi.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "lammps_data_write.h"
|
||||
#include "many2many.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
#define QUOTE_(x) #x
|
||||
#define QUOTE(x) QUOTE_(x)
|
||||
|
||||
#include "spkpath.h"
|
||||
#include QUOTE(SPKPATH/src/spparks.h)
|
||||
#include QUOTE(SPKPATH/src/library.h)
|
||||
#include QUOTE(SPKPATH/src/input.h)
|
||||
|
||||
#include "lmppath.h"
|
||||
#include QUOTE(LMPPATH/src/lammps.h)
|
||||
#include QUOTE(LMPPATH/src/library.h)
|
||||
#include QUOTE(LMPPATH/src/input.h)
|
||||
#include QUOTE(LMPPATH/src/modify.h)
|
||||
#include QUOTE(LMPPATH/src/compute.h)
|
||||
|
||||
using namespace SPPARKS_NS;
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int main(int narg, char **arg)
|
||||
{
|
||||
int i,n;
|
||||
char str[128];
|
||||
|
||||
// setup MPI
|
||||
|
||||
MPI_Init(&narg,&arg);
|
||||
MPI_Comm comm = MPI_COMM_WORLD;
|
||||
|
||||
int me,nprocs;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
Memory *memory = new Memory(comm);
|
||||
Error *error = new Error(comm);
|
||||
|
||||
// command-line args
|
||||
|
||||
if (narg != 5)
|
||||
error->all("Syntax: lmpspk Niter Ndelta Sfactor in.spparks");
|
||||
|
||||
int niter = atoi(arg[1]);
|
||||
double delta = atof(arg[2]);
|
||||
double sfactor = atof(arg[3]);
|
||||
n = strlen(arg[4]) + 1;
|
||||
char *spparks_input = new char[n];
|
||||
strcpy(spparks_input,arg[4]);
|
||||
|
||||
// instantiate LAMMPS and SPPARKS
|
||||
|
||||
SPPARKS *spk = new SPPARKS(0,NULL,MPI_COMM_WORLD);
|
||||
LAMMPS *lmp = new LAMMPS(0,NULL,MPI_COMM_WORLD);
|
||||
|
||||
// create simulation in SPPARKS from in.spparks
|
||||
|
||||
spk->input->file(spparks_input);
|
||||
|
||||
// extract permanent info from SPPARKS
|
||||
|
||||
int dimension,nglobal,nlocal_spparks,nspins;
|
||||
double boxxlo,boxxhi,boxylo,boxyhi,boxzlo,boxzhi;
|
||||
int *id_spparks,*spins;
|
||||
double **xyz;
|
||||
double *strain;
|
||||
|
||||
dimension = *((int *) spparks_extract(spk,"dimension"));
|
||||
nglobal = *((int *) spparks_extract(spk,"nglobal"));
|
||||
nlocal_spparks = *((int *) spparks_extract(spk,"nlocal"));
|
||||
|
||||
boxxlo = *((double *) spparks_extract(spk,"boxxlo"));
|
||||
boxxhi = *((double *) spparks_extract(spk,"boxxhi"));
|
||||
boxylo = *((double *) spparks_extract(spk,"boxylo"));
|
||||
boxyhi = *((double *) spparks_extract(spk,"boxyhi"));
|
||||
if (dimension == 3) {
|
||||
boxzlo = *((double *) spparks_extract(spk,"boxzlo"));
|
||||
boxzhi = *((double *) spparks_extract(spk,"boxzhi"));
|
||||
} else {
|
||||
boxzlo = -0.5;
|
||||
boxzhi = 0.5;
|
||||
}
|
||||
|
||||
id_spparks = (int *) spparks_extract(spk,"id");
|
||||
spins = (int *) spparks_extract(spk,"site");
|
||||
xyz = (double **) spparks_extract(spk,"xyz");
|
||||
|
||||
nspins = *((int *) spparks_extract(spk,"nspins"));
|
||||
strain = (double *) spparks_extract(spk,"strain");
|
||||
|
||||
// write a LAMMPS input script using SPPARKS params
|
||||
|
||||
if (me == 0) {
|
||||
FILE *fp = fopen("in.lammps","w");
|
||||
if (fp == NULL) error->one("Could not create LAMMPS input script");
|
||||
|
||||
fprintf(fp,"units lj\n");
|
||||
sprintf(str,"dimension %d\n",dimension);
|
||||
fprintf(fp,str);
|
||||
fprintf(fp,"atom_style atomic\n\n");
|
||||
|
||||
fprintf(fp,"read_data data.lammps\n");
|
||||
fprintf(fp,"mass * 1.0\n\n");
|
||||
|
||||
fprintf(fp,"pair_style lj/cut 2.5\n");
|
||||
fprintf(fp,"pair_coeff * * 1.0 1.2\n");
|
||||
for (i = 0; i < nspins; i++) {
|
||||
sprintf(str,"pair_coeff %d %d 1.0 1.0\n",i+1,i+1);
|
||||
fprintf(fp,str);
|
||||
}
|
||||
fprintf(fp,"\n");
|
||||
|
||||
fprintf(fp,"compute da all displace/atom\n\n");
|
||||
fprintf(fp,"dump 1 all atom 10 dump.md\n");
|
||||
fprintf(fp,"thermo 1\n");
|
||||
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
// write a LAMMPS data file using SPPARKS data
|
||||
|
||||
LAMMPSDataWrite *lwd = new LAMMPSDataWrite(MPI_COMM_WORLD);
|
||||
lwd->file("data.lammps");
|
||||
lwd->header("%d atoms",nglobal);
|
||||
lwd->header("%d atom types",nspins);
|
||||
lwd->header("%g %g xlo xhi",boxxlo,boxxhi);
|
||||
lwd->header("%g %g ylo yhi",boxylo,boxyhi);
|
||||
lwd->header("%g %g zlo zhi",boxzlo,boxzhi);
|
||||
lwd->atoms(nlocal_spparks);
|
||||
lwd->atoms(id_spparks);
|
||||
lwd->atoms(spins);
|
||||
lwd->atoms(3,xyz);
|
||||
lwd->execute();
|
||||
delete lwd;
|
||||
|
||||
// create simulation in LAMMPS from created input script
|
||||
|
||||
lmp->input->file("in.lammps");
|
||||
|
||||
// create transfer operators
|
||||
|
||||
Many2Many *spk2lmp = new Many2Many(MPI_COMM_WORLD);
|
||||
Many2Many *lmp2spk = new Many2Many(MPI_COMM_WORLD);
|
||||
|
||||
// timestep loop
|
||||
// run SPPARKS for delta time
|
||||
// use SPPARKS spins to reset LAMMPS atom types
|
||||
// perform LAMMPS minimization
|
||||
// use atom displacements to reset strain values in SPPARKS
|
||||
// realloc displace as necessary since nlocal_lammps may change
|
||||
// re-create both xfers every iteration since LAMMPS may migrate atoms
|
||||
|
||||
int nmax = 0;
|
||||
double *displace = NULL;
|
||||
|
||||
int nlocal_lammps;
|
||||
int *id_lammps,*type;
|
||||
double **displace_lammps;
|
||||
|
||||
for (int iter = 0; iter < niter; iter++) {
|
||||
sprintf(str,"run %g",delta);
|
||||
spk->input->one(str);
|
||||
|
||||
nlocal_lammps = *((int *) lammps_extract_global(lmp,"nlocal"));
|
||||
id_lammps = (int *) lammps_extract_atom(lmp,"id");
|
||||
type = (int *) lammps_extract_atom(lmp,"type");
|
||||
|
||||
spk2lmp->setup(nlocal_spparks,id_spparks,nlocal_lammps,id_lammps);
|
||||
spk2lmp->exchange(spins,type);
|
||||
|
||||
lmp->input->one("minimize 0.001 0.001 10 1000");
|
||||
|
||||
nlocal_lammps = *((int *) lammps_extract_global(lmp,"nlocal"));
|
||||
id_lammps = (int *) lammps_extract_atom(lmp,"id");
|
||||
displace_lammps = (double **) lammps_extract_compute(lmp,"da",1,2);
|
||||
|
||||
if (nlocal_lammps > nmax) {
|
||||
memory->sfree(displace);
|
||||
nmax = nlocal_lammps;
|
||||
displace = (double *)
|
||||
memory->smalloc(nmax*sizeof(double),"lmpspk:displace");
|
||||
}
|
||||
|
||||
for (i = 0; i < nlocal_lammps; i++)
|
||||
displace[i] = sfactor*displace_lammps[i][3];
|
||||
|
||||
lmp2spk->setup(nlocal_lammps,id_lammps,nlocal_spparks,id_spparks);
|
||||
lmp2spk->exchange(displace,strain);
|
||||
}
|
||||
|
||||
memory->sfree(displace);
|
||||
|
||||
// clean up
|
||||
|
||||
delete spk2lmp;
|
||||
delete lmp2spk;
|
||||
delete spk;
|
||||
delete lmp;
|
||||
|
||||
delete [] spparks_input;
|
||||
delete memory;
|
||||
delete error;
|
||||
|
||||
MPI_Finalize();
|
||||
}
|
||||
978
couple/lammps_spparks/log.lammps.1
Normal file
978
couple/lammps_spparks/log.lammps.1
Normal file
@ -0,0 +1,978 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
units lj
|
||||
dimension 2
|
||||
atom_style atomic
|
||||
|
||||
read_data data.lammps
|
||||
orthogonal box = (0 0 -0.5) to (50 50 0.5)
|
||||
1 by 1 by 1 processor grid
|
||||
2500 atoms
|
||||
mass * 1.0
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff * * 1.0 1.2
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
pair_coeff 2 2 1.0 1.0
|
||||
pair_coeff 3 3 1.0 1.0
|
||||
pair_coeff 4 4 1.0 1.0
|
||||
pair_coeff 5 5 1.0 1.0
|
||||
pair_coeff 6 6 1.0 1.0
|
||||
pair_coeff 7 7 1.0 1.0
|
||||
pair_coeff 8 8 1.0 1.0
|
||||
pair_coeff 9 9 1.0 1.0
|
||||
pair_coeff 10 10 1.0 1.0
|
||||
pair_coeff 11 11 1.0 1.0
|
||||
pair_coeff 12 12 1.0 1.0
|
||||
pair_coeff 13 13 1.0 1.0
|
||||
pair_coeff 14 14 1.0 1.0
|
||||
pair_coeff 15 15 1.0 1.0
|
||||
pair_coeff 16 16 1.0 1.0
|
||||
pair_coeff 17 17 1.0 1.0
|
||||
pair_coeff 18 18 1.0 1.0
|
||||
pair_coeff 19 19 1.0 1.0
|
||||
pair_coeff 20 20 1.0 1.0
|
||||
pair_coeff 21 21 1.0 1.0
|
||||
pair_coeff 22 22 1.0 1.0
|
||||
pair_coeff 23 23 1.0 1.0
|
||||
pair_coeff 24 24 1.0 1.0
|
||||
pair_coeff 25 25 1.0 1.0
|
||||
pair_coeff 26 26 1.0 1.0
|
||||
pair_coeff 27 27 1.0 1.0
|
||||
pair_coeff 28 28 1.0 1.0
|
||||
pair_coeff 29 29 1.0 1.0
|
||||
pair_coeff 30 30 1.0 1.0
|
||||
pair_coeff 31 31 1.0 1.0
|
||||
pair_coeff 32 32 1.0 1.0
|
||||
pair_coeff 33 33 1.0 1.0
|
||||
pair_coeff 34 34 1.0 1.0
|
||||
pair_coeff 35 35 1.0 1.0
|
||||
pair_coeff 36 36 1.0 1.0
|
||||
pair_coeff 37 37 1.0 1.0
|
||||
pair_coeff 38 38 1.0 1.0
|
||||
pair_coeff 39 39 1.0 1.0
|
||||
pair_coeff 40 40 1.0 1.0
|
||||
pair_coeff 41 41 1.0 1.0
|
||||
pair_coeff 42 42 1.0 1.0
|
||||
pair_coeff 43 43 1.0 1.0
|
||||
pair_coeff 44 44 1.0 1.0
|
||||
pair_coeff 45 45 1.0 1.0
|
||||
pair_coeff 46 46 1.0 1.0
|
||||
pair_coeff 47 47 1.0 1.0
|
||||
pair_coeff 48 48 1.0 1.0
|
||||
pair_coeff 49 49 1.0 1.0
|
||||
pair_coeff 50 50 1.0 1.0
|
||||
pair_coeff 51 51 1.0 1.0
|
||||
pair_coeff 52 52 1.0 1.0
|
||||
pair_coeff 53 53 1.0 1.0
|
||||
pair_coeff 54 54 1.0 1.0
|
||||
pair_coeff 55 55 1.0 1.0
|
||||
pair_coeff 56 56 1.0 1.0
|
||||
pair_coeff 57 57 1.0 1.0
|
||||
pair_coeff 58 58 1.0 1.0
|
||||
pair_coeff 59 59 1.0 1.0
|
||||
pair_coeff 60 60 1.0 1.0
|
||||
pair_coeff 61 61 1.0 1.0
|
||||
pair_coeff 62 62 1.0 1.0
|
||||
pair_coeff 63 63 1.0 1.0
|
||||
pair_coeff 64 64 1.0 1.0
|
||||
pair_coeff 65 65 1.0 1.0
|
||||
pair_coeff 66 66 1.0 1.0
|
||||
pair_coeff 67 67 1.0 1.0
|
||||
pair_coeff 68 68 1.0 1.0
|
||||
pair_coeff 69 69 1.0 1.0
|
||||
pair_coeff 70 70 1.0 1.0
|
||||
pair_coeff 71 71 1.0 1.0
|
||||
pair_coeff 72 72 1.0 1.0
|
||||
pair_coeff 73 73 1.0 1.0
|
||||
pair_coeff 74 74 1.0 1.0
|
||||
pair_coeff 75 75 1.0 1.0
|
||||
pair_coeff 76 76 1.0 1.0
|
||||
pair_coeff 77 77 1.0 1.0
|
||||
pair_coeff 78 78 1.0 1.0
|
||||
pair_coeff 79 79 1.0 1.0
|
||||
pair_coeff 80 80 1.0 1.0
|
||||
pair_coeff 81 81 1.0 1.0
|
||||
pair_coeff 82 82 1.0 1.0
|
||||
pair_coeff 83 83 1.0 1.0
|
||||
pair_coeff 84 84 1.0 1.0
|
||||
pair_coeff 85 85 1.0 1.0
|
||||
pair_coeff 86 86 1.0 1.0
|
||||
pair_coeff 87 87 1.0 1.0
|
||||
pair_coeff 88 88 1.0 1.0
|
||||
pair_coeff 89 89 1.0 1.0
|
||||
pair_coeff 90 90 1.0 1.0
|
||||
pair_coeff 91 91 1.0 1.0
|
||||
pair_coeff 92 92 1.0 1.0
|
||||
pair_coeff 93 93 1.0 1.0
|
||||
pair_coeff 94 94 1.0 1.0
|
||||
pair_coeff 95 95 1.0 1.0
|
||||
pair_coeff 96 96 1.0 1.0
|
||||
pair_coeff 97 97 1.0 1.0
|
||||
pair_coeff 98 98 1.0 1.0
|
||||
pair_coeff 99 99 1.0 1.0
|
||||
pair_coeff 100 100 1.0 1.0
|
||||
|
||||
compute da all displace/atom
|
||||
|
||||
dump 1 all atom 10 dump.md
|
||||
thermo 1
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.85036 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 9.3150455 0 9.3150455 97.103602
|
||||
1 0 3.0727032 0 3.0727032 56.391395
|
||||
2 0 2.4831365 0 2.4831365 52.450383
|
||||
3 0 2.1851987 0 2.1851987 50.430755
|
||||
4 0 1.9671681 0 1.9671681 48.939108
|
||||
5 0 1.8292753 0 1.8292753 47.969182
|
||||
6 0 1.7386325 0 1.7386325 47.341991
|
||||
7 0 1.6672907 0 1.6672907 46.865385
|
||||
8 0 1.6046164 0 1.6046164 46.429986
|
||||
9 0 1.5099314 0 1.5099314 45.748095
|
||||
10 0 1.4106898 0 1.4106898 45.035856
|
||||
Loop time of 0.035866 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
9.31504545511 1.50993136661 1.41068980202
|
||||
Force two-norm initial, final = 14635.9 857.658
|
||||
Force max component initial, final = 332.921 80.6474
|
||||
Final line search alpha, max atom move = 0.0003705 0.0298798
|
||||
Iterations, force evaluations = 10 17
|
||||
|
||||
Pair time (%) = 0.0250154 (69.7467)
|
||||
Neigh time (%) = 0.00361013 (10.0656)
|
||||
Comm time (%) = 0.000285625 (0.796368)
|
||||
Outpt time (%) = 0.00396585 (11.0574)
|
||||
Other time (%) = 0.00298905 (8.33394)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 526 ave 526 max 526 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27247 ave 27247 max 27247 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27247
|
||||
Ave neighs/atom = 10.8988
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
10 0 12.002101 0 12.002101 114.02687
|
||||
11 0 5.3220163 0 5.3220163 70.950301
|
||||
12 0 4.1162407 0 4.1162407 62.953059
|
||||
13 0 3.2208482 0 3.2208482 56.887942
|
||||
14 0 2.8397825 0 2.8397825 54.301623
|
||||
15 0 2.019668 0 2.019668 48.619305
|
||||
16 0 1.8710381 0 1.8710381 47.601138
|
||||
17 0 1.5160328 0 1.5160328 45.108872
|
||||
18 0 1.3630386 0 1.3630386 44.05177
|
||||
19 0 1.1924745 0 1.1924745 42.849287
|
||||
20 0 1.0523828 0 1.0523828 41.861394
|
||||
Loop time of 0.0252161 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
12.0021008911 1.1924745171 1.0523827917
|
||||
Force two-norm initial, final = 21524.6 1259.91
|
||||
Force max component initial, final = 1527.37 241.935
|
||||
Final line search alpha, max atom move = 0.000346619 0.0838594
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0147347 (58.4339)
|
||||
Neigh time (%) = 0.00360608 (14.3007)
|
||||
Comm time (%) = 0.000231743 (0.919027)
|
||||
Outpt time (%) = 0.00401402 (15.9185)
|
||||
Other time (%) = 0.00262952 (10.4279)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 528 ave 528 max 528 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27366 ave 27366 max 27366 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27366
|
||||
Ave neighs/atom = 10.9464
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
20 0 10.274114 0 10.274114 102.04597
|
||||
21 0 4.2587067 0 4.2587067 63.257085
|
||||
22 0 3.4579606 0 3.4579606 57.918783
|
||||
23 0 2.6091259 0 2.6091259 52.140871
|
||||
24 0 2.2414512 0 2.2414512 49.626887
|
||||
25 0 1.4257571 0 1.4257571 43.928929
|
||||
26 0 1.2604412 0 1.2604412 42.77986
|
||||
27 0 0.93381201 0 0.93381201 40.441383
|
||||
28 0 0.77305388 0 0.77305388 39.333891
|
||||
29 0 0.66272332 0 0.66272332 38.57176
|
||||
30 0 0.57357831 0 0.57357831 37.947153
|
||||
Loop time of 0.026665 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
10.2741143789 0.662723315031 0.57357831099
|
||||
Force two-norm initial, final = 20598.4 860.344
|
||||
Force max component initial, final = 1387.12 253.617
|
||||
Final line search alpha, max atom move = 0.00039155 0.0993038
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.0160739 (60.2811)
|
||||
Neigh time (%) = 0.00360513 (13.5201)
|
||||
Comm time (%) = 0.000238419 (0.894126)
|
||||
Outpt time (%) = 0.00400496 (15.0195)
|
||||
Other time (%) = 0.00274253 (10.2851)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 533 ave 533 max 533 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27534 ave 27534 max 27534 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27534
|
||||
Ave neighs/atom = 11.0136
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
30 0 8.9362793 0 8.9362793 92.757153
|
||||
31 0 3.9724633 0 3.9724633 60.7212
|
||||
32 0 2.6325511 0 2.6325511 51.784932
|
||||
33 0 1.9937863 0 1.9937863 47.422917
|
||||
34 0 1.6064073 0 1.6064073 44.757737
|
||||
35 0 1.1546808 0 1.1546808 41.600404
|
||||
36 0 0.93474074 0 0.93474074 40.067859
|
||||
37 0 0.67833269 0 0.67833269 38.264916
|
||||
38 0 0.51906207 0 0.51906207 37.145018
|
||||
39 0 0.31997654 0 0.31997654 35.736062
|
||||
40 0 0.18467885 0 0.18467885 34.785873
|
||||
Loop time of 0.0250409 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
8.93627934206 0.319976542343 0.184678853337
|
||||
Force two-norm initial, final = 18864.2 753.682
|
||||
Force max component initial, final = 1617.71 221.622
|
||||
Final line search alpha, max atom move = 0.000384932 0.0853095
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0145993 (58.302)
|
||||
Neigh time (%) = 0.00361705 (14.4446)
|
||||
Comm time (%) = 0.000240088 (0.958783)
|
||||
Outpt time (%) = 0.00393724 (15.7233)
|
||||
Other time (%) = 0.00264716 (10.5714)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 531 ave 531 max 531 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27582 ave 27582 max 27582 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27582
|
||||
Ave neighs/atom = 11.0328
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
40 0 7.767847 0 7.767847 84.925704
|
||||
41 0 3.0582618 0 3.0582618 54.426036
|
||||
42 0 2.3262167 0 2.3262167 49.551755
|
||||
43 0 1.5424972 0 1.5424972 44.209493
|
||||
44 0 1.1584069 0 1.1584069 41.573231
|
||||
45 0 0.64653104 0 0.64653104 37.962296
|
||||
46 0 0.40723134 0 0.40723134 36.303826
|
||||
47 0 0.22801463 0 0.22801463 35.027621
|
||||
48 0 0.083516845 0 0.083516845 34.013608
|
||||
49 0 0.0031254794 0 0.0031254794 33.45763
|
||||
50 0 -0.081313313 0 -0.081313313 32.838812
|
||||
Loop time of 0.0265579 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
7.76784700214 0.00312547942455 -0.0813133129634
|
||||
Force two-norm initial, final = 17487.9 1815.23
|
||||
Force max component initial, final = 1273.66 876.61
|
||||
Final line search alpha, max atom move = 0.00073525 0.644528
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.016026 (60.3437)
|
||||
Neigh time (%) = 0.003613 (13.6042)
|
||||
Comm time (%) = 0.000234604 (0.883367)
|
||||
Outpt time (%) = 0.00397921 (14.9831)
|
||||
Other time (%) = 0.0027051 (10.1857)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 535 ave 535 max 535 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27865 ave 27865 max 27865 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27865
|
||||
Ave neighs/atom = 11.146
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
50 0 7.6174014 0 7.6174014 83.803569
|
||||
51 0 6.2032266 0 6.2032266 74.797688
|
||||
52 0 2.5148735 0 2.5148735 50.744231
|
||||
53 0 1.6582304 0 1.6582304 44.949256
|
||||
54 0 1.1103519 0 1.1103519 41.160347
|
||||
55 0 0.69940704 0 0.69940704 38.296984
|
||||
56 0 0.31006967 0 0.31006967 35.549044
|
||||
57 0 0.081622161 0 0.081622161 33.934922
|
||||
58 0 -0.090832662 0 -0.090832662 32.712284
|
||||
59 0 -0.21786156 0 -0.21786156 31.812246
|
||||
60 0 -0.32169958 0 -0.32169958 31.078298
|
||||
Loop time of 0.0236218 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
7.6174013995 -0.217861563426 -0.321699583013
|
||||
Force two-norm initial, final = 21782.8 679.792
|
||||
Force max component initial, final = 8739.6 189.661
|
||||
Final line search alpha, max atom move = 0.000489439 0.0928273
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0145402 (61.5541)
|
||||
Neigh time (%) = 0.00240993 (10.2022)
|
||||
Comm time (%) = 0.000175714 (0.743866)
|
||||
Outpt time (%) = 0.00391126 (16.5578)
|
||||
Other time (%) = 0.0025847 (10.942)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 541 ave 541 max 541 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 27986 ave 27986 max 27986 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 27986
|
||||
Ave neighs/atom = 11.1944
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
60 0 5.8294051 0 5.8294051 71.780312
|
||||
61 0 2.2883695 0 2.2883695 48.754944
|
||||
62 0 0.81882056 0 0.81882056 38.788188
|
||||
63 0 0.50349389 0 0.50349389 36.603591
|
||||
64 0 0.13140705 0 0.13140705 33.961812
|
||||
65 0 -0.085091833 0 -0.085091833 32.438467
|
||||
66 0 -0.28867774 0 -0.28867774 30.97302
|
||||
67 0 -0.42572348 0 -0.42572348 30.002898
|
||||
68 0 -0.52736622 0 -0.52736622 29.258456
|
||||
69 0 -0.66178936 0 -0.66178936 28.29934
|
||||
70 0 -0.72324173 0 -0.72324173 27.862878
|
||||
Loop time of 0.0249891 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
5.82940513955 -0.661789361841 -0.7232417307
|
||||
Force two-norm initial, final = 15029.7 727.267
|
||||
Force max component initial, final = 1482.04 154.38
|
||||
Final line search alpha, max atom move = 0.000666311 0.102865
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0145392 (58.1823)
|
||||
Neigh time (%) = 0.00362301 (14.4983)
|
||||
Comm time (%) = 0.000231981 (0.928329)
|
||||
Outpt time (%) = 0.00396943 (15.8846)
|
||||
Other time (%) = 0.00262547 (10.5064)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 552 ave 552 max 552 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28290 ave 28290 max 28290 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28290
|
||||
Ave neighs/atom = 11.316
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
70 0 4.9285377 0 4.9285377 65.515598
|
||||
71 0 1.5586603 0 1.5586603 43.561052
|
||||
72 0 0.44697741 0 0.44697741 35.981964
|
||||
73 0 0.069754802 0 0.069754802 33.298965
|
||||
74 0 -0.2107147 0 -0.2107147 31.327263
|
||||
75 0 -0.35830772 0 -0.35830772 30.28328
|
||||
76 0 -0.57195013 0 -0.57195013 28.739001
|
||||
77 0 -0.68409153 0 -0.68409153 27.931128
|
||||
78 0 -0.79228314 0 -0.79228314 27.146502
|
||||
79 0 -0.86504711 0 -0.86504711 26.626848
|
||||
80 0 -0.91680491 0 -0.91680491 26.257842
|
||||
Loop time of 0.0249 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.92853774479 -0.865047109705 -0.916804912211
|
||||
Force two-norm initial, final = 14034.9 476.228
|
||||
Force max component initial, final = 1270.06 91.1396
|
||||
Final line search alpha, max atom move = 0.00036629 0.0333835
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0144863 (58.1781)
|
||||
Neigh time (%) = 0.003613 (14.51)
|
||||
Comm time (%) = 0.000246048 (0.988146)
|
||||
Outpt time (%) = 0.00392914 (15.7797)
|
||||
Other time (%) = 0.00262547 (10.5441)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 551 ave 551 max 551 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28409 ave 28409 max 28409 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28409
|
||||
Ave neighs/atom = 11.3636
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
80 0 4.7702655 0 4.7702655 64.412746
|
||||
81 0 1.4138967 0 1.4138967 42.494974
|
||||
82 0 0.39709508 0 0.39709508 35.562808
|
||||
83 0 0.091357616 0 0.091357616 33.433831
|
||||
84 0 -0.14995689 0 -0.14995689 31.744545
|
||||
85 0 -0.34070771 0 -0.34070771 30.384745
|
||||
86 0 -0.56311713 0 -0.56311713 28.778505
|
||||
87 0 -0.69122357 0 -0.69122357 27.855817
|
||||
88 0 -0.77324301 0 -0.77324301 27.264482
|
||||
89 0 -0.84548243 0 -0.84548243 26.734692
|
||||
90 0 -0.90609547 0 -0.90609547 26.289732
|
||||
Loop time of 0.0249319 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.77026550795 -0.845482429321 -0.906095466828
|
||||
Force two-norm initial, final = 13429.1 828.371
|
||||
Force max component initial, final = 1191.96 285.981
|
||||
Final line search alpha, max atom move = 0.000318774 0.0911633
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.014478 (58.07)
|
||||
Neigh time (%) = 0.00361109 (14.4838)
|
||||
Comm time (%) = 0.000230074 (0.922809)
|
||||
Outpt time (%) = 0.00393724 (15.792)
|
||||
Other time (%) = 0.00267553 (10.7314)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 557 ave 557 max 557 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28482 ave 28482 max 28482 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28482
|
||||
Ave neighs/atom = 11.3928
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
90 0 4.6721167 0 4.6721167 63.632364
|
||||
91 0 1.6951784 0 1.6951784 44.238331
|
||||
92 0 0.44841999 0 0.44841999 35.811459
|
||||
93 0 0.10249086 0 0.10249086 33.388633
|
||||
94 0 -0.30440803 0 -0.30440803 30.509055
|
||||
95 0 -0.58377427 0 -0.58377427 28.505707
|
||||
96 0 -0.79655365 0 -0.79655365 26.960847
|
||||
97 0 -0.90735594 0 -0.90735594 26.157017
|
||||
98 0 -0.99343895 0 -0.99343895 25.51798
|
||||
99 0 -1.0302142 0 -1.0302142 25.251301
|
||||
100 0 -1.0696142 0 -1.0696142 24.971979
|
||||
Loop time of 0.0263698 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.67211666559 -1.03021419494 -1.06961424119
|
||||
Force two-norm initial, final = 13689.6 576.187
|
||||
Force max component initial, final = 1523.72 245.904
|
||||
Final line search alpha, max atom move = 0.000449346 0.110496
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.0158815 (60.2262)
|
||||
Neigh time (%) = 0.00362802 (13.7582)
|
||||
Comm time (%) = 0.000239134 (0.906847)
|
||||
Outpt time (%) = 0.00393391 (14.9182)
|
||||
Other time (%) = 0.00268722 (10.1905)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 553 ave 553 max 553 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28522 ave 28522 max 28522 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28522
|
||||
Ave neighs/atom = 11.4088
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
100 0 4.0553768 0 4.0553768 59.538
|
||||
101 0 0.97860768 0 0.97860768 39.398542
|
||||
102 0 0.011581326 0 0.011581326 32.777939
|
||||
103 0 -0.29467441 0 -0.29467441 30.628112
|
||||
104 0 -0.49830972 0 -0.49830972 29.178225
|
||||
105 0 -0.7295283 0 -0.7295283 27.468245
|
||||
106 0 -0.83934397 0 -0.83934397 26.687019
|
||||
107 0 -0.90122046 0 -0.90122046 26.263579
|
||||
108 0 -0.96663619 0 -0.96663619 25.786343
|
||||
109 0 -1.0417159 0 -1.0417159 25.23983
|
||||
110 0 -1.122473 0 -1.122473 24.64702
|
||||
Loop time of 0.0294309 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.05537676723 -1.04171594687 -1.12247296867
|
||||
Force two-norm initial, final = 12331.6 860.308
|
||||
Force max component initial, final = 1058.89 313.708
|
||||
Final line search alpha, max atom move = 0.000932331 0.292479
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.0187619 (63.749)
|
||||
Neigh time (%) = 0.00360394 (12.2454)
|
||||
Comm time (%) = 0.000266552 (0.905689)
|
||||
Outpt time (%) = 0.0039897 (13.5562)
|
||||
Other time (%) = 0.00280881 (9.54375)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 550 ave 550 max 550 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28527 ave 28527 max 28527 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28527
|
||||
Ave neighs/atom = 11.4108
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
110 0 4.0088675 0 4.0088675 59.056837
|
||||
111 0 2.2995428 0 2.2995428 47.949107
|
||||
112 0 0.99828672 0 0.99828672 39.337343
|
||||
113 0 0.13527687 0 0.13527687 33.474345
|
||||
114 0 -0.20926445 0 -0.20926445 31.05957
|
||||
115 0 -0.47575259 0 -0.47575259 29.164559
|
||||
116 0 -0.67474214 0 -0.67474214 27.723517
|
||||
117 0 -0.8468153 0 -0.8468153 26.486294
|
||||
118 0 -0.95515511 0 -0.95515511 25.685323
|
||||
119 0 -1.0564735 0 -1.0564735 24.951805
|
||||
120 0 -1.0948823 0 -1.0948823 24.677001
|
||||
Loop time of 0.027849 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.00886751896 -1.05647353137 -1.09488226118
|
||||
Force two-norm initial, final = 12395.7 461.929
|
||||
Force max component initial, final = 2663.69 76.5856
|
||||
Final line search alpha, max atom move = 0.000326804 0.0250284
|
||||
Iterations, force evaluations = 10 12
|
||||
|
||||
Pair time (%) = 0.017323 (62.2035)
|
||||
Neigh time (%) = 0.003613 (12.9735)
|
||||
Comm time (%) = 0.000246763 (0.886077)
|
||||
Outpt time (%) = 0.0039196 (14.0745)
|
||||
Other time (%) = 0.00274658 (9.86242)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 554 ave 554 max 554 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28631 ave 28631 max 28631 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28631
|
||||
Ave neighs/atom = 11.4524
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
120 0 3.6078219 0 3.6078219 56.132202
|
||||
121 0 1.14077 0 1.14077 40.040613
|
||||
122 0 -0.10482013 0 -0.10482013 31.597603
|
||||
123 0 -0.42488667 0 -0.42488667 29.333621
|
||||
124 0 -0.65936545 0 -0.65936545 27.682524
|
||||
125 0 -0.84075312 0 -0.84075312 26.378534
|
||||
126 0 -0.96129843 0 -0.96129843 25.497027
|
||||
127 0 -1.0968129 0 -1.0968129 24.512431
|
||||
128 0 -1.1694506 0 -1.1694506 23.977989
|
||||
129 0 -1.2126457 0 -1.2126457 23.660862
|
||||
130 0 -1.2583205 0 -1.2583205 23.335303
|
||||
Loop time of 0.0279129 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
3.60782185256 -1.21264568701 -1.25832049648
|
||||
Force two-norm initial, final = 12338.7 511.335
|
||||
Force max component initial, final = 1518.5 147.585
|
||||
Final line search alpha, max atom move = 0.000294687 0.0434913
|
||||
Iterations, force evaluations = 10 12
|
||||
|
||||
Pair time (%) = 0.0173075 (62.0056)
|
||||
Neigh time (%) = 0.00363278 (13.0147)
|
||||
Comm time (%) = 0.000241041 (0.863549)
|
||||
Outpt time (%) = 0.00393629 (14.1021)
|
||||
Other time (%) = 0.00279522 (10.0141)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 558 ave 558 max 558 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28611 ave 28611 max 28611 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28611
|
||||
Ave neighs/atom = 11.4444
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
130 0 3.1243455 0 3.1243455 52.793945
|
||||
131 0 0.71565075 0 0.71565075 37.056227
|
||||
132 0 -0.27217454 0 -0.27217454 30.343304
|
||||
133 0 -0.61618257 0 -0.61618257 27.874909
|
||||
134 0 -0.7988002 0 -0.7988002 26.598662
|
||||
135 0 -0.91256484 0 -0.91256484 25.789333
|
||||
136 0 -1.0890032 0 -1.0890032 24.463878
|
||||
137 0 -1.1980686 0 -1.1980686 23.681987
|
||||
138 0 -1.2567103 0 -1.2567103 23.266253
|
||||
139 0 -1.3060322 0 -1.3060322 22.899986
|
||||
140 0 -1.359869 0 -1.359869 22.502063
|
||||
Loop time of 0.0308802 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
3.12434547963 -1.30603224583 -1.35986897103
|
||||
Force two-norm initial, final = 11522.7 423.596
|
||||
Force max component initial, final = 1304.48 166.359
|
||||
Final line search alpha, max atom move = 0.000640699 0.106586
|
||||
Iterations, force evaluations = 10 14
|
||||
|
||||
Pair time (%) = 0.02019 (65.3817)
|
||||
Neigh time (%) = 0.00362086 (11.7255)
|
||||
Comm time (%) = 0.000261784 (0.847739)
|
||||
Outpt time (%) = 0.00396395 (12.8365)
|
||||
Other time (%) = 0.00284362 (9.20855)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 560 ave 560 max 560 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28662 ave 28662 max 28662 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28662
|
||||
Ave neighs/atom = 11.4648
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
140 0 2.5370527 0 2.5370527 48.829908
|
||||
141 0 0.17606803 0 0.17606803 33.286136
|
||||
142 0 -0.47155579 0 -0.47155579 28.843352
|
||||
143 0 -0.78220993 0 -0.78220993 26.612272
|
||||
144 0 -0.99344036 0 -0.99344036 25.130357
|
||||
145 0 -1.0847272 0 -1.0847272 24.47808
|
||||
146 0 -1.186227 0 -1.186227 23.697138
|
||||
147 0 -1.2660315 0 -1.2660315 23.115022
|
||||
148 0 -1.3035228 0 -1.3035228 22.861414
|
||||
149 0 -1.3383511 0 -1.3383511 22.607288
|
||||
150 0 -1.3718092 0 -1.3718092 22.359069
|
||||
Loop time of 0.032371 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.53705265492 -1.33835106775 -1.37180924768
|
||||
Force two-norm initial, final = 10219.1 550.71
|
||||
Force max component initial, final = 936.507 270.239
|
||||
Final line search alpha, max atom move = 0.000417128 0.112724
|
||||
Iterations, force evaluations = 10 15
|
||||
|
||||
Pair time (%) = 0.0216274 (66.811)
|
||||
Neigh time (%) = 0.00362229 (11.1899)
|
||||
Comm time (%) = 0.000267029 (0.8249)
|
||||
Outpt time (%) = 0.00395203 (12.2085)
|
||||
Other time (%) = 0.00290227 (8.96563)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 560 ave 560 max 560 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28716 ave 28716 max 28716 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28716
|
||||
Ave neighs/atom = 11.4864
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
150 0 2.6511871 0 2.6511871 49.579345
|
||||
151 0 0.33433869 0 0.33433869 34.351907
|
||||
152 0 -0.60798579 0 -0.60798579 27.870213
|
||||
153 0 -0.90621268 0 -0.90621268 25.71559
|
||||
154 0 -1.1119344 0 -1.1119344 24.25877
|
||||
155 0 -1.2040479 0 -1.2040479 23.599805
|
||||
156 0 -1.2883766 0 -1.2883766 22.946371
|
||||
157 0 -1.3343075 0 -1.3343075 22.614259
|
||||
158 0 -1.3847759 0 -1.3847759 22.268602
|
||||
159 0 -1.4145217 0 -1.4145217 22.049306
|
||||
160 0 -1.4380243 0 -1.4380243 21.876406
|
||||
Loop time of 0.0337121 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.65118714313 -1.41452169876 -1.4380243142
|
||||
Force two-norm initial, final = 10492.4 416.256
|
||||
Force max component initial, final = 1101.81 185.859
|
||||
Final line search alpha, max atom move = 0.000596367 0.11084
|
||||
Iterations, force evaluations = 10 15
|
||||
|
||||
Pair time (%) = 0.0216587 (64.2459)
|
||||
Neigh time (%) = 0.00483203 (14.3332)
|
||||
Comm time (%) = 0.000329733 (0.978083)
|
||||
Outpt time (%) = 0.00391579 (11.6154)
|
||||
Other time (%) = 0.00297594 (8.8275)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 562 ave 562 max 562 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28825 ave 28825 max 28825 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28825
|
||||
Ave neighs/atom = 11.53
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
160 0 2.445485 0 2.445485 48.062267
|
||||
161 0 0.13902608 0 0.13902608 32.876214
|
||||
162 0 -0.75396797 0 -0.75396797 26.718868
|
||||
163 0 -1.0071611 0 -1.0071611 24.885772
|
||||
164 0 -1.1819905 0 -1.1819905 23.629123
|
||||
165 0 -1.2798339 0 -1.2798339 22.901472
|
||||
166 0 -1.3806808 0 -1.3806808 22.158356
|
||||
167 0 -1.4560709 0 -1.4560709 21.602465
|
||||
168 0 -1.5015178 0 -1.5015178 21.265259
|
||||
169 0 -1.5465541 0 -1.5465541 20.930655
|
||||
170 0 -1.5820884 0 -1.5820884 20.657365
|
||||
Loop time of 0.023509 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.44548496469 -1.54655408621 -1.58208836572
|
||||
Force two-norm initial, final = 10220.9 661.104
|
||||
Force max component initial, final = 1044.13 354.281
|
||||
Final line search alpha, max atom move = 0.0011882 0.420955
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.014415 (61.317)
|
||||
Neigh time (%) = 0.00240922 (10.2481)
|
||||
Comm time (%) = 0.000192642 (0.819439)
|
||||
Outpt time (%) = 0.00393844 (16.7529)
|
||||
Other time (%) = 0.0025537 (10.8626)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 561 ave 561 max 561 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28706 ave 28706 max 28706 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28706
|
||||
Ave neighs/atom = 11.4824
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
170 0 2.5358609 0 2.5358609 48.866435
|
||||
171 0 0.063716631 0 0.063716631 32.5423
|
||||
172 0 -0.53442893 0 -0.53442893 28.41204
|
||||
173 0 -0.80688389 0 -0.80688389 26.509346
|
||||
174 0 -1.0715541 0 -1.0715541 24.564023
|
||||
175 0 -1.2254796 0 -1.2254796 23.462464
|
||||
176 0 -1.3022249 0 -1.3022249 22.903025
|
||||
177 0 -1.3771632 0 -1.3771632 22.333129
|
||||
178 0 -1.4452028 0 -1.4452028 21.833035
|
||||
179 0 -1.4781077 0 -1.4781077 21.596868
|
||||
180 0 -1.5024534 0 -1.5024534 21.415156
|
||||
Loop time of 0.0293849 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.53586089291 -1.47810766266 -1.50245335744
|
||||
Force two-norm initial, final = 9891.64 448.294
|
||||
Force max component initial, final = 808.125 120.102
|
||||
Final line search alpha, max atom move = 0.00131125 0.157484
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.0187562 (63.8293)
|
||||
Neigh time (%) = 0.00361609 (12.306)
|
||||
Comm time (%) = 0.000254869 (0.86735)
|
||||
Outpt time (%) = 0.00398111 (13.5482)
|
||||
Other time (%) = 0.00277662 (9.44916)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 567 ave 567 max 567 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28775 ave 28775 max 28775 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28775
|
||||
Ave neighs/atom = 11.51
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
180 0 2.7212223 0 2.7212223 50.026136
|
||||
181 0 0.2721017 0 0.2721017 33.925894
|
||||
182 0 -0.42116779 0 -0.42116779 29.157245
|
||||
183 0 -0.62932201 0 -0.62932201 27.728916
|
||||
184 0 -0.84115646 0 -0.84115646 26.20046
|
||||
185 0 -1.0503044 0 -1.0503044 24.685348
|
||||
186 0 -1.1625169 0 -1.1625169 23.879002
|
||||
187 0 -1.2479996 0 -1.2479996 23.257233
|
||||
188 0 -1.359242 0 -1.359242 22.442562
|
||||
189 0 -1.4157422 0 -1.4157422 22.034518
|
||||
190 0 -1.4675347 0 -1.4675347 21.652723
|
||||
Loop time of 0.024842 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.72122227536 -1.41574216788 -1.46753473448
|
||||
Force two-norm initial, final = 10306.2 415.803
|
||||
Force max component initial, final = 951.75 103.59
|
||||
Final line search alpha, max atom move = 0.00089633 0.0928507
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0144215 (58.0527)
|
||||
Neigh time (%) = 0.00360799 (14.5237)
|
||||
Comm time (%) = 0.00022912 (0.922309)
|
||||
Outpt time (%) = 0.00392914 (15.8165)
|
||||
Other time (%) = 0.00265431 (10.6848)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 570 ave 570 max 570 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28849 ave 28849 max 28849 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28849
|
||||
Ave neighs/atom = 11.5396
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 3.23183 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
190 0 2.0041133 0 2.0041133 44.903366
|
||||
191 0 -0.13802828 0 -0.13802828 30.796936
|
||||
192 0 -0.65552855 0 -0.65552855 27.241047
|
||||
193 0 -0.8720148 0 -0.8720148 25.714407
|
||||
194 0 -1.0652883 0 -1.0652883 24.338022
|
||||
195 0 -1.2191873 0 -1.2191873 23.225018
|
||||
196 0 -1.3593543 0 -1.3593543 22.192069
|
||||
197 0 -1.4397147 0 -1.4397147 21.604815
|
||||
198 0 -1.5433079 0 -1.5433079 20.81796
|
||||
199 0 -1.6127297 0 -1.6127297 20.314889
|
||||
200 0 -1.6540467 0 -1.6540467 19.995791
|
||||
Loop time of 0.024853 on 1 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.00411330956 -1.61272973671 -1.65404673311
|
||||
Force two-norm initial, final = 9931.07 717.032
|
||||
Force max component initial, final = 976.09 300.507
|
||||
Final line search alpha, max atom move = 0.00121807 0.366038
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0144005 (57.9427)
|
||||
Neigh time (%) = 0.00363111 (14.6104)
|
||||
Comm time (%) = 0.000238895 (0.961234)
|
||||
Outpt time (%) = 0.00396919 (15.9707)
|
||||
Other time (%) = 0.00261331 (10.5151)
|
||||
|
||||
Nlocal: 2500 ave 2500 max 2500 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 572 ave 572 max 572 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 28888 ave 28888 max 28888 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 28888
|
||||
Ave neighs/atom = 11.5552
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
978
couple/lammps_spparks/log.lammps.4
Normal file
978
couple/lammps_spparks/log.lammps.4
Normal file
@ -0,0 +1,978 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
units lj
|
||||
dimension 2
|
||||
atom_style atomic
|
||||
|
||||
read_data data.lammps
|
||||
orthogonal box = (0 0 -0.5) to (50 50 0.5)
|
||||
2 by 2 by 1 processor grid
|
||||
2500 atoms
|
||||
mass * 1.0
|
||||
|
||||
pair_style lj/cut 2.5
|
||||
pair_coeff * * 1.0 1.2
|
||||
pair_coeff 1 1 1.0 1.0
|
||||
pair_coeff 2 2 1.0 1.0
|
||||
pair_coeff 3 3 1.0 1.0
|
||||
pair_coeff 4 4 1.0 1.0
|
||||
pair_coeff 5 5 1.0 1.0
|
||||
pair_coeff 6 6 1.0 1.0
|
||||
pair_coeff 7 7 1.0 1.0
|
||||
pair_coeff 8 8 1.0 1.0
|
||||
pair_coeff 9 9 1.0 1.0
|
||||
pair_coeff 10 10 1.0 1.0
|
||||
pair_coeff 11 11 1.0 1.0
|
||||
pair_coeff 12 12 1.0 1.0
|
||||
pair_coeff 13 13 1.0 1.0
|
||||
pair_coeff 14 14 1.0 1.0
|
||||
pair_coeff 15 15 1.0 1.0
|
||||
pair_coeff 16 16 1.0 1.0
|
||||
pair_coeff 17 17 1.0 1.0
|
||||
pair_coeff 18 18 1.0 1.0
|
||||
pair_coeff 19 19 1.0 1.0
|
||||
pair_coeff 20 20 1.0 1.0
|
||||
pair_coeff 21 21 1.0 1.0
|
||||
pair_coeff 22 22 1.0 1.0
|
||||
pair_coeff 23 23 1.0 1.0
|
||||
pair_coeff 24 24 1.0 1.0
|
||||
pair_coeff 25 25 1.0 1.0
|
||||
pair_coeff 26 26 1.0 1.0
|
||||
pair_coeff 27 27 1.0 1.0
|
||||
pair_coeff 28 28 1.0 1.0
|
||||
pair_coeff 29 29 1.0 1.0
|
||||
pair_coeff 30 30 1.0 1.0
|
||||
pair_coeff 31 31 1.0 1.0
|
||||
pair_coeff 32 32 1.0 1.0
|
||||
pair_coeff 33 33 1.0 1.0
|
||||
pair_coeff 34 34 1.0 1.0
|
||||
pair_coeff 35 35 1.0 1.0
|
||||
pair_coeff 36 36 1.0 1.0
|
||||
pair_coeff 37 37 1.0 1.0
|
||||
pair_coeff 38 38 1.0 1.0
|
||||
pair_coeff 39 39 1.0 1.0
|
||||
pair_coeff 40 40 1.0 1.0
|
||||
pair_coeff 41 41 1.0 1.0
|
||||
pair_coeff 42 42 1.0 1.0
|
||||
pair_coeff 43 43 1.0 1.0
|
||||
pair_coeff 44 44 1.0 1.0
|
||||
pair_coeff 45 45 1.0 1.0
|
||||
pair_coeff 46 46 1.0 1.0
|
||||
pair_coeff 47 47 1.0 1.0
|
||||
pair_coeff 48 48 1.0 1.0
|
||||
pair_coeff 49 49 1.0 1.0
|
||||
pair_coeff 50 50 1.0 1.0
|
||||
pair_coeff 51 51 1.0 1.0
|
||||
pair_coeff 52 52 1.0 1.0
|
||||
pair_coeff 53 53 1.0 1.0
|
||||
pair_coeff 54 54 1.0 1.0
|
||||
pair_coeff 55 55 1.0 1.0
|
||||
pair_coeff 56 56 1.0 1.0
|
||||
pair_coeff 57 57 1.0 1.0
|
||||
pair_coeff 58 58 1.0 1.0
|
||||
pair_coeff 59 59 1.0 1.0
|
||||
pair_coeff 60 60 1.0 1.0
|
||||
pair_coeff 61 61 1.0 1.0
|
||||
pair_coeff 62 62 1.0 1.0
|
||||
pair_coeff 63 63 1.0 1.0
|
||||
pair_coeff 64 64 1.0 1.0
|
||||
pair_coeff 65 65 1.0 1.0
|
||||
pair_coeff 66 66 1.0 1.0
|
||||
pair_coeff 67 67 1.0 1.0
|
||||
pair_coeff 68 68 1.0 1.0
|
||||
pair_coeff 69 69 1.0 1.0
|
||||
pair_coeff 70 70 1.0 1.0
|
||||
pair_coeff 71 71 1.0 1.0
|
||||
pair_coeff 72 72 1.0 1.0
|
||||
pair_coeff 73 73 1.0 1.0
|
||||
pair_coeff 74 74 1.0 1.0
|
||||
pair_coeff 75 75 1.0 1.0
|
||||
pair_coeff 76 76 1.0 1.0
|
||||
pair_coeff 77 77 1.0 1.0
|
||||
pair_coeff 78 78 1.0 1.0
|
||||
pair_coeff 79 79 1.0 1.0
|
||||
pair_coeff 80 80 1.0 1.0
|
||||
pair_coeff 81 81 1.0 1.0
|
||||
pair_coeff 82 82 1.0 1.0
|
||||
pair_coeff 83 83 1.0 1.0
|
||||
pair_coeff 84 84 1.0 1.0
|
||||
pair_coeff 85 85 1.0 1.0
|
||||
pair_coeff 86 86 1.0 1.0
|
||||
pair_coeff 87 87 1.0 1.0
|
||||
pair_coeff 88 88 1.0 1.0
|
||||
pair_coeff 89 89 1.0 1.0
|
||||
pair_coeff 90 90 1.0 1.0
|
||||
pair_coeff 91 91 1.0 1.0
|
||||
pair_coeff 92 92 1.0 1.0
|
||||
pair_coeff 93 93 1.0 1.0
|
||||
pair_coeff 94 94 1.0 1.0
|
||||
pair_coeff 95 95 1.0 1.0
|
||||
pair_coeff 96 96 1.0 1.0
|
||||
pair_coeff 97 97 1.0 1.0
|
||||
pair_coeff 98 98 1.0 1.0
|
||||
pair_coeff 99 99 1.0 1.0
|
||||
pair_coeff 100 100 1.0 1.0
|
||||
|
||||
compute da all displace/atom
|
||||
|
||||
dump 1 all atom 10 dump.md
|
||||
thermo 1
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.38041 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 0 10.131397 0 10.131397 102.99334
|
||||
1 0 3.6579372 0 3.6579372 60.806825
|
||||
2 0 3.0194933 0 3.0194933 56.563578
|
||||
3 0 2.6605525 0 2.6605525 54.146441
|
||||
4 0 2.3447848 0 2.3447848 51.988246
|
||||
5 0 2.1836205 0 2.1836205 50.890593
|
||||
6 0 2.0595616 0 2.0595616 50.04605
|
||||
7 0 1.9519103 0 1.9519103 49.305129
|
||||
8 0 1.8797312 0 1.8797312 48.806422
|
||||
9 0 1.8230663 0 1.8230663 48.416594
|
||||
10 0 1.7618168 0 1.7618168 47.996459
|
||||
Loop time of 0.0110788 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
10.1313968863 1.82306625671 1.76181675684
|
||||
Force two-norm initial, final = 14853.2 526.892
|
||||
Force max component initial, final = 333.003 154.237
|
||||
Final line search alpha, max atom move = 0.000395826 0.0610509
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.00475216 (42.894)
|
||||
Neigh time (%) = 0.000601947 (5.43331)
|
||||
Comm time (%) = 0.000704825 (6.3619)
|
||||
Outpt time (%) = 0.00406402 (36.6828)
|
||||
Other time (%) = 0.00095588 (8.62798)
|
||||
|
||||
Nlocal: 625 ave 637 max 614 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Nghost: 275 ave 286 max 263 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 6779.25 ave 6929 max 6631 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 27117
|
||||
Ave neighs/atom = 10.8468
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
10 0 13.855576 0 13.855576 126.15022
|
||||
11 0 5.7386317 0 5.7386317 73.911894
|
||||
12 0 4.0429707 0 4.0429707 62.56527
|
||||
13 0 3.238614 0 3.238614 57.109892
|
||||
14 0 2.4884651 0 2.4884651 51.940745
|
||||
15 0 2.0958214 0 2.0958214 49.224795
|
||||
16 0 1.7591268 0 1.7591268 46.897029
|
||||
17 0 1.5877871 0 1.5877871 45.70491
|
||||
18 0 1.4739685 0 1.4739685 44.914787
|
||||
19 0 1.3756748 0 1.3756748 44.231775
|
||||
20 0 1.2785795 0 1.2785795 43.556465
|
||||
Loop time of 0.00972104 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
13.8555761196 1.37567476183 1.27857945482
|
||||
Force two-norm initial, final = 24008.6 733.281
|
||||
Force max component initial, final = 1448.98 310.85
|
||||
Final line search alpha, max atom move = 0.000383264 0.119137
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00366753 (37.7278)
|
||||
Neigh time (%) = 0.00060153 (6.18792)
|
||||
Comm time (%) = 0.000533044 (5.48341)
|
||||
Outpt time (%) = 0.00406796 (41.8469)
|
||||
Other time (%) = 0.000850976 (8.75395)
|
||||
|
||||
Nlocal: 625 ave 632 max 615 min
|
||||
Histogram: 1 0 0 0 0 1 0 0 1 1
|
||||
Nghost: 275.25 ave 286 max 268 min
|
||||
Histogram: 1 1 0 0 1 0 0 0 0 1
|
||||
Neighs: 6797.25 ave 6867 max 6672 min
|
||||
Histogram: 1 0 0 0 0 0 0 1 1 1
|
||||
|
||||
Total # of neighbors = 27189
|
||||
Ave neighs/atom = 10.8756
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
20 0 10.453807 0 10.453807 103.11677
|
||||
21 0 4.5433221 0 4.5433221 65.082297
|
||||
22 0 3.5146935 0 3.5146935 58.258548
|
||||
23 0 2.7050903 0 2.7050903 52.787155
|
||||
24 0 2.2715623 0 2.2715623 49.814091
|
||||
25 0 1.8851407 0 1.8851407 47.159818
|
||||
26 0 1.5708258 0 1.5708258 44.974429
|
||||
27 0 1.3890196 0 1.3890196 43.713996
|
||||
28 0 1.1909213 0 1.1909213 42.334449
|
||||
29 0 1.0181817 0 1.0181817 41.121861
|
||||
30 0 0.89407363 0 0.89407363 40.258139
|
||||
Loop time of 0.00972056 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
10.4538071086 1.01818167882 0.894073631386
|
||||
Force two-norm initial, final = 20855.2 876.637
|
||||
Force max component initial, final = 1585.58 289.452
|
||||
Final line search alpha, max atom move = 0.000300637 0.0870201
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.0036599 (37.6511)
|
||||
Neigh time (%) = 0.000605106 (6.22501)
|
||||
Comm time (%) = 0.000532508 (5.47816)
|
||||
Outpt time (%) = 0.00407463 (41.9177)
|
||||
Other time (%) = 0.000848413 (8.72802)
|
||||
|
||||
Nlocal: 625 ave 633 max 617 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Nghost: 276.5 ave 285 max 267 min
|
||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
||||
Neighs: 6819 ave 6928 max 6722 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 27276
|
||||
Ave neighs/atom = 10.9104
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
30 0 9.1773214 0 9.1773214 94.19218
|
||||
31 0 3.780095 0 3.780095 59.351334
|
||||
32 0 2.1364679 0 2.1364679 48.310641
|
||||
33 0 1.5981147 0 1.5981147 44.596478
|
||||
34 0 1.1616454 0 1.1616454 41.559729
|
||||
35 0 0.82858726 0 0.82858726 39.203145
|
||||
36 0 0.57784722 0 0.57784722 37.453531
|
||||
37 0 0.42911635 0 0.42911635 36.369814
|
||||
38 0 0.32649469 0 0.32649469 35.641902
|
||||
39 0 0.21091983 0 0.21091983 34.858374
|
||||
40 0 0.13674971 0 0.13674971 34.342788
|
||||
Loop time of 0.0113723 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
9.17732138819 0.210919834207 0.136749713408
|
||||
Force two-norm initial, final = 19618.6 632.262
|
||||
Force max component initial, final = 1558.39 105.69
|
||||
Final line search alpha, max atom move = 0.000486832 0.0514532
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.00474131 (41.6916)
|
||||
Neigh time (%) = 0.000910223 (8.00384)
|
||||
Comm time (%) = 0.000718117 (6.3146)
|
||||
Outpt time (%) = 0.00406992 (35.788)
|
||||
Other time (%) = 0.000932753 (8.20195)
|
||||
|
||||
Nlocal: 625 ave 632 max 610 min
|
||||
Histogram: 1 0 0 0 0 0 0 1 0 2
|
||||
Nghost: 279 ave 294 max 271 min
|
||||
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||
Neighs: 6869.75 ave 6965 max 6677 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 2 1
|
||||
|
||||
Total # of neighbors = 27479
|
||||
Ave neighs/atom = 10.9916
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
40 0 7.1357354 0 7.1357354 80.465664
|
||||
41 0 3.1864291 0 3.1864291 54.920554
|
||||
42 0 1.4411303 0 1.4411303 43.175349
|
||||
43 0 1.0616102 0 1.0616102 40.558071
|
||||
44 0 0.76898007 0 0.76898007 38.515614
|
||||
45 0 0.47634294 0 0.47634294 36.448833
|
||||
46 0 0.26562782 0 0.26562782 34.961948
|
||||
47 0 0.084628043 0 0.084628043 33.672837
|
||||
48 0 -0.075634194 0 -0.075634194 32.547959
|
||||
49 0 -0.21169535 0 -0.21169535 31.582919
|
||||
50 0 -0.32991627 0 -0.32991627 30.759427
|
||||
Loop time of 0.0101295 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
7.13573543411 -0.211695347593 -0.329916269499
|
||||
Force two-norm initial, final = 16348.9 558.411
|
||||
Force max component initial, final = 1619.91 103.265
|
||||
Final line search alpha, max atom move = 0.000372042 0.038419
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00363976 (35.9324)
|
||||
Neigh time (%) = 0.000923395 (9.11594)
|
||||
Comm time (%) = 0.000634491 (6.26383)
|
||||
Outpt time (%) = 0.00405943 (40.0756)
|
||||
Other time (%) = 0.000872374 (8.61225)
|
||||
|
||||
Nlocal: 625 ave 635 max 614 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Nghost: 280.25 ave 290 max 270 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Neighs: 6920.75 ave 7090 max 6722 min
|
||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
||||
|
||||
Total # of neighbors = 27683
|
||||
Ave neighs/atom = 11.0732
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
50 0 5.7268723 0 5.7268723 70.877358
|
||||
51 0 2.3773675 0 2.3773675 49.119056
|
||||
52 0 0.80808652 0 0.80808652 38.523549
|
||||
53 0 0.44195199 0 0.44195199 35.94379
|
||||
54 0 0.15030268 0 0.15030268 33.910057
|
||||
55 0 -0.022616619 0 -0.022616619 32.66055
|
||||
56 0 -0.16415793 0 -0.16415793 31.640965
|
||||
57 0 -0.29891652 0 -0.29891652 30.708285
|
||||
58 0 -0.39214086 0 -0.39214086 30.03762
|
||||
59 0 -0.53733622 0 -0.53733622 28.975916
|
||||
60 0 -0.63338854 0 -0.63338854 28.306058
|
||||
Loop time of 0.0101259 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
5.72687232351 -0.537336224163 -0.633388542189
|
||||
Force two-norm initial, final = 14623.1 1106.47
|
||||
Force max component initial, final = 1563.21 227.768
|
||||
Final line search alpha, max atom move = 0.000202951 0.0462258
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00362068 (35.7568)
|
||||
Neigh time (%) = 0.000916481 (9.05088)
|
||||
Comm time (%) = 0.000623763 (6.16009)
|
||||
Outpt time (%) = 0.00407392 (40.2327)
|
||||
Other time (%) = 0.00089103 (8.79953)
|
||||
|
||||
Nlocal: 625 ave 634 max 620 min
|
||||
Histogram: 1 0 2 0 0 0 0 0 0 1
|
||||
Nghost: 282.75 ave 289 max 274 min
|
||||
Histogram: 1 0 0 0 0 0 1 1 0 1
|
||||
Neighs: 6997.75 ave 7188 max 6858 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 27991
|
||||
Ave neighs/atom = 11.1964
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
60 0 4.8209421 0 4.8209421 64.493854
|
||||
61 0 2.5903199 0 2.5903199 50.078603
|
||||
62 0 0.62828159 0 0.62828159 36.984599
|
||||
63 0 0.28949259 0 0.28949259 34.641614
|
||||
64 0 -0.031290153 0 -0.031290153 32.384853
|
||||
65 0 -0.31225362 0 -0.31225362 30.379734
|
||||
66 0 -0.50896819 0 -0.50896819 28.973548
|
||||
67 0 -0.6583808 0 -0.6583808 27.894862
|
||||
68 0 -0.79610742 0 -0.79610742 26.903809
|
||||
69 0 -0.90468984 0 -0.90468984 26.119699
|
||||
70 0 -0.97482926 0 -0.97482926 25.617752
|
||||
Loop time of 0.0100566 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.82094210064 -0.90468984047 -0.974829264854
|
||||
Force two-norm initial, final = 14460.6 700.095
|
||||
Force max component initial, final = 2632.26 308.176
|
||||
Final line search alpha, max atom move = 0.000565214 0.174185
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00361013 (35.8983)
|
||||
Neigh time (%) = 0.000908792 (9.03681)
|
||||
Comm time (%) = 0.000601768 (5.98384)
|
||||
Outpt time (%) = 0.00405914 (40.3631)
|
||||
Other time (%) = 0.000876725 (8.71794)
|
||||
|
||||
Nlocal: 625 ave 635 max 619 min
|
||||
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||
Nghost: 288 ave 294 max 281 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||
Neighs: 7080.5 ave 7261 max 7005 min
|
||||
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28322
|
||||
Ave neighs/atom = 11.3288
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
70 0 4.3980829 0 4.3980829 61.741323
|
||||
71 0 1.1235581 0 1.1235581 40.327809
|
||||
72 0 0.21759714 0 0.21759714 34.129029
|
||||
73 0 -0.081434306 0 -0.081434306 32.015966
|
||||
74 0 -0.31232862 0 -0.31232862 30.394279
|
||||
75 0 -0.52674206 0 -0.52674206 28.841997
|
||||
76 0 -0.73501424 0 -0.73501424 27.343739
|
||||
77 0 -0.84805615 0 -0.84805615 26.519545
|
||||
78 0 -0.93529547 0 -0.93529547 25.886702
|
||||
79 0 -0.99512174 0 -0.99512174 25.451552
|
||||
80 0 -1.0566397 0 -1.0566397 25.00379
|
||||
Loop time of 0.00964552 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.39808292997 -0.995121736021 -1.05663967552
|
||||
Force two-norm initial, final = 12965.9 449.496
|
||||
Force max component initial, final = 1092.61 161.966
|
||||
Final line search alpha, max atom move = 0.000603976 0.0978234
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00359595 (37.281)
|
||||
Neigh time (%) = 0.000608981 (6.31361)
|
||||
Comm time (%) = 0.000535309 (5.54982)
|
||||
Outpt time (%) = 0.00404197 (41.9051)
|
||||
Other time (%) = 0.000863314 (8.95041)
|
||||
|
||||
Nlocal: 625 ave 632 max 621 min
|
||||
Histogram: 1 1 1 0 0 0 0 0 0 1
|
||||
Nghost: 288 ave 293 max 286 min
|
||||
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||
Neighs: 7081.25 ave 7231 max 6981 min
|
||||
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28325
|
||||
Ave neighs/atom = 11.33
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
80 0 4.0361093 0 4.0361093 59.222435
|
||||
81 0 1.3881798 0 1.3881798 41.953718
|
||||
82 0 0.27963712 0 0.27963712 34.458153
|
||||
83 0 -0.027669726 0 -0.027669726 32.363955
|
||||
84 0 -0.37030062 0 -0.37030062 29.921155
|
||||
85 0 -0.60764833 0 -0.60764833 28.255858
|
||||
86 0 -0.7571808 0 -0.7571808 27.195934
|
||||
87 0 -0.89460643 0 -0.89460643 26.202321
|
||||
88 0 -0.96080854 0 -0.96080854 25.741651
|
||||
89 0 -1.0194781 0 -1.0194781 25.324323
|
||||
90 0 -1.0637943 0 -1.0637943 24.9965
|
||||
Loop time of 0.011281 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
4.03610925969 -1.01947808117 -1.06379432983
|
||||
Force two-norm initial, final = 12187.6 545.261
|
||||
Force max component initial, final = 1351.69 92.3548
|
||||
Final line search alpha, max atom move = 0.000969229 0.089513
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.00468087 (41.4934)
|
||||
Neigh time (%) = 0.000908017 (8.04907)
|
||||
Comm time (%) = 0.000690103 (6.11738)
|
||||
Outpt time (%) = 0.00406533 (36.037)
|
||||
Other time (%) = 0.000936687 (8.30322)
|
||||
|
||||
Nlocal: 625 ave 630 max 621 min
|
||||
Histogram: 1 0 1 0 0 1 0 0 0 1
|
||||
Nghost: 287 ave 291 max 283 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Neighs: 7107.5 ave 7201 max 7017 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28430
|
||||
Ave neighs/atom = 11.372
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
90 0 3.125718 0 3.125718 52.867181
|
||||
91 0 0.53212967 0 0.53212967 35.875122
|
||||
92 0 -0.34301857 0 -0.34301857 29.831322
|
||||
93 0 -0.58227566 0 -0.58227566 28.151184
|
||||
94 0 -0.79489064 0 -0.79489064 26.623007
|
||||
95 0 -0.97574132 0 -0.97574132 25.298929
|
||||
96 0 -1.0874104 0 -1.0874104 24.482683
|
||||
97 0 -1.1719839 0 -1.1719839 23.862768
|
||||
98 0 -1.2392036 0 -1.2392036 23.370772
|
||||
99 0 -1.2964836 0 -1.2964836 22.943244
|
||||
100 0 -1.3478016 0 -1.3478016 22.567963
|
||||
Loop time of 0.0100085 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
3.12571795497 -1.29648360341 -1.34780157905
|
||||
Force two-norm initial, final = 11455.2 530.242
|
||||
Force max component initial, final = 1096.07 260.447
|
||||
Final line search alpha, max atom move = 0.00055639 0.14491
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00359488 (35.9184)
|
||||
Neigh time (%) = 0.000907004 (9.06238)
|
||||
Comm time (%) = 0.000564218 (5.63741)
|
||||
Outpt time (%) = 0.00406653 (40.6309)
|
||||
Other time (%) = 0.000875831 (8.75091)
|
||||
|
||||
Nlocal: 625 ave 631 max 620 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
Nghost: 290.5 ave 295 max 286 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Neighs: 7139.5 ave 7236 max 7066 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28558
|
||||
Ave neighs/atom = 11.4232
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
100 0 3.0454477 0 3.0454477 52.211737
|
||||
101 0 0.37762092 0 0.37762092 34.686047
|
||||
102 0 -0.14581755 0 -0.14581755 31.107565
|
||||
103 0 -0.42841021 0 -0.42841021 29.141463
|
||||
104 0 -0.68603979 0 -0.68603979 27.322046
|
||||
105 0 -0.83601254 0 -0.83601254 26.242466
|
||||
106 0 -0.99162456 0 -0.99162456 25.109576
|
||||
107 0 -1.1100134 0 -1.1100134 24.238707
|
||||
108 0 -1.2082157 0 -1.2082157 23.525014
|
||||
109 0 -1.2572245 0 -1.2572245 23.158233
|
||||
110 0 -1.2876903 0 -1.2876903 22.942477
|
||||
Loop time of 0.0104213 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
3.04544768565 -1.25722445623 -1.28769033314
|
||||
Force two-norm initial, final = 10849.1 693.937
|
||||
Force max component initial, final = 904.387 236.839
|
||||
Final line search alpha, max atom move = 0.000117815 0.027903
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.00395721 (37.9724)
|
||||
Neigh time (%) = 0.000905097 (8.68508)
|
||||
Comm time (%) = 0.000644565 (6.18508)
|
||||
Outpt time (%) = 0.00403285 (38.6982)
|
||||
Other time (%) = 0.000881553 (8.45916)
|
||||
|
||||
Nlocal: 625 ave 635 max 619 min
|
||||
Histogram: 1 1 0 1 0 0 0 0 0 1
|
||||
Nghost: 293.75 ave 299 max 288 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Neighs: 7176 ave 7351 max 7047 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28704
|
||||
Ave neighs/atom = 11.4816
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
110 0 2.7373476 0 2.7373476 49.916663
|
||||
111 0 0.27920158 0 0.27920158 33.800547
|
||||
112 0 -0.20019322 0 -0.20019322 30.51445
|
||||
113 0 -0.53185019 0 -0.53185019 28.218677
|
||||
114 0 -0.83093001 0 -0.83093001 26.099658
|
||||
115 0 -1.0242231 0 -1.0242231 24.694823
|
||||
116 0 -1.1583232 0 -1.1583232 23.729291
|
||||
117 0 -1.2254882 0 -1.2254882 23.24164
|
||||
118 0 -1.3210175 0 -1.3210175 22.517164
|
||||
119 0 -1.3863132 0 -1.3863132 22.040913
|
||||
120 0 -1.4387351 0 -1.4387351 21.669171
|
||||
Loop time of 0.0104623 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.7373476491 -1.38631322727 -1.43873508821
|
||||
Force two-norm initial, final = 10875.8 508.589
|
||||
Force max component initial, final = 982.141 152.413
|
||||
Final line search alpha, max atom move = 0.000364516 0.0555571
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.00395113 (37.7655)
|
||||
Neigh time (%) = 0.000912726 (8.72396)
|
||||
Comm time (%) = 0.000642478 (6.1409)
|
||||
Outpt time (%) = 0.0040555 (38.763)
|
||||
Other time (%) = 0.000900447 (8.6066)
|
||||
|
||||
Nlocal: 625 ave 635 max 616 min
|
||||
Histogram: 1 0 0 1 0 1 0 0 0 1
|
||||
Nghost: 294.25 ave 298 max 289 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||
Neighs: 7165.25 ave 7309 max 7016 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28661
|
||||
Ave neighs/atom = 11.4644
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
120 0 2.231579 0 2.231579 46.568479
|
||||
121 0 0.10623671 0 0.10623671 32.582536
|
||||
122 0 -0.57013613 0 -0.57013613 27.925741
|
||||
123 0 -0.82491886 0 -0.82491886 26.137265
|
||||
124 0 -1.032301 0 -1.032301 24.65678
|
||||
125 0 -1.1759783 0 -1.1759783 23.611572
|
||||
126 0 -1.2850499 0 -1.2850499 22.811747
|
||||
127 0 -1.3713102 0 -1.3713102 22.160066
|
||||
128 0 -1.421629 0 -1.421629 21.795582
|
||||
129 0 -1.4557009 0 -1.4557009 21.556374
|
||||
130 0 -1.4891168 0 -1.4891168 21.308053
|
||||
Loop time of 0.0116708 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.23157898725 -1.45570090921 -1.48911681685
|
||||
Force two-norm initial, final = 9946.33 373.99
|
||||
Force max component initial, final = 1003.46 83.0505
|
||||
Final line search alpha, max atom move = 0.000997891 0.0828754
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.00466818 (39.9989)
|
||||
Neigh time (%) = 0.0012086 (10.3558)
|
||||
Comm time (%) = 0.00076437 (6.54944)
|
||||
Outpt time (%) = 0.00407952 (34.955)
|
||||
Other time (%) = 0.000950098 (8.14084)
|
||||
|
||||
Nlocal: 625 ave 634 max 616 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Nghost: 294 ave 306 max 285 min
|
||||
Histogram: 1 0 1 0 1 0 0 0 0 1
|
||||
Neighs: 7190.25 ave 7319 max 7089 min
|
||||
Histogram: 2 0 0 0 0 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 28761
|
||||
Ave neighs/atom = 11.5044
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
130 0 2.468581 0 2.468581 48.058148
|
||||
131 0 0.23907579 0 0.23907579 33.424381
|
||||
132 0 -0.57700066 0 -0.57700066 27.834841
|
||||
133 0 -0.78159015 0 -0.78159015 26.389175
|
||||
134 0 -0.96518905 0 -0.96518905 25.087162
|
||||
135 0 -1.1206213 0 -1.1206213 23.938563
|
||||
136 0 -1.2989415 0 -1.2989415 22.649792
|
||||
137 0 -1.3646103 0 -1.3646103 22.169499
|
||||
138 0 -1.404925 0 -1.404925 21.882639
|
||||
139 0 -1.4453211 0 -1.4453211 21.590433
|
||||
140 0 -1.476957 0 -1.476957 21.357542
|
||||
Loop time of 0.0113478 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.46858101287 -1.44532109888 -1.47695704321
|
||||
Force two-norm initial, final = 10339.5 404.157
|
||||
Force max component initial, final = 1066.37 79.792
|
||||
Final line search alpha, max atom move = 0.000516371 0.0412023
|
||||
Iterations, force evaluations = 10 13
|
||||
|
||||
Pair time (%) = 0.00466353 (41.0964)
|
||||
Neigh time (%) = 0.000915468 (8.06738)
|
||||
Comm time (%) = 0.000732958 (6.45905)
|
||||
Outpt time (%) = 0.00408739 (36.0193)
|
||||
Other time (%) = 0.000948429 (8.35785)
|
||||
|
||||
Nlocal: 625 ave 630 max 619 min
|
||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
||||
Nghost: 297 ave 308 max 291 min
|
||||
Histogram: 1 1 1 0 0 0 0 0 0 1
|
||||
Neighs: 7210.75 ave 7293 max 7157 min
|
||||
Histogram: 2 0 0 0 0 1 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28843
|
||||
Ave neighs/atom = 11.5372
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
140 0 2.0546282 0 2.0546282 45.130766
|
||||
141 0 0.063378271 0 0.063378271 32.071438
|
||||
142 0 -0.75409628 0 -0.75409628 26.467076
|
||||
143 0 -0.99188685 0 -0.99188685 24.768145
|
||||
144 0 -1.1940141 0 -1.1940141 23.325743
|
||||
145 0 -1.2863947 0 -1.2863947 22.657693
|
||||
146 0 -1.4049088 0 -1.4049088 21.739543
|
||||
147 0 -1.4732876 0 -1.4732876 21.244532
|
||||
148 0 -1.5158202 0 -1.5158202 20.947078
|
||||
149 0 -1.5492971 0 -1.5492971 20.696077
|
||||
150 0 -1.5871773 0 -1.5871773 20.409409
|
||||
Loop time of 0.0121427 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.05462816117 -1.54929713072 -1.58717731498
|
||||
Force two-norm initial, final = 10054.9 460.349
|
||||
Force max component initial, final = 1183.37 112.406
|
||||
Final line search alpha, max atom move = 0.00067079 0.0754006
|
||||
Iterations, force evaluations = 10 15
|
||||
|
||||
Pair time (%) = 0.00539333 (44.4164)
|
||||
Neigh time (%) = 0.000901341 (7.42293)
|
||||
Comm time (%) = 0.000786364 (6.47605)
|
||||
Outpt time (%) = 0.00408238 (33.6202)
|
||||
Other time (%) = 0.000979245 (8.0645)
|
||||
|
||||
Nlocal: 625 ave 627 max 622 min
|
||||
Histogram: 1 0 0 0 1 0 0 0 0 2
|
||||
Nghost: 296 ave 303 max 292 min
|
||||
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||
Neighs: 7215.25 ave 7277 max 7165 min
|
||||
Histogram: 1 0 0 1 1 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28861
|
||||
Ave neighs/atom = 11.5444
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
150 0 2.1501435 0 2.1501435 45.854873
|
||||
151 0 0.062697748 0 0.062697748 32.113988
|
||||
152 0 -0.57549777 0 -0.57549777 27.750033
|
||||
153 0 -0.81350196 0 -0.81350196 26.101995
|
||||
154 0 -1.0553818 0 -1.0553818 24.383326
|
||||
155 0 -1.205518 0 -1.205518 23.2918
|
||||
156 0 -1.3021965 0 -1.3021965 22.595323
|
||||
157 0 -1.3787145 0 -1.3787145 22.023536
|
||||
158 0 -1.4667773 0 -1.4667773 21.377314
|
||||
159 0 -1.4990249 0 -1.4990249 21.14571
|
||||
160 0 -1.5341333 0 -1.5341333 20.884655
|
||||
Loop time of 0.00999629 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
2.15014348714 -1.49902493946 -1.53413332365
|
||||
Force two-norm initial, final = 9686.62 465.976
|
||||
Force max component initial, final = 1025.75 184.146
|
||||
Final line search alpha, max atom move = 0.000606717 0.111725
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00359142 (35.9275)
|
||||
Neigh time (%) = 0.000905931 (9.06267)
|
||||
Comm time (%) = 0.000550687 (5.50891)
|
||||
Outpt time (%) = 0.00407612 (40.7763)
|
||||
Other time (%) = 0.000872135 (8.72458)
|
||||
|
||||
Nlocal: 625 ave 626 max 624 min
|
||||
Histogram: 1 0 0 0 0 2 0 0 0 1
|
||||
Nghost: 299.5 ave 310 max 292 min
|
||||
Histogram: 1 1 0 0 0 1 0 0 0 1
|
||||
Neighs: 7219.25 ave 7277 max 7155 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 28877
|
||||
Ave neighs/atom = 11.5508
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
160 0 1.8339319 0 1.8339319 43.573087
|
||||
161 0 -0.15883074 0 -0.15883074 30.485408
|
||||
162 0 -0.88242605 0 -0.88242605 25.479286
|
||||
163 0 -1.1028834 0 -1.1028834 23.930039
|
||||
164 0 -1.3016251 0 -1.3016251 22.476064
|
||||
165 0 -1.4075881 0 -1.4075881 21.708433
|
||||
166 0 -1.4998541 0 -1.4998541 21.023248
|
||||
167 0 -1.5636502 0 -1.5636502 20.550491
|
||||
168 0 -1.6221148 0 -1.6221148 20.112975
|
||||
169 0 -1.6633102 0 -1.6633102 19.808456
|
||||
170 0 -1.6929671 0 -1.6929671 19.579216
|
||||
Loop time of 0.00960529 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
1.83393187932 -1.66331017868 -1.69296708374
|
||||
Force two-norm initial, final = 9975.74 475.873
|
||||
Force max component initial, final = 1076.81 151.665
|
||||
Final line search alpha, max atom move = 0.00168794 0.256002
|
||||
Iterations, force evaluations = 10 10
|
||||
|
||||
Pair time (%) = 0.00359744 (37.4527)
|
||||
Neigh time (%) = 0.000600696 (6.2538)
|
||||
Comm time (%) = 0.000516534 (5.3776)
|
||||
Outpt time (%) = 0.00404549 (42.1173)
|
||||
Other time (%) = 0.000845134 (8.79863)
|
||||
|
||||
Nlocal: 625 ave 627 max 624 min
|
||||
Histogram: 2 0 0 1 0 0 0 0 0 1
|
||||
Nghost: 299 ave 310 max 288 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Neighs: 7226.25 ave 7297 max 7198 min
|
||||
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 28905
|
||||
Ave neighs/atom = 11.562
|
||||
Neighbor list builds = 2
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
170 0 1.5622987 0 1.5622987 41.627713
|
||||
171 0 0.20405372 0 0.20405372 32.73863
|
||||
172 0 -0.87631997 0 -0.87631997 25.414386
|
||||
173 0 -1.1619584 0 -1.1619584 23.352987
|
||||
174 0 -1.353506 0 -1.353506 21.988949
|
||||
175 0 -1.4434669 0 -1.4434669 21.346794
|
||||
176 0 -1.5075839 0 -1.5075839 20.864291
|
||||
177 0 -1.5868121 0 -1.5868121 20.27149
|
||||
178 0 -1.6381464 0 -1.6381464 19.889565
|
||||
179 0 -1.6692179 0 -1.6692179 19.666555
|
||||
180 0 -1.70156 0 -1.70156 19.42945
|
||||
Loop time of 0.0104083 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
1.56229868243 -1.66921787874 -1.70155998988
|
||||
Force two-norm initial, final = 9429.39 308.746
|
||||
Force max component initial, final = 1781.79 76.8635
|
||||
Final line search alpha, max atom move = 0.000837531 0.0643756
|
||||
Iterations, force evaluations = 10 11
|
||||
|
||||
Pair time (%) = 0.00394958 (37.9463)
|
||||
Neigh time (%) = 0.00091511 (8.79208)
|
||||
Comm time (%) = 0.000590384 (5.67222)
|
||||
Outpt time (%) = 0.00406975 (39.1008)
|
||||
Other time (%) = 0.00088352 (8.48857)
|
||||
|
||||
Nlocal: 625 ave 627 max 622 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 1 1
|
||||
Nghost: 298.75 ave 305 max 293 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Neighs: 7228.75 ave 7301 max 7151 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
|
||||
Total # of neighbors = 28915
|
||||
Ave neighs/atom = 11.566
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
180 0 1.4799149 0 1.4799149 41.115498
|
||||
181 0 -0.45828563 0 -0.45828563 28.305878
|
||||
182 0 -1.1127382 0 -1.1127382 23.745438
|
||||
183 0 -1.326884 0 -1.326884 22.195474
|
||||
184 0 -1.4902693 0 -1.4902693 21.002247
|
||||
185 0 -1.5727487 0 -1.5727487 20.392828
|
||||
186 0 -1.6421989 0 -1.6421989 19.854484
|
||||
187 0 -1.668478 0 -1.668478 19.66228
|
||||
188 0 -1.7142757 0 -1.7142757 19.337461
|
||||
189 0 -1.7362458 0 -1.7362458 19.174238
|
||||
190 0 -1.7533386 0 -1.7533386 19.045232
|
||||
Loop time of 0.0124404 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
1.47991489058 -1.73624575112 -1.75333859414
|
||||
Force two-norm initial, final = 9131.13 352.22
|
||||
Force max component initial, final = 915.834 100.035
|
||||
Final line search alpha, max atom move = 0.000889415 0.0889726
|
||||
Iterations, force evaluations = 10 15
|
||||
|
||||
Pair time (%) = 0.00540572 (43.4528)
|
||||
Neigh time (%) = 0.00120753 (9.70649)
|
||||
Comm time (%) = 0.000805736 (6.47674)
|
||||
Outpt time (%) = 0.00404233 (32.4934)
|
||||
Other time (%) = 0.000979125 (7.8705)
|
||||
|
||||
Nlocal: 625 ave 631 max 619 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Nghost: 299.5 ave 307 max 290 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
||||
Neighs: 7246.5 ave 7330 max 7147 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 28986
|
||||
Ave neighs/atom = 11.5944
|
||||
Neighbor list builds = 4
|
||||
Dangerous builds = 0
|
||||
minimize 0.001 0.001 10 1000
|
||||
WARNING: Resetting reneighboring criteria during minimization
|
||||
Memory usage per processor = 2.70701 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
190 0 1.4561992 0 1.4561992 40.970034
|
||||
191 0 -0.12263898 0 -0.12263898 30.588401
|
||||
192 0 -0.96453383 0 -0.96453383 24.824541
|
||||
193 0 -1.1578126 0 -1.1578126 23.461941
|
||||
194 0 -1.3007191 0 -1.3007191 22.433693
|
||||
195 0 -1.4026624 0 -1.4026624 21.70126
|
||||
196 0 -1.4911196 0 -1.4911196 21.053133
|
||||
197 0 -1.5634641 0 -1.5634641 20.530531
|
||||
198 0 -1.5924275 0 -1.5924275 20.314473
|
||||
199 0 -1.6303321 0 -1.6303321 20.023515
|
||||
200 0 -1.6520498 0 -1.6520498 19.869534
|
||||
Loop time of 0.0108462 on 4 procs for 10 steps with 2500 atoms
|
||||
|
||||
Minimization stats:
|
||||
Stopping criterion = max iterations
|
||||
Energy initial, next-to-last, final =
|
||||
1.45619920225 -1.63033211038 -1.6520498229
|
||||
Force two-norm initial, final = 8836.39 561.478
|
||||
Force max component initial, final = 1227.95 211.829
|
||||
Final line search alpha, max atom move = 0.000129991 0.0275358
|
||||
Iterations, force evaluations = 10 12
|
||||
|
||||
Pair time (%) = 0.00431436 (39.7777)
|
||||
Neigh time (%) = 0.000909686 (8.38714)
|
||||
Comm time (%) = 0.000643253 (5.93068)
|
||||
Outpt time (%) = 0.00406945 (37.5196)
|
||||
Other time (%) = 0.000909448 (8.38494)
|
||||
|
||||
Nlocal: 625 ave 626 max 623 min
|
||||
Histogram: 1 0 0 0 0 0 1 0 0 2
|
||||
Nghost: 298 ave 306 max 290 min
|
||||
Histogram: 1 0 1 0 0 0 0 1 0 1
|
||||
Neighs: 7246.75 ave 7320 max 7153 min
|
||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
||||
|
||||
Total # of neighbors = 28987
|
||||
Ave neighs/atom = 11.5948
|
||||
Neighbor list builds = 3
|
||||
Dangerous builds = 0
|
||||
271
couple/lammps_spparks/log.spparks.1
Normal file
271
couple/lammps_spparks/log.spparks.1
Normal file
@ -0,0 +1,271 @@
|
||||
SPPARKS (26 Aug 2010)
|
||||
# SPPARKS input for coupling MD/MC
|
||||
|
||||
seed 56789
|
||||
|
||||
app_style potts/strain 100
|
||||
|
||||
dimension 2
|
||||
lattice sq/8n 1.0
|
||||
region box block 0 50 0 50 -0.5 0.5
|
||||
create_box box
|
||||
Created box = (0 0 -0.5) to (50 50 0.5)
|
||||
1 by 1 by 1 processor grid
|
||||
create_sites box
|
||||
Creating sites ...
|
||||
2500 sites
|
||||
2500 sites have 8 neighbors
|
||||
set site range 1 100
|
||||
2500 settings made for site
|
||||
set d1 value 0.0
|
||||
2500 settings made for d1
|
||||
|
||||
sector yes
|
||||
solve_style tree
|
||||
|
||||
diag_style energy
|
||||
|
||||
temperature 1.0
|
||||
|
||||
stats 10.0
|
||||
dump 1 10.0 dump.mc
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
0 0 0 0 0 19766
|
||||
10 17929 0 0 0.0776 5324
|
||||
Loop time of 0.077626 on 1 procs
|
||||
|
||||
Solve time (%) = 0.0070138 (9.03537)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00146031 (1.88122)
|
||||
Outpt time (%) = 0.00415015 (5.34634)
|
||||
App time (%) = 0.0614648 (79.1807)
|
||||
Other time (%) = 0.00353694 (4.55639)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
10 17929 0 0 0 5324
|
||||
20 24582 0 0 0.0279 4750
|
||||
Loop time of 0.027904 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00271416 (9.72676)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000461817 (1.65502)
|
||||
Outpt time (%) = 0.0042181 (15.1165)
|
||||
App time (%) = 0.0191288 (68.5521)
|
||||
Other time (%) = 0.00138116 (4.94967)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
20 24582 0 0 0 4750
|
||||
30 30109 0 0 0.0234 4264
|
||||
Loop time of 0.023375 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00216675 (9.2695)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000342846 (1.46672)
|
||||
Outpt time (%) = 0.00416183 (17.8046)
|
||||
App time (%) = 0.015563 (66.5796)
|
||||
Other time (%) = 0.00114059 (4.87954)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
30 30109 0 0 0 4264
|
||||
40 35032 0 0 0.0208 3880
|
||||
Loop time of 0.020786 on 1 procs
|
||||
|
||||
Solve time (%) = 0.0019896 (9.57182)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000316858 (1.52438)
|
||||
Outpt time (%) = 0.00413609 (19.8984)
|
||||
App time (%) = 0.0132952 (63.962)
|
||||
Other time (%) = 0.00104833 (5.04341)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
40 35032 0 0 0 3880
|
||||
50 39543 0 0 0.0193 3784
|
||||
Loop time of 0.0193491 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00185919 (9.60865)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000333071 (1.72138)
|
||||
Outpt time (%) = 0.00412297 (21.3083)
|
||||
App time (%) = 0.0120728 (62.3946)
|
||||
Other time (%) = 0.000961065 (4.96698)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
50 39543 0 0 0 3784
|
||||
60 43899 0 0 0.0187 3706
|
||||
Loop time of 0.018713 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00176001 (9.40526)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000314474 (1.68051)
|
||||
Outpt time (%) = 0.00413895 (22.118)
|
||||
App time (%) = 0.0116153 (62.0706)
|
||||
Other time (%) = 0.000884295 (4.72556)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
60 43899 0 0 0 3706
|
||||
70 48028 0 0 0.0179 3392
|
||||
Loop time of 0.0178769 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00174618 (9.76781)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000296593 (1.65909)
|
||||
Outpt time (%) = 0.00414801 (23.2032)
|
||||
App time (%) = 0.0108221 (60.5367)
|
||||
Other time (%) = 0.000864029 (4.83322)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
70 48028 0 0 0 3392
|
||||
80 51900 0 0 0.017 3208
|
||||
Loop time of 0.0169971 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00157022 (9.23819)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000290394 (1.70849)
|
||||
Outpt time (%) = 0.00416803 (24.522)
|
||||
App time (%) = 0.0101995 (60.0076)
|
||||
Other time (%) = 0.0007689 (4.52371)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
80 51900 0 0 0 3208
|
||||
90 55450 0 0 0.0159 3162
|
||||
Loop time of 0.0158761 on 1 procs
|
||||
|
||||
Solve time (%) = 0.0014894 (9.38143)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000301123 (1.89671)
|
||||
Outpt time (%) = 0.00413799 (26.0644)
|
||||
App time (%) = 0.00924802 (58.2514)
|
||||
Other time (%) = 0.00069952 (4.40613)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
90 55450 0 0 0 3162
|
||||
100 59009 0 0 0.0158 3038
|
||||
Loop time of 0.0158172 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00142503 (9.00938)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000296831 (1.87664)
|
||||
Outpt time (%) = 0.00412178 (26.0589)
|
||||
App time (%) = 0.00923729 (58.4004)
|
||||
Other time (%) = 0.000736237 (4.65467)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
100 59009 0 0 0 3038
|
||||
110 62454 0 0 0.0155 3066
|
||||
Loop time of 0.015537 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00135612 (8.72834)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000293732 (1.89053)
|
||||
Outpt time (%) = 0.00415182 (26.7221)
|
||||
App time (%) = 0.00904965 (58.2457)
|
||||
Other time (%) = 0.000685692 (4.41328)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
110 62454 0 0 0 3066
|
||||
120 65856 0 0 0.0152 2898
|
||||
Loop time of 0.0152211 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00139046 (9.13505)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000291109 (1.91253)
|
||||
Outpt time (%) = 0.0041492 (27.2595)
|
||||
App time (%) = 0.00871038 (57.2257)
|
||||
Other time (%) = 0.00067997 (4.46728)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
120 65856 0 0 0 2898
|
||||
130 68856 0 0 0.0137 2798
|
||||
Loop time of 0.0137191 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00130701 (9.52695)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000296831 (2.16364)
|
||||
Outpt time (%) = 0.00412989 (30.1032)
|
||||
App time (%) = 0.00742817 (54.1448)
|
||||
Other time (%) = 0.000557184 (4.06138)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
130 68856 0 0 0 2798
|
||||
140 71967 0 0 0.0141 2700
|
||||
Loop time of 0.0141542 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00132799 (9.38232)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000284195 (2.00785)
|
||||
Outpt time (%) = 0.00414681 (29.2974)
|
||||
App time (%) = 0.00777125 (54.9042)
|
||||
Other time (%) = 0.000623941 (4.40817)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
140 71967 0 0 0 2700
|
||||
150 74773 0 0 0.0132 2644
|
||||
Loop time of 0.0131881 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00111961 (8.48956)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000277758 (2.10612)
|
||||
Outpt time (%) = 0.00413394 (31.3459)
|
||||
App time (%) = 0.00711513 (53.951)
|
||||
Other time (%) = 0.000541687 (4.10738)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
150 74773 0 0 0 2644
|
||||
160 77662 0 0 0.0134 2616
|
||||
Loop time of 0.0133891 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00116301 (8.68621)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00027895 (2.08341)
|
||||
Outpt time (%) = 0.00415397 (31.025)
|
||||
App time (%) = 0.00725079 (54.1544)
|
||||
Other time (%) = 0.000542402 (4.05107)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
160 77662 0 0 0 2616
|
||||
170 80475 0 0 0.0131 2538
|
||||
Loop time of 0.0130939 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00108457 (8.28296)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000279665 (2.13583)
|
||||
Outpt time (%) = 0.00412798 (31.5259)
|
||||
App time (%) = 0.00700951 (53.5324)
|
||||
Other time (%) = 0.000592232 (4.52294)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
170 80475 0 0 0 2538
|
||||
180 83407 0 0 0.0136 2660
|
||||
Loop time of 0.0136199 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00117278 (8.61079)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000262737 (1.92907)
|
||||
Outpt time (%) = 0.00413108 (30.3312)
|
||||
App time (%) = 0.0074532 (54.7229)
|
||||
Other time (%) = 0.0006001 (4.40605)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
180 83407 0 0 0 2660
|
||||
190 86407 0 0 0.0138 2656
|
||||
Loop time of 0.013859 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00119066 (8.59124)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000247717 (1.7874)
|
||||
Outpt time (%) = 0.00414801 (29.93)
|
||||
App time (%) = 0.00767326 (55.3665)
|
||||
Other time (%) = 0.000599384 (4.32486)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
190 86407 0 0 0 2656
|
||||
200 88961 0 0 0.0124 2374
|
||||
Loop time of 0.0124531 on 1 procs
|
||||
|
||||
Solve time (%) = 0.00107932 (8.6671)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000233412 (1.87433)
|
||||
Outpt time (%) = 0.00414777 (33.3072)
|
||||
App time (%) = 0.00648117 (52.0447)
|
||||
Other time (%) = 0.000511408 (4.10668)
|
||||
271
couple/lammps_spparks/log.spparks.4
Normal file
271
couple/lammps_spparks/log.spparks.4
Normal file
@ -0,0 +1,271 @@
|
||||
SPPARKS (26 Aug 2010)
|
||||
# SPPARKS input for coupling MD/MC
|
||||
|
||||
seed 56789
|
||||
|
||||
app_style potts/strain 100
|
||||
|
||||
dimension 2
|
||||
lattice sq/8n 1.0
|
||||
region box block 0 50 0 50 -0.5 0.5
|
||||
create_box box
|
||||
Created box = (0 0 -0.5) to (50 50 0.5)
|
||||
2 by 2 by 1 processor grid
|
||||
create_sites box
|
||||
Creating sites ...
|
||||
2500 sites
|
||||
2500 sites have 8 neighbors
|
||||
set site range 1 100
|
||||
2500 settings made for site
|
||||
set d1 value 0.0
|
||||
2500 settings made for d1
|
||||
|
||||
sector yes
|
||||
solve_style tree
|
||||
|
||||
diag_style energy
|
||||
|
||||
temperature 1.0
|
||||
|
||||
stats 10.0
|
||||
dump 1 10.0 dump.mc
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
0 0 0 0 0 19766
|
||||
10 18695 0 0 0.024 5696
|
||||
Loop time of 0.0240365 on 4 procs
|
||||
|
||||
Solve time (%) = 0.0017997 (7.48737)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00263286 (10.9536)
|
||||
Outpt time (%) = 0.00416493 (17.3275)
|
||||
App time (%) = 0.0137114 (57.044)
|
||||
Other time (%) = 0.00172764 (7.18756)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
10 18695 0 0 0 5696
|
||||
20 25730 0 0 0.0114 4806
|
||||
Loop time of 0.0113776 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000647247 (5.68877)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.0013088 (11.5033)
|
||||
Outpt time (%) = 0.00417346 (36.6812)
|
||||
App time (%) = 0.0045594 (40.0733)
|
||||
Other time (%) = 0.000688732 (6.05338)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
20 25730 0 0 0 4806
|
||||
30 31377 0 0 0.00985 4308
|
||||
Loop time of 0.00987101 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000525832 (5.32704)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.0012235 (12.3949)
|
||||
Outpt time (%) = 0.00415748 (42.1181)
|
||||
App time (%) = 0.00343758 (34.825)
|
||||
Other time (%) = 0.000526607 (5.33489)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
30 31377 0 0 0 4308
|
||||
40 36311 0 0 0.0092 3840
|
||||
Loop time of 0.00922179 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000474155 (5.14168)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00114667 (12.4344)
|
||||
Outpt time (%) = 0.00414455 (44.943)
|
||||
App time (%) = 0.00293165 (31.7905)
|
||||
Other time (%) = 0.000524759 (5.69043)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
40 36311 0 0 0 3840
|
||||
50 40886 0 0 0.00891 3534
|
||||
Loop time of 0.0089252 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000433862 (4.86109)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00113171 (12.68)
|
||||
Outpt time (%) = 0.00413698 (46.3517)
|
||||
App time (%) = 0.00268257 (30.0561)
|
||||
Other time (%) = 0.000540078 (6.05116)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
50 40886 0 0 0 3534
|
||||
60 44888 0 0 0.00831 3306
|
||||
Loop time of 0.00833625 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000383437 (4.59963)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00106108 (12.7285)
|
||||
Outpt time (%) = 0.00413227 (49.5699)
|
||||
App time (%) = 0.00232393 (27.8774)
|
||||
Other time (%) = 0.000435531 (5.22455)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
60 44888 0 0 0 3306
|
||||
70 48583 0 0 0.00806 3078
|
||||
Loop time of 0.0080772 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000353277 (4.37375)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00102895 (12.739)
|
||||
Outpt time (%) = 0.0041061 (50.8357)
|
||||
App time (%) = 0.00213838 (26.4742)
|
||||
Other time (%) = 0.000450492 (5.57732)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
70 48583 0 0 0 3078
|
||||
80 52044 0 0 0.00786 2998
|
||||
Loop time of 0.00788343 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000333607 (4.23175)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00101435 (12.8669)
|
||||
Outpt time (%) = 0.00420028 (53.2799)
|
||||
App time (%) = 0.00198931 (25.234)
|
||||
Other time (%) = 0.000345886 (4.3875)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
80 52044 0 0 0 2998
|
||||
90 55352 0 0 0.0083 3026
|
||||
Loop time of 0.00831437 on 4 procs
|
||||
|
||||
Solve time (%) = 0.00031358 (3.77154)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00111783 (13.4445)
|
||||
Outpt time (%) = 0.00467652 (56.2462)
|
||||
App time (%) = 0.00188529 (22.6751)
|
||||
Other time (%) = 0.00032115 (3.86259)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
90 55352 0 0 0 3026
|
||||
100 58494 0 0 0.00733 2742
|
||||
Loop time of 0.00735307 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000297189 (4.0417)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000801027 (10.8938)
|
||||
Outpt time (%) = 0.00418043 (56.8529)
|
||||
App time (%) = 0.00179577 (24.422)
|
||||
Other time (%) = 0.000278652 (3.7896)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
100 58494 0 0 0 2742
|
||||
110 61498 0 0 0.00732 2636
|
||||
Loop time of 0.00733691 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000282168 (3.84587)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000877678 (11.9625)
|
||||
Outpt time (%) = 0.00414526 (56.4987)
|
||||
App time (%) = 0.00174332 (23.7609)
|
||||
Other time (%) = 0.000288486 (3.93199)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
110 61498 0 0 0 2636
|
||||
120 64343 0 0 0.00719 2518
|
||||
Loop time of 0.00721735 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000270605 (3.74937)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00078702 (10.9046)
|
||||
Outpt time (%) = 0.00416625 (57.7254)
|
||||
App time (%) = 0.00162369 (22.497)
|
||||
Other time (%) = 0.000369787 (5.12359)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
120 64343 0 0 0 2518
|
||||
130 66901 0 0 0.00709 2480
|
||||
Loop time of 0.00710845 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000247002 (3.47476)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00100386 (14.1221)
|
||||
Outpt time (%) = 0.00416774 (58.6307)
|
||||
App time (%) = 0.00143349 (20.166)
|
||||
Other time (%) = 0.00025636 (3.60641)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
130 66901 0 0 0 2480
|
||||
140 69617 0 0 0.00723 2462
|
||||
Loop time of 0.00725645 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000262678 (3.61992)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000848353 (11.691)
|
||||
Outpt time (%) = 0.00418752 (57.7076)
|
||||
App time (%) = 0.00152171 (20.9704)
|
||||
Other time (%) = 0.000436187 (6.01102)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
140 69617 0 0 0 2462
|
||||
150 72516 0 0 0.0077 2368
|
||||
Loop time of 0.00771403 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000279188 (3.61922)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00115103 (14.9212)
|
||||
Outpt time (%) = 0.00420797 (54.5495)
|
||||
App time (%) = 0.00164241 (21.2911)
|
||||
Other time (%) = 0.000433445 (5.61892)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
150 72516 0 0 0 2368
|
||||
160 75201 0 0 0.00745 2384
|
||||
Loop time of 0.00747746 on 4 procs
|
||||
|
||||
Solve time (%) = 0.00026089 (3.48901)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00115579 (15.457)
|
||||
Outpt time (%) = 0.00416714 (55.7293)
|
||||
App time (%) = 0.0015164 (20.2796)
|
||||
Other time (%) = 0.000377238 (5.045)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
160 75201 0 0 0 2384
|
||||
170 77794 0 0 0.00709 2286
|
||||
Loop time of 0.00710869 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000261724 (3.68175)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000879705 (12.3751)
|
||||
Outpt time (%) = 0.00419676 (59.0371)
|
||||
App time (%) = 0.00145274 (20.4362)
|
||||
Other time (%) = 0.000317752 (4.46992)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
170 77794 0 0 0 2286
|
||||
180 80320 0 0 0.00723 2186
|
||||
Loop time of 0.00725418 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000241041 (3.32279)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.00100464 (13.8491)
|
||||
Outpt time (%) = 0.00413877 (57.0535)
|
||||
App time (%) = 0.00144053 (19.8579)
|
||||
Other time (%) = 0.000429213 (5.91677)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
180 80320 0 0 0 2186
|
||||
190 82621 0 0 0.00686 2204
|
||||
Loop time of 0.00687295 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000222385 (3.23565)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000860512 (12.5203)
|
||||
Outpt time (%) = 0.00418121 (60.8357)
|
||||
App time (%) = 0.00126499 (18.4053)
|
||||
Other time (%) = 0.000343859 (5.00308)
|
||||
run 10Setting up run ...
|
||||
Time Naccept Nreject Nsweeps CPU Energy
|
||||
190 82621 0 0 0 2204
|
||||
200 84907 0 0 0.00681 2276
|
||||
Loop time of 0.0068413 on 4 procs
|
||||
|
||||
Solve time (%) = 0.000233412 (3.4118)
|
||||
Update time (%) = 0 (0)
|
||||
Comm time (%) = 0.000758171 (11.0823)
|
||||
Outpt time (%) = 0.00421125 (61.5562)
|
||||
App time (%) = 0.00125164 (18.2953)
|
||||
Other time (%) = 0.000386834 (5.65439)
|
||||
1
couple/lammps_spparks/spkpath.h
Normal file
1
couple/lammps_spparks/spkpath.h
Normal file
@ -0,0 +1 @@
|
||||
#define SPKPATH /home/sjplimp/spparks
|
||||
42
couple/library/Makefile.g++
Normal file
42
couple/library/Makefile.g++
Normal file
@ -0,0 +1,42 @@
|
||||
# Makefile for coupling library
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
# System-specific settings
|
||||
|
||||
CC = g++
|
||||
CCFLAGS = -g -O -DMPICH_IGNORE_CXX_SEEK
|
||||
DEPFLAGS = -M
|
||||
LINK = g++
|
||||
LINKFLAGS = -g -O
|
||||
ARCHIVE = ar
|
||||
ARFLAGS = -rc
|
||||
SIZE = size
|
||||
|
||||
# Files
|
||||
|
||||
LIB = libcouple.a
|
||||
SRC = $(wildcard *.cpp)
|
||||
INC = $(wildcard *.h)
|
||||
OBJ = $(SRC:.cpp=.o)
|
||||
|
||||
# Targets
|
||||
|
||||
lib: $(OBJ)
|
||||
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
|
||||
|
||||
clean:
|
||||
rm $(LIB) *.o *.d
|
||||
|
||||
# Compilation rules
|
||||
|
||||
%.o:%.cpp
|
||||
$(CC) $(CCFLAGS) -c $<
|
||||
|
||||
%.d:%.cpp
|
||||
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
|
||||
|
||||
# Individual dependencies
|
||||
|
||||
DEPENDS = $(OBJ:.o=.d)
|
||||
include $(DEPENDS)
|
||||
16
couple/library/README
Normal file
16
couple/library/README
Normal file
@ -0,0 +1,16 @@
|
||||
This directory has a small collection of routines, useful for
|
||||
exchanging data between 2 codes being run together as a coupled
|
||||
application. It is used by the LAMMPS <-> Quest and LAMMPS <->
|
||||
SPPARKS applications in 2 sister directories.
|
||||
|
||||
The library dir has a Makefile (which you may need to edit for your
|
||||
box). If you type
|
||||
|
||||
g++ -f Makefile.g++
|
||||
|
||||
you should create libcouple.a, which the other coupled applications
|
||||
link to.
|
||||
|
||||
Note that the library uses MPI, so the Makefile you use needs to
|
||||
include a path to the MPI include file, if it is not someplace
|
||||
the compiler will find it.
|
||||
42
couple/library/error.cpp
Normal file
42
couple/library/error.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
#include "mpi.h"
|
||||
#include "stdlib.h"
|
||||
#include "stdio.h"
|
||||
#include "error.h"
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Error::Error(MPI_Comm caller)
|
||||
{
|
||||
comm = caller;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
called by all procs
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Error::all(const char *str)
|
||||
{
|
||||
if (me == 0) printf("ERROR: %s\n",str);
|
||||
MPI_Finalize();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
called by one proc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Error::one(const char *str)
|
||||
{
|
||||
printf("ERROR on proc %d: %s\n",me,str);
|
||||
MPI_Abort(comm,1);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
called by one proc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Error::warning(const char *str)
|
||||
{
|
||||
printf("WARNING: %s\n",str);
|
||||
}
|
||||
19
couple/library/error.h
Normal file
19
couple/library/error.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef ERROR_H
|
||||
#define ERROR_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Error {
|
||||
public:
|
||||
Error(MPI_Comm);
|
||||
|
||||
void all(const char *);
|
||||
void one(const char *);
|
||||
void warning(const char *);
|
||||
|
||||
private:
|
||||
MPI_Comm comm;
|
||||
int me;
|
||||
};
|
||||
|
||||
#endif
|
||||
48
couple/library/files.cpp
Normal file
48
couple/library/files.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
#include "stdio.h"
|
||||
#include "string.h"
|
||||
#include "files.h"
|
||||
|
||||
#define MAXLINE 256
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void replace(char *file, char *header, int n, char **lines)
|
||||
{
|
||||
FILE *fpr = fopen(file,"r");
|
||||
FILE *fpw = fopen("tmp.file","w");
|
||||
|
||||
char line[MAXLINE];
|
||||
while (fgets(line,MAXLINE,fpr)) {
|
||||
if (strstr(line,header)) {
|
||||
fprintf(fpw,"%s",line);
|
||||
for (int i = 0; i < n; i++) {
|
||||
fgets(line,MAXLINE,fpr);
|
||||
fprintf(fpw,"%s",lines[i]);
|
||||
}
|
||||
} else fprintf(fpw,"%s",line);
|
||||
}
|
||||
|
||||
fclose(fpr);
|
||||
fclose(fpw);
|
||||
rename("tmp.file",file);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
char **extract(char *file, char *header, int n, char **lines)
|
||||
{
|
||||
FILE *fp = fopen(file,"r");
|
||||
|
||||
char line[MAXLINE];
|
||||
while (fgets(line,MAXLINE,fp)) {
|
||||
if (strstr(line,header)) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
fgets(line,MAXLINE,fp);
|
||||
sprintf(lines[i],"%s",line);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
||||
2
couple/library/files.h
Normal file
2
couple/library/files.h
Normal file
@ -0,0 +1,2 @@
|
||||
void replace(char *, char *, int, char **);
|
||||
char **extract(char *, char *, int, char **);
|
||||
393
couple/library/irregular.cpp
Normal file
393
couple/library/irregular.cpp
Normal file
@ -0,0 +1,393 @@
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "irregular.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
|
||||
|
||||
enum{UNSET,SET};
|
||||
enum{NONE,SAME,VARYING};
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Irregular::Irregular(MPI_Comm caller)
|
||||
{
|
||||
comm = caller;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
memory = new Memory(comm);
|
||||
error = new Error(comm);
|
||||
|
||||
init();
|
||||
|
||||
patternflag = UNSET;
|
||||
sizestyle = NONE;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Irregular::~Irregular()
|
||||
{
|
||||
delete memory;
|
||||
delete error;
|
||||
deallocate();
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
n = # of datums contributed by this proc
|
||||
proclist = which proc each datum is to be sent to
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::pattern(int n, int *proclist)
|
||||
{
|
||||
// free any previous irregular info
|
||||
|
||||
deallocate();
|
||||
init();
|
||||
|
||||
patternflag = SET;
|
||||
sizestyle = NONE;
|
||||
|
||||
ndatumsend = n;
|
||||
|
||||
// list = 1 for procs I send to, including self
|
||||
// nrecv = # of messages I receive, not including self
|
||||
// self = 0 if no data for self, 1 if there is
|
||||
|
||||
int *list = new int[nprocs];
|
||||
int *counts = new int[nprocs];
|
||||
|
||||
for (int i = 0; i < nprocs; i++) {
|
||||
list[i] = 0;
|
||||
counts[i] = 1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < n; i++) list[proclist[i]] = 1;
|
||||
MPI_Reduce_scatter(list,&nrecv,counts,MPI_INT,MPI_SUM,comm);
|
||||
|
||||
self = 0;
|
||||
if (list[me]) self = 1;
|
||||
if (self) nrecv--;
|
||||
|
||||
// storage for recv info, not including self
|
||||
|
||||
recvproc = new int[nrecv];
|
||||
recvcount = new int[nrecv];
|
||||
recvsize = new int[nrecv];
|
||||
request = new MPI_Request[nrecv];
|
||||
status = new MPI_Status[nrecv];
|
||||
|
||||
// list = # of datums to send to each proc, including self
|
||||
// nsend = # of messages I send, not including self
|
||||
|
||||
for (int i = 0; i < nprocs; i++) list[i] = 0;
|
||||
for (int i = 0; i < n; i++) list[proclist[i]]++;
|
||||
|
||||
nsend = 0;
|
||||
for (int i = 0; i < nprocs; i++) if (list[i] > 0) nsend++;
|
||||
if (self) nsend--;
|
||||
|
||||
// storage for send info, including self
|
||||
|
||||
sendproc = new int[nsend+self];
|
||||
sendcount = new int[nsend+self];
|
||||
sendsize = new int[nsend+self];
|
||||
sendindices = (int *) memory->smalloc(n*sizeof(int),"sendindices");
|
||||
|
||||
// setup sendprocs and sendcounts, including self
|
||||
// each proc begins with iproc > me, and continues until iproc = me
|
||||
// list ends up with pointer to which send that proc is associated with
|
||||
|
||||
int iproc = me;
|
||||
int isend = 0;
|
||||
for (int i = 0; i < nprocs; i++) {
|
||||
iproc++;
|
||||
if (iproc == nprocs) iproc = 0;
|
||||
if (list[iproc] > 0) {
|
||||
sendproc[isend] = iproc;
|
||||
sendcount[isend] = list[iproc];
|
||||
list[iproc] = isend;
|
||||
isend++;
|
||||
}
|
||||
}
|
||||
|
||||
// post all receives for datum counts
|
||||
|
||||
for (int i = 0; i < nrecv; i++)
|
||||
MPI_Irecv(&recvcount[i],1,MPI_INT,MPI_ANY_SOURCE,0,comm,&request[i]);
|
||||
|
||||
// barrier to insure receives are posted
|
||||
|
||||
MPI_Barrier(comm);
|
||||
|
||||
// send each datum count, packing buf with needed datums
|
||||
|
||||
for (int i = 0; i < nsend; i++)
|
||||
MPI_Send(&sendcount[i],1,MPI_INT,sendproc[i],0,comm);
|
||||
|
||||
// insure all MPI_ANY_SOURCE messages are received
|
||||
// set recvproc
|
||||
|
||||
if (nrecv) MPI_Waitall(nrecv,request,status);
|
||||
for (int i = 0; i < nrecv; i++) recvproc[i] = status[i].MPI_SOURCE;
|
||||
|
||||
// ndatumrecv = total datums received, including self
|
||||
|
||||
ndatumrecv = 0;
|
||||
for (int i = 0; i < nrecv; i++)
|
||||
ndatumrecv += recvcount[i];
|
||||
if (self) ndatumrecv += sendcount[nsend];
|
||||
|
||||
// setup sendindices, including self
|
||||
// counts = offset into sendindices for each proc I send to
|
||||
// let sc0 = sendcount[0], sc1 = sendcount[1], etc
|
||||
// sendindices[0:sc0-1] = indices of datums in 1st message
|
||||
// sendindices[sc0:sc0+sc1-1] = indices of datums in 2nd message, etc
|
||||
|
||||
counts[0] = 0;
|
||||
for (int i = 1; i < nsend+self; i++)
|
||||
counts[i] = counts[i-1] + sendcount[i-1];
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
isend = list[proclist[i]];
|
||||
sendindices[counts[isend]++] = i;
|
||||
}
|
||||
|
||||
// clean up
|
||||
|
||||
delete [] counts;
|
||||
delete [] list;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
n = size of each received datum
|
||||
return total size in bytes of received data on this proc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
int Irregular::size(int n)
|
||||
{
|
||||
if (patternflag == UNSET) error->all("Cannot size without pattern");
|
||||
sizestyle = SAME;
|
||||
|
||||
nsize = n;
|
||||
|
||||
nsendmax = 0;
|
||||
for (int i = 0; i < nsend+self; i++) {
|
||||
sendsize[i] = nsize * sendcount[i];
|
||||
if (i < nsend) nsendmax = MAX(nsendmax,sendsize[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < nrecv; i++) recvsize[i] = nsize * recvcount[i];
|
||||
nbytesrecv = nsize * ndatumrecv;
|
||||
|
||||
return nbytesrecv;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
slength,rlength = size of each datum to send and recv
|
||||
soffset = offset into eventual buffer of send data for each datum
|
||||
soffset can be NULL, in which case will build sendoffset from slength
|
||||
return total size in bytes of received data on this proc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
int Irregular::size(int *slength, int *soffset, int *rlength)
|
||||
{
|
||||
if (patternflag == UNSET) error->all("Cannot size without pattern");
|
||||
sizestyle = VARYING;
|
||||
|
||||
// store local copy of pointers to send lengths/offsets
|
||||
// if soffset not provided, create local copy from slength
|
||||
|
||||
sendsizedatum = slength;
|
||||
|
||||
if (soffset == NULL) {
|
||||
sendoffsetflag = 1;
|
||||
sendoffset = (int *) memory->smalloc(ndatumsend*sizeof(int),"sendoffset");
|
||||
|
||||
if (ndatumsend) sendoffset[0] = 0;
|
||||
for (int i = 1; i < ndatumsend; i++)
|
||||
sendoffset[i] = sendoffset[i-1] + sendsizedatum[i-1];
|
||||
|
||||
} else {
|
||||
if (sendoffsetflag) memory->sfree(sendoffset);
|
||||
sendoffsetflag = 0;
|
||||
sendoffset = soffset;
|
||||
}
|
||||
|
||||
nsendmax = 0;
|
||||
int m = 0;
|
||||
for (int i = 0; i < nsend+self; i++) {
|
||||
sendsize[i] = 0;
|
||||
for (int j = 0; j < sendcount[i]; j++)
|
||||
sendsize[i] += sendsizedatum[sendindices[m++]];
|
||||
if (i < nsend) nsendmax = MAX(nsendmax,sendsize[i]);
|
||||
}
|
||||
|
||||
nbytesrecv = 0;
|
||||
m = 0;
|
||||
for (int i = 0; i < nrecv; i++) {
|
||||
recvsize[i] = 0;
|
||||
for (int j = 0; j < recvcount[i]; j++) recvsize[i] += rlength[m++];
|
||||
nbytesrecv += recvsize[i];
|
||||
}
|
||||
if (self) nbytesrecv += sendsize[nsend];
|
||||
|
||||
return nbytesrecv;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
wrapper on 2 versions of exchange
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::exchange(char *sendbuf, char *recvbuf)
|
||||
{
|
||||
if (sizestyle == SAME) exchange_same(sendbuf,recvbuf);
|
||||
else if (sizestyle == VARYING) exchange_varying(sendbuf,recvbuf);
|
||||
else error->all("Irregular size was not set");
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
sendbuf = data to send
|
||||
recvbuf = buffer to recv all data into
|
||||
requires nsize,nsendmax,recvsize,sendsize be setup by size(int)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::exchange_same(char *sendbuf, char *recvbuf)
|
||||
{
|
||||
// post all receives
|
||||
|
||||
int recvoffset = 0;
|
||||
for (int irecv = 0; irecv < nrecv; irecv++) {
|
||||
MPI_Irecv(&recvbuf[recvoffset],recvsize[irecv],MPI_BYTE,
|
||||
recvproc[irecv],0,comm,&request[irecv]);
|
||||
recvoffset += recvsize[irecv];
|
||||
}
|
||||
|
||||
// malloc buf for largest send
|
||||
|
||||
char *buf = (char *) memory->smalloc(nsendmax,"buf");
|
||||
|
||||
// barrier to insure receives are posted
|
||||
|
||||
MPI_Barrier(comm);
|
||||
|
||||
// send each message, packing buf with needed datums
|
||||
|
||||
int m = 0;
|
||||
for (int isend = 0; isend < nsend; isend++) {
|
||||
int bufoffset = 0;
|
||||
for (int i = 0; i < sendcount[isend]; i++) {
|
||||
memcpy(&buf[bufoffset],&sendbuf[nsize*sendindices[m++]],nsize);
|
||||
bufoffset += nsize;
|
||||
}
|
||||
MPI_Send(buf,sendsize[isend],MPI_BYTE,sendproc[isend],0,comm);
|
||||
}
|
||||
|
||||
// copy self data directly from sendbuf to recvbuf
|
||||
|
||||
if (self)
|
||||
for (int i = 0; i < sendcount[nsend]; i++) {
|
||||
memcpy(&recvbuf[recvoffset],&sendbuf[nsize*sendindices[m++]],nsize);
|
||||
recvoffset += nsize;
|
||||
}
|
||||
|
||||
// free send buffer
|
||||
|
||||
memory->sfree(buf);
|
||||
|
||||
// wait on all incoming messages
|
||||
|
||||
if (nrecv) MPI_Waitall(nrecv,request,status);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
sendbuf = data to send
|
||||
recvbuf = buffer to recv all data into
|
||||
requires nsendmax,recvsize,sendsize,sendoffset,sendsizedatum
|
||||
be setup by size(int *, int *)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::exchange_varying(char *sendbuf, char *recvbuf)
|
||||
{
|
||||
// post all receives
|
||||
|
||||
int recvoffset = 0;
|
||||
for (int irecv = 0; irecv < nrecv; irecv++) {
|
||||
MPI_Irecv(&recvbuf[recvoffset],recvsize[irecv],MPI_BYTE,
|
||||
recvproc[irecv],0,comm,&request[irecv]);
|
||||
recvoffset += recvsize[irecv];
|
||||
}
|
||||
|
||||
// malloc buf for largest send
|
||||
|
||||
char *buf = (char *) memory->smalloc(nsendmax,"buf");
|
||||
|
||||
// barrier to insure receives are posted
|
||||
|
||||
MPI_Barrier(comm);
|
||||
|
||||
// send each message, packing buf with needed datums
|
||||
|
||||
int index;
|
||||
int m = 0;
|
||||
for (int isend = 0; isend < nsend; isend++) {
|
||||
int bufoffset = 0;
|
||||
for (int i = 0; i < sendcount[isend]; i++) {
|
||||
index = sendindices[m++];
|
||||
memcpy(&buf[bufoffset],&sendbuf[sendoffset[index]],sendsizedatum[index]);
|
||||
bufoffset += sendsizedatum[index];
|
||||
}
|
||||
MPI_Send(buf,sendsize[isend],MPI_BYTE,sendproc[isend],0,comm);
|
||||
}
|
||||
|
||||
// copy self data directly from sendbuf to recvbuf
|
||||
|
||||
if (self)
|
||||
for (int i = 0; i < sendcount[nsend]; i++) {
|
||||
index = sendindices[m++];
|
||||
memcpy(&recvbuf[recvoffset],&sendbuf[sendoffset[index]],
|
||||
sendsizedatum[index]);
|
||||
recvoffset += sendsizedatum[index];
|
||||
}
|
||||
|
||||
// free send buffer
|
||||
|
||||
memory->sfree(buf);
|
||||
|
||||
// wait on all incoming messages
|
||||
|
||||
if (nrecv) MPI_Waitall(nrecv,request,status);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::init()
|
||||
{
|
||||
sendoffsetflag = 0;
|
||||
sendproc = sendcount = sendsize = sendindices = NULL;
|
||||
sendoffset = NULL;
|
||||
recvproc = recvcount = recvsize = NULL;
|
||||
request = NULL;
|
||||
status = NULL;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Irregular::deallocate()
|
||||
{
|
||||
delete [] sendproc;
|
||||
delete [] sendcount;
|
||||
delete [] sendsize;
|
||||
memory->sfree(sendindices);
|
||||
if (sendoffsetflag) memory->sfree(sendoffset);
|
||||
|
||||
delete [] recvproc;
|
||||
delete [] recvcount;
|
||||
delete [] recvsize;
|
||||
|
||||
delete [] request;
|
||||
delete [] status;
|
||||
}
|
||||
58
couple/library/irregular.h
Normal file
58
couple/library/irregular.h
Normal file
@ -0,0 +1,58 @@
|
||||
#ifndef IRREGULAR_H
|
||||
#define IRREGULAR_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Irregular {
|
||||
public:
|
||||
Irregular(MPI_Comm);
|
||||
~Irregular();
|
||||
|
||||
void pattern(int, int *);
|
||||
int size(int);
|
||||
int size(int *, int *, int *);
|
||||
void exchange(char *, char *);
|
||||
|
||||
private:
|
||||
int me,nprocs;
|
||||
|
||||
int patternflag; // UNSET,SET
|
||||
int sizestyle; // NONE,SAME,VARYING
|
||||
|
||||
int self; // 0 = no data to copy to self, 1 = yes
|
||||
|
||||
int ndatumsend; // # of datums to send w/ self
|
||||
int ndatumrecv; // # of datums to recv w/ self
|
||||
int nbytesrecv; // total bytes in received data w/ self
|
||||
int nsend; // # of messages to send w/out self
|
||||
int nrecv; // # of messages to recv w/out self
|
||||
int nsendmax; // # of bytes in largest send message, w/out self
|
||||
|
||||
int *sendproc; // list of procs to send to w/out self
|
||||
int *sendcount; // # of datums to send to each proc w/ self
|
||||
int *sendsize; // # of bytes to send to each proc w/ self
|
||||
int *sendindices; // indices of datums to send to each proc w/ self
|
||||
|
||||
int nsize; // size of every datum in bytes (SAME)
|
||||
int *sendsizedatum; // bytes in each datum to send w/ self (VARYING)
|
||||
int *sendoffset; // byte offset to where each datum starts w/ self
|
||||
int sendoffsetflag; // 1 if allocated sendoffset, 0 if passed in
|
||||
|
||||
int *recvproc; // list of procs to recv from w/out self
|
||||
int *recvcount; // # of datums to recv from each proc w/out self
|
||||
int *recvsize; // # of bytes to recv from each proc w/out self
|
||||
|
||||
MPI_Request *request; // MPI requests for posted recvs
|
||||
MPI_Status *status; // MPI statuses for Waitall
|
||||
MPI_Comm comm; // MPI communicator for all communication
|
||||
|
||||
class Memory *memory;
|
||||
class Error *error;
|
||||
|
||||
void exchange_same(char *, char *);
|
||||
void exchange_varying(char *, char *);
|
||||
void init();
|
||||
void deallocate();
|
||||
};
|
||||
|
||||
#endif
|
||||
249
couple/library/lammps_data_write.cpp
Normal file
249
couple/library/lammps_data_write.cpp
Normal file
@ -0,0 +1,249 @@
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "lammps_data_write.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
#define DELTA 4;
|
||||
|
||||
enum{INT,DOUBLE,DOUBLE2};
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LAMMPSDataWrite::LAMMPSDataWrite(MPI_Comm caller_comm) : Send2One(caller_comm)
|
||||
{
|
||||
outfile = NULL;
|
||||
|
||||
nheader = maxheader = 0;
|
||||
format = NULL;
|
||||
headtype = NULL;
|
||||
ihead = NULL;
|
||||
dhead = NULL;
|
||||
ddhead = NULL;
|
||||
|
||||
nper = maxper = 0;
|
||||
atomtype = NULL;
|
||||
ivec = NULL;
|
||||
dvec = NULL;
|
||||
stride = NULL;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LAMMPSDataWrite::~LAMMPSDataWrite()
|
||||
{
|
||||
delete [] outfile;
|
||||
|
||||
for (int i = 0; i < nheader; i++) delete [] format[i];
|
||||
memory->sfree(format);
|
||||
memory->sfree(headtype);
|
||||
memory->sfree(ihead);
|
||||
memory->sfree(dhead);
|
||||
memory->destroy_2d_double_array(ddhead);
|
||||
|
||||
memory->sfree(atomtype);
|
||||
memory->sfree(ivec);
|
||||
memory->sfree(dvec);
|
||||
memory->sfree(stride);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::pre()
|
||||
{
|
||||
if (me == 0) {
|
||||
fp = fopen(outfile,"w");
|
||||
if (fp == NULL)
|
||||
error->one("Could not open data_write output file");
|
||||
}
|
||||
|
||||
if (me == 0) {
|
||||
fprintf(fp,"%s","LAMMPS data file\n\n");
|
||||
for (int i = 0; i < nheader; i++)
|
||||
if (headtype[i] == INT) fprintf(fp,format[i],ihead[i]);
|
||||
else if (headtype[i] == DOUBLE) fprintf(fp,format[i],dhead[i]);
|
||||
else if (headtype[i] == DOUBLE2) fprintf(fp,format[i],
|
||||
ddhead[i][0],ddhead[i][1]);
|
||||
fprintf(fp,"\nAtoms\n\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
int LAMMPSDataWrite::size()
|
||||
{
|
||||
return nper*nlocal*sizeof(double);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::pack(char *cbuf)
|
||||
{
|
||||
int i,j;
|
||||
|
||||
double *dbuf = (double *) cbuf;
|
||||
|
||||
int m = 0;
|
||||
for (i = 0; i < nlocal; i++)
|
||||
for (j = 0; j < nper; j++) {
|
||||
if (i == 0) {
|
||||
if (atomtype[j] == 0)
|
||||
printf("AT %d %d %p %d\n",
|
||||
atomtype[j],stride[j],ivec[j],ivec[j][0]);
|
||||
else
|
||||
printf("AT %d %d %p %g\n",
|
||||
atomtype[j],stride[j],dvec[j],dvec[j][0]);
|
||||
}
|
||||
if (atomtype[j] == INT) dbuf[m++] = ivec[j][i*stride[j]];
|
||||
else if (atomtype[j] == DOUBLE) dbuf[m++] = dvec[j][i*stride[j]];
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::process(int nbuf, char *cbuf)
|
||||
{
|
||||
int i,j;
|
||||
|
||||
double *dbuf = (double *) cbuf;
|
||||
int n = nbuf/nper/sizeof(double);
|
||||
|
||||
int m = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
for (j = 0; j < nper; j++) {
|
||||
double dvalue = dbuf[m++];
|
||||
if (atomtype[j] == INT) fprintf(fp,"%d ",static_cast<int> (dvalue));
|
||||
else if (atomtype[j] == DOUBLE) fprintf(fp,"%g ",dvalue);
|
||||
}
|
||||
fprintf(fp,"\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::post()
|
||||
{
|
||||
if (me == 0) fclose(fp);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::file(char *fname)
|
||||
{
|
||||
int n = strlen(fname) + 1;
|
||||
outfile = new char[n];
|
||||
strcpy(outfile,fname);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::header(char *str, int ivalue)
|
||||
{
|
||||
if (nheader == maxheader) grow_header();
|
||||
int n = strlen(str) + 2;
|
||||
format[nheader] = new char[n];
|
||||
strcpy(format[nheader],str);
|
||||
format[nheader][n-2] = '\n';
|
||||
format[nheader][n-1] = '\0';
|
||||
headtype[nheader] = INT;
|
||||
ihead[nheader] = ivalue;
|
||||
nheader++;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::header(char *str, double dvalue)
|
||||
{
|
||||
if (nheader == maxheader) grow_header();
|
||||
int n = strlen(str) + 2;
|
||||
format[nheader] = new char[n];
|
||||
strcpy(format[nheader],str);
|
||||
format[nheader][n-2] = '\n';
|
||||
format[nheader][n-1] = '\0';
|
||||
headtype[nheader] = DOUBLE;
|
||||
dhead[nheader] = dvalue;
|
||||
nheader++;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::header(char *str, double dvalue1, double dvalue2)
|
||||
{
|
||||
if (nheader == maxheader) grow_header();
|
||||
int n = strlen(str) + 2;
|
||||
format[nheader] = new char[n];
|
||||
strcpy(format[nheader],str);
|
||||
format[nheader][n-2] = '\n';
|
||||
format[nheader][n-1] = '\0';
|
||||
headtype[nheader] = DOUBLE2;
|
||||
ddhead[nheader][0] = dvalue1;
|
||||
ddhead[nheader][1] = dvalue2;
|
||||
nheader++;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::atoms(int n)
|
||||
{
|
||||
nlocal = n;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::atoms(int *vec)
|
||||
{
|
||||
if (nper == maxper) grow_peratom();
|
||||
atomtype[nper] = INT;
|
||||
ivec[nper] = vec;
|
||||
stride[nper] = 1;
|
||||
nper++;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::atoms(double *vec)
|
||||
{
|
||||
if (nper == maxper) grow_peratom();
|
||||
atomtype[nper] = DOUBLE;
|
||||
dvec[nper] = vec;
|
||||
stride[nper] = 1;
|
||||
nper++;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::atoms(int n, double **vec)
|
||||
{
|
||||
if (nper+n >= maxper) grow_peratom();
|
||||
for (int i = 0; i < n; i++) {
|
||||
atomtype[nper] = DOUBLE;
|
||||
dvec[nper] = &vec[0][i];
|
||||
stride[nper] = n;
|
||||
nper++;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::grow_header()
|
||||
{
|
||||
int n = maxheader + DELTA;
|
||||
format = (char **) memory->srealloc(format,n*sizeof(char *),"ldw:format");
|
||||
headtype = (int *) memory->srealloc(headtype,n*sizeof(int),"ldw:headtype");
|
||||
ihead = (int *) memory->srealloc(ihead,n*sizeof(int),"ldw:ihead");
|
||||
dhead = (double *) memory->srealloc(dhead,n*sizeof(double),"ldw:dhead");
|
||||
ddhead = memory->grow_2d_double_array(ddhead,n,2,"ldw:ddhead");
|
||||
maxheader = n;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void LAMMPSDataWrite::grow_peratom()
|
||||
{
|
||||
int n = maxper + DELTA;
|
||||
atomtype = (int *) memory->srealloc(atomtype,n*sizeof(int *),"ldw:atomtype");
|
||||
ivec = (int **) memory->srealloc(ivec,n*sizeof(int *),"ldw:ihead");
|
||||
dvec = (double **) memory->srealloc(dvec,n*sizeof(double *),"ldw:dhead");
|
||||
stride = (int *) memory->srealloc(stride,n*sizeof(int *),"ldw:stride");
|
||||
maxper = n;
|
||||
}
|
||||
48
couple/library/lammps_data_write.h
Normal file
48
couple/library/lammps_data_write.h
Normal file
@ -0,0 +1,48 @@
|
||||
#ifndef LAMMPS_DATA_WRITE_H
|
||||
#define LAMMPS_DATA_WRITE_H
|
||||
|
||||
#include "send2one.h"
|
||||
#include "stdio.h"
|
||||
|
||||
class LAMMPSDataWrite : public Send2One {
|
||||
public:
|
||||
LAMMPSDataWrite(MPI_Comm);
|
||||
~LAMMPSDataWrite();
|
||||
|
||||
void pre();
|
||||
int size();
|
||||
void pack(char *);
|
||||
void process(int, char *);
|
||||
void post();
|
||||
|
||||
void file(char *);
|
||||
void header(char *, int);
|
||||
void header(char *, double);
|
||||
void header(char *, double, double);
|
||||
void atoms(int);
|
||||
void atoms(int *);
|
||||
void atoms(double *);
|
||||
void atoms(int, double **);
|
||||
|
||||
private:
|
||||
char *outfile;
|
||||
int nlocal;
|
||||
FILE *fp;
|
||||
|
||||
int nheader,maxheader;
|
||||
char **format;
|
||||
int *headtype,*ihead;
|
||||
double *dhead;
|
||||
double **ddhead;
|
||||
|
||||
int nper,maxper;
|
||||
int *atomtype;
|
||||
int **ivec;
|
||||
double **dvec;
|
||||
int *stride;
|
||||
|
||||
void grow_header();
|
||||
void grow_peratom();
|
||||
};
|
||||
|
||||
#endif
|
||||
316
couple/library/many2many.cpp
Normal file
316
couple/library/many2many.cpp
Normal file
@ -0,0 +1,316 @@
|
||||
#include "mpi.h"
|
||||
#include "many2many.h"
|
||||
#include "irregular.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Many2Many::Many2Many(MPI_Comm caller)
|
||||
{
|
||||
comm = caller;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
memory = new Memory(comm);
|
||||
error = new Error(comm);
|
||||
|
||||
src_own = dest_own = NULL;
|
||||
src_off = dest_off = NULL;
|
||||
src_iwork = dest_iwork = NULL;
|
||||
src_dwork = dest_dwork = NULL;
|
||||
irregular = NULL;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Many2Many::~Many2Many()
|
||||
{
|
||||
delete memory;
|
||||
delete error;
|
||||
deallocate();
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
create a many2many pattern, deallocating any previous pattern
|
||||
each proc will contribute nsrc items with IDs listed in id_src
|
||||
each proc will receive ndest items with IDs listed in id_dest
|
||||
only sets up communication via rendezvous algorithm and Irregular class
|
||||
if id_src does not match id_dest on all procs
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Many2Many::setup(int nsrc, int *id_src, int ndest, int *id_dest)
|
||||
{
|
||||
int i,j,isrc,idest,nsend,nrecv;
|
||||
int *proclist,*work;
|
||||
std::map<int,int> hash;
|
||||
std::map<int,int>::iterator loc;
|
||||
|
||||
// free any previous many2many info
|
||||
|
||||
deallocate();
|
||||
|
||||
// allocate on-proc and off-proc index lists
|
||||
|
||||
src_own =
|
||||
(int *) memory->smalloc(nsrc*sizeof(int),"many2many:src_own");
|
||||
dest_own =
|
||||
(int *) memory->smalloc(ndest*sizeof(int),"many2many:dest_own");
|
||||
src_off =
|
||||
(int *) memory->smalloc(nsrc*sizeof(int),"many2many:src_off");
|
||||
dest_off =
|
||||
(int *) memory->smalloc(ndest*sizeof(int),"many2many:dest_off");
|
||||
|
||||
// store destination IDs in hash
|
||||
|
||||
for (int i = 0; i < ndest; i++)
|
||||
hash.insert(std::pair<int,int> (id_dest[i],i));
|
||||
|
||||
// src_own, dest_own = list of IDs in both src and dest
|
||||
// nsrc_off = list of IDs in src owned by other procs
|
||||
|
||||
nown = nsrc_off = 0;
|
||||
nsrc_off = 0;
|
||||
for (i = 0; i < nsrc; i++) {
|
||||
loc = hash.find(id_src[i]);
|
||||
if (loc != hash.end()) {
|
||||
src_own[nown] = i;
|
||||
dest_own[nown] = loc->second;
|
||||
nown++;
|
||||
} else src_off[nsrc_off++] = i;
|
||||
}
|
||||
|
||||
// all done if all procs have one-to-one mapping of src and dest IDs
|
||||
// else figure out irregular comm needed
|
||||
|
||||
int flag = 0;
|
||||
if (nown == nsrc && nown == ndest) flag = 1;
|
||||
int flagall;
|
||||
MPI_Allreduce(&flag,&flagall,1,MPI_INT,MPI_MIN,comm);
|
||||
if (flagall) return;
|
||||
|
||||
// ndest_off = list of IDs in dest owned by other procs
|
||||
|
||||
work = (int *) memory->smalloc(ndest*sizeof(int),"many2many:work");
|
||||
|
||||
for (i = 0; i < ndest; i++) work[i] = 0;
|
||||
for (i = 0; i < nown; i++) work[dest_own[i]] = 1;
|
||||
|
||||
ndest_off = 0;
|
||||
for (i = 0; i < ndest; i++)
|
||||
if (work[i] == 0) dest_off[ndest_off++] = i;
|
||||
|
||||
memory->sfree(work);
|
||||
|
||||
// realloc off-proc arrays to smaller size
|
||||
|
||||
src_off = (int *)
|
||||
memory->srealloc(src_off,nsrc_off*sizeof(int),"many2many:src_off");
|
||||
dest_off = (int *)
|
||||
memory->srealloc(dest_off,ndest_off*sizeof(int),"many2many:dest_off");
|
||||
|
||||
// send off-proc src and dest Datums to 3rd-party proc via irregular comm
|
||||
// proc = ID % nprocs
|
||||
|
||||
nsend = nsrc_off + ndest_off;
|
||||
proclist = new int[nsend];
|
||||
Datum1 *send1 = new Datum1[nsend];
|
||||
|
||||
for (i = 0; i < nsrc_off; i++) {
|
||||
proclist[i] = id_src[src_off[i]] % nprocs;
|
||||
send1[i].id = id_src[src_off[i]];
|
||||
send1[i].proc = me;
|
||||
send1[i].index = src_off[i];
|
||||
}
|
||||
for (i = 0, j = nsrc_off; i < ndest_off; i++, j++) {
|
||||
proclist[j] = id_dest[dest_off[i]] % nprocs;
|
||||
send1[j].id = -id_dest[dest_off[i]];
|
||||
send1[j].proc = me;
|
||||
send1[j].index = dest_off[i];
|
||||
}
|
||||
|
||||
irregular = new Irregular(comm);
|
||||
irregular->pattern(nsend,proclist);
|
||||
nrecv = irregular->size(sizeof(Datum1)) / sizeof(Datum1);
|
||||
Datum1 *recv1 = new Datum1[nrecv];
|
||||
irregular->exchange((char *) send1, (char *) recv1);
|
||||
delete irregular;
|
||||
delete [] proclist;
|
||||
|
||||
// as 3rd-party proc, now have matching pairs of off-proc IDs
|
||||
// store src IDs (which are positive) in hash
|
||||
// loop over dest IDs (which are negative) to find matches
|
||||
// send match info back to src procs via a 2nd irregular comm
|
||||
|
||||
nsend = nrecv/2;
|
||||
proclist = new int[nsend];
|
||||
Datum2 *send2 = new Datum2[nsend];
|
||||
nsend = 0;
|
||||
|
||||
hash.clear();
|
||||
for (isrc = 0; isrc < nrecv; isrc++)
|
||||
if (recv1[isrc].id > 0)
|
||||
hash.insert(std::pair<int,int> (recv1[isrc].id,isrc));
|
||||
|
||||
for (idest = 0; idest < nrecv; idest++)
|
||||
if (recv1[idest].id < 0) {
|
||||
loc = hash.find(-recv1[idest].id);
|
||||
if (loc != hash.end()) {
|
||||
isrc = loc->second;
|
||||
proclist[nsend] = recv1[isrc].proc;
|
||||
send2[nsend].slocal = recv1[isrc].index;
|
||||
send2[nsend].dlocal = recv1[idest].index;
|
||||
send2[nsend].dproc = recv1[idest].proc;
|
||||
nsend++;
|
||||
} else error->one("Did not receive matching src/dest ID");
|
||||
}
|
||||
|
||||
irregular = new Irregular(comm);
|
||||
irregular->pattern(nsend,proclist);
|
||||
nrecv = irregular->size(sizeof(Datum2)) / sizeof(Datum2);
|
||||
Datum2 *recv2 = new Datum2[nrecv];
|
||||
irregular->exchange((char *) send2, (char *) recv2);
|
||||
delete irregular;
|
||||
delete [] proclist;
|
||||
|
||||
// use list of received src->dest Datums to build final irregular commm
|
||||
// irregular comm will communicate off-proc info from src to dest directly
|
||||
// work = local indices of dest IDs to send initially
|
||||
|
||||
nsend = nrecv;
|
||||
proclist = new int[nsend];
|
||||
work = new int[nsend];
|
||||
|
||||
for (i = 0; i < nrecv; i++) {
|
||||
src_off[i] = recv2[i].slocal;
|
||||
work[i] = recv2[i].dlocal;
|
||||
proclist[i] = recv2[i].dproc;
|
||||
}
|
||||
|
||||
irregular = new Irregular(comm);
|
||||
irregular->pattern(nsend,proclist);
|
||||
|
||||
// send receiver's local indices
|
||||
// receiver stores them as indirection list in dest_off
|
||||
|
||||
nrecv = irregular->size(sizeof(int)) / sizeof(int);
|
||||
irregular->exchange((char *) work, (char *) dest_off);
|
||||
|
||||
delete [] proclist;
|
||||
delete [] work;
|
||||
|
||||
// create work arrays for data exchange of int/double data
|
||||
|
||||
src_iwork =
|
||||
(int *) memory->smalloc(nsrc_off*sizeof(int),"many2many:src_iwork");
|
||||
dest_iwork =
|
||||
(int *) memory->smalloc(ndest_off*sizeof(int),"many2many:dest_iwork");
|
||||
src_dwork =
|
||||
(double *) memory->smalloc(nsrc_off*sizeof(double),"many2many:src_dwork");
|
||||
dest_dwork =
|
||||
(double *) memory->smalloc(ndest_off*sizeof(double),
|
||||
"many2many:dest_dwork");
|
||||
|
||||
// clean up
|
||||
|
||||
delete [] send1;
|
||||
delete [] recv1;
|
||||
delete [] send2;
|
||||
delete [] recv2;
|
||||
|
||||
// debug checks for full coverage of srd/dest - can delete eventually
|
||||
|
||||
work = new int[MAX(nsrc,ndest)];
|
||||
|
||||
for (i = 0; i < nsrc; i++) work[i] = 0;
|
||||
for (i = 0; i < nown; i++) work[src_own[i]]++;
|
||||
for (i = 0; i < nsrc_off; i++) work[src_off[i]]++;
|
||||
for (i = 0; i < nsrc; i++)
|
||||
if (work[i] != 1) {
|
||||
char str[128];
|
||||
sprintf(str,"BAD SRC %d: %d %d\n",me,i,work[i]);
|
||||
error->one(str);
|
||||
}
|
||||
|
||||
for (i = 0; i < ndest; i++) work[i] = 0;
|
||||
for (i = 0; i < nown; i++) work[dest_own[i]]++;
|
||||
for (i = 0; i < ndest_off; i++) work[dest_off[i]]++;
|
||||
for (i = 0; i < ndest; i++)
|
||||
if (work[i] != 1) {
|
||||
char str[128];
|
||||
sprintf(str,"BAD DEST %d: %d %d\n",me,i,work[i]);
|
||||
error->one(str);
|
||||
}
|
||||
|
||||
delete [] work;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
transfer one src entity to dest entity, matched by IDs in create()
|
||||
operates on an int vector
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Many2Many::exchange(int *src, int *dest)
|
||||
{
|
||||
int i;
|
||||
|
||||
// copy on-proc info
|
||||
|
||||
for (i = 0; i < nown; i++)
|
||||
dest[dest_own[i]] = src[src_own[i]];
|
||||
|
||||
// communicate off-proc info
|
||||
// user src_off and dest_off to pack/unpack data
|
||||
|
||||
if (irregular) {
|
||||
int nrecv = irregular->size(sizeof(int)) / sizeof(int);
|
||||
for (i = 0; i < nsrc_off; i++) src_iwork[i] = src[src_off[i]];
|
||||
irregular->exchange((char *) src_iwork, (char *) dest_iwork);
|
||||
for (i = 0; i < ndest_off; i++) dest[dest_off[i]] = dest_iwork[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
transfer one src entity to dest entity, matched by IDs in create()
|
||||
operates on a double vector
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Many2Many::exchange(double *src, double *dest)
|
||||
{
|
||||
int i;
|
||||
|
||||
// copy on-proc info
|
||||
|
||||
for (int i = 0; i < nown; i++)
|
||||
dest[dest_own[i]] = src[src_own[i]];
|
||||
|
||||
// communicate off-proc info
|
||||
// user src_off and dest_off to pack/unpack data
|
||||
|
||||
if (irregular) {
|
||||
int nrecv = irregular->size(sizeof(double)) / sizeof(double);
|
||||
for (i = 0; i < nsrc_off; i++) src_dwork[i] = src[src_off[i]];
|
||||
irregular->exchange((char *) src_dwork, (char *) dest_dwork);
|
||||
for (i = 0; i < ndest_off; i++) dest[dest_off[i]] = dest_dwork[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Many2Many::deallocate()
|
||||
{
|
||||
memory->sfree(src_own);
|
||||
memory->sfree(dest_own);
|
||||
memory->sfree(src_off);
|
||||
memory->sfree(dest_off);
|
||||
memory->sfree(src_iwork);
|
||||
memory->sfree(dest_iwork);
|
||||
memory->sfree(src_dwork);
|
||||
memory->sfree(dest_dwork);
|
||||
|
||||
delete irregular;
|
||||
}
|
||||
47
couple/library/many2many.h
Normal file
47
couple/library/many2many.h
Normal file
@ -0,0 +1,47 @@
|
||||
#ifndef MANY2MANY_H
|
||||
#define MANY2MANY_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Many2Many {
|
||||
public:
|
||||
Many2Many(MPI_Comm);
|
||||
~Many2Many();
|
||||
|
||||
void setup(int, int *, int, int *);
|
||||
void exchange(int *, int *);
|
||||
void exchange(double *, double *);
|
||||
|
||||
protected:
|
||||
int me,nprocs;
|
||||
MPI_Comm comm;
|
||||
class Memory *memory;
|
||||
class Error *error;
|
||||
|
||||
int nown; // # of IDs common to src and dest
|
||||
int nsrc_off,ndest_off; // # of off-processor IDs
|
||||
|
||||
int *src_own,*dest_own; // indices of the owned IDs
|
||||
int *src_off,*dest_off; // indices of the off-proc IDs
|
||||
|
||||
int *src_iwork,*dest_iwork; // work arrays for comm of ints
|
||||
double *src_dwork,*dest_dwork; // work arrays for comm of doubles
|
||||
|
||||
class Irregular *irregular; // irregular comm from src->dest
|
||||
|
||||
struct Datum1 {
|
||||
int id; // src or dest global ID
|
||||
int proc; // owning proc
|
||||
int index; // local index on owning proc
|
||||
};
|
||||
|
||||
struct Datum2 {
|
||||
int slocal; // local index of src ID on sending proc
|
||||
int dlocal; // local index of dest ID on receiving proc
|
||||
int dproc; // receiving proc
|
||||
};
|
||||
|
||||
void deallocate();
|
||||
};
|
||||
|
||||
#endif
|
||||
103
couple/library/many2one.cpp
Normal file
103
couple/library/many2one.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
#include "mpi.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "many2one.h"
|
||||
#include "memory.h"
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Many2One::Many2One(MPI_Comm caller_comm)
|
||||
{
|
||||
comm = caller_comm;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
memory = new Memory(comm);
|
||||
|
||||
if (me == 0) {
|
||||
counts = new int[nprocs];
|
||||
multicounts = new int[nprocs];
|
||||
displs = new int[nprocs];
|
||||
multidispls = new int[nprocs];
|
||||
} else counts = multicounts = displs = multidispls = NULL;
|
||||
|
||||
idall = NULL;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Many2One::~Many2One()
|
||||
{
|
||||
delete memory;
|
||||
|
||||
delete [] counts;
|
||||
delete [] multicounts;
|
||||
delete [] displs;
|
||||
delete [] multidispls;
|
||||
|
||||
memory->sfree(idall);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Many2One::setup(int nsrc_in, int *id, int ndest)
|
||||
{
|
||||
nsrc = nsrc_in;
|
||||
MPI_Allreduce(&nsrc,&nall,1,MPI_INT,MPI_SUM,comm);
|
||||
MPI_Gather(&nsrc,1,MPI_INT,counts,1,MPI_INT,0,comm);
|
||||
|
||||
if (me == 0) {
|
||||
displs[0] = 0;
|
||||
for (int i = 1; i < nprocs; i++)
|
||||
displs[i] = displs[i-1] + counts[i-1];
|
||||
}
|
||||
|
||||
// gather IDs into idall
|
||||
|
||||
idall = NULL;
|
||||
if (me == 0)
|
||||
idall = (int *) memory->smalloc(nall*sizeof(int),"many2one:idall");
|
||||
MPI_Gatherv(id,nsrc,MPI_INT,idall,counts,displs,MPI_INT,0,comm);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Many2One::gather(double *src, int n, double *dest)
|
||||
{
|
||||
int i,j,ii,jj,m;
|
||||
|
||||
if (me == 0)
|
||||
for (int i = 0; i < nprocs; i++) {
|
||||
multicounts[i] = n*counts[i];
|
||||
multidispls[i] = n*displs[i];
|
||||
}
|
||||
|
||||
// allgather src into desttmp
|
||||
|
||||
double *desttmp = NULL;
|
||||
if (me == 0)
|
||||
desttmp = (double *) memory->smalloc(n*nall*sizeof(double),
|
||||
"many2one:idsttmp");
|
||||
MPI_Gatherv(src,n*nsrc,MPI_DOUBLE,desttmp,multicounts,multidispls,
|
||||
MPI_DOUBLE,0,comm);
|
||||
|
||||
// use idall to move datums from desttmp to dest
|
||||
|
||||
if (me == 0) {
|
||||
if (n == 1)
|
||||
for (i = 0; i < nall; i++) {
|
||||
j = idall[i] - 1;
|
||||
dest[j] = desttmp[i];
|
||||
}
|
||||
else
|
||||
for (i = 0; i < nall; i++) {
|
||||
j = idall[i] - 1;
|
||||
ii = n*i;
|
||||
jj = n*j;
|
||||
for (m = 0; m < n; m++)
|
||||
dest[jj++] = desttmp[ii++];
|
||||
}
|
||||
}
|
||||
|
||||
memory->sfree(desttmp);
|
||||
}
|
||||
25
couple/library/many2one.h
Normal file
25
couple/library/many2one.h
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef MANY2ONE_H
|
||||
#define MANY2ONE_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Many2One {
|
||||
public:
|
||||
Many2One(MPI_Comm);
|
||||
~Many2One();
|
||||
|
||||
void setup(int, int *, int);
|
||||
void gather(double *, int, double *);
|
||||
|
||||
protected:
|
||||
int me,nprocs;
|
||||
MPI_Comm comm;
|
||||
class Memory *memory;
|
||||
|
||||
int nsrc,nall;
|
||||
int *counts,*multicounts;
|
||||
int *displs,*multidispls;
|
||||
int *idall;
|
||||
};
|
||||
|
||||
#endif
|
||||
120
couple/library/memory.cpp
Normal file
120
couple/library/memory.cpp
Normal file
@ -0,0 +1,120 @@
|
||||
#include "mpi.h"
|
||||
#include "stdlib.h"
|
||||
#include "stdio.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Memory::Memory(MPI_Comm comm)
|
||||
{
|
||||
error = new Error(comm);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Memory::~Memory()
|
||||
{
|
||||
delete error;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
safe malloc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void *Memory::smalloc(int n, const char *name)
|
||||
{
|
||||
if (n == 0) return NULL;
|
||||
void *ptr = malloc(n);
|
||||
if (ptr == NULL) {
|
||||
char str[128];
|
||||
sprintf(str,"Failed to allocate %d bytes for array %s",n,name);
|
||||
error->one(str);
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
safe free
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Memory::sfree(void *ptr)
|
||||
{
|
||||
if (ptr == NULL) return;
|
||||
free(ptr);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
safe realloc
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void *Memory::srealloc(void *ptr, int n, const char *name)
|
||||
{
|
||||
if (n == 0) {
|
||||
sfree(ptr);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ptr = realloc(ptr,n);
|
||||
if (ptr == NULL) {
|
||||
char str[128];
|
||||
sprintf(str,"Failed to reallocate %d bytes for array %s",n,name);
|
||||
error->one(str);
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
create a 2d double array
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double **Memory::create_2d_double_array(int n1, int n2, const char *name)
|
||||
|
||||
{
|
||||
double *data = (double *) smalloc(n1*n2*sizeof(double),name);
|
||||
double **array = (double **) smalloc(n1*sizeof(double *),name);
|
||||
|
||||
int n = 0;
|
||||
for (int i = 0; i < n1; i++) {
|
||||
array[i] = &data[n];
|
||||
n += n2;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
grow or shrink 1st dim of a 2d double array
|
||||
last dim must stay the same
|
||||
if either dim is 0, return NULL
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
double **Memory::grow_2d_double_array(double **array,
|
||||
int n1, int n2, const char *name)
|
||||
|
||||
{
|
||||
if (array == NULL) return create_2d_double_array(n1,n2,name);
|
||||
|
||||
double *data = (double *) srealloc(array[0],n1*n2*sizeof(double),name);
|
||||
array = (double **) srealloc(array,n1*sizeof(double *),name);
|
||||
|
||||
int n = 0;
|
||||
for (int i = 0; i < n1; i++) {
|
||||
array[i] = &data[n];
|
||||
n += n2;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
free a 2d double array
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
void Memory::destroy_2d_double_array(double **array)
|
||||
|
||||
{
|
||||
if (array == NULL) return;
|
||||
sfree(array[0]);
|
||||
sfree(array);
|
||||
}
|
||||
23
couple/library/memory.h
Normal file
23
couple/library/memory.h
Normal file
@ -0,0 +1,23 @@
|
||||
#ifndef MEMORY_H
|
||||
#define MEMORY_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Memory {
|
||||
public:
|
||||
Memory(MPI_Comm);
|
||||
~Memory();
|
||||
|
||||
void *smalloc(int n, const char *);
|
||||
void sfree(void *);
|
||||
void *srealloc(void *, int n, const char *name);
|
||||
|
||||
double **create_2d_double_array(int, int, const char *);
|
||||
double **grow_2d_double_array(double **, int, int, const char *);
|
||||
void destroy_2d_double_array(double **);
|
||||
|
||||
private:
|
||||
class Error *error;
|
||||
};
|
||||
|
||||
#endif
|
||||
76
couple/library/one2many.cpp
Normal file
76
couple/library/one2many.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include "mpi.h"
|
||||
#include "one2many.h"
|
||||
#include "memory.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
One2Many::One2Many(MPI_Comm caller_comm)
|
||||
{
|
||||
comm = caller_comm;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
memory = new Memory(comm);
|
||||
hash = new std::map<int,int>();
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
One2Many::~One2Many()
|
||||
{
|
||||
delete memory;
|
||||
delete hash;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void One2Many::setup(int nsrc_in, int ndest, int *id)
|
||||
{
|
||||
nsrc = nsrc_in;
|
||||
|
||||
// store my local IDs in hash
|
||||
|
||||
hash->clear();
|
||||
for (int i = 0; i < ndest; i++)
|
||||
hash->insert(std::pair<int,int> (id[i],i));
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void One2Many::scatter(double *src, int n, double *dest)
|
||||
{
|
||||
int i,j,k,m;
|
||||
|
||||
// allocate src on procs that don't have it
|
||||
|
||||
int flag = 0;
|
||||
if (src == NULL) {
|
||||
src = (double *) memory->smalloc(n*nsrc*sizeof(double),"one2many:src");
|
||||
flag = 1;
|
||||
}
|
||||
|
||||
// broadcast src from 0 to other procs
|
||||
|
||||
MPI_Bcast(src,n*nsrc,MPI_DOUBLE,0,comm);
|
||||
|
||||
// each proc loops over entire src
|
||||
// if I own the global ID, copy src values into dest
|
||||
|
||||
std::map<int,int>::iterator loc;
|
||||
for (m = 1; m <= nsrc; m++) {
|
||||
loc = hash->find(m);
|
||||
if (loc == hash->end()) continue;
|
||||
i = n*loc->second;
|
||||
j = 3*(m-1);
|
||||
if (n == 1) dest[i] = src[j];
|
||||
else
|
||||
for (k = 0; k < n; k++)
|
||||
dest[i++] = src[j++];
|
||||
}
|
||||
|
||||
// free locally allocated src
|
||||
|
||||
if (flag) memory->sfree(src);
|
||||
}
|
||||
24
couple/library/one2many.h
Normal file
24
couple/library/one2many.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef ONE2MANY_H
|
||||
#define ONE2MANY_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
class One2Many {
|
||||
public:
|
||||
One2Many(MPI_Comm);
|
||||
~One2Many();
|
||||
|
||||
void setup(int, int, int *);
|
||||
void scatter(double *, int, double *);
|
||||
|
||||
protected:
|
||||
int me,nprocs;
|
||||
MPI_Comm comm;
|
||||
class Memory *memory;
|
||||
std::map<int,int> *hash;
|
||||
int nsrc;
|
||||
};
|
||||
|
||||
#endif
|
||||
83
couple/library/send2one.cpp
Normal file
83
couple/library/send2one.cpp
Normal file
@ -0,0 +1,83 @@
|
||||
#include "mpi.h"
|
||||
#include "stdlib.h"
|
||||
#include "stdio.h"
|
||||
#include "send2one.h"
|
||||
#include "memory.h"
|
||||
#include "error.h"
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Send2One::Send2One(MPI_Comm caller_comm)
|
||||
{
|
||||
comm = caller_comm;
|
||||
MPI_Comm_rank(comm,&me);
|
||||
MPI_Comm_size(comm,&nprocs);
|
||||
|
||||
memory = new Memory(comm);
|
||||
error = new Error(comm);
|
||||
|
||||
buf = NULL;
|
||||
maxbuf = 0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Send2One::~Send2One()
|
||||
{
|
||||
delete memory;
|
||||
delete error;
|
||||
memory->sfree(buf);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void Send2One::execute()
|
||||
{
|
||||
int nme,nmax,nsize,ping;
|
||||
MPI_Status status;
|
||||
MPI_Request request;
|
||||
|
||||
// pre-processing before ping loop
|
||||
|
||||
pre();
|
||||
|
||||
// nme = size of data I contribute, in bytes
|
||||
// nmax = max size of data on any proc, in bytes
|
||||
// reallocate buf if necessary
|
||||
|
||||
nme = size();
|
||||
MPI_Allreduce(&nme,&nmax,1,MPI_INT,MPI_MAX,comm);
|
||||
|
||||
if (nmax > maxbuf) {
|
||||
maxbuf = nmax;
|
||||
memory->sfree(buf);
|
||||
buf = (char *) memory->smalloc(maxbuf,"foo:buf");
|
||||
}
|
||||
|
||||
// pack my data into buf
|
||||
|
||||
pack(buf);
|
||||
|
||||
// proc 0 pings each proc, receives its data
|
||||
// all other procs wait for ping, send their data to proc 0
|
||||
// invoke process() to work with data
|
||||
|
||||
if (me == 0) {
|
||||
for (int iproc = 0; iproc < nprocs; iproc++) {
|
||||
if (iproc) {
|
||||
MPI_Irecv(buf,maxbuf,MPI_CHAR,iproc,0,comm,&request);
|
||||
MPI_Send(&ping,0,MPI_INT,iproc,0,comm);
|
||||
MPI_Wait(&request,&status);
|
||||
MPI_Get_count(&status,MPI_CHAR,&nsize);
|
||||
} else nsize = nme;
|
||||
|
||||
process(nsize,buf);
|
||||
}
|
||||
|
||||
} else {
|
||||
MPI_Recv(&ping,0,MPI_INT,0,0,comm,&status);
|
||||
MPI_Rsend(buf,nme,MPI_CHAR,0,0,comm);
|
||||
}
|
||||
|
||||
post();
|
||||
}
|
||||
29
couple/library/send2one.h
Normal file
29
couple/library/send2one.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef SEND2ONE_H
|
||||
#define SEND2ONE_H
|
||||
|
||||
#include "mpi.h"
|
||||
|
||||
class Send2One {
|
||||
public:
|
||||
Send2One(MPI_Comm);
|
||||
virtual ~Send2One();
|
||||
|
||||
void execute();
|
||||
|
||||
protected:
|
||||
int me,nprocs;
|
||||
MPI_Comm comm;
|
||||
class Memory *memory;
|
||||
class Error *error;
|
||||
|
||||
int maxbuf;
|
||||
char *buf;
|
||||
|
||||
virtual void pre() = 0;
|
||||
virtual int size() = 0;
|
||||
virtual void pack(char *) = 0;
|
||||
virtual void process(int, char *) = 0;
|
||||
virtual void post() = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
78
couple/simple/README
Normal file
78
couple/simple/README
Normal file
@ -0,0 +1,78 @@
|
||||
This directory has a simple C, C++, and Fortran code that shows how
|
||||
LAMMPS can be linked to a driver application as a library. The purpose
|
||||
is to illustrate how another code could perform computations while
|
||||
using LAMMPS to perform MD on all or a subset of the processors, or
|
||||
how an umbrella code or script could call both LAMMPS and some other
|
||||
code to perform a coupled calculation.
|
||||
|
||||
simple.cpp is the C++ driver
|
||||
simple.c is the C driver
|
||||
simple.f90 is the Fortran driver
|
||||
libfwrapper.c is the Fortran-to-C wrapper
|
||||
|
||||
The 3 codes do the same thing, so you can compare them to see how to
|
||||
drive LAMMPS in this manner. The C driver is similar in spirit to what
|
||||
one could use to write a scripting language interface. The Fortran
|
||||
driver in addition requires a wrapper library that interfaces the C
|
||||
interface of the LAMMPS library to Fortran and also translates the MPI
|
||||
communicator from Fortran to C.
|
||||
|
||||
You can then build either driver code with a compile line something
|
||||
like this, which includes paths to the LAMMPS library interface, MPI,
|
||||
and FFTW (assuming you built LAMMPS as a library with its PPPM
|
||||
solver).
|
||||
|
||||
This builds the C++ driver with the LAMMPS library using a C++ compiler:
|
||||
|
||||
g++ -I/home/sjplimp/lammps/src -c simple.cpp
|
||||
g++ -L/home/sjplimp/lammps/src simple.o \
|
||||
-llmp_g++ -lfftw -lmpich -lpthread -o simpleCC
|
||||
|
||||
This builds the C driver with the LAMMPS library using a C compiler:
|
||||
|
||||
gcc -I/home/sjplimp/lammps/src -c simple.c
|
||||
gcc -L/home/sjplimp/lammps/src simple.o \
|
||||
-llmp_g++ -lfftw -lmpich -lpthread -lstdc++ -o simpleC
|
||||
|
||||
This builds the Fortran wrapper and driver with the LAMMPS library
|
||||
using a Fortran and C compiler:
|
||||
|
||||
cp ../fortran/libfwrapper.c .
|
||||
gcc -I/home/sjplimp/lammps/src -c libfwrapper.c
|
||||
gfortran -I/home/sjplimp/lammps/src -c simple.f90
|
||||
gfortran -L/home/sjplimp/lammps/src simple.o libfwrapper.o \
|
||||
-llmp_g++ -lfftw -lfmpich -lmpich -lpthread -lstdc++ -o simpleF
|
||||
|
||||
You then run simpleCC, simpleC, or simpleF on a parallel machine
|
||||
on some number of processors Q with 2 arguments:
|
||||
|
||||
mpirun -np Q simpleCC P in.lj
|
||||
|
||||
P is the number of procs you want LAMMPS to run on (must be <= Q) and
|
||||
in.lj is a LAMMPS input script.
|
||||
|
||||
The driver will launch LAMMPS on P procs, read the input script a line
|
||||
at a time, and pass each command line to LAMMPS. The final line of
|
||||
the script is a "run" command, so LAMMPS will run the problem.
|
||||
|
||||
The driver then requests all the atom coordinates from LAMMPS, moves
|
||||
one of the atoms a small amount "epsilon", passes the coordinates back
|
||||
to LAMMPS, and runs LAMMPS again. If you look at the output, you
|
||||
should see a small energy change between runs, due to the moved atom.
|
||||
|
||||
The C driver is calling C-style routines in the src/library.cpp file
|
||||
of LAMMPS. You could add any functions you wish to this file to
|
||||
manipulate LAMMPS data however you wish.
|
||||
|
||||
The Fortran driver is using the same C-style routines, but requires an
|
||||
additional wrapper to make them Fortran callable. Only a subset of the
|
||||
library functions are currently wrapped, but it should be clear how to
|
||||
extend the wrapper if desired.
|
||||
|
||||
The C++ driver does the same thing, except that it instantiates LAMMPS
|
||||
as an object first. Some of the functions in src/library.cpp can be
|
||||
invoked directly as methods within appropriate LAMMPS classes, which
|
||||
is what the driver does. Any public LAMMPS class method could be
|
||||
called from the driver this way. However the get/put functions are
|
||||
only implemented in src/library.cpp, so the C++ driver calls them as
|
||||
C-style functions.
|
||||
24
couple/simple/in.lj
Normal file
24
couple/simple/in.lj
Normal file
@ -0,0 +1,24 @@
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
units lj
|
||||
atom_style atomic
|
||||
atom_modify map array
|
||||
|
||||
lattice fcc 0.8442
|
||||
region box block 0 4 0 4 0 4
|
||||
create_box 1 box
|
||||
create_atoms 1 box
|
||||
mass 1 1.0
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
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
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
run 10
|
||||
|
||||
124
couple/simple/log.simple.c++.1
Normal file
124
couple/simple/log.simple.c++.1
Normal file
@ -0,0 +1,124 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
|
||||
|
||||
units lj
|
||||
|
||||
atom_style atomic
|
||||
|
||||
atom_modify map array
|
||||
|
||||
|
||||
|
||||
lattice fcc 0.8442
|
||||
|
||||
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
|
||||
region box block 0 4 0 4 0 4
|
||||
|
||||
create_box 1 box
|
||||
|
||||
Created orthogonal box = (0 0 0) to (6.71838 6.71838 6.71838)
|
||||
1 by 1 by 1 processor grid
|
||||
create_atoms 1 box
|
||||
|
||||
Created 256 atoms
|
||||
mass 1 1.0
|
||||
|
||||
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
|
||||
|
||||
run 10
|
||||
|
||||
Memory usage per processor = 1.50139 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.44 -6.7733681 0 -4.6218056 -5.0244179
|
||||
10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175
|
||||
Loop time of 0.00370193 on 1 procs for 10 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.00340414 (91.9559)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.000165701 (4.47607)
|
||||
Outpt time (%) = 2.31266e-05 (0.624718)
|
||||
Other time (%) = 0.000108957 (2.94326)
|
||||
|
||||
Nlocal: 256 ave 256 max 256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1431 ave 1431 max 1431 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 9984 ave 9984 max 9984 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 9984
|
||||
Ave neighs/atom = 39
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
run 10
|
||||
Memory usage per processor = 1.50139 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175
|
||||
20 0.6239063 -5.557644 0 -4.6254403 0.97451173
|
||||
Loop time of 0.00365806 on 1 procs for 10 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.0033741 (92.2375)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.000161886 (4.42547)
|
||||
Outpt time (%) = 1.09673e-05 (0.299811)
|
||||
Other time (%) = 0.000111103 (3.03722)
|
||||
|
||||
Nlocal: 256 ave 256 max 256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1431 ave 1431 max 1431 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 9952 ave 9952 max 9952 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 9952
|
||||
Ave neighs/atom = 38.875
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
run 1
|
||||
Memory usage per processor = 1.50139 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
20 0.6239063 -5.5404291 0 -4.6082254 1.0394285
|
||||
21 0.63845863 -5.5628733 0 -4.6089263 0.99398278
|
||||
Loop time of 0.000490904 on 1 procs for 1 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.000452042 (92.0835)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 1.69277e-05 (3.44828)
|
||||
Outpt time (%) = 1.00136e-05 (2.03983)
|
||||
Other time (%) = 1.19209e-05 (2.42836)
|
||||
|
||||
Nlocal: 256 ave 256 max 256 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 1431 ave 1431 max 1431 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 9705 ave 9705 max 9705 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 9705
|
||||
Ave neighs/atom = 37.9102
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
124
couple/simple/log.simple.c++.4
Normal file
124
couple/simple/log.simple.c++.4
Normal file
@ -0,0 +1,124 @@
|
||||
LAMMPS (20 Sep 2010)
|
||||
# 3d Lennard-Jones melt
|
||||
|
||||
|
||||
|
||||
units lj
|
||||
|
||||
atom_style atomic
|
||||
|
||||
atom_modify map array
|
||||
|
||||
|
||||
|
||||
lattice fcc 0.8442
|
||||
|
||||
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
|
||||
region box block 0 4 0 4 0 4
|
||||
|
||||
create_box 1 box
|
||||
|
||||
Created orthogonal box = (0 0 0) to (6.71838 6.71838 6.71838)
|
||||
1 by 2 by 2 processor grid
|
||||
create_atoms 1 box
|
||||
|
||||
Created 256 atoms
|
||||
mass 1 1.0
|
||||
|
||||
|
||||
|
||||
velocity all create 1.44 87287 loop geom
|
||||
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
fix 1 all nve
|
||||
|
||||
|
||||
|
||||
run 10
|
||||
|
||||
Memory usage per processor = 1.48354 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
0 1.44 -6.7733681 0 -4.6218056 -5.0244179
|
||||
10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175
|
||||
Loop time of 0.00202775 on 4 procs for 10 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.00085938 (42.381)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.00108671 (53.592)
|
||||
Outpt time (%) = 2.79546e-05 (1.3786)
|
||||
Other time (%) = 5.37038e-05 (2.64844)
|
||||
|
||||
Nlocal: 64 ave 64 max 64 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 843 ave 843 max 843 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 2496 ave 2496 max 2496 min
|
||||
Histogram: 4 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 9984
|
||||
Ave neighs/atom = 39
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
|
||||
|
||||
run 10
|
||||
Memory usage per processor = 1.48354 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
10 1.1298532 -6.3095502 0 -4.6213906 -2.6058175
|
||||
20 0.6239063 -5.557644 0 -4.6254403 0.97451173
|
||||
Loop time of 0.00224167 on 4 procs for 10 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.000862718 (38.4855)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.00127524 (56.888)
|
||||
Outpt time (%) = 5.19753e-05 (2.31859)
|
||||
Other time (%) = 5.17368e-05 (2.30796)
|
||||
|
||||
Nlocal: 64 ave 69 max 59 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Nghost: 843 ave 848 max 838 min
|
||||
Histogram: 1 0 0 0 1 0 1 0 0 1
|
||||
Neighs: 2488 ave 2745 max 2319 min
|
||||
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 9952
|
||||
Ave neighs/atom = 38.875
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
run 1
|
||||
Memory usage per processor = 1.48354 Mbytes
|
||||
Step Temp E_pair E_mol TotEng Press
|
||||
20 0.6239063 -5.5404291 0 -4.6082254 1.0394285
|
||||
21 0.63845863 -5.5628733 0 -4.6089263 0.99398278
|
||||
Loop time of 0.000325441 on 4 procs for 1 steps with 256 atoms
|
||||
|
||||
Pair time (%) = 0.000120759 (37.1062)
|
||||
Neigh time (%) = 0 (0)
|
||||
Comm time (%) = 0.000165045 (50.7143)
|
||||
Outpt time (%) = 2.86698e-05 (8.80952)
|
||||
Other time (%) = 1.09673e-05 (3.36996)
|
||||
|
||||
Nlocal: 64 ave 70 max 58 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Nghost: 843 ave 849 max 837 min
|
||||
Histogram: 1 0 0 0 1 1 0 0 0 1
|
||||
Neighs: 2426.25 ave 2704 max 2229 min
|
||||
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 9705
|
||||
Ave neighs/atom = 37.9102
|
||||
Neighbor list builds = 0
|
||||
Dangerous builds = 0
|
||||
116
couple/simple/simple.c
Normal file
116
couple/simple/simple.c
Normal file
@ -0,0 +1,116 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
www.cs.sandia.gov/~sjplimp/lammps.html
|
||||
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
|
||||
|
||||
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.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* c_driver = simple example of how an umbrella program
|
||||
can invoke LAMMPS as a library on some subset of procs
|
||||
Syntax: c_driver P in.lammps
|
||||
P = # of procs to run LAMMPS on
|
||||
must be <= # of procs the driver code itself runs on
|
||||
in.lammps = LAMMPS input script
|
||||
See README for compilation instructions */
|
||||
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "mpi.h"
|
||||
#include "library.h" /* this is a LAMMPS include file */
|
||||
|
||||
int main(int narg, char **arg)
|
||||
{
|
||||
/* setup MPI and various communicators
|
||||
driver runs on all procs in MPI_COMM_WORLD
|
||||
comm_lammps only has 1st P procs (could be all or any subset) */
|
||||
|
||||
MPI_Init(&narg,&arg);
|
||||
|
||||
if (narg != 3) {
|
||||
printf("Syntax: c_driver P in.lammps\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int me,nprocs;
|
||||
MPI_Comm_rank(MPI_COMM_WORLD,&me);
|
||||
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
|
||||
|
||||
int nprocs_lammps = atoi(arg[1]);
|
||||
if (nprocs_lammps > nprocs) {
|
||||
if (me == 0)
|
||||
printf("ERROR: LAMMPS cannot use more procs than available\n");
|
||||
MPI_Abort(MPI_COMM_WORLD,1);
|
||||
}
|
||||
|
||||
int lammps;
|
||||
if (me < nprocs_lammps) lammps = 1;
|
||||
else lammps = MPI_UNDEFINED;
|
||||
MPI_Comm comm_lammps;
|
||||
MPI_Comm_split(MPI_COMM_WORLD,lammps,0,&comm_lammps);
|
||||
|
||||
/* open LAMMPS input script */
|
||||
|
||||
FILE *fp;
|
||||
if (me == 0) {
|
||||
fp = fopen(arg[2],"r");
|
||||
if (fp == NULL) {
|
||||
printf("ERROR: Could not open LAMMPS input script\n");
|
||||
MPI_Abort(MPI_COMM_WORLD,1);
|
||||
}
|
||||
}
|
||||
|
||||
/* run the input script thru LAMMPS one line at a time until end-of-file
|
||||
driver proc 0 reads a line, Bcasts it to all procs
|
||||
(could just send it to proc 0 of comm_lammps and let it Bcast)
|
||||
all LAMMPS procs call lammps_command() on the line */
|
||||
|
||||
void *ptr;
|
||||
if (lammps == 1) lammps_open(0,NULL,comm_lammps,&ptr);
|
||||
|
||||
int n;
|
||||
char line[1024];
|
||||
while (1) {
|
||||
if (me == 0) {
|
||||
if (fgets(line,1024,fp) == NULL) n = 0;
|
||||
else n = strlen(line) + 1;
|
||||
if (n == 0) fclose(fp);
|
||||
}
|
||||
MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);
|
||||
if (n == 0) break;
|
||||
MPI_Bcast(line,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
||||
if (lammps == 1) lammps_command(ptr,line);
|
||||
}
|
||||
|
||||
/* run 10 more steps
|
||||
get coords from LAMMPS
|
||||
change coords of 1st atom
|
||||
put coords back into LAMMPS
|
||||
run a single step with changed coords */
|
||||
|
||||
if (lammps == 1) {
|
||||
lammps_command(ptr,"run 10");
|
||||
|
||||
int natoms = lammps_get_natoms(ptr);
|
||||
double *x = (double *) malloc(3*natoms*sizeof(double));
|
||||
lammps_get_coords(ptr,x);
|
||||
double epsilon = 0.1;
|
||||
x[0] += epsilon;
|
||||
lammps_put_coords(ptr,x);
|
||||
free(x);
|
||||
|
||||
lammps_command(ptr,"run 1");
|
||||
}
|
||||
|
||||
if (lammps == 1) lammps_close(ptr);
|
||||
|
||||
/* close down MPI */
|
||||
|
||||
MPI_Finalize();
|
||||
}
|
||||
121
couple/simple/simple.cpp
Normal file
121
couple/simple/simple.cpp
Normal file
@ -0,0 +1,121 @@
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
www.cs.sandia.gov/~sjplimp/lammps.html
|
||||
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
|
||||
|
||||
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.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
// c++_driver = simple example of how an umbrella program
|
||||
// can invoke LAMMPS as a library on some subset of procs
|
||||
// Syntax: c++_driver P in.lammps
|
||||
// P = # of procs to run LAMMPS on
|
||||
// must be <= # of procs the driver code itself runs on
|
||||
// in.lammps = LAMMPS input script
|
||||
// See README for compilation instructions
|
||||
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "mpi.h"
|
||||
#include "lammps.h" // these are LAMMPS include files
|
||||
#include "input.h"
|
||||
#include "atom.h"
|
||||
#include "library.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
int main(int narg, char **arg)
|
||||
{
|
||||
// setup MPI and various communicators
|
||||
// driver runs on all procs in MPI_COMM_WORLD
|
||||
// comm_lammps only has 1st P procs (could be all or any subset)
|
||||
|
||||
MPI_Init(&narg,&arg);
|
||||
|
||||
if (narg != 3) {
|
||||
printf("Syntax: c++_driver P in.lammps\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int me,nprocs;
|
||||
MPI_Comm_rank(MPI_COMM_WORLD,&me);
|
||||
MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
|
||||
|
||||
int nprocs_lammps = atoi(arg[1]);
|
||||
if (nprocs_lammps > nprocs) {
|
||||
if (me == 0)
|
||||
printf("ERROR: LAMMPS cannot use more procs than available\n");
|
||||
MPI_Abort(MPI_COMM_WORLD,1);
|
||||
}
|
||||
|
||||
int lammps;
|
||||
if (me < nprocs_lammps) lammps = 1;
|
||||
else lammps = MPI_UNDEFINED;
|
||||
MPI_Comm comm_lammps;
|
||||
MPI_Comm_split(MPI_COMM_WORLD,lammps,0,&comm_lammps);
|
||||
|
||||
// open LAMMPS input script
|
||||
|
||||
FILE *fp;
|
||||
if (me == 0) {
|
||||
fp = fopen(arg[2],"r");
|
||||
if (fp == NULL) {
|
||||
printf("ERROR: Could not open LAMMPS input script\n");
|
||||
MPI_Abort(MPI_COMM_WORLD,1);
|
||||
}
|
||||
}
|
||||
|
||||
// run the input script thru LAMMPS one line at a time until end-of-file
|
||||
// driver proc 0 reads a line, Bcasts it to all procs
|
||||
// (could just send it to proc 0 of comm_lammps and let it Bcast)
|
||||
// all LAMMPS procs call input->one() on the line
|
||||
|
||||
LAMMPS *lmp;
|
||||
if (lammps == 1) lmp = new LAMMPS(0,NULL,comm_lammps);
|
||||
|
||||
int n;
|
||||
char line[1024];
|
||||
while (1) {
|
||||
if (me == 0) {
|
||||
if (fgets(line,1024,fp) == NULL) n = 0;
|
||||
else n = strlen(line) + 1;
|
||||
if (n == 0) fclose(fp);
|
||||
}
|
||||
MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);
|
||||
if (n == 0) break;
|
||||
MPI_Bcast(line,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
||||
if (lammps == 1) lmp->input->one(line);
|
||||
}
|
||||
|
||||
// run 10 more steps
|
||||
// get coords from LAMMPS
|
||||
// change coords of 1st atom
|
||||
// put coords back into LAMMPS
|
||||
// run a single step with changed coords
|
||||
|
||||
if (lammps == 1) {
|
||||
lmp->input->one("run 10");
|
||||
|
||||
int natoms = static_cast<int> (lmp->atom->natoms);
|
||||
double *x = new double[3*natoms];
|
||||
lammps_get_coords(lmp,x); // no LAMMPS class function for this
|
||||
double epsilon = 0.1;
|
||||
x[0] += epsilon;
|
||||
lammps_put_coords(lmp,x); // no LAMMPS class function for this
|
||||
delete [] x;
|
||||
|
||||
lmp->input->one("run 1");
|
||||
}
|
||||
|
||||
if (lammps == 1) delete lmp;
|
||||
|
||||
// close down MPI
|
||||
|
||||
MPI_Finalize();
|
||||
}
|
||||
135
couple/simple/simple.f90
Normal file
135
couple/simple/simple.f90
Normal file
@ -0,0 +1,135 @@
|
||||
! LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
! www.cs.sandia.gov/~sjplimp/lammps.html
|
||||
! Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
|
||||
!
|
||||
! 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.
|
||||
|
||||
! f_driver = simple example of how an umbrella program
|
||||
! can invoke LAMMPS as a library on some subset of procs
|
||||
! Syntax: f_driver P in.lammps
|
||||
! P = # of procs to run LAMMPS on
|
||||
! must be <= # of procs the driver code itself runs on
|
||||
! in.lammps = LAMMPS input script
|
||||
! See README for compilation instructions
|
||||
|
||||
PROGRAM f_driver
|
||||
IMPLICIT NONE
|
||||
INCLUDE 'mpif.h'
|
||||
|
||||
INTEGER, PARAMETER :: fp=20
|
||||
INTEGER :: n, narg, ierr, me, nprocs, natoms
|
||||
INTEGER :: lammps, nprocs_lammps, comm_lammps
|
||||
INTEGER (kind=8) :: ptr
|
||||
|
||||
REAL (kind=8), ALLOCATABLE :: x(:)
|
||||
REAL (kind=8), PARAMETER :: epsilon=0.1
|
||||
|
||||
CHARACTER (len=64) :: arg
|
||||
CHARACTER (len=1024) :: line
|
||||
|
||||
! setup MPI and various communicators
|
||||
! driver runs on all procs in MPI_COMM_WORLD
|
||||
! comm_lammps only has 1st P procs (could be all or any subset)
|
||||
|
||||
CALL mpi_init(ierr)
|
||||
|
||||
narg = command_argument_count()
|
||||
|
||||
IF (narg /= 2) THEN
|
||||
PRINT *, 'Syntax: f_driver P in.lammps'
|
||||
CALL mpi_abort(MPI_COMM_WORLD,1,ierr)
|
||||
END IF
|
||||
|
||||
CALL mpi_comm_rank(MPI_COMM_WORLD,me,ierr);
|
||||
CALL mpi_comm_size(MPI_COMM_WORLD,nprocs,ierr);
|
||||
|
||||
CALL get_command_argument(1,arg)
|
||||
READ (arg,'(I10)') nprocs_lammps
|
||||
|
||||
IF (nprocs_lammps > nprocs) THEN
|
||||
IF (me == 0) THEN
|
||||
PRINT *, 'ERROR: LAMMPS cannot use more procs than available'
|
||||
CALL mpi_abort(MPI_COMM_WORLD,2,ierr)
|
||||
END IF
|
||||
END IF
|
||||
|
||||
lammps = 0
|
||||
IF (me < nprocs_lammps) THEN
|
||||
lammps = 1
|
||||
ELSE
|
||||
lammps = MPI_UNDEFINED
|
||||
END IF
|
||||
|
||||
CALL mpi_comm_split(MPI_COMM_WORLD,lammps,0,comm_lammps,ierr)
|
||||
|
||||
! open LAMMPS input script on rank zero
|
||||
|
||||
CALL get_command_argument(2,arg)
|
||||
OPEN(UNIT=fp, FILE=arg, ACTION='READ', STATUS='OLD', IOSTAT=ierr)
|
||||
IF (ierr /= 0) THEN
|
||||
PRINT *, 'ERROR: Could not open LAMMPS input script'
|
||||
CALL mpi_abort(MPI_COMM_WORLD,3,ierr);
|
||||
END IF
|
||||
|
||||
! run the input script thru LAMMPS one line at a time until end-of-file
|
||||
! driver proc 0 reads a line, Bcasts it to all procs
|
||||
! (could just send it to proc 0 of comm_lammps and let it Bcast)
|
||||
! all LAMMPS procs call lammps_command() on the line */
|
||||
|
||||
IF (lammps == 1) CALL lammps_open(comm_lammps,ptr)
|
||||
|
||||
n = 0
|
||||
DO
|
||||
IF (me == 0) THEN
|
||||
READ (UNIT=fp, FMT='(A)', IOSTAT=ierr) line
|
||||
n = 0
|
||||
IF (ierr == 0) THEN
|
||||
n = LEN(TRIM(line))
|
||||
IF (n == 0 ) THEN
|
||||
line = ' '
|
||||
n = 1
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
CALL mpi_bcast(n,1,MPI_INTEGER,0,MPI_COMM_WORLD,ierr)
|
||||
IF (n == 0) EXIT
|
||||
CALL mpi_bcast(line,n,MPI_CHARACTER,0,MPI_COMM_WORLD,ierr)
|
||||
IF (lammps == 1) CALL lammps_command(ptr,line,n)
|
||||
END DO
|
||||
CLOSE(UNIT=fp)
|
||||
|
||||
! run 10 more steps
|
||||
! get coords from LAMMPS
|
||||
! change coords of 1st atom
|
||||
! put coords back into LAMMPS
|
||||
! run a single step with changed coords */
|
||||
|
||||
IF (lammps == 1) THEN
|
||||
CALL lammps_command(ptr,'run 10',6)
|
||||
|
||||
CALL lammps_get_natoms(ptr,natoms)
|
||||
ALLOCATE(x(3*natoms))
|
||||
|
||||
CALL lammps_get_coords(ptr,x)
|
||||
x(1) = x(1) + epsilon
|
||||
CALL lammps_put_coords(ptr,x)
|
||||
|
||||
DEALLOCATE(x)
|
||||
|
||||
CALL lammps_command(ptr,'run 1',5);
|
||||
END IF
|
||||
|
||||
! free LAMMPS object
|
||||
|
||||
IF (lammps == 1) CALL lammps_close(ptr);
|
||||
|
||||
! close down MPI
|
||||
|
||||
CALL mpi_finalize(ierr)
|
||||
|
||||
END PROGRAM f_driver
|
||||
174
doc/2001/README.html
Normal file
174
doc/2001/README.html
Normal file
@ -0,0 +1,174 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS</H2>
|
||||
<P>
|
||||
LAMMPS = Large-scale Atomic/Molecular Massively Parallel Simulator</P>
|
||||
<P>
|
||||
This is the documentation for the LAMMPS 2001 version, written in F90,
|
||||
which has been superceded by more current versions. See the <A
|
||||
HREF="http://www.cs.sandia.gov/~sjplimp/lammps.html">LAMMPS WWW
|
||||
Site</A> for more information.
|
||||
<P>
|
||||
LAMMPS is a classical molecular dynamics code designed for simulating
|
||||
molecular and atomic systems on parallel computers using
|
||||
spatial-decomposition techniques. It runs on any parallel platform that
|
||||
supports F90 and the MPI message-passing library or on single-processor
|
||||
workstations.</P>
|
||||
<P>
|
||||
LAMMPS 2001 is copyrighted code that is distributed freely as
|
||||
open-source software under the GNU Public License (GPL). See the
|
||||
LICENSE file or <A HREF="http://www.gnu.org">www.gnu.org</A> for more
|
||||
details. Basically the GPL allows you as a user to use, modify, or
|
||||
distribute LAMMPS however you wish, so long as any software you
|
||||
distribute remains under the GPL.
|
||||
<P>
|
||||
Features of LAMMPS 2001 include:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
short-range pairwise Lennard-Jones and Coulombic interactions
|
||||
<LI>
|
||||
long-range Coulombic interactions via Ewald or PPPM (particle-mesh
|
||||
Ewald)
|
||||
<LI>
|
||||
short-range harmonic bond potentials (bond, angle, torsion, improper)
|
||||
<LI>
|
||||
short-range class II (cross-term) molecular potentials
|
||||
<LI>
|
||||
NVE, NVT, NPT dynamics
|
||||
<LI>
|
||||
constraints on atoms or groups of atoms
|
||||
<LI>
|
||||
rRESPA long-timescale integrator
|
||||
<LI>
|
||||
energy minimizer (Hessian-free truncated Newton method)
|
||||
</UL>
|
||||
<P>
|
||||
For users of LAMMPS 99, this version is written in F90 to take
|
||||
advantage of dynamic memory allocation. This means the user does not
|
||||
have to fiddle with parameter settings and re-compile the code so
|
||||
often for different problems. This enhancment means there are new
|
||||
rules for the ordering of commands in a LAMMPS input script, as well
|
||||
as a few new commands to guide the memory allocator. Users should read
|
||||
the beginning sections of the <A
|
||||
HREF="input_commands.html">input_commands</A> file for an
|
||||
explanation.</P>
|
||||
<P>
|
||||
More details about the code can be found <A
|
||||
HREF="#_cch3_930958294">here</A>, in the HTML- or text-based
|
||||
documentation. The LAMMPS Web page is at <A
|
||||
HREF="http://www.cs.sandia.gov/~sjplimp/lammps.html">www.cs.sandia.gov/~sjplimp/lammps.html</A>
|
||||
, which includes benchmark timings and a list of papers written using
|
||||
LAMMPS results. They illustrate the kinds of scientific problems that
|
||||
can be modeled with LAMMPS. These two papers describe the parallel
|
||||
algorithms used in the code. Please cite these if you incorporate
|
||||
LAMMPS results in your work. And if you send me citations for your
|
||||
papers, I'll be pleased to add them to the LAMMPS WWW page.
|
||||
</P>
|
||||
<P>
|
||||
S. J. Plimpton, R. Pollock, M. Stevens, "Particle-Mesh Ewald and
|
||||
rRESPA for Parallel Molecular Dynamics Simulations", in Proc of
|
||||
the Eighth SIAM Conference on Parallel Processing for Scientific
|
||||
Computing, Minneapolis, MN, March 1997.</P>
|
||||
<P>
|
||||
S. J. Plimpton, "Fast Parallel Algorithms for Short-Range Molecular Dynamics", J Comp Phys, 117, 1-19 (1995).</P>
|
||||
<P>
|
||||
LAMMPS was originally developed as part of a 5-way CRADA collaboration
|
||||
between 3 industrial partners (Cray Research, Bristol-Myers Squibb, and
|
||||
Dupont) and 2 DoE laboratories (Sandia National Laboratories and
|
||||
Lawrence Livermore National Laboratories).</P>
|
||||
<P>
|
||||
The primary author of LAMMPS is Steve Plimpton, but others have written
|
||||
or worked on significant portions of the code:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
Roy Pollock (LLNL): Ewald, PPPM solvers
|
||||
<LI>
|
||||
Mark Stevens (Sandia): rRESPA, NPT integrators
|
||||
<LI>
|
||||
Eric Simon (Cray Research): class II force fields
|
||||
<LI>
|
||||
Todd Plantenga (Sandia): energy minimizer
|
||||
<LI>
|
||||
Steve Lustig (Dupont): msi2lmp tool
|
||||
<LI>
|
||||
Mike Peachey (Cray Research): msi2lmp tool
|
||||
</UL>
|
||||
<P>
|
||||
Other CRADA partners involved in the design and testing of LAMMPS are </P>
|
||||
<UL>
|
||||
<LI>
|
||||
John Carpenter (Cray Research)
|
||||
<LI>
|
||||
Terry Stouch (Bristol-Myers Squibb)
|
||||
<LI>
|
||||
Jim Belak (LLNL)
|
||||
</UL>
|
||||
<P>
|
||||
If you have questions about LAMMPS, please contact me:
|
||||
</P>
|
||||
<DL>
|
||||
<DT>
|
||||
Steve Plimpton
|
||||
<DD>
|
||||
sjplimp@sandia.gov
|
||||
<DD>
|
||||
www.cs.sandia.gov/~sjplimp
|
||||
<DD>
|
||||
Sandia National Labs
|
||||
<DD>
|
||||
Albuquerque, NM 87185
|
||||
</DL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958294">More Information about LAMMPS</A></H3>
|
||||
<DIR>
|
||||
<LI>
|
||||
<A HREF="basics.html">Basics</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
how to make, run, and test LAMMPS with the example problems
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="input_commands.html">Input Commands</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
a complete listing of input commands used by LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="data_format.html">Data Format</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the data file format used by LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="force_fields.html">Force Fields</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the equations LAMMPS uses to compute force-fields
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="units.html">Units</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the input/output and internal units for LAMMPS variables
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="history.html">History</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
a brief timeline of features added to LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="deficiencies.html">Deficiencies</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
features LAMMPS does not (yet) have
|
||||
</DIR>
|
||||
</DIR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
224
doc/2001/basics.html
Normal file
224
doc/2001/basics.html
Normal file
@ -0,0 +1,224 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Basics of Using LAMMPS</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_931273040">Distribution</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930327142">Making LAMMPS</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930327155">Running LAMMPS</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930759879">Examples</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_931282515">Other Tools</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_931282000">Extending LAMMPS</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_931273040">Distribution</A></H3>
|
||||
<P>
|
||||
When you unzip/untar the LAMMPS distribution you should have several
|
||||
directories: </P>
|
||||
<UL>
|
||||
<LI>
|
||||
src = source files for LAMMPS
|
||||
<LI>
|
||||
doc = HTML documentation
|
||||
<LI>
|
||||
examples = sample problems with inputs and outputs
|
||||
<LI>
|
||||
tools = serial program for creating and massaging LAMMPS data files
|
||||
<LI>
|
||||
converters = msi2lmp, lmp2arc, amber = codes & scripts for converting
|
||||
between MSI/Discover, AMBER, and LAMMPS formats
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930327142">Making LAMMPS</A></H3>
|
||||
<P>
|
||||
The src directory contains the F90 and C source files for LAMMPS as
|
||||
well as several sample Makefiles for different machines. To make LAMMPS
|
||||
for a specfic machine, you simply type</P>
|
||||
<P>
|
||||
make machine</P>
|
||||
<P>
|
||||
from within the src directoy. E.g. "make sgi" or "make t3e". This
|
||||
should create an executable such as lmp_sgi or lmp_t3e. For optimal
|
||||
performance you'll want to use a good F90 compiler to make LAMMPS; on
|
||||
Linux boxes I've been told the Leahy F90 compiler is a good choice.
|
||||
(If you don't have an F90 compiler, I can give you an older F77-based
|
||||
version of LAMMPS 99, but you'll lose the dynamic memory and some
|
||||
other new features in LAMMPS 2001.)</P>
|
||||
<P>
|
||||
In the src directory, there is one top-level Makefile and several
|
||||
low-level machine-specific files named Makefile.xxx where xxx = the
|
||||
machine name. If a low-level Makefile exists for your platform, you do
|
||||
not need to edit the top-level Makefile. However you should check the
|
||||
system-specific section of the low-level Makefile to insure the
|
||||
various paths are correct for your environment. If a low-level
|
||||
Makefile does not exist for your platform, you will need to add a
|
||||
suitable target to the top-level Makefile. You will also need to
|
||||
create a new low-level Makefile using one of the existing ones as a
|
||||
template. If you wish to make LAMMPS for a single-processor
|
||||
workstation that doesn't have an installed MPI library, you can
|
||||
specify the "serial" target which uses a directory of MPI stubs to
|
||||
link against - e.g. "make serial". You will need to make the
|
||||
stub library (type "make" in STUBS directory) for your
|
||||
workstation before doing this.</P>
|
||||
<P>
|
||||
Note that the two-level Makefile system allows you to make LAMMPS for
|
||||
multiple platforms. Each target creates its own object directory for
|
||||
separate storage of its *.o files.</P>
|
||||
<P>
|
||||
There are a few compiler switches of interest which can be specified
|
||||
in the low-level Makefiles. If you use a F90FLAGS switch of -DSYNC
|
||||
then synchronization calls will be made before the timing routines in
|
||||
integrate.f. This may slow down the code slightly, but will make the
|
||||
individual timings reported at the end of a run more accurate. The
|
||||
F90FLAGS setting of -DSENDRECV will use MPI_Sendrecv calls for data
|
||||
exchange between processors instead of MPI_Irecv, MPI_Send,
|
||||
MPI_Wait. Sendrecv is often slower, but on some platforms can be
|
||||
faster, so it is worth trying, particularly if your communication
|
||||
timings seem slow.</P>
|
||||
<P>
|
||||
The CCFLAGS setting in the low-level Makefiles requires a FFT setting,
|
||||
for example -DFFT_SGI or -DFFT_T3E. This is for inclusion of the
|
||||
appropriate machine-specific native 1-d FFT libraries on various
|
||||
platforms. Currently, the supported machines and switches (used in
|
||||
fft_3d.c) are FFT_SGI, FFT_DEC, FFT_INTEL, FFT_T3E, and FFT_FFTW. The
|
||||
latter is a publicly available portable FFT library, <A
|
||||
HREF="http://www.fftw.org">FFTW</A>, which you can install on any
|
||||
machine. If none of these options is suitable for your machine, please
|
||||
contact me, and we'll discuss how to add the capability to call your
|
||||
machine's native FFT library. You can also use FFT_NONE if you have no
|
||||
need to use the PPPM option in LAMMPS.</P>
|
||||
<P>
|
||||
For Linux and T3E compilation, there is a also a CCFLAGS setting for KLUDGE
|
||||
needed (see Makefile.linux and Makefile.t3e). This is to enable F90 to
|
||||
call C with appropriate underscores added to C function names.
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930327155">Running LAMMPS</A></H3>
|
||||
<P>
|
||||
LAMMPS is run by redirecting a text file (script) of input commands into it.</P>
|
||||
<P>
|
||||
lmp_sgi < in.lj</P>
|
||||
<P>
|
||||
lmp_t3e < in.lj</P>
|
||||
<P>
|
||||
The script file contains commands that specify the parameters for the
|
||||
simulation as well as to read other necessary files such as a data file
|
||||
that describes the initial atom positions, molecular topology, and
|
||||
force-field parameters. The <A HREF="input_commands.html">input_commands</A>
|
||||
page describes all the possible commands that can be used. The <A
|
||||
HREF="data_format.html">data_format</A> page describes the format of
|
||||
the data file. </P>
|
||||
<P>
|
||||
LAMMPS can be run on any number of processors, including a single
|
||||
processor. In principle you should get identical answers on any number
|
||||
of processors and on any machine. In practice, numerical round-off can
|
||||
cause slight differences and eventual divergence of dynamical
|
||||
trajectories. </P>
|
||||
<P>
|
||||
When LAMMPS runs, it estimates the array sizes it should allocate based
|
||||
on the problem you are simulating and the number of processors you
|
||||
are running on. If you run out of physical memory, you will get a F90
|
||||
allocation error and the code should hang or crash. The only thing you
|
||||
can do about this is run on more processors or run a smaller problem. If
|
||||
you get an error message to the screen about "boosting"
|
||||
something, it means LAMMPS under-estimated the size needed for one (or
|
||||
more) data arrays. The "extra memory" command can be used in
|
||||
the input script to augment these sizes at run time. A few arrays are
|
||||
hard-wired to sizes that should be sufficient for most users. These are
|
||||
specified with parameter settings in the global.f file. If you get a
|
||||
message to "boost" one of these parameters you will have to
|
||||
change it and re-compile LAMMPS.</P>
|
||||
<P>
|
||||
Some LAMMPS errors are detected at setup; others like neighbor list
|
||||
overflow may not occur until the middle of a run. Except for F90
|
||||
allocation errors which may cause the code to hang (with an error
|
||||
message) since only one processor may incur the error, LAMMPS should
|
||||
always print a message to the screen and exit gracefully when it
|
||||
encounters a fatal error. If the code ever crashes or hangs without
|
||||
spitting out an error message first, it's probably a bug, so let me
|
||||
know about it. Of course this applies to algorithmic or parallelism
|
||||
issues, not to physics mistakes, like specifying too big a timestep or
|
||||
putting 2 atoms on top of each other! One exception is that different
|
||||
MPI implementations handle buffering of messages differently. If the
|
||||
code hangs without an error message, it may be that you need to
|
||||
specify an MPI setting or two (usually via an environment variable) to
|
||||
enable buffering or boost the sizes of messages that can be
|
||||
buffered.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930759879">Examples</A></H3>
|
||||
<P>
|
||||
There are several directories of sample problems in the examples
|
||||
directory. All of them use an input file (in.*) of commands and a data
|
||||
file (data.*) of initial atomic coordinates and produce one or more
|
||||
output files. Sample outputs on different machines and numbers of
|
||||
processors are included to compare your answers to. See the README
|
||||
file in the examples sub-directory for more information on what LAMMPS
|
||||
features the examples illustrate.</P>
|
||||
<P>
|
||||
(1) lj = atomic simulations of Lennard-Jones systems.
|
||||
<P>
|
||||
(2) class2 = phenyalanine molecule using the DISCOVER cff95 class 2
|
||||
force field.
|
||||
<P>
|
||||
(3) lc = liquid crystal molecules with various Coulombic options and
|
||||
periodicity settings.
|
||||
<P>
|
||||
(4) flow = 2d flow of Lennard-Jones atoms in a channel using various
|
||||
constraint options.
|
||||
<P>
|
||||
(5) polymer = bead-spring polymer models with one or two chain types.
|
||||
</P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_931282515">Other Tools</A></H3>
|
||||
<P>
|
||||
The converters directory has source code and scripts for tools that
|
||||
perform input/output file conversions between MSI Discover, AMBER, and
|
||||
LAMMPS formats. See the README files for the individual tools for
|
||||
additional information.
|
||||
<P>
|
||||
The tools directory has several serial programs that create and
|
||||
massage LAMMPS data files.
|
||||
<P>
|
||||
(1) setup_chain.f = create a data file of polymer bead-spring chains
|
||||
<P>
|
||||
(2) setup_lj.f = create a data file of an atomic LJ mixture of species
|
||||
<P>
|
||||
(3) setup_flow_2d.f = create a 2d data file of LJ particles with walls for
|
||||
a flow simulation
|
||||
<P>
|
||||
(4) replicate.c = replicate or scale an existing data file into a new one
|
||||
<P>
|
||||
(5) peek_restart.f = print-out info from a binary LAMMPS restart file
|
||||
<P>
|
||||
(6) restart2data.f = convert a binary LAMMPS restart file into a text data file
|
||||
<P>
|
||||
See the comments at the top of each source file for information on how
|
||||
to use the tool.
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_931282000">Extending LAMMPS</A></H3>
|
||||
<P>
|
||||
User-written routines can be compiled and linked with LAMMPS, then
|
||||
invoked with the "diagnostic" command as LAMMPS runs. These routines
|
||||
can be used for on-the-fly diagnostics or a variety of other purposes.
|
||||
The examples/lc directory shows an example of using the diagnostic
|
||||
command with the in.lc.big.fixes input script. A sample diagnostic
|
||||
routine is given there also: diagnostic_temp_molecules.f.
|
||||
</BODY>
|
||||
</HTML>
|
||||
250
doc/2001/data_format.html
Normal file
250
doc/2001/data_format.html
Normal file
@ -0,0 +1,250 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Data Format</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation</P>
|
||||
<P>
|
||||
This file describes the format of the data file read into LAMMPS with
|
||||
the "read data" command. The data file contains basic
|
||||
information about the size of the problem to be run, the initial atomic
|
||||
coordinates, molecular topology, and (optionally) force-field
|
||||
coefficients. It will be easiest to understand this file if you read it
|
||||
while looking at a sample data file from the examples.</P>
|
||||
<P>
|
||||
This page has 2 sections:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930958962">Rules for formatting the Data File</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930958969">Sample file with Annotations</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958962">Rules for formatting the Data File: </A></H3>
|
||||
<P>
|
||||
Blank lines are important. After the header section, new entries are
|
||||
separated by blank lines. </P>
|
||||
<P>
|
||||
Indentation and space between words/numbers on one line is not
|
||||
important except that keywords (e.g. Masses, Bond Coeffs) must be
|
||||
left-justified and capitalized as shown. </P>
|
||||
<P>
|
||||
The header section (thru box bounds) must appear first in the file, the
|
||||
remaining entries (Masses, various Coeffs, Atoms, Bonds, etc) can come
|
||||
in any order. </P>
|
||||
<P>
|
||||
These entries must be in the file: header section, Masses, Atoms. </P>
|
||||
<P>
|
||||
These entries must be in the file if there are a non-zero number of
|
||||
them: Bonds, Angles, Dihedrals, Impropers. Force field coefficients
|
||||
can be specified in the input script, so do not have to appear in the
|
||||
data file. The one exception to this is class 2 force field
|
||||
coefficients which can only be specified in the data file.
|
||||
<P>
|
||||
The Nonbond Coeffs entry contains one line for each atom type. These
|
||||
are the coefficients for an interaction between 2 atoms of the same
|
||||
type. The cross-type coeffs are computed by the appropriate class I or
|
||||
class II mixing rules, or can be specified explicitly using the
|
||||
"nonbond coeff" command in the input command script. See the <A
|
||||
HREF="force_fields.html">force_fields</A> page for more information. </P>
|
||||
<P>
|
||||
In the Atoms entry, the atoms can be in any order so long as there are
|
||||
N entries. The 1st number on the line is the atom-tag (number from 1 to
|
||||
N) which is used to identify the atom throughout the simulation. The
|
||||
molecule-tag is a second identifier which is attached to the atom; it
|
||||
can be 0, or a counter for the molecule the atom is part of, or any
|
||||
other number you wish. The q value is the charge of the atom in
|
||||
electron units (e.g. +1 for a proton). The xyz values are the initial
|
||||
position of the atom. For 2-d simulations specify z as 0.0.</P>
|
||||
<P>
|
||||
The final 3 nx,ny,nz values on a line of the Atoms entry are optional.
|
||||
LAMMPS only reads them if the "true flag" command is
|
||||
specified in the input command script. Otherwise they are initialized
|
||||
to 0 by LAMMPS. Their meaning, for each dimension, is that
|
||||
"n" box-lengths are added to xyz to get the atom's
|
||||
"true" un-remapped position. This can be useful in pre- or
|
||||
post-processing to enable the unwrapping of long-chained molecules
|
||||
which wind thru the periodic box one or more times. The value of
|
||||
"n" can be positive, negative, or zero. For 2-d simulations
|
||||
specify nz as 0. </P>
|
||||
<P>
|
||||
Atom velocities are initialized to 0.0 if there is no Velocities entry.
|
||||
In the Velocities entry, the atoms can be in any order so long as there
|
||||
are N entries. The 1st number on the line is the atom-tag (number from
|
||||
1 to N) which is used to identify the atom which the given velocity
|
||||
will be assigned to.</P>
|
||||
<P>
|
||||
Entries for Velocities, Bonds, Angles, Dihedrals, Impropers must appear
|
||||
in the file after an Atoms entry.</P>
|
||||
<P>
|
||||
For simulations with periodic boundary conditions, xyz coords are
|
||||
remapped into the periodic box (from as far away as needed), so the
|
||||
initial coordinates need not be inside the box. The nx,ny,nz values
|
||||
(as read in or as set to zero by LAMMPS) are appropriately adjusted by
|
||||
this remapping. </P>
|
||||
<P>
|
||||
The number of coefficients specified on each line of coefficient
|
||||
entries (Nonbond Coeffs, Bond Coeffs, etc) depends on the
|
||||
"style" of interaction. This must be specified in the input
|
||||
command script before the "read data" command is issued, unless the
|
||||
default is used. See the <A
|
||||
HREF="input_commands.html">input_commands</A> page for a description
|
||||
of the various style options. The <A HREF="input_commands.html">input_commands</A>
|
||||
and <A HREF="force_fields.html">force_fields</A> pages explain the
|
||||
meaning and valid values for each of the coefficients. </P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958969">Sample file with Annotations</A></H3>
|
||||
<P>
|
||||
Here is a sample file with annotations in parenthesis and lengthy
|
||||
sections replaced by dots (...). Note that the blank lines are
|
||||
important in this example.</P>
|
||||
<PRE>
|
||||
|
||||
LAMMPS Description (1st line of file)
|
||||
|
||||
100 atoms (this must be the 3rd line, 1st 2 lines are ignored)
|
||||
95 bonds (# of bonds to be simulated)
|
||||
50 angles (include these lines even if number = 0)
|
||||
30 dihedrals
|
||||
20 impropers
|
||||
|
||||
5 atom types (# of nonbond atom types)
|
||||
10 bond types (# of bond types = sets of bond coefficients)
|
||||
18 angle types
|
||||
20 dihedral types (do not include a bond,angle,dihedral,improper type
|
||||
2 improper types line if number of bonds,angles,etc is 0)
|
||||
|
||||
-0.5 0.5 xlo xhi (for periodic systems this is box size,
|
||||
-0.5 0.5 ylo yhi for non-periodic it is min/max extent of atoms)
|
||||
-0.5 0.5 zlo zhi (do not include this line for 2-d simulations)
|
||||
|
||||
Masses
|
||||
|
||||
1 mass
|
||||
...
|
||||
N mass (N = # of atom types)
|
||||
|
||||
Nonbond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of atom types)
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of bond types)
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
Dihedral Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
Improper Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of improper types)
|
||||
|
||||
BondBond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
MiddleBondTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
EndBondTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleAngleTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
BondBond13 Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleAngle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of improper types)
|
||||
|
||||
Atoms
|
||||
|
||||
1 molecule-tag atom-type q x y z nx ny nz (nx,ny,nz are optional -
|
||||
... see "true flag" input command)
|
||||
...
|
||||
N molecule-tag atom-type q x y z nx ny nz (N = # of atoms)
|
||||
|
||||
Velocities
|
||||
|
||||
1 vx vy vz
|
||||
...
|
||||
...
|
||||
N vx vy vz (N = # of atoms)
|
||||
|
||||
Bonds
|
||||
|
||||
1 bond-type atom-1 atom-2
|
||||
...
|
||||
N bond-type atom-1 atom-2 (N = # of bonds)
|
||||
|
||||
Angles
|
||||
|
||||
1 angle-type atom-1 atom-2 atom-3 (atom-2 is the center atom in angle)
|
||||
...
|
||||
N angle-type atom-1 atom-2 atom-3 (N = # of angles)
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 dihedral-type atom-1 atom-2 atom-3 atom-4 (atoms 2-3 form central bond)
|
||||
...
|
||||
N dihedral-type atom-1 atom-2 atom-3 atom-4 (N = # of dihedrals)
|
||||
|
||||
Impropers
|
||||
|
||||
1 improper-type atom-1 atom-2 atom-3 atom-4 (atom-2 is central atom)
|
||||
...
|
||||
N improper-type atom-1 atom-2 atom-3 atom-4 (N = # of impropers)
|
||||
</PRE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
42
doc/2001/deficiencies.html
Normal file
42
doc/2001/deficiencies.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Deficiencies</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<P>
|
||||
This is a brief list of features lacking in the current version of
|
||||
LAMMPS. Some of these deficiencies are because of lack of
|
||||
time/interest; others are just hard!</P>
|
||||
<UL>
|
||||
<LI>
|
||||
The calculation of pressure does not include a long-range Van der Waals
|
||||
correction. This would be a constant for constant volume simulations
|
||||
but is a source of error for constant pressure simulations where
|
||||
the box-size varies dynamically.
|
||||
<LI>
|
||||
The smoothed Coulomb style cannot be used with class 2 force fields.
|
||||
<LI>
|
||||
The minimizer does not work with constant pressure conditions, nor
|
||||
for some kinds of fixes (constraints).
|
||||
<LI>
|
||||
No support for non-rectilinear boxes (e.g. Parinello-Rahman
|
||||
pressure control).
|
||||
<LI>
|
||||
SHAKE fixes cannot be combined with rREPSA.
|
||||
<LI>
|
||||
In the current F90 version of LAMMPS, Ewald computations are 2x slower
|
||||
on some machines than they were in the earlier F77 version. This is
|
||||
probably because of F90 compiler treatment of allocatable arrays. This
|
||||
slowdown is not an issue with PPPM, which is more commonly used anyway.
|
||||
<LI>
|
||||
LAMMPS uses a spatial-decomposition of the simulation domain, but no
|
||||
other load-balancing -- thus some geometries or density fluctuations can
|
||||
lead to load imbalance on a parallel machine.
|
||||
</UL>
|
||||
</BODY>
|
||||
</HTML>
|
||||
681
doc/2001/force_fields.html
Normal file
681
doc/2001/force_fields.html
Normal file
@ -0,0 +1,681 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Force Fields</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation</P>
|
||||
<P>
|
||||
This file outlines the force-field formulas used in LAMMPS. Read this
|
||||
file in conjunction with the <A HREF="data_format.html">data_format</A>
|
||||
and <A HREF="units.html">units</A> files.</P>
|
||||
<P>
|
||||
The sections of this page are as follows:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957465">Nonbond Coulomb</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957471">Nonbond Lennard-Jones</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957478">Mixing Rules for Lennard-Jones</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957482">Bonds</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957488">Angles</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957509">Dihedrals</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957513">Impropers</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957527">Class 2 Force Field</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957465">Nonbond Coulomb</A></H3>
|
||||
<P>
|
||||
Whatever Coulomb style is specified in the input command file, the
|
||||
short-range Coulombic interactions are computed by this formula,
|
||||
modified by an appropriate smoother for the smooth, Ewald, PPPM,
|
||||
charmm, and debye styles.</P>
|
||||
<PRE>
|
||||
E = C q1 q2 / (epsilon * r)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
C = hardwired constant to convert to energy units
|
||||
q1,q2 = charge of each atom in electron units (proton = +1),
|
||||
specified in "Atoms" entry in data file
|
||||
epsilon = dielectric constant (vacuum = 1.0),
|
||||
set by user in input command file
|
||||
</PRE>
|
||||
For the debye style, the smoother is exp(-kappa*r) where kappa is an
|
||||
input parameter.
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957471">Nonbond Lennard-Jones </A></H3>
|
||||
<P>
|
||||
The style of nonbond potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) lj/cutoff </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/r)^12 - (sigma/r)^6 ]
|
||||
|
||||
standard Lennard Jones potential
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) lj/switch </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/r)^12 - (sigma/r)^6 ] for r < r_inner
|
||||
= spline fit for r_inner < r < cutoff
|
||||
= 0 for r > cutoff
|
||||
|
||||
switching function (spline fit) is applied to standard LJ
|
||||
within a switching region (from r_inner to cutoff) so that
|
||||
energy and force go smoothly to zero
|
||||
spline coefficients are computed by LAMMPS
|
||||
so that at inner cutoff (r_inner) the potential, force,
|
||||
and 1st-derivative of force are all continuous,
|
||||
and at outer cutoff (cutoff) the potential and force
|
||||
both go to zero
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
2 cutoffs (r_inner and cutoff) are set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) lj/shift </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/(r - delta))^12 - (sigma/(r - delta))^6 ]
|
||||
|
||||
same as lj/cutoff except that r is shifted by delta
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
coeff3 = delta (distance)
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) soft </H4>
|
||||
<PRE>
|
||||
|
||||
E = A * [ 1 + cos( pi * r / cutoff ) ]
|
||||
|
||||
useful for pushing apart overlapping atoms by ramping A over time
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = prefactor A at start of run (energy)
|
||||
coeff2 = prefactor A at end of run (energy)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(5) class2/cutoff </H4>
|
||||
<PRE>
|
||||
|
||||
E = epsilon [ 2 (sigma/r)^9 - 3 (sigma/r)^6 ]
|
||||
|
||||
used with class2 bonded force field
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
6) lj/charmm </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/r)^12 - (sigma/r)^6 ] for r < r_inner
|
||||
= switch * E for r_inner < r < cutoff
|
||||
= 0 for r > cutoff
|
||||
|
||||
where
|
||||
|
||||
switch = [(cutoff^2 - r^2)^2 * (cutoff^2 + 2*r^2 - 3*r_inner)] /
|
||||
[(cutoff^2 - r_inner^2)^3]
|
||||
|
||||
switching function is applied to standard LJ
|
||||
within a switching region (from r_inner to cutoff) so that
|
||||
energy and force go smoothly to zero
|
||||
switching function causes that at inner cutoff (r_inner)
|
||||
the potential and force are continuous,
|
||||
and at outer cutoff (cutoff) the potential and force
|
||||
both go to zero
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
coeff3 = epsilon for 1-4 interactions (energy)
|
||||
coeff4 = sigma for 1-4 interactions (distance)
|
||||
|
||||
4 coeffs are listed in data file or set in input script
|
||||
2 cutoffs (r_inner and cutoff) are set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957478">Mixing Rules for Lennard-Jones</A></H3>
|
||||
<P>
|
||||
The coefficients for each nonbond style are input in either the data
|
||||
file by the "read data" command or in the input script using
|
||||
the "nonbond coeff" command. In the former case, only one set
|
||||
of coefficients is input for each atom type. The cross-type coeffs are
|
||||
computed using one of three possible mixing rules: </P>
|
||||
<PRE>
|
||||
|
||||
geometric: epsilon_ij = sqrt(epsilon_i * epsilon_j)
|
||||
sigma_ij = sqrt(sigma_i * sigma_j)
|
||||
|
||||
arithmetic: epsilon_ij = sqrt(epsilon_i * epsilon_j)
|
||||
sigma_ij = (sigma_i + sigma_j) / 2
|
||||
|
||||
sixthpower: epsilon_ij =
|
||||
(2 * sqrt(epsilon_i*epsilon_j) * sigma_i^3 * sigma_j^3) /
|
||||
(sigma_i^6 + sigma_j^6)
|
||||
sigma_ij= ((sigma_i**6 + sigma_j**6) / 2) ^ (1/6)
|
||||
|
||||
</PRE>
|
||||
<P>
|
||||
The default mixing rule for nonbond styles lj/cutoff, lj/switch,
|
||||
lj/shift, and soft is "geometric". The default for nonbond
|
||||
style class2/cutoff is "sixthpower". </P>
|
||||
<P>
|
||||
The default can be overridden using the "mixing style"
|
||||
command. Two exceptions to this are for the nonbond style soft, for
|
||||
which only an epsilon prefactor is input. This is always mixed
|
||||
geometrically. Also, for nonbond style lj/shift, the delta
|
||||
coefficient is always mixed using the rule </P>
|
||||
<UL>
|
||||
<LI>
|
||||
delta_ij = (delta_i + delta_j) / 2
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957482">Bonds</A></H3>
|
||||
<P>
|
||||
The style of bond potential is specified in the input command file.</P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (r - r0)^2
|
||||
|
||||
standard harmonic spring
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = r0 (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) FENE/standard </H4>
|
||||
<PRE>
|
||||
|
||||
E = -0.5 K R0^2 * ln[1 - (r/R0)^2] +
|
||||
4 epsilon [(sigma/r)^12 - (sigma/r)^6] + epsilon
|
||||
|
||||
finite extensible nonlinear elastic (FENE) potential for
|
||||
polymer bead-spring models
|
||||
see Kremer, Grest, J Chem Phys, 92, p 5057 (1990)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = R0 (distance)
|
||||
coeff3 = epsilon (energy)
|
||||
coeff4 = sigma (distance)
|
||||
|
||||
1st term is attraction, 2nd term is repulsion (shifted LJ)
|
||||
1st term extends to R0
|
||||
2nd term only extends to the minimum of the LJ potential,
|
||||
a cutoff distance computed by LAMMPS (2^(1/6) * sigma)
|
||||
|
||||
4 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) FENE/shift </H4>
|
||||
<PRE>
|
||||
|
||||
E = -0.5 K R0^2 * ln[1 - ((r - delta)/R0)^2] +
|
||||
4 epsilon [(sigma/(r - delta))^12 - (sigma/(r - delta))^6] + epsilon
|
||||
|
||||
same as FENE/standard expect that r is shifted by delta
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = R0 (distance)
|
||||
coeff3 = epsilon (energy)
|
||||
coeff4 = sigma (distance)
|
||||
coeff5 = delta (distance)
|
||||
|
||||
1st term is attraction, 2nd term is repulsion (shifted LJ)
|
||||
1st term extends to R0
|
||||
2nd term only extends to the minimum of the LJ potential,
|
||||
a cutoff distance computed by LAMMPS (2^(1/6) * sigma + delta)
|
||||
|
||||
5 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) nonlinear </H4>
|
||||
<PRE>
|
||||
|
||||
E = epsilon (r - r0)^2 / [ lamda^2 - (r - r0)^2 ]
|
||||
|
||||
non-harmonic spring of equilibrium length r0
|
||||
with finite extension of lamda
|
||||
see Rector, Van Swol, Henderson, Molecular Physics, 82, p 1009 (1994)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = r0 (distance)
|
||||
coeff3 = lamda (distance)
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(5) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = K2 (r - r0)^2 + K3 (r - r0)^3 + K4 (r - r0)^4
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = r0 (distance)
|
||||
coeff2 = K2 (energy/distance^2)
|
||||
coeff3 = K3 (energy/distance^3)
|
||||
coeff4 = K4 (energy/distance^4)
|
||||
|
||||
4 coeffs are listed in data file - cannot be set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957488">Angles </A></H3>
|
||||
<P>
|
||||
The style of angle potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (theta - theta0)^2
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radian^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = K2 (theta - theta0)^2 + K3 (theta - theta0)^3 +
|
||||
K4 (theta - theta0)^4
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
coeff2 = K2 (energy/radian^2)
|
||||
coeff3 = K3 (energy/radian^3)
|
||||
coeff4 = K4 (energy/radian^4)
|
||||
|
||||
4 coeffs are listed in data file - cannot be set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) charmm </H4>
|
||||
<PRE>
|
||||
(harmonic + Urey-Bradley)
|
||||
|
||||
E = K (theta - theta0)^2 + K_UB (r_13 - r_UB)^2
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
r_13 = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radian^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
coeff3 = K_UB (energy/distance^2)
|
||||
coeff4 = r_UB (distance)
|
||||
|
||||
4 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) cosine </H4>
|
||||
<PRE>
|
||||
E = K (1 + cos(theta))
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy)
|
||||
|
||||
1 coeff is listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957509">Dihedrals </A></H3>
|
||||
<P>
|
||||
The style of dihedral potential is specified in the input command
|
||||
file. IMPORTANT NOTE for all these dihedral styles: in the LAMMPS
|
||||
force field the trans position = 180 degrees, while in some force
|
||||
fields trans = 0 degrees. </P>
|
||||
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K [1 + d * cos (n*phi) ]
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy)
|
||||
coeff2 = d (+1 or -1)
|
||||
coeff3 = n (1,2,3,4,6)
|
||||
|
||||
Additional cautions when comparing to other force fields:
|
||||
|
||||
some force fields reverse the sign convention on d so that
|
||||
E = K [1 - d * cos(n*phi)]
|
||||
some force fields divide/multiply K by the number of multiple
|
||||
torsions that contain the j-k bond in an i-j-k-l torsion
|
||||
some force fields let n be positive or negative which
|
||||
corresponds to d = 1,-1
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = SUM(n=1,3) { K_n [ 1 - cos( n*Phi - Phi0_n ) ] }
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy)
|
||||
coeff2 = Phi0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff3 = K_2 (energy)
|
||||
coeff4 = Phi0_2 (degrees) (converted to radians within LAMMPS)
|
||||
coeff5 = K_3 (energy)
|
||||
coeff6 = Phi0_3 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
6 coeffs are listed in data file - cannot be set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) multiharmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = SUM(n=1,5) { A_n * cos(Phi)^(n-1) }
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = A_1
|
||||
coeff2 = A_2
|
||||
coeff3 = A_3
|
||||
coeff4 = A_4
|
||||
coeff5 = A_5
|
||||
|
||||
5 coeffs are listed in data file or set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) charmm </H4>
|
||||
<PRE>
|
||||
(harmonic + 1-4 interactions)
|
||||
|
||||
E = K [1 + cos (n*phi + d) ]
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy)
|
||||
coeff2 = n (1,2,3,4,6)
|
||||
coeff3 = d (0 or 180 degrees) (converted to radians within LAMMPS)
|
||||
coeff4 = weighting factor to turn on/off 1-4 neighbor nonbond interactions
|
||||
|
||||
coeff4 weight values are from 0.0 to 1.0 and are used to multiply the
|
||||
energy and force interaction (both Coulombic and LJ) between the 2 atoms
|
||||
weight of 0.0 means no interaction
|
||||
weight of 1.0 means full interaction
|
||||
|
||||
must be used with the special bonds charmm command
|
||||
"special bonds 0 0 0") which shuts off the uniform special bonds and
|
||||
allows pair-specific special bonds for the 1-4 interactions to be
|
||||
defined in the data file
|
||||
|
||||
LAMMPS assumes that all 1-4 interaction distances, which are
|
||||
generally less than 6 Angstroms, are less than the smallest of the
|
||||
inner LJ and Coulombic cutoffs, which are generally at least 8
|
||||
Angstroms.
|
||||
|
||||
4 coeffs are listed in data file or set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957513">Impropers</A></H3>
|
||||
<P>
|
||||
The style of improper potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (chi - chi0)^2
|
||||
|
||||
chi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radian^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = chi0 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) cvff </H4>
|
||||
<PRE>
|
||||
|
||||
E = K [1 + d * cos (n*chi) ]
|
||||
|
||||
chi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy)
|
||||
coeff2 = d (+1 or -1)
|
||||
coeff3 = n (0,1,2,3,4,6)
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
same formula, coeffs, and meaning as "harmonic" except that LAMMPS
|
||||
averages all 3 angle-contributions to chi
|
||||
in class 2 this is called a Wilson out-of-plane interaction
|
||||
|
||||
2 coeffs are listed in data file - cannot be set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957527">Class 2 Force Field</A></H3>
|
||||
<P>
|
||||
If class 2 force fields are selected in the input command file,
|
||||
additional cross terms are computed as part of the force field. All
|
||||
class 2 coefficients must be set in the data file; they cannot be set
|
||||
in the input script.</P>
|
||||
<H4>
|
||||
Bond-Bond (computed within class 2 angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (r - r0) * (r' - r0')
|
||||
|
||||
r,r' = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = r0 (distance)
|
||||
coeff3 = r0' (distance)
|
||||
|
||||
3 coeffs are input in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Bond-Angle (computed within class 2 angles for each of 2 bonds) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K_n (r - r0_n) * (theta - theta0)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy/distance-radians)
|
||||
coeff2 = K_2 (energy/distance-radians)
|
||||
coeff3 = r0_1 (distance)
|
||||
coeff4 = r0_2 (distance)
|
||||
|
||||
Note: theta0 is known from angle coeffs so don't need it specified here
|
||||
|
||||
4 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Middle-Bond-Torsion (computed within class 2 dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (r - r0) * [ F1*cos(phi) + F2*cos(2*phi) + F3*cos(3*phi) ]
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1 (energy/distance)
|
||||
coeff2 = F2 (energy/distance)
|
||||
coeff3 = F3 (energy/distance)
|
||||
coeff4 = r0 (distance)
|
||||
|
||||
4 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
End-Bond-Torsion (computed within class 2 dihedral for each of 2 bonds) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (r - r0_n) * [ F1_n*cos(phi) + F2_n*cos(2*phi) + F3_n*cos(3*phi) ]
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1_1 (energy/distance)
|
||||
coeff2 = F2_1 (energy/distance)
|
||||
coeff3 = F3_1 (energy/distance)
|
||||
coeff4 = F1_2 (energy/distance)
|
||||
coeff5 = F2_3 (energy/distance)
|
||||
coeff6 = F3_3 (energy/distance)
|
||||
coeff7 = r0_1 (distance)
|
||||
coeff8 = r0_2 (distance)
|
||||
|
||||
8 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Torsion (computed within class 2 dihedral for each of 2 angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (theta - theta0) * [ F1_n*cos(phi) + F2_n*cos(2*phi) + F3_n*cos(3*phi) ]
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1_1 (energy/radians)
|
||||
coeff2 = F2_1 (energy/radians)
|
||||
coeff3 = F3_1 (energy/radians)
|
||||
coeff4 = F1_2 (energy/radians)
|
||||
coeff5 = F2_3 (energy/radians)
|
||||
coeff6 = F3_3 (energy/radians)
|
||||
coeff7 = theta0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff8 = theta0_2 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
8 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Angle-Torsion (computed within class 2 dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (theta - theta0) * (theta' - theta0') * (phi - phi0)
|
||||
|
||||
theta,theta' = radians (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radians^3)
|
||||
coeff2 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
coeff3 = theta0' (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
Note: phi0 is known from dihedral coeffs so don't need it specified here
|
||||
|
||||
3 coeffs are listed in data file
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
Bond-Bond-13-Torsion (computed within class 2 dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K * (r1 - r10)*(r3 - r30)
|
||||
|
||||
r1,r3 = bond lengths of bonds 1 and 3 (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = r10 (distance) = equilibrium bond length for bond 1
|
||||
coeff3 = r30 (distance) = equilibrium bond length for bond 3
|
||||
|
||||
K is only non-zero for aromatic rings
|
||||
|
||||
3 coeffs are listed in data file
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Angle (computed within class 2 improper for each of 3 pairs of
|
||||
angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K_n (theta - theta0_n) * (theta' - theta0_n')
|
||||
|
||||
theta,theta' = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy/radians^2)
|
||||
coeff2 = K_2 (energy/radians^2)
|
||||
coeff3 = K_3 (energy/radians^2)
|
||||
coeff4 = theta0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff5 = theta0_2 (degrees) (converted to radians within LAMMPS)
|
||||
coeff6 = theta0_3 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
6 coeffs are listed in data file
|
||||
</PRE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
205
doc/2001/history.html
Normal file
205
doc/2001/history.html
Normal file
@ -0,0 +1,205 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
History of LAMMPS</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<P>
|
||||
This is a brief history of features added to each version of LAMMPS.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
LAMMPS 2001 - November 2001</H3>
|
||||
<UL>
|
||||
<LI>
|
||||
F90 + MPI version of code
|
||||
<LI>
|
||||
dynamic memory, no param.h file settings to twiddle, see "extra memory"
|
||||
command
|
||||
<LI>
|
||||
changed required ordering of some input script commands (see discussion in
|
||||
<A HREF="input_commands.html">input_commands</A>) file
|
||||
<LI>
|
||||
new commands: "extra memory", "maximum cutoff", "restart version",
|
||||
"angle coeff", "dihedral coeff", "improper coeff",
|
||||
"volume control", "slab volume", "rotation zero"
|
||||
<LI>
|
||||
changed meaning or syntax of commands:
|
||||
"special bonds", "fix style rescale", "fix style hoover/drag",
|
||||
"temp control rescale", "press control", "restart"
|
||||
<LI>
|
||||
deleted commands: "log file", "press_x control" (and y,z)
|
||||
<LI>
|
||||
better match to CHARMM force fields via "nonbond style lj/charmm",
|
||||
"coulomb style charmm/switch", "angle style charmm", dihedral style charmm"
|
||||
(due to Mark Stevens and Paul Crozier)
|
||||
<LI>
|
||||
changed "special bonds" default to 0.0 weighting on 1-4 interactions for
|
||||
CHARMM compatibility, added "special bonds amber" option for AMBER
|
||||
compatibility
|
||||
<LI>
|
||||
ghost atoms and new treatment of periodic boundary conditions,
|
||||
this allows for cutoffs > box-size and faster neighbor binning,
|
||||
binned neighbor list construction is now the default as it is almost
|
||||
always faster
|
||||
<LI>
|
||||
perform blocked-input from data and restart files, faster for many MPI
|
||||
implementations (due to Mathias Puetz)
|
||||
<LI>
|
||||
added Velocities option to data file to initialize each atom's
|
||||
velocity (see <A HREF="data_format.html">data_format</A> file)
|
||||
<LI>
|
||||
pressure control was decoupled from temperature control, so that
|
||||
constant NPH simulations can be run (not just NPT), temperature
|
||||
controls such as rescale or Langevin can now be used with constant P
|
||||
simulations (due to Mark Stevens)
|
||||
<LI>
|
||||
temperature rescaling (either in "temp control" or "fix style rescale")
|
||||
has an added fractional parameter which allows it to be applied
|
||||
in a lightweight or heavy-handed way to induce the desired temperature
|
||||
<LI>
|
||||
got rid of crib.html file, see global.f for documentation of all
|
||||
variables
|
||||
<LI>
|
||||
2-d slab Ewald and PPPM option, (see "slab volume" in
|
||||
<A HREF="input_commands.html">input commands</A>) (due to Paul Crozier)
|
||||
<LI>
|
||||
new multiharmonic dihedral and cvff improper force-field options
|
||||
(due to Mathias Puetz)
|
||||
<LI>
|
||||
SHAKE constraint for small clusters of atoms, see "fix style shake"
|
||||
and "assign fix bondtype" commands
|
||||
<LI>
|
||||
added option to output restart files with timestep stamp or to toggle
|
||||
between 2 files, see "restart" command
|
||||
<LI>
|
||||
tools for converting to/from other MD program formats:
|
||||
msi2lmp (updated by John Carpenter),
|
||||
lmp2arc (due to John Carpenter),
|
||||
amber2lammps & dump2trj (Python scripts due to Keir Novik)
|
||||
<LI>
|
||||
tools for creating and massaging LAMMPS data and restart files:
|
||||
setup_lj, setup_flow_2d, setup_chain, peek_restart, restart2data,
|
||||
replicate
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
LAMMPS 99 - June 99 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
all-MPI version of code (F77 + C + MPI) for maximum portablility
|
||||
<LI>
|
||||
only one PPPM choice now, the better of the two earlier ones
|
||||
<LI>
|
||||
PPPM uses portable FFTs and data remapping routines, written in C w/
|
||||
MPI, can now use non-power-of-2 processors and grid sizes
|
||||
<LI>
|
||||
auto-mapping of simulation box to processors
|
||||
<LI>
|
||||
removed a few unused/unneeded commands (bdump, log file, id string,
|
||||
limit)
|
||||
<LI>
|
||||
changed syntax of some commands for simplicity & consistency (see <A
|
||||
HREF="input_commands.html">input commands</A>)
|
||||
<LI>
|
||||
changed method of calling/writing user diagnostic routines to be
|
||||
simpler
|
||||
<LI>
|
||||
documentation in HTML format
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 5.0 - Oct 1997 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
final version of class II force fields (due to Eric Simon)
|
||||
<LI>
|
||||
new formulation of NVE, NVT, NPT and rRESPA integrators (due to
|
||||
Mark Stevens)
|
||||
<LI>
|
||||
new version of msi2lmp pre-processing tool, does not require DISCOVER
|
||||
to run, only DISCOVER force field files (due to Steve Lustig)
|
||||
<LI>
|
||||
energy minimizer, Hessian-free truncated Newton method
|
||||
(due to Todd Plantenga)
|
||||
<LI>
|
||||
new pressure controllers and constraints (due to Mark Stevens)
|
||||
<LI>
|
||||
replicate tool for generating new data files from old ones
|
||||
</UL>
|
||||
<HR ALIGN="LEFT">
|
||||
<H3>
|
||||
Version 4.0 - March 1997 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
1st version of class II force fields (due to Eric Simon)
|
||||
<LI>
|
||||
new, faster PPPM solver (newpppm, due to Roy Pollock)
|
||||
<LI>
|
||||
rRESPA (due to Mark Stevens)
|
||||
<LI>
|
||||
new data file format
|
||||
<LI>
|
||||
new constraints, diagnostics
|
||||
<LI>
|
||||
msi2lmp pre-processing tool (due to Steve Lustig)
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 3.0 - March 1996 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
more general force-field formulation
|
||||
<LI>
|
||||
atom/group constraints
|
||||
<LI>
|
||||
LJ units and bond potentials
|
||||
<LI>
|
||||
smoothed LJ potential option
|
||||
<LI>
|
||||
Langevin thermostat
|
||||
<LI>
|
||||
Newton's 3rd law option
|
||||
<LI>
|
||||
hook for user-supplied diagnostic routines
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 2.0 - October 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
bug fix of velocity initialization which caused drift
|
||||
<LI>
|
||||
PPPM for long-range Coulombic (due to Roy Pollock)
|
||||
<LI>
|
||||
constant NPT (due to Mark Stevens)
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 1.1 - February 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
Ewald for long-range Coulombic (due to Roy Pollock)
|
||||
<LI>
|
||||
full Newton's 3rd law (doubled communication)
|
||||
<LI>
|
||||
dumping of atom positions and velocities
|
||||
<LI>
|
||||
restart files
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 1.0 - January 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
short-range bonded and non-bonded forces
|
||||
<LI>
|
||||
partial Newton's 3rd law
|
||||
<LI>
|
||||
velocity-Verlet integrator
|
||||
</UL>
|
||||
</BODY>
|
||||
</HTML>
|
||||
2138
doc/2001/input_commands.html
Normal file
2138
doc/2001/input_commands.html
Normal file
File diff suppressed because it is too large
Load Diff
119
doc/2001/units.html
Normal file
119
doc/2001/units.html
Normal file
@ -0,0 +1,119 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Units</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level LAMMPS documentation.</P>
|
||||
<P>
|
||||
This file describes the units associated with many of the key variables
|
||||
and equations used inside the LAMMPS code. Units used for input command
|
||||
parameters are described in the input_commands file. The input command
|
||||
"units" selects between conventional and Lennard-Jones units.
|
||||
See the force_fields file for more information on units for the force
|
||||
field parameters that are input from data files or input scripts. </P>
|
||||
<P>
|
||||
Conventional units: </P>
|
||||
<UL>
|
||||
<LI>
|
||||
distance = Angstroms
|
||||
<LI>
|
||||
time = femtoseconds
|
||||
<LI>
|
||||
mass = grams/mole
|
||||
<LI>
|
||||
temperature = degrees K
|
||||
<LI>
|
||||
pressure = atmospheres
|
||||
<LI>
|
||||
energy = Kcal/mole
|
||||
<LI>
|
||||
velocity = Angstroms/femtosecond
|
||||
<LI>
|
||||
force = grams/mole * Angstroms/femtosecond^2
|
||||
<LI>
|
||||
charge = +/- 1.0 is proton/electron
|
||||
</UL>
|
||||
<P>
|
||||
LJ reduced units: </P>
|
||||
<UL>
|
||||
<LI>
|
||||
distance = sigmas
|
||||
<LI>
|
||||
time = reduced LJ tau
|
||||
<LI>
|
||||
mass = ratio to unitless 1.0
|
||||
<LI>
|
||||
temperature = reduced LJ temp
|
||||
<LI>
|
||||
pressure = reduced LJ pressure
|
||||
<LI>
|
||||
energy = epsilons
|
||||
<LI>
|
||||
velocity = sigmas/tau
|
||||
<LI>
|
||||
force = reduced LJ force (sigmas/tau^2)
|
||||
<LI>
|
||||
charge = ratio to unitless 1.0
|
||||
</UL>
|
||||
<HR>
|
||||
<P>
|
||||
This listing of variables assumes conventional units; to convert to LJ
|
||||
reduced units, simply substitute the appropriate term from the list
|
||||
above. E.g. x is in sigmas in LJ units. Per-mole in any of the units
|
||||
simply means for 6.023 x 10^23 atoms.</P>
|
||||
<P>
|
||||
</P>
|
||||
<PRE>
|
||||
Meaning Variable Units
|
||||
|
||||
positions x Angstroms
|
||||
velocities v Angstroms / click (see below)
|
||||
forces f Kcal / (mole - Angstrom)
|
||||
masses mass gram / mole
|
||||
charges q electron units (-1 for an electron)
|
||||
(1 e.u. = 1.602 x 10^-19 coul)
|
||||
|
||||
time --- clicks (1 click = 48.88821 fmsec)
|
||||
timestep dt clicks
|
||||
input timestep dt_in fmsec
|
||||
time convert dtfactor 48.88821 fmsec / click
|
||||
|
||||
temperature t_current degrees K
|
||||
t_start
|
||||
t_stop
|
||||
input damping t_freq_in inverse fmsec
|
||||
internal temp t_freq inverse clicks
|
||||
damping
|
||||
|
||||
dielec const dielectric 1.0 (unitless)
|
||||
Boltmann const boltz 0.001987191 Kcal / (mole - degree K)
|
||||
|
||||
virial virial[xyz] Kcal/mole = r dot F
|
||||
pressure factor pfactor 68589.796 (convert internal to atmospheres)
|
||||
internal p_current Kcal / (mole - Angs^3)
|
||||
pressure p_start
|
||||
p_stop
|
||||
input press p_start_in atmospheres
|
||||
p_stop_in
|
||||
output press log file atmospheres
|
||||
input damping p_freq_in inverse time
|
||||
internal press p_freq inverse clicks
|
||||
damping
|
||||
|
||||
pot eng e_potential Kcal/mole
|
||||
kin eng e_kinetic Kcal/mole
|
||||
eng convert efactor 332.0636 (Kcal - Ang) / (q^2 - mole)
|
||||
(convert Coulomb eng to Kcal/mole)
|
||||
|
||||
LJ coeffs lja,ljb Kcal-Angs^(6,12)/mole
|
||||
|
||||
bond various see force_fields file
|
||||
parameters 2,3,4-body
|
||||
terms
|
||||
</PRE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
161
doc/99/README.html
Normal file
161
doc/99/README.html
Normal file
@ -0,0 +1,161 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS</H2>
|
||||
<P>
|
||||
LAMMPS = Large-scale Atomic/Molecular Massively Parallel Simulator</P>
|
||||
<P>
|
||||
This is the documentation for the LAMMPS 99 version, written in F77,
|
||||
which has been superceded by more current versions. See the <A
|
||||
HREF="http://www.cs.sandia.gov/~sjplimp/lammps.html">LAMMPS WWW
|
||||
Site</A> for more information.
|
||||
<P>
|
||||
LAMMPS is a classical molecular dynamics code designed for simulating
|
||||
molecular and atomic systems on parallel computers using
|
||||
spatial-decomposition techniques. It runs on any parallel platform that
|
||||
supports the MPI message-passing library or on single-processor
|
||||
workstations.</P>
|
||||
<P>
|
||||
LAMMPS 99 is copyrighted code that is distributed freely as
|
||||
open-source software under the GNU Public License (GPL). See the
|
||||
LICENSE file or <A HREF="http://www.gnu.org">www.gnu.org</A> for more
|
||||
details. Basically the GPL allows you as a user to use, modify, or
|
||||
distribute LAMMPS however you wish, so long as any software you
|
||||
distribute remains under the GPL.
|
||||
<P>
|
||||
Features of LAMMPS 99 include:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
short-range pairwise Lennard-Jones and Coulombic interactions
|
||||
<LI>
|
||||
long-range Coulombic interactions via Ewald or PPPM (particle-mesh
|
||||
Ewald)
|
||||
<LI>
|
||||
short-range harmonic bond potentials (bond, angle, torsion, improper)
|
||||
<LI>
|
||||
short-range class II (cross-term) molecular potentials
|
||||
<LI>
|
||||
NVE, NVT, NPT dynamics
|
||||
<LI>
|
||||
constraints on atoms or groups of atoms
|
||||
<LI>
|
||||
rRESPA long-timescale integrator
|
||||
<LI>
|
||||
energy minimizer (Hessian-free truncated Newton method)
|
||||
</UL>
|
||||
<P>
|
||||
More details about the code can be found <A HREF="#_cch3_930958294">here</A>,
|
||||
in the HTML-based documentation. There is also a conference paper
|
||||
describing the parallel algorithms used in the code:</P>
|
||||
<P>
|
||||
S. J. Plimpton, R. Pollock, M. Stevens, "Particle-Mesh Ewald and
|
||||
rRESPA for Parallel Molecular Dynamics Simulations", in Proc of
|
||||
the Eighth SIAM Conference on Parallel Processing for Scientific
|
||||
Computing, Minneapolis, MN, March 1997.</P>
|
||||
<P>
|
||||
LAMMPS was originally developed as part of a 5-way CRADA collaboration
|
||||
between 3 industrial partners (Cray Research, Bristol-Myers Squibb, and
|
||||
Dupont) and 2 DoE laboratories (Sandia National Laboratories and
|
||||
Lawrence Livermore National Laboratories).</P>
|
||||
<P>
|
||||
The primary author of LAMMPS is Steve Plimpton, but others have written
|
||||
or worked on significant portions of the code:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
Roy Pollock (LLNL): Ewald, PPPM solvers
|
||||
<LI>
|
||||
Mark Stevens (Sandia): rRESPA, NPT integrators
|
||||
<LI>
|
||||
Eric Simon (Cray Research): class II force fields
|
||||
<LI>
|
||||
Todd Plantenga (Sandia): energy minimizer
|
||||
<LI>
|
||||
Steve Lustig (Dupont): msi2lmp tool
|
||||
<LI>
|
||||
Mike Peachey (Cray Research): msi2lmp tool
|
||||
</UL>
|
||||
<P>
|
||||
Other CRADA partners involved in the design and testing of LAMMPS are </P>
|
||||
<UL>
|
||||
<LI>
|
||||
John Carpenter (Cray Research)
|
||||
<LI>
|
||||
Terry Stouch (Bristol-Myers Squibb)
|
||||
<LI>
|
||||
Jim Belak (LLNL)
|
||||
</UL>
|
||||
<P>
|
||||
LAMMPS is copyrighted code that is distributed freely as open-source
|
||||
software under the GNU Public License (GPL). See the LICENSE file or
|
||||
<A HREF="http://www.gnu.org">www.gnu.org</A> for more details.
|
||||
Basically the GPL allows you as a user to use, modify, or distribute
|
||||
LAMMPS however you wish, so long as any software you distribute
|
||||
remains under the GPL.
|
||||
<P>
|
||||
If you have questions about LAMMPS, please contact me:
|
||||
</P>
|
||||
<DL>
|
||||
<DT>
|
||||
Steve Plimpton
|
||||
<DD>
|
||||
sjplimp@sandia.gov
|
||||
<DD>
|
||||
www.cs.sandia.gov/~sjplimp
|
||||
<DD>
|
||||
Sandia National Labs
|
||||
<DD>
|
||||
Albuquerque, NM 87185
|
||||
</DL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958294">More Information about LAMMPS</A></H3>
|
||||
<DIR>
|
||||
<LI>
|
||||
<A HREF="basics.html">Basics</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
how to make, run, and test LAMMPS with the example problems
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="input_commands.html">Input Commands</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
a complete listing of input commands used by LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="data_format.html">Data Format</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the data file format used by LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="force_fields.html">Force Fields</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the equations LAMMPS uses to compute force-fields
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="units.html">Units</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
the input/output and internal units for LAMMPS variables
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="crib.html">Crib</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
a one-line description of the variables used in LAMMPS
|
||||
</DIR>
|
||||
<LI>
|
||||
<A HREF="history.html">History</A>
|
||||
<DIR>
|
||||
<LI>
|
||||
a brief timeline of features added to LAMMPS
|
||||
</DIR>
|
||||
</DIR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
207
doc/99/basics.html
Normal file
207
doc/99/basics.html
Normal file
@ -0,0 +1,207 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Basics of Using LAMMPS</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_931273040">Distribution</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930327142">Making LAMMPS</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930327155">Running LAMMPS</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930759879">Examples</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_931282515">Other Tools</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_931273040">Distribution</A></H3>
|
||||
<P>
|
||||
When you unzip/untar the LAMMPS distribution you should have 5
|
||||
directories: </P>
|
||||
<UL>
|
||||
<LI>
|
||||
src = source files for LAMMPS
|
||||
<LI>
|
||||
doc = HTML documentation
|
||||
<LI>
|
||||
examples = sample problems with inputs and outputs
|
||||
<LI>
|
||||
msi2lmp = tool for converting files from DISCOVER to LAMMPS format
|
||||
(this requires that you have DISCOVER force field files)
|
||||
<LI>
|
||||
tools = serial program for replicating data files
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930327142">Making LAMMPS</A></H3>
|
||||
<P>
|
||||
The src directory contains the F77 and C source files for LAMMPS as
|
||||
well as several sample Makefiles for different machines. To make LAMMPS
|
||||
for a specfic machine, you simply type</P>
|
||||
<P>
|
||||
make machine</P>
|
||||
<P>
|
||||
from within the src directoy. E.g. "make sgi" or "make
|
||||
t3e". This should create an executable named lmp_sgi or lmp_t3e.</P>
|
||||
<P>
|
||||
In the src directory, there is one top-level Makefile and several
|
||||
low-level machine-specific files named Makefile.xxx where xxx = the
|
||||
machine name. If a low-level Makefile exists for your platform, you do
|
||||
not need to edit the top-level Makefile. However you should check the
|
||||
system-specific section of the low-level Makefile to make sure the
|
||||
various paths are correct for your environment. If a low-level Makefile
|
||||
does not exist for your platform, you will need to add a suitable
|
||||
target to the top-level Makefile. You will also need to create a new
|
||||
low-level Makefile using one of the existing ones as a template. If you
|
||||
wish to make LAMMPS for a single-processor workstation that doesn't
|
||||
have an installed MPI library, you can specify the serial target which
|
||||
uses a directory of MPI stubs to link against - e.g. "make
|
||||
serial". You will need to make the stub library (see STUBS
|
||||
directory) on your workstation before doing this.</P>
|
||||
<P>
|
||||
Note that the two-level Makefile system allows you to make LAMMPS for
|
||||
multiple platforms. Each target creates its own object directory for
|
||||
separate storage of its *.o files.</P>
|
||||
<P>
|
||||
There are a couple compiler switches of interest which can be specified
|
||||
in the low-level Makefiles. If you use a F77FLAGS switch of -DSYNC then
|
||||
synchronization calls will be made before the timing routines in
|
||||
integrate.f. This may slow down the code slightly, but will make the
|
||||
reported timings at the end of a run more accurate. The CCFLAGS setting
|
||||
in the low-level Makefiles requires a FFT setting, for example
|
||||
-DFFT_SGI or -DFFT_T3E. This is for inclusion of the appropriate
|
||||
machine-specific native 1-d FFT libraries on various platforms.
|
||||
Currently, the supported machines and switches (used in fft_3d.c) are
|
||||
FFT_SGI, FFT_DEC, FFT_INTEL, FFT_T3E, and FFT_FFTW. The latter is a
|
||||
publicly available portable FFT library, <A HREF="http://www.fftw.org">FFTW</A>,
|
||||
which you can install on any machine. If none of these options is
|
||||
suitable for your machine, please contact me, and we'll discuss how to
|
||||
add the capability to call your machine's native FFT library.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930327155">Running LAMMPS</A></H3>
|
||||
<P>
|
||||
LAMMPS is run by redirecting a file of input commands into it.</P>
|
||||
<P>
|
||||
lmp_sgi < in.lj</P>
|
||||
<P>
|
||||
lmp_t3e < in.lj</P>
|
||||
<P>
|
||||
The input file contains commands that specify the parameters for the
|
||||
simulation as well as read other necessary files such as a data file
|
||||
that describes the initial atom positions, molecular topology, and
|
||||
force-field parameters. The <A HREF="input_commands.html">input_commands</A>
|
||||
page describes all the possible commands that can be used. The <A
|
||||
HREF="data_format.html">data_format</A> page describes the format of
|
||||
the data file. </P>
|
||||
<P>
|
||||
LAMMPS can be run on any number of processors, including a single
|
||||
processor. In principle you should get identical answers on any number
|
||||
of processors and on any machine. In practice, numerical round-off can
|
||||
cause slight differences and eventual divergence of dynamical
|
||||
trajectories. </P>
|
||||
<P>
|
||||
When LAMMPS runs, if you get an error message to the screen about
|
||||
"boosting" something, it means one (or more) data arrays are
|
||||
not allocated large enough. Some of these errors are detected at setup,
|
||||
others like neighbor list overflow may not occur until the middle of a
|
||||
run. When the latter happens the program will either gracefully stop
|
||||
(if all processors incurred the same error) or hang (with an error
|
||||
message). Unfortunately in the current version of LAMMPS which uses
|
||||
static memory allocation, changing the array size(s) requires you to
|
||||
edit the appropriate line(s) in the param.h file and recompile the code.</P>
|
||||
<P>
|
||||
I've tried to be careful about detecting memory-overflow errors in
|
||||
LAMMPS. If the code ever crashes or hangs without spitting out an error
|
||||
message first, it's probably a bug, so let me know about it. Of course
|
||||
this applies to problems due to algorithmic or parallelism issues, not
|
||||
to physics mistkaes, like specifying too big a timestep or putting 2
|
||||
atoms on top of each other! One exception is that different MPI
|
||||
implementations handle buffering of messages differently. If the code
|
||||
hangs without an error message, it may be that you need to specify an
|
||||
MPI setting or two (usually via an environment variable) to enable
|
||||
buffering or boost the sizes of messages that can be buffered. </P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930759879">Examples</A></H3>
|
||||
<P>
|
||||
There are several sample problems in the examples directory. All of
|
||||
them use an input file (in.*) of commands and a data file (data.*) of
|
||||
initial atomic coordinates and produce one or more output files. The
|
||||
*.xxx.P files are outputs on P processors on a particular machine which
|
||||
you can compare your answers to.</P>
|
||||
<P>
|
||||
(1) lj</P>
|
||||
<P>
|
||||
Simple atomic simulations of Lennard-Jones atoms of 1 or 3 species with
|
||||
various ensembles -- NVE, NVT, NPT.</P>
|
||||
<P>
|
||||
(2) charge</P>
|
||||
<P>
|
||||
A few timestep simulation of a box of charged atoms for testing the
|
||||
Coulombic options -- cutoff, Ewald, particle-mesh Ewald (PPPM).</P>
|
||||
<P>
|
||||
(3) class2</P>
|
||||
<P>
|
||||
A simple test run of phenyalanine using DISCOVER cff95 class II force
|
||||
fields.</P>
|
||||
<P>
|
||||
(4) min</P>
|
||||
<P>
|
||||
An energy minimization of a transcription protein.</P>
|
||||
<P>
|
||||
(5) lc</P>
|
||||
<P>
|
||||
Small (250 atom) and large (6750 atom) simulations of liquid crystal
|
||||
molecules with various Coulombic options and periodicity settings. The
|
||||
large-system date file was created by using the "replicate"
|
||||
tool on the small-system data file.</P>
|
||||
<P>
|
||||
(6) flow</P>
|
||||
<P>
|
||||
2-d flow of Lennard-Jones atoms in a channel using various contraint
|
||||
options.</P>
|
||||
<P>
|
||||
(7) polymer</P>
|
||||
<P>
|
||||
Simulations of bead-spring polymer models with one chain type and two
|
||||
chain types (different size monomers). The two-chain system also has
|
||||
freely diffusing monomers. This illustrates use of the setup_chain
|
||||
program in the tools directory and also how to use soft potentials to
|
||||
untangle the initial configurations.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_931282515">Other Tools</A></H3>
|
||||
<P>
|
||||
The msi2lmp directory has source code for a tool that converts MSI
|
||||
Discover files to LAMMPS input data files. This tool requires you to
|
||||
have the Discover force-field description files in order to convert
|
||||
those parameters to LAMMPS parameters. See the README file in the
|
||||
msi2lmp directory for additional information.</P>
|
||||
<P>
|
||||
The tools directory has a C file called replicate.c which is useful for
|
||||
generating new LAMMPS data files from existing ones - e.g. scaling the
|
||||
atom coordinates, replicating the system to make a larger one, etc. See
|
||||
the comments at the top of replicate.c for instructions on how to use
|
||||
it.</P>
|
||||
<P>
|
||||
The tools directory has a F77 program called setup_lj (compile and link
|
||||
with print.c) which can be used to generate a 3-d box of Lennard Jones
|
||||
atoms (one or more atom types) like those used in examples/lj.</P>
|
||||
<P>
|
||||
The tools directory also has a F77 program called setup_chain.f
|
||||
(compile and link with print.c) which can be used to generate random
|
||||
initial polymer configurations for bead-spring models like those used
|
||||
in examples/polymer. It uses an input polymer definition file (see
|
||||
examples/polymer for two sample def files) that specfies how many
|
||||
chains of what length, a random number seed, etc.</P>
|
||||
</BODY>
|
||||
</HTML>
|
||||
629
doc/99/crib.html
Executable file
629
doc/99/crib.html
Executable file
@ -0,0 +1,629 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
Crib File</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<P>
|
||||
This file contains one-line descriptions of the key variables and
|
||||
parameters used in LAMMPS. The variables are listed by their data type:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764945">Parameters</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764951">Arrays (real</A>)
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764957">Arrays (integer)</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764964">Variables (real)</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764969">Variables (integer)</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930764974">Variables (character)</A>
|
||||
</UL>
|
||||
<P>
|
||||
Note: this file is somewhat out-of-date for LAMMPS 99.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764945">Parameters: </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
maxown = max # of local owned atoms
|
||||
<LI>
|
||||
maxother = max # of local nearby atoms
|
||||
<LI>
|
||||
maxtotal = max # of total atoms in simulation
|
||||
<LI>
|
||||
maxtype = max # of atom types
|
||||
<LI>
|
||||
maxbond = max # of bonds to compute on one procesor
|
||||
<LI>
|
||||
maxangle = max # of angles to compute on one processor
|
||||
<LI>
|
||||
maxdihed = max # of dihedrals to compute on one processor
|
||||
<LI>
|
||||
maximpro = max # of impropers to compute on one processor
|
||||
<LI>
|
||||
maxbondper = max # of bonds of one atom
|
||||
<LI>
|
||||
maxangleper = max # of angles of one atom
|
||||
<LI>
|
||||
maxdihedper = max # of dihedrals of one atom
|
||||
<LI>
|
||||
maximproper = max # of impropers of one atom
|
||||
<LI>
|
||||
maxbondtype = max # of bond types
|
||||
<LI>
|
||||
maxangletype = max # of angle types
|
||||
<LI>
|
||||
maxdihedtype = max # of dihedral types
|
||||
<LI>
|
||||
maximprotype = max # of improper types
|
||||
<LI>
|
||||
maxexch = max # of atoms in exchange buffer
|
||||
<LI>
|
||||
maxsend = max # of atoms to send to all neighbors in all swaps
|
||||
<LI>
|
||||
maxsendone = max # of atoms to send in one swap
|
||||
<LI>
|
||||
maxswap = max # of swaps to do at each timestep
|
||||
<LI>
|
||||
maxneigh = max # of neighbors per owned atom
|
||||
<LI>
|
||||
maxsneigh = max # of special neighbors of one atom
|
||||
<LI>
|
||||
maxbin = max # of local neighbor bins
|
||||
<LI>
|
||||
maxfix = max # of defined constraints + 1
|
||||
<LI>
|
||||
maxdiag = max # of diagnostic routines
|
||||
<LI>
|
||||
maxgrid = max size of PPPM grid with ghosts on one processor
|
||||
<LI>
|
||||
maxfft = max size of PPPM FFT grid on one processor
|
||||
<LI>
|
||||
maxperatom = max # of data items stored/comm/output per atom
|
||||
<LI>
|
||||
maxatom = maxown + maxother = total # of own and nearby atoms
|
||||
<LI>
|
||||
maxexchtot = maxexch * (maxperatom + maxsneigh + 3*maxbondper +
|
||||
4*maxangleper + 5*maxdihedper + 5*maximproper) = total data volume for
|
||||
all exchanged atoms
|
||||
<LI>
|
||||
maxrestot = maxown * (maxperatom - 3 + 3*maxbondper + 4*maxangleper +
|
||||
5*maxdihedper + 5*maximproper)+1 = total data volume for all buffered
|
||||
restart atoms
|
||||
<LI>
|
||||
maxsendspec = 2 * maxsneigh * maxown total data volume for sending
|
||||
special requests
|
||||
<LI>
|
||||
maxrecvspec = maxsneigh + 1 total data volume for receiving a list of
|
||||
specials
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764951">Arrays (real): </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
anglecoeff(2,maxangletype) = angle coeffs for each angle type
|
||||
<LI>
|
||||
bondcoeff(5,maxbondtype) = bond coeffs for each bond type
|
||||
<LI>
|
||||
boundhi(maxswap) = hi slab boundary on atom positions for each swap
|
||||
send
|
||||
<LI>
|
||||
boundlo(maxswap) = lo slab boundary on atom positions for each swap
|
||||
send
|
||||
<LI>
|
||||
buf1(maxexchtot) = comm buffer for sending exchange atoms
|
||||
<LI>
|
||||
buf2(2*maxexchtot) = comm buffer for 2 recv of exchange atoms
|
||||
<LI>
|
||||
buf3(3*maxsendone) = comm buffer for sending one set of swap atom
|
||||
positions
|
||||
<LI>
|
||||
buf4(8*maxown) = comm buffer for output
|
||||
<LI>
|
||||
buf5(maxrestot) = comm buffer for restart atoms
|
||||
<LI>
|
||||
buf6(maxsendone) = comm buffer for sending one set of swap charges
|
||||
<LI>
|
||||
cutforcesq(maxtype,maxtype) = force cutoff squared for atom pair
|
||||
(LJ/Coul)
|
||||
<LI>
|
||||
cutljsq(maxtype,maxtype) = LJ cutoff squared for atom pairs
|
||||
<LI>
|
||||
cutljinner(maxtype,maxtype) = inner LJ cutoff for switched LJ
|
||||
<LI>
|
||||
cutljinnersq(maxtype,maxtype) = inner LJ cutoff squared for switched LJ
|
||||
<LI>
|
||||
cutneighsq(maxtype,maxtype) = neigh cutoff squared for atom pair
|
||||
(LJ/Coul + skin)
|
||||
<LI>
|
||||
diagparams(6,maxdiag) = parameters to pass into a diagnostic routine
|
||||
<LI>
|
||||
dihedcoeff(3,maxdihedtype) = dihedral coeffs for each dihedral type
|
||||
<LI>
|
||||
f(3,maxown) = forces on own atoms
|
||||
<LI>
|
||||
fixcoeff(8,maxfix) = constraint coeffs for each constraint
|
||||
<LI>
|
||||
fixstore(5*maxfix) = accumulated quantities for each constraint
|
||||
<LI>
|
||||
improcoeff(2,maximprotype) = improper coeffs for each improper type
|
||||
<LI>
|
||||
lj12345(maxtype,maxtype) = pre-computed LJ coeffs for use in energy and
|
||||
force
|
||||
<LI>
|
||||
ljsw01234(maxtype,maxtype) = pre-computed switched LJ coeffs for eng
|
||||
and force
|
||||
<LI>
|
||||
mass(maxtype) = mass of each atom type
|
||||
<LI>
|
||||
noncoeff1234(maxtype,maxtype) = nonbond coeffs input for atom pairs
|
||||
<LI>
|
||||
offset(maxtype,maxtype) = LJ potential offsets at cutoff for energy
|
||||
calc
|
||||
<LI>
|
||||
q(maxatom) = charge of own and nearby atoms (electron units)
|
||||
<LI>
|
||||
v(3,maxown) = velocity of owned atoms
|
||||
<LI>
|
||||
x(3,maxatom) = positions of own and nearby atoms
|
||||
<LI>
|
||||
xhold(3,maxown) = positions of own atoms at last reneighboring
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764957">Arrays (integer): </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
angleatom123(maxangleper,maxown) = angle atoms for angles of owned
|
||||
atoms
|
||||
<LI>
|
||||
anglelist(4,maxangle) = atoms and type of each angle to compute locally
|
||||
<LI>
|
||||
angletype(maxangleper,maxown) = angle type for angles of owned atoms
|
||||
<LI>
|
||||
bin(maxatom) = linked list pointers from one atom to next in bin
|
||||
<LI>
|
||||
binpnt(maxbin) = pointer to 1st atom in each bin
|
||||
<LI>
|
||||
bondatom12(maxbondper,maxown) = bond atoms for bonds of owned atoms
|
||||
<LI>
|
||||
bondlist(3,maxbond) = atoms and type of each bond to compute locally
|
||||
<LI>
|
||||
bondtype(maxbondper,maxown) = bond type for bonds of owned atoms
|
||||
<LI>
|
||||
bondtypeflag(maxbondtype) = flag for whether bond coeffs are set
|
||||
<LI>
|
||||
diagfileflag(maxdiag) = whether a file has been specified for a diag
|
||||
routine
|
||||
<LI>
|
||||
diagfreq(maxdiag) = call a diagnostic routine every this many steps
|
||||
<LI>
|
||||
diagnparams(maxdiag) = # of parameters specified for a diagnostic
|
||||
routine
|
||||
<LI>
|
||||
diagstyle(maxdiag) = whether a diagnostic has been set 0/1
|
||||
<LI>
|
||||
dihedatom1234(maxdihedper,maxown) = dihed atoms for diheds of owned
|
||||
atoms
|
||||
<LI>
|
||||
dihedlist(5,maxdihed) = atoms and type of each dihedral to compute
|
||||
locally
|
||||
<LI>
|
||||
dihedtype(maxdihedper,maxown) = dihed type for diheds of owned atoms
|
||||
<LI>
|
||||
fix(maxown) = constraint assignments for each owned atom
|
||||
<LI>
|
||||
fixflag(3,maxfix) = 0/1 flags for various fix styles
|
||||
<LI>
|
||||
fixptr(maxfix) = how many values are accumulated for each constraint
|
||||
<LI>
|
||||
fixstyle(maxfix) = style of each constraint
|
||||
<LI>
|
||||
ibuf1(maxsendone) = comm buffer for sending one set of swap atom tags
|
||||
<LI>
|
||||
ibuf2(maxsendone) = comm buffer for sending one set of swap atom types
|
||||
<LI>
|
||||
ibuf3(maxspec) = comm buffer for sending special requests
|
||||
<LI>
|
||||
ibuf4(maxspec) = comm buffer for receiving special lists
|
||||
<LI>
|
||||
improatom1234(maximproper,maxown) = impro atoms for impros of owned
|
||||
atoms
|
||||
<LI>
|
||||
improlist(5,maximpro) = atoms and type of each improper to compute
|
||||
locally
|
||||
<LI>
|
||||
improtype(maximproper,maxown) = impro type for impros of owned atoms
|
||||
<LI>
|
||||
list(maxown) = linked list of local atoms (last one -> maxown+1)
|
||||
<LI>
|
||||
localptr(0:maxtotal) = ptr from global atom to local array (0 if don't
|
||||
have)
|
||||
<LI>
|
||||
molecule(maxown) = molecule id # each owned atom is in
|
||||
<LI>
|
||||
nlist(maxown*maxneigh+maxneigh) = neighbor lists of own atoms
|
||||
<LI>
|
||||
nliststart(maxown) = pointer to where neighbor list for this atom
|
||||
starts
|
||||
<LI>
|
||||
nliststop(maxown) = pointer to where neighbor list for this atom stops
|
||||
<LI>
|
||||
nontypeflag(maxtype,maxtype) = flag for whether nonbond coeffs are set
|
||||
<LI>
|
||||
nrlist(maxswap+1) = prt to where received other atoms start for each
|
||||
swap
|
||||
<LI>
|
||||
nslist(maxswap+1) = pointer to where swap list starts for each swap
|
||||
<LI>
|
||||
numangle(maxown) = # of angles of each owned atom
|
||||
<LI>
|
||||
numbond(maxown) = # of 1st neighbors bonded to each owned atom
|
||||
<LI>
|
||||
num2bond(maxown) = # of 2nd neighbors for each owned atom
|
||||
<LI>
|
||||
num3bond(maxown) = # of 3rd neighbors for each owned atom
|
||||
<LI>
|
||||
numdihed(maxown) = # of dihedrals of each owned atom
|
||||
<LI>
|
||||
numimpro(maxown) = # of impropers of each owned atom
|
||||
<LI>
|
||||
rpart(maxswap) = node # of who to recv from for each swap
|
||||
<LI>
|
||||
slist(maxsend) = send list of atoms to send out in all swaps
|
||||
<LI>
|
||||
spart(maxswap) = node # of who to send to for each swap
|
||||
<LI>
|
||||
specbond(maxsneigh,maxown) = special bond neighbors of each owned atom
|
||||
<LI>
|
||||
tag(maxatom) = global id # of own and nearby atoms
|
||||
<LI>
|
||||
true(maxown) = which periodic box atom is truly in for all 3 dims
|
||||
<LI>
|
||||
type(maxatom) = type # of own and nearby atoms
|
||||
<LI>
|
||||
typecheck(maxtype) = consistency check for all existing atom types
|
||||
<LI>
|
||||
typechecktmp(maxtype) = summing array for atom type consistency check
|
||||
<LI>
|
||||
velflag(maxown) = whether velocity for each atom has been created
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764964">Variables (real): </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
binsize[xyz] = size of global neighbor bins in each dimension
|
||||
<LI>
|
||||
boltz = Boltzmann factor
|
||||
<LI>
|
||||
border(2,3) = lo/hi boundaries of my sub-box in each dimension
|
||||
<LI>
|
||||
coulpre = Coulombic force prefactor
|
||||
<LI>
|
||||
createregion(6) = bounding box for atoms to create temperature for
|
||||
<LI>
|
||||
createvec(3) = initial velocity for create temp atoms
|
||||
<LI>
|
||||
cutcoul = input force cutoff for Coulombic interactions
|
||||
<LI>
|
||||
cutcoulsq = Coul cutoff squared for all atom pairs
|
||||
<LI>
|
||||
cutforce = max force cutoff for all atom pairs (LJ/Coul)
|
||||
<LI>
|
||||
cutlj = input global (default) LJ cutoff for all atom pairs
|
||||
<LI>
|
||||
cutljinterior = global inner LJ cutoff for switched LJ
|
||||
<LI>
|
||||
cutneigh = max neighbor cutoff for all atom pairs (LJ/Coul + skin)
|
||||
<LI>
|
||||
dielectric = dielectric constant
|
||||
<LI>
|
||||
dt = timestep
|
||||
<LI>
|
||||
dtfactor = timestep conversion factor from input to program units
|
||||
<LI>
|
||||
dthalf = timestep / 2
|
||||
<LI>
|
||||
efactor = energy conversion factor from Coulombic to Kcals
|
||||
<LI>
|
||||
e_angle = energy in angles
|
||||
<LI>
|
||||
e_bond = energy in bonds
|
||||
<LI>
|
||||
e_coul = energy in nonbond Coulombic
|
||||
<LI>
|
||||
e_dihedral = energy in dihedrals
|
||||
<LI>
|
||||
e_improper = energy in impropers
|
||||
<LI>
|
||||
e_total = total energy
|
||||
<LI>
|
||||
e_vdwl = energy in nonbond LJ
|
||||
<LI>
|
||||
fixregion(6) = bounding box for atoms to assign to a constraint
|
||||
<LI>
|
||||
skin = distance between force and neighbor cutoffs
|
||||
<LI>
|
||||
special(3) = weight factors for special neighbors
|
||||
<LI>
|
||||
triggersq = squared distance to trigger neighbor list rebuild
|
||||
<LI>
|
||||
two16 = 2 ^ (1/6) constant for use in FENE bond potentials
|
||||
<LI>
|
||||
t_create = requested initialization temp
|
||||
<LI>
|
||||
t_current = current temp returned from temp routine
|
||||
<LI>
|
||||
t_nph = default temp for constant NPH
|
||||
<LI>
|
||||
t_start = target temp at beginning of run
|
||||
<LI>
|
||||
t_stop = target temp at end of run
|
||||
<LI>
|
||||
t_window = control temp within this window
|
||||
<LI>
|
||||
time_angle = angle time
|
||||
<LI>
|
||||
time_bond = bond time
|
||||
<LI>
|
||||
time_comm = communication time
|
||||
<LI>
|
||||
time_current = current time
|
||||
<LI>
|
||||
time_dihedral = dihedral time
|
||||
<LI>
|
||||
time_exch = exchange time
|
||||
<LI>
|
||||
time_improper = improper time
|
||||
<LI>
|
||||
time_io = i/o time
|
||||
<LI>
|
||||
time_loop = time for integration loop
|
||||
<LI>
|
||||
time_neigh1 = neighboring time in nonbond
|
||||
<LI>
|
||||
time_neigh2 = neighboring time in bonds
|
||||
<LI>
|
||||
time_nonbond = nonbond force time
|
||||
<LI>
|
||||
time_other = other miscellaneous time
|
||||
<LI>
|
||||
time_total = total run time of entire simulation
|
||||
<LI>
|
||||
x[yz]mc = box size minus force cutoff for PBC checks
|
||||
<LI>
|
||||
x[yz]ms box size minus neighbor list cutoff for PBC checks
|
||||
<LI>
|
||||
x[yz]boundlo = lower global box boundary in each dimension
|
||||
<LI>
|
||||
x[yz]boundhi = upper global box boundary in each dimension
|
||||
<LI>
|
||||
x[yz]prd = global box size in each dimension
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764969">Variables (integer): </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
atompnt = pointer to 1st atom in my list
|
||||
<LI>
|
||||
bondstyle = style of bond computation
|
||||
<LI>
|
||||
boxflag = flag if box has been remapped (non-PBC)
|
||||
<LI>
|
||||
coulstyle = style of Coulomb interaction
|
||||
<LI>
|
||||
creategroup = kind of atom group to create temp for
|
||||
<LI>
|
||||
createstyle = style of temp creation
|
||||
<LI>
|
||||
createtypehi = upper range of atom types to create temp for
|
||||
<LI>
|
||||
createtypelo = lower range of atom types to create temp for
|
||||
<LI>
|
||||
dumpfileflag = has dump file been opened or not (1/0)
|
||||
<LI>
|
||||
dumpflag = dump atoms to file every this many steps (0 = never)
|
||||
<LI>
|
||||
dumpforcefileflag = has dump force file been opened or not (1/0)
|
||||
<LI>
|
||||
dumpforceflag = dump forces to file every this many steps (0 = never)
|
||||
<LI>
|
||||
dumpvelfileflag = has dump velocity file been opened or not (1/0)
|
||||
<LI>
|
||||
dumpvelflag = dump vels to file every this many steps (0 = never)
|
||||
<LI>
|
||||
fixatom = assign atom/molecule with this tag to a constraint
|
||||
<LI>
|
||||
fixgroup = kind of atom group to assign to a constraint
|
||||
<LI>
|
||||
fixnum = total # of accumulated values for all constraints
|
||||
<LI>
|
||||
fixtype = assign group of atoms of this type to a constraint
|
||||
<LI>
|
||||
fixwhich = which constraint a atom group is to be assigned to
|
||||
<LI>
|
||||
freepnt = pointer to 1st free space in list (last one -> 0)
|
||||
<LI>
|
||||
idimension = dimension of problem (2-d or 3-d)
|
||||
<LI>
|
||||
iseed = RNG seed for generating initial velocities
|
||||
<LI>
|
||||
itime = current timestep loop counter in integrator
|
||||
<LI>
|
||||
iversion = version number of restart files (for backward compat)
|
||||
<LI>
|
||||
max_angle = most angles I ever have to compute
|
||||
<LI>
|
||||
max_angleper = most angles ever attached to any atom
|
||||
<LI>
|
||||
max_bond = most bonds I ever have to compute
|
||||
<LI>
|
||||
max_bondper = most bonds ever attached to any atom
|
||||
<LI>
|
||||
max_dihed = most diheds I ever have to compute
|
||||
<LI>
|
||||
max_dihedper = most diheds ever attached to any atom
|
||||
<LI>
|
||||
max_exch = most atoms ever leaving my box (in one dimension)
|
||||
<LI>
|
||||
max_impro = most impros I ever have to compute
|
||||
<LI>
|
||||
max_improper = most impros ever attached to any atom
|
||||
<LI>
|
||||
max_nlocal = most atoms I ever owned
|
||||
<LI>
|
||||
max_neigh = most neighbors ever stored in neighbor list
|
||||
<LI>
|
||||
max_nother = most nearby atoms I ever stored
|
||||
<LI>
|
||||
max_slist = biggest size swap list ever reached
|
||||
<LI>
|
||||
max_swap = most atoms ever sent in one swap
|
||||
<LI>
|
||||
mbin[xyz] = # of bins in my box with nearby atoms included
|
||||
<LI>
|
||||
mbin[xyz]lo = global bin indices (offset) at corner of extended box
|
||||
<LI>
|
||||
me(3) = which box I am (0 - pgrid-1) in each dimension
|
||||
<LI>
|
||||
mixflag = whether mixing style has been set or not
|
||||
<LI>
|
||||
mixstyle = style of mixing for nonbond coeffs (arith,geom,sixth)
|
||||
<LI>
|
||||
mpart(2,3)= node # of neighbor processor in each dimension
|
||||
<LI>
|
||||
nanglelocal = local # of angless to compute
|
||||
<LI>
|
||||
nangles = total # of angles
|
||||
<LI>
|
||||
nangletypes = total # of angle types
|
||||
<LI>
|
||||
natoms = total # of atoms
|
||||
<LI>
|
||||
nbin[xyz] # of global neighbor bins in each dimension
|
||||
<LI>
|
||||
nbondlocal = local # of bonds to compute
|
||||
<LI>
|
||||
nbonds = total # of bonds
|
||||
<LI>
|
||||
nbondtypes = total # of bond types
|
||||
<LI>
|
||||
ndanger = # of neighbor rebuilds triggered by 1st check
|
||||
<LI>
|
||||
ndiags = # of user-specified diagnostic routines
|
||||
<LI>
|
||||
ndihedlocal = local # of dihedrals to compute
|
||||
<LI>
|
||||
ndihedrals = total # of diheds
|
||||
<LI>
|
||||
ndihedtypes = total # of dihedral types
|
||||
<LI>
|
||||
need(3) how many processors I need neighbors from in each dim
|
||||
<LI>
|
||||
neighago = how many timesteps ago neighboring was done
|
||||
<LI>
|
||||
neighdelay = delay neighbor list build for this many steps
|
||||
<LI>
|
||||
neighfreq = build neighbor list every this many steps
|
||||
<LI>
|
||||
neighstyle = neighboring by (0) N^2 or (1) binning method
|
||||
<LI>
|
||||
neightop = last used position in neighbor list (nlist)
|
||||
<LI>
|
||||
neightrigger = always (0) do neighbor list or trigger (1) on atom move
|
||||
<LI>
|
||||
newton = flag for kind of Newton's 3rd law used (0,1,2,3)
|
||||
<LI>
|
||||
newton_bond = Newton's 3rd is not used (0) or (1) used for bonds
|
||||
<LI>
|
||||
newton_nonbond = Newton's 3rd is not used (0) or (1) used for nonbonds
|
||||
<LI>
|
||||
nfixes = # of constraints
|
||||
<LI>
|
||||
nimprolocal = local # of impropers to compute
|
||||
<LI>
|
||||
nimpropers = total # of impros
|
||||
<LI>
|
||||
nimprotypes = total # of improper types
|
||||
<LI>
|
||||
nlocal = # of atoms I currently own
|
||||
<LI>
|
||||
nother = # of nearby atoms I currently store
|
||||
<LI>
|
||||
node = my node #
|
||||
<LI>
|
||||
nonstyle = style on nonbond computation
|
||||
<LI>
|
||||
nprocs = total # of processors
|
||||
<LI>
|
||||
nsteps = # of timesteps to simulate
|
||||
<LI>
|
||||
nswap = # of swaps at each timestep
|
||||
<LI>
|
||||
ntimestep = current global timestep
|
||||
<LI>
|
||||
ntypes = total # of atom types
|
||||
<LI>
|
||||
numneigh = number of times reneighboring is done
|
||||
<LI>
|
||||
offsetflag = whether to include energy offset in LJ energy calc
|
||||
<LI>
|
||||
peratom = # of values/atom not including bond info
|
||||
<LI>
|
||||
perflagx[yz] = flag for periodic (0) or non-periodic (1) BC
|
||||
<LI>
|
||||
pgrid(3) = # of processors in each dimension
|
||||
<LI>
|
||||
readflag = whether atom input file has been read or not (1/0)
|
||||
<LI>
|
||||
restartfileflag = which restart file to open next (0/1)
|
||||
<LI>
|
||||
restartflag = write restart file every this many steps (0=never)
|
||||
<LI>
|
||||
t_every = rescale/replace temp every this many steps
|
||||
<LI>
|
||||
tempflag = constant temperature style flag
|
||||
<LI>
|
||||
thermoflag = print thermo info every this many steps (0 = never)
|
||||
<LI>
|
||||
thermostyle = style of thermo output (0 = full, 1 = reduced)
|
||||
<LI>
|
||||
trueflag = whether to dump remapped or true atom positions
|
||||
<LI>
|
||||
units = flag for real vs reduced LJ units
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930764974">Variables (character): </A></H3>
|
||||
<UL>
|
||||
<LI>
|
||||
datafile = file to read atom and connectivity info from
|
||||
<LI>
|
||||
diagfile(maxdiag) = files to print user-specified diagnostics to
|
||||
<LI>
|
||||
diagname(maxdiag) = name of a user-specified diagnostic routine
|
||||
<LI>
|
||||
dumpfile = file to dump atom info to
|
||||
<LI>
|
||||
dumpforcefile = file to dump force info to
|
||||
<LI>
|
||||
dumpvelfile = file to dump velocity info to
|
||||
<LI>
|
||||
restart_in = file to read restart info from
|
||||
<LI>
|
||||
restart_out[12] = files to write restart info to
|
||||
</UL>
|
||||
<P>
|
||||
</P>
|
||||
</BODY>
|
||||
</HTML>
|
||||
239
doc/99/data_format.html
Normal file
239
doc/99/data_format.html
Normal file
@ -0,0 +1,239 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Data Format</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation</P>
|
||||
<P>
|
||||
This file describes the format of the data file read into LAMMPS with
|
||||
the "read data" command. The data file contains basic
|
||||
information about the size of the problem to be run, the initial atomic
|
||||
coordinates, molecular topology, and (optionally) force-field
|
||||
coefficients. It will be easiest to understand this file if you read it
|
||||
while looking at a sample data file from the examples.</P>
|
||||
<P>
|
||||
This page has 2 sections:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930958962">Rules for formatting the Data File</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930958969">Sample file with Annotations</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958962">Rules for formatting the Data File: </A></H3>
|
||||
<P>
|
||||
Blank lines are important. After the header section, new entries are
|
||||
separated by blank lines. </P>
|
||||
<P>
|
||||
Indentation and space between words/numbers on one line is not
|
||||
important except that entry keywords (e.g. Masses, Bond Coeffs) must be
|
||||
left-justified and capitalized as shown. </P>
|
||||
<P>
|
||||
The header section (thru box bounds) must appear first in the file, the
|
||||
remaining entries (Masses, various Coeffs, Atoms, Bonds, etc) can come
|
||||
in any order. </P>
|
||||
<P>
|
||||
These entries must be in the file: header section, Masses, Atoms. </P>
|
||||
<P>
|
||||
These entries must be in the file if there are a non-zero number of
|
||||
them: Bonds, Angles, Dihedrals, Impropers, Bond Coeffs, Angle Coeffs,
|
||||
Dihedral Coeffs, Improper Coeffs. Cross-term coefficients for a
|
||||
particular kind of interaction (e.g. BondAngle Coeffs for bonds) must
|
||||
appear if class II force fields have been turned on in the input
|
||||
command file via a "style" command. </P>
|
||||
<P>
|
||||
The Nonbond Coeffs entry contains one line for each atom type. These
|
||||
are the coefficients for an interaction between 2 atoms of the same
|
||||
type. The cross-type coeffs are computed by the appropriate class I or
|
||||
class II mixing rules, or can be specified explicitly using the
|
||||
"nonbond coeff" command in the input command script. See the <A
|
||||
HREF="force_fields.html">force_fields</A> page for more information. </P>
|
||||
<P>
|
||||
The Nonbond Coeffs and Bond Coeffs entries are optional since they can
|
||||
be specified from the input command script. This is not true if bond
|
||||
style is set to class II since those coeffs can only be specified in
|
||||
this data file. </P>
|
||||
<P>
|
||||
In the Atoms entry, the atoms can be in any order so long as there are
|
||||
N entries. The 1st number on the line is the atom-tag (number from 1 to
|
||||
N) which is used to identify the atom throughout the simulation. The
|
||||
molecule-tag is a second identifier which is attached to the atom; it
|
||||
can be 0, or a counter for the molecule the atom is part of, or any
|
||||
other number you wish. The q value is the charge of the atom in
|
||||
electron units (e.g. +1 for a proton). The xyz values are the initial
|
||||
position of the atom. For 2-d simulations specify z as 0.0.</P>
|
||||
<P>
|
||||
The final 3 nx,ny,nz values on a line of the Atoms entry are optional.
|
||||
LAMMPS only reads them if the "true flag" command is
|
||||
specified in the input command script. Otherwise they are initialized
|
||||
to 0 by LAMMPS. Their meaning, for each dimension, is that
|
||||
"n" box-lengths are added to xyz to get the atom's
|
||||
"true" un-remapped position. This can be useful in pre- or
|
||||
post-processing to enable the unwrapping of long-chained molecules
|
||||
which wrap thru the periodic box one or more times. The value of
|
||||
"n" can be positive, negative, or zero. For 2-d simulations
|
||||
specify nz as 0. </P>
|
||||
<P>
|
||||
For simulations with periodic boundary conditions, xyz are remapped
|
||||
into the periodic box (from as far away as needed), so the initial
|
||||
coordinates need not be inside the box. The nx,ny,nz values (as read in
|
||||
or as set to zero by LAMMPS) are appropriately adjusted by this
|
||||
remapping. </P>
|
||||
<P>
|
||||
The number of coefficients specified on each line of coefficient
|
||||
entries (Nonbond Coeffs, Bond Coeffs, etc) depends on the
|
||||
"style" of interaction. This is specified in the input
|
||||
command script, unless the default is used. See the <A
|
||||
HREF="input_commands.html">input_commands</A> page for a description
|
||||
of the various style options. The <A HREF="input_commands.html">input_commands</A>
|
||||
and <A HREF="force_fields.html">force_fields</A> pages explain the
|
||||
meaning and valid ranges for each of the coefficients. </P>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930958969">Sample file with Annotations</A></H3>
|
||||
<P>
|
||||
Here is a sample file with annotations in parenthesis and lengthy
|
||||
sections replaced by dots (...). Note that the blank lines are
|
||||
important in this example.</P>
|
||||
<PRE>
|
||||
|
||||
LAMMPS Description (1st line of file)
|
||||
|
||||
100 atoms (this must be the 3rd line, 1st 2 lines are ignored)
|
||||
95 bonds (# of bonds to be simulated)
|
||||
50 angles (include these lines even if number = 0)
|
||||
30 dihedrals
|
||||
20 impropers
|
||||
|
||||
5 atom types (# of nonbond atom types)
|
||||
10 bond types (# of bond types = sets of bond coefficients)
|
||||
18 angle types
|
||||
20 dihedral types (do not include a bond,angle,dihedral,improper type
|
||||
2 improper types line if number of bonds,angles,etc is 0)
|
||||
|
||||
-0.5 0.5 xlo xhi (for periodic systems this is box size,
|
||||
-0.5 0.5 ylo yhi for non-periodic it is min/max extent of atoms)
|
||||
-0.5 0.5 zlo zhi (do not include this line for 2-d simulations)
|
||||
|
||||
Masses
|
||||
|
||||
1 mass
|
||||
...
|
||||
N mass (N = # of atom types)
|
||||
|
||||
Nonbond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of atom types)
|
||||
|
||||
Bond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of bond types)
|
||||
|
||||
Angle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
Dihedral Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
Improper Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of improper types)
|
||||
|
||||
BondBond Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
BondAngle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of angle types)
|
||||
|
||||
MiddleBondTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
EndBondTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleAngleTorsion Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
BondBond13 Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of dihedral types)
|
||||
|
||||
AngleAngle Coeffs
|
||||
|
||||
1 coeff1 coeff2 ...
|
||||
...
|
||||
N coeff1 coeff2 ... (N = # of improper types)
|
||||
|
||||
Atoms
|
||||
|
||||
1 molecule-tag atom-type q x y z nx ny nz (nx,ny,nz are optional -
|
||||
... see "true flag" input command)
|
||||
...
|
||||
N molecule-tag atom-type q x y z nx ny nz (N = # of atoms)
|
||||
|
||||
Bonds
|
||||
|
||||
1 bond-type atom-1 atom-2
|
||||
...
|
||||
N bond-type atom-1 atom-2 (N = # of bonds)
|
||||
|
||||
Angles
|
||||
|
||||
1 angle-type atom-1 atom-2 atom-3 (atom-2 is the center atom in angle)
|
||||
...
|
||||
N angle-type atom-1 atom-2 atom-3 (N = # of angles)
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 dihedral-type atom-1 atom-2 atom-3 atom-4 (atoms 2-3 form central bond)
|
||||
...
|
||||
N dihedral-type atom-1 atom-2 atom-3 atom-4 (N = # of dihedrals)
|
||||
|
||||
Impropers
|
||||
|
||||
1 improper-type atom-1 atom-2 atom-3 atom-4 (atom-1 is central atom)
|
||||
...
|
||||
N improper-type atom-1 atom-2 atom-3 atom-4 (N = # of impropers)
|
||||
</PRE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
550
doc/99/force_fields.html
Normal file
550
doc/99/force_fields.html
Normal file
@ -0,0 +1,550 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
LAMMPS Force Fields</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation</P>
|
||||
<P>
|
||||
This file outlines the force-field formulas used in LAMMPS. Read this
|
||||
file in conjunction with the <A HREF="data_format.html">data_format</A>
|
||||
and <A HREF="units.html">units</A> file.</P>
|
||||
<P>
|
||||
The sections of this page are as follows:</P>
|
||||
<UL>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957465">Nonbond Coulomb</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957471">Nonbond Lennard-Jones</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957478">Mixing Rules for Lennard-Jones</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957482">Bonds</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957488">Angles</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957509">Dihedrals</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957513">Impropers</A>
|
||||
<LI>
|
||||
<A HREF="#_cch3_930957527">Class II Force Field</A>
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957465">Nonbond Coulomb</A></H3>
|
||||
<P>
|
||||
Whatever Coulomb style is specified in the input command file, the
|
||||
short-range Coulombic interactions are computed by this formula,
|
||||
modified by an appropriate smoother for the smooth, Ewald, and PPPM
|
||||
styles.</P>
|
||||
<PRE>
|
||||
E = C q1 q2 / (epsilon * r)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
C = hardwired constant to convert to energy units
|
||||
q1,q2 = charge of each atom in electron units (proton = +1),
|
||||
specified in "Atoms" entry in data file
|
||||
epsilon = dielectric constant (vacuum = 1.0),
|
||||
set by user in input command file
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957471">Nonbond Lennard-Jones </A></H3>
|
||||
<P>
|
||||
The style of nonbond potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) lj/cutoff </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/r)^12 - (sigma/r)^6 ]
|
||||
|
||||
standard Lennard Jones potential
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) lj/switch </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/r)^12 - (sigma/r)^6 ] for r < r_inner
|
||||
= spline fit for r_inner < r < cutoff
|
||||
= 0 for r > cutoff
|
||||
|
||||
switching function (spline fit) is applied to standard LJ
|
||||
within a switching region (from r_inner to cutoff) so that
|
||||
energy and force go smoothly to zero
|
||||
spline coefficients are computed by LAMMPS
|
||||
so that at inner cutoff (r_inner) the potential, force,
|
||||
and 1st-derivative of force are all continuous,
|
||||
and at outer cutoff (cutoff) the potential and force
|
||||
both go to zero
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
2 cutoffs (r_inner and cutoff) are set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) lj/shift </H4>
|
||||
<PRE>
|
||||
|
||||
E = 4 epsilon [ (sigma/(r - delta))^12 - (sigma/(r - delta))^6 ]
|
||||
|
||||
same as lj/cutoff except that r is shifted by delta
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
coeff3 = delta (distance)
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) soft </H4>
|
||||
<PRE>
|
||||
|
||||
E = A * [ 1 + cos( pi * r / cutoff ) ]
|
||||
|
||||
useful for pushing apart overlapping atoms by ramping A over time
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = prefactor A at start of run (energy)
|
||||
coeff2 = prefactor A at end of run (energy)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(5) class2/cutoff </H4>
|
||||
<PRE>
|
||||
|
||||
E = epsilon [ 2 (sigma/r)^9 - 3 (sigma/r)^6 ]
|
||||
|
||||
used with class2 bonded force field
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = sigma (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
1 cutoff is set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957478">Mixing Rules for Lennard-Jones</A></H3>
|
||||
<P>
|
||||
The coefficients for each nonbond style are input in either the data
|
||||
file by the "read data" command or in the input script using
|
||||
the "nonbond coeff" command. In the former case, only one set
|
||||
of coefficients is input for each atom type. The cross-type coeffs are
|
||||
computed using one of three possible mixing rules: </P>
|
||||
<PRE>
|
||||
|
||||
geometric: epsilon_ij = sqrt(epsilon_i * epsilon_j)
|
||||
sigma_ij = sqrt(sigma_i * sigma_j)
|
||||
|
||||
arithmetic: epsilon_ij = sqrt(epsilon_i * epsilon_j)
|
||||
sigma_ij = (sigma_i + sigma_j) / 2
|
||||
|
||||
sixthpower: epsilon_ij =
|
||||
(2 * sqrt(epsilon_i*epsilon_j) * sigma_i^3 * sigma_j^3) /
|
||||
(sigma_i^6 + sigma_j^6)
|
||||
sigma_ij= ((sigma_i**6 + sigma_j**6) / 2) ^ (1/6)
|
||||
|
||||
</PRE>
|
||||
<P>
|
||||
The default mixing rule for nonbond styles lj/cutoff, lj/switch,
|
||||
lj/shift, and soft is "geometric". The default for nonbond
|
||||
style class2/cutoff is "sixthpower". </P>
|
||||
<P>
|
||||
The default can be overridden using the "mixing style"
|
||||
command. The one exception to this is for the nonbond style soft, for
|
||||
which only an epsilon prefactor is input. This is always mixed
|
||||
geometrically. </P>
|
||||
<P>
|
||||
Also, for nonbond style lj/shift, the delta coefficient is always mixed
|
||||
using the rule </P>
|
||||
<UL>
|
||||
<LI>
|
||||
delta_ij = (delta_i + delta_j) / 2
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957482">Bonds</A></H3>
|
||||
<P>
|
||||
The style of bond potential is specified in the input command file.</P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (r - r0)^2
|
||||
|
||||
standard harmonic spring
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = r0 (distance)
|
||||
|
||||
2 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) FENE/standard </H4>
|
||||
<PRE>
|
||||
|
||||
E = -0.5 K R0^2 * ln[1 - (r/R0)^2] +
|
||||
4 epsilon [(sigma/r)^12 - (sigma/r)^6] + epsilon
|
||||
|
||||
finite extensible nonlinear elastic (FENE) potential for
|
||||
polymer bead-spring models
|
||||
see Kremer, Grest, J Chem Phys, 92, p 5057 (1990)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = R0 (distance)
|
||||
coeff3 = epsilon (energy)
|
||||
coeff4 = sigma (distance)
|
||||
|
||||
1st term is attraction, 2nd term is repulsion (shifted LJ)
|
||||
1st term extends to R0
|
||||
2nd term only extends to the minimum of the LJ potential,
|
||||
a cutoff distance computed by LAMMPS (2^(1/6) * sigma)
|
||||
|
||||
4 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(3) FENE/shift </H4>
|
||||
<PRE>
|
||||
|
||||
E = -0.5 K R0^2 * ln[1 - ((r - delta)/R0)^2] +
|
||||
4 epsilon [(sigma/(r - delta))^12 - (sigma/(r - delta))^6] + epsilon
|
||||
|
||||
same as FENE/standard expect that r is shifted by delta
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = R0 (distance)
|
||||
coeff3 = epsilon (energy)
|
||||
coeff4 = sigma (distance)
|
||||
coeff5 = delta (distance)
|
||||
|
||||
1st term is attraction, 2nd term is repulsion (shifted LJ)
|
||||
1st term extends to R0
|
||||
2nd term only extends to the minimum of the LJ potential,
|
||||
a cutoff distance computed by LAMMPS (2^(1/6) * sigma + delta)
|
||||
|
||||
5 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(4) nonlinear </H4>
|
||||
<PRE>
|
||||
|
||||
E = epsilon (r - r0)^2 / [ lamda^2 - (r - r0)^2 ]
|
||||
|
||||
non-harmonic spring of equilibrium length r0
|
||||
with finite extension of lamda
|
||||
see Rector, Van Swol, Henderson, Molecular Physics, 82, p 1009 (1994)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = epsilon (energy)
|
||||
coeff2 = r0 (distance)
|
||||
coeff3 = lamda (distance)
|
||||
|
||||
3 coeffs are listed in data file or set in input script
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(5) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = K2 (r - r0)^2 + K3 (r - r0)^3 + K4 (r - r0)^4
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = r0 (distance)
|
||||
coeff2 = K2 (energy/distance^2)
|
||||
coeff3 = K3 (energy/distance^3)
|
||||
coeff4 = K4 (energy/distance^4)
|
||||
|
||||
4 coeffs are listed in data file - cannot be set in input script
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957488">Angles </A></H3>
|
||||
<P>
|
||||
The style of angle potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (theta - theta0)^2
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radian^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
2 coeffs are listed in data file
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = K2 (theta - theta0)^2 + K3 (theta - theta0)^3 +
|
||||
K4 (theta - theta0)^4
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
coeff2 = K2 (energy/radian^2)
|
||||
coeff3 = K3 (energy/radian^3)
|
||||
coeff4 = K4 (energy/radian^4)
|
||||
|
||||
4 coeffs are listed in data file
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957509">Dihedrals </A></H3>
|
||||
<P>
|
||||
The style of dihedral potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K [1 + d * cos (n * phi) ]
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy)
|
||||
coeff2 = d (always +1 or -1)
|
||||
coeff3 = n (1,2,3,4,6)
|
||||
|
||||
Cautions when comparing to other force fields:
|
||||
|
||||
some force fields reverse the sign convention on d so that
|
||||
E = K [1 - d * cos(n*phi)]
|
||||
some force fields divide/multiply K by the number of multiple
|
||||
torsions that contain the j-k bond in an i-j-k-l torsion
|
||||
some force fields let n be positive or negative which
|
||||
corresponds to d = 1,-1
|
||||
in the LAMMPS force field, the trans position = 180 degrees, while
|
||||
in some force fields trans = 0 degrees
|
||||
|
||||
3 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
E = SUM(n=1,3) { K_n [ 1 - cos( n*Phi - Phi0_n ) ] }
|
||||
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy)
|
||||
coeff2 = Phi0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff3 = K_2 (energy)
|
||||
coeff4 = Phi0_2 (degrees) (converted to radians within LAMMPS)
|
||||
coeff5 = K_3 (energy)
|
||||
coeff6 = Phi0_3 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
6 coeffs are listed in data file
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957513">Impropers</A></H3>
|
||||
<P>
|
||||
The style of improper potential is specified in the input command file. </P>
|
||||
<H4>
|
||||
(1) harmonic </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (chi - chi0)^2
|
||||
|
||||
chi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radian^2) (the usual 1/2 is included in the K)
|
||||
coeff2 = chi0 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
in data file, listing of 4 atoms requires atom-1 as central atom
|
||||
some force fields (AMBER,Discover) have atom-2 as central atom - it is really
|
||||
an out-of-plane torsion, may need to treat as dihedral in LAMMPS
|
||||
|
||||
2 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
(2) class2 </H4>
|
||||
<PRE>
|
||||
|
||||
same formula, coeffs, and meaning as "harmonic" except that LAMMPS
|
||||
averages all 3 angle-contributions to chi
|
||||
in class II this is called a Wilson out-of-plane interaction
|
||||
|
||||
2 coeffs are listed in data file
|
||||
</PRE>
|
||||
<HR>
|
||||
<H3>
|
||||
<A NAME="_cch3_930957527">Class II Force Field</A></H3>
|
||||
<P>
|
||||
If class II force fields are selected in the input command file,
|
||||
additional cross terms are computed as part of the force field.</P>
|
||||
<H4>
|
||||
Bond-Bond (computed within class II angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (r - r0) * (r' - r0')
|
||||
|
||||
r,r' = distance (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/distance^2)
|
||||
coeff2 = r0 (distance)
|
||||
coeff3 = r0' (distance)
|
||||
|
||||
3 coeffs are input in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Bond-Angle (computed within class II angles for each of 2 bonds) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K_n (r - r0_n) * (theta - theta0)
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
theta = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy/distance-radians)
|
||||
coeff2 = K_2 (energy/distance-radians)
|
||||
coeff3 = r0_1 (distance)
|
||||
coeff4 = r0_2 (distance)
|
||||
|
||||
Note: theta0 is known from angle coeffs so don't need it specified here
|
||||
|
||||
4 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Middle-Bond-Torsion (computed within class II dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (r - r0) * [ F1*cos(phi) + F2*cos(2*phi) + F3*cos(3*phi) ]
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1 (energy/distance)
|
||||
coeff2 = F2 (energy/distance)
|
||||
coeff3 = F3 (energy/distance)
|
||||
coeff4 = r0 (distance)
|
||||
|
||||
4 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
End-Bond-Torsion (computed within class II dihedral for each of 2
|
||||
bonds) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (r - r0_n) * [ F1_n*cos(phi) + F2_n*cos(2*phi) + F3_n*cos(3*phi) ]
|
||||
|
||||
r = distance (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1_1 (energy/distance)
|
||||
coeff2 = F2_1 (energy/distance)
|
||||
coeff3 = F3_1 (energy/distance)
|
||||
coeff4 = F1_2 (energy/distance)
|
||||
coeff5 = F2_3 (energy/distance)
|
||||
coeff6 = F3_3 (energy/distance)
|
||||
coeff7 = r0_1 (distance)
|
||||
coeff8 = r0_2 (distance)
|
||||
|
||||
8 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Torsion (computed within class II dihedral for each of 2 angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = (theta - theta0) * [ F1_n*cos(phi) + F2_n*cos(2*phi) + F3_n*cos(3*phi) ]
|
||||
|
||||
theta = radians (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = F1_1 (energy/radians)
|
||||
coeff2 = F2_1 (energy/radians)
|
||||
coeff3 = F3_1 (energy/radians)
|
||||
coeff4 = F1_2 (energy/radians)
|
||||
coeff5 = F2_3 (energy/radians)
|
||||
coeff6 = F3_3 (energy/radians)
|
||||
coeff7 = theta0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff8 = theta0_2 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
8 coeffs are listed in data file
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Angle-Torsion (computed within class II dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K (theta - theta0) * (theta' - theta0') * (phi - phi0)
|
||||
|
||||
theta,theta' = radians (computed by LAMMPS)
|
||||
phi = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K (energy/radians^3)
|
||||
coeff2 = theta0 (degrees) (converted to radians within LAMMPS)
|
||||
coeff3 = theta0' (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
Note: phi0 is known from dihedral coeffs so don't need it specified here
|
||||
|
||||
3 coeffs are listed in data file
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
Bond-Bond-13-Torsion (computed within class II dihedral) </H4>
|
||||
<PRE>
|
||||
|
||||
(undocumented)
|
||||
|
||||
</PRE>
|
||||
<H4>
|
||||
Angle-Angle (computed within class II improper for each of 3 pairs of
|
||||
angles) </H4>
|
||||
<PRE>
|
||||
|
||||
E = K_n (theta - theta0_n) * (theta' - theta0_n')
|
||||
|
||||
theta,theta' = radians (computed by LAMMPS)
|
||||
|
||||
coeff1 = K_1 (energy/radians^2)
|
||||
coeff2 = K_2 (energy/radians^2)
|
||||
coeff3 = K_3 (energy/radians^2)
|
||||
coeff4 = theta0_1 (degrees) (converted to radians within LAMMPS)
|
||||
coeff5 = theta0_2 (degrees) (converted to radians within LAMMPS)
|
||||
coeff6 = theta0_3 (degrees) (converted to radians within LAMMPS)
|
||||
|
||||
6 coeffs are listed in data file
|
||||
</PRE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
127
doc/99/history.html
Normal file
127
doc/99/history.html
Normal file
@ -0,0 +1,127 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META NAME="Generator" CONTENT="Cosmo Create 1.0.3">
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H2>
|
||||
History of LAMMPS</H2>
|
||||
<P>
|
||||
<A HREF="README.html">Return</A> to top-level of LAMMPS documentation.</P>
|
||||
<P>
|
||||
This is a brief history of features added to each version of LAMMPS.</P>
|
||||
<HR>
|
||||
<H3>
|
||||
LAMMPS 99 - June 99 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
all-MPI version of code (F77 + C + MPI) for maximum portablility
|
||||
<LI>
|
||||
only one PPPM choice now, the better of the two earlier ones
|
||||
<LI>
|
||||
PPPM uses portable FFTs and data remapping routines, written in C w/
|
||||
MPI, can now use non-power-of-2 processors and grid sizes
|
||||
<LI>
|
||||
auto-mapping of simulation box to processors
|
||||
<LI>
|
||||
removed a few unused/unneeded commands (bdump, log file, id string,
|
||||
limit)
|
||||
<LI>
|
||||
changed syntax of some commands for simplicity & consistency (see <A
|
||||
HREF="input_commands.html">input commands</A>)
|
||||
<LI>
|
||||
changed method of calling/writing user diagnostic routines to be simpler
|
||||
<LI>
|
||||
documentation in HTML format
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 5.0 - Oct 1997 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
final version of class II force fields
|
||||
<LI>
|
||||
new formulation of NVE, NVT, NPT and rRESPA integrators
|
||||
<LI>
|
||||
new version of msi2lmp pre-processing tool, does not require DISCOVER
|
||||
to run, only DISCOVER force field files
|
||||
<LI>
|
||||
energy minimizer, Hessian-free truncated Newton method
|
||||
<LI>
|
||||
new pressure controllers and constraints
|
||||
<LI>
|
||||
replicate tool for generating new data files from old ones
|
||||
</UL>
|
||||
<HR ALIGN="LEFT">
|
||||
<H3>
|
||||
Version 4.0 - March 1997 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
1st version of class II force fields
|
||||
<LI>
|
||||
new, faster PPPM solver (newpppm)
|
||||
<LI>
|
||||
rRESPA
|
||||
<LI>
|
||||
new data file format
|
||||
<LI>
|
||||
new constraints, diagnostics
|
||||
<LI>
|
||||
msi2lmp pre-processing tool
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 3.0 - March 1996 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
more general force-field formulation
|
||||
<LI>
|
||||
atom/group constraints
|
||||
<LI>
|
||||
LJ units and bond potentials
|
||||
<LI>
|
||||
smoothed LJ potential option
|
||||
<LI>
|
||||
Langevin thermostat
|
||||
<LI>
|
||||
Newton's 3rd law option
|
||||
<LI>
|
||||
hook for user-supplied diagnostic routines
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 2.0 - October 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
bug fix of velocity initialization which caused drift
|
||||
<LI>
|
||||
PPPM for long-range Coulombic
|
||||
<LI>
|
||||
constant NPT
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 1.1 - February 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
Ewald for long-range Coulombic
|
||||
<LI>
|
||||
full Newton's 3rd law (doubled communication)
|
||||
<LI>
|
||||
dumping of atom positions and velocities
|
||||
<LI>
|
||||
restart files
|
||||
</UL>
|
||||
<HR>
|
||||
<H3>
|
||||
Version 1.0 - January 1995 </H3>
|
||||
<UL>
|
||||
<LI>
|
||||
short-range bonded and non-bonded forces
|
||||
<LI>
|
||||
partial Newton's 3rd law
|
||||
<LI>
|
||||
velocity-Verlet integrator
|
||||
</UL>
|
||||
</BODY>
|
||||
</HTML>
|
||||
1570
doc/99/input_commands.html
Normal file
1570
doc/99/input_commands.html
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user