merge with GHub version

This commit is contained in:
Steve Plimpton
2023-12-13 09:05:27 -07:00
47 changed files with 44478 additions and 22643 deletions

View File

@ -1,33 +1,40 @@
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.10.04.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "70ff79f4e59af175e55d24f3243ad1ff" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
set(PACELIB_MD5 "b45de9a633f42ed65422567e3ce56f9f" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
GetFallbackURL(PACELIB_URL PACELIB_FALLBACK)
# download library sources to build folder
if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
endif()
if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")
message(STATUS "Downloading ${PACELIB_URL}")
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}"))
message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}")
file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS)
endif()
# LOCAL_ML-PACE points to top-level dir with local lammps-user-pace repo,
# to make it easier to check local build without going through the public github releases
if(LOCAL_ML-PACE)
set(lib-pace "${LOCAL_ML-PACE}")
else()
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
endif()
# download library sources to build folder
if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
endif()
if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")
message(STATUS "Downloading ${PACELIB_URL}")
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS)
file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5)
if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}"))
message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}")
file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS)
endif()
else()
message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz")
endif()
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace)
endif()
add_subdirectory(${lib-pace} build-pace)
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})

View File

@ -115,6 +115,7 @@ KOKKOS, o = OPENMP, t = OPT.
* :doc:`property/grid <compute_property_grid>`
* :doc:`property/local <compute_property_local>`
* :doc:`ptm/atom <compute_ptm_atom>`
* :doc:`rattlers/atom <compute_rattlers_atom>`
* :doc:`rdf <compute_rdf>`
* :doc:`reduce <compute_reduce>`
* :doc:`reduce/chunk <compute_reduce_chunk>`

View File

@ -122,6 +122,7 @@ OPT.
* :doc:`mvv/tdpd <fix_mvv_dpd>`
* :doc:`neb <fix_neb>`
* :doc:`neb/spin <fix_neb_spin>`
* :doc:`nonaffine/displacement <fix_nonaffine_displacement>`
* :doc:`nph (ko) <fix_nh>`
* :doc:`nph/asphere (o) <fix_nph_asphere>`
* :doc:`nph/body <fix_nph_body>`

View File

@ -355,7 +355,7 @@ faces are listed, so that M = 6 + 3\*N + 1.
The integer line has three values: number of vertices (N), number of
edges (E) and number of faces (F). The floating point line(s) list 6
moments of inertia followed by the coordinates of the N vertices (x1
to zN) as 3N values, followed by 2N vertex indices corresponding to
to zN) as 3N values, followed by 2E vertex indices corresponding to
the end points of the E edges, then 4\*F vertex indices defining F
faces. The last value is the diameter value = the rounded diameter of
the sphere that surrounds each vertex. The diameter value can be

View File

@ -279,6 +279,7 @@ The individual style names on the :doc:`Commands compute <Commands_compute>` pag
* :doc:`property/grid <compute_property_grid>` - convert per-grid attributes to per-grid vectors/arrays
* :doc:`property/local <compute_property_local>` - convert local attributes to local vectors/arrays
* :doc:`ptm/atom <compute_ptm_atom>` - determines the local lattice structure based on the Polyhedral Template Matching method
* :doc:`rattlers/atom <compute_rattlers_atom>` - identify under-coordinated rattler atoms
* :doc:`rdf <compute_rdf>` - radial distribution function :math:`g(r)` histogram of group of atoms
* :doc:`reduce <compute_reduce>` - combine per-atom quantities into a single global value
* :doc:`reduce/chunk <compute_reduce_chunk>` - reduce per-atom quantities within each chunk

View File

@ -36,6 +36,9 @@ sum of the radii of the two particles.
The value of the contact number will be 0.0 for atoms not in the
specified compute group.
The optional *group2-ID* argument allows to specify from which group atoms
contribute to the coordination number. Default setting is group 'all'.
Output info
"""""""""""
@ -47,9 +50,6 @@ overview of LAMMPS output options.
The per-atom vector values will be a number :math:`\ge 0.0`, as explained
above.
The optional *group2-ID* argument allows to specify from which group atoms
contribute to the coordination number. Default setting is group 'all.'
Restrictions
""""""""""""
@ -69,6 +69,3 @@ Default
"""""""
*group2-ID* = all
none

View File

@ -0,0 +1,92 @@
.. index:: compute rattlers/atom
compute rattlers/atom command
========================
Syntax
""""""
.. parsed-literal::
compute ID group-ID rattlers/atom cutoff zmin ntries
* ID, group-ID are documented in :doc:`compute <compute>` command
* rattlers/atom = style name of this compute command
* cutoff = *type* or *radius*
.. parsed-literal::
*type* = cutoffs determined based on atom types
*radius* = cutoffs determined based on atom diameters (atom style sphere)
* zmin = minimum coordination for a non-rattler atom
* ntries = maximum number of iterations to remove rattlers
Examples
""""""""
.. code-block:: LAMMPS
compute 1 all rattlers/atom type 4 10
Description
"""""""""""
.. versionadded:: TBD
Define a compute that identifies rattlers in a system. Rattlers are often
identified in granular or glassy packings as undercoordinated atoms that
do not have the required number of contacts to constrain their translational
degrees of freedom. Such atoms are not considered rigid and can often freely
rattle around in the system. This compute identifies rattlers which can be
helpful for excluding them from analysis or providing extra damping forces
to accelerate relaxation processes.
Rattlers are identified using an interactive approach. The coordination
number of all atoms is first calculated. The *type* and *radius* settings
are used to select whether interaction cutoffs are determined by atom
types or by the sum of atomic radii (atom style sphere), respectively.
Rattlers are then identified as atoms with a coordination number less
than *zmin* and are removed from consideration. Atomic coordination
numbers are then recalculated, excluding previously identified rattlers,
to identify a new set of rattlers. This process is iterated up to a maximum
of *ntries* or until no new rattlers are identified and the remaining
atoms form a stable network of contacts.
In dense homogeneous systems where the average atom coordination number
is expected to be larger than *zmin*, this process usually only takes a few
iterations and a value of *ntries* around ten may be sufficient. In systems
with significant heterogeneity or average coordination numbers less than
*zmin*, an appropriate value of *ntries* depends heavily on the specific
system. For instance, a linear chain of N rattler atoms with a *zmin* of 2
would take N/2 iterations to identify that all the atoms are rattlers.
Output info
"""""""""""
This compute calculates a per-atom vector and a global scalar. The vector
designates which atoms are rattlers, indicated by a value 1. Non-rattlers
have a value of 0. The global scalar returns the total number of rattlers
in the system. See the :doc:`Howto output <Howto_output>` page for an
overview of LAMMPS output options.
Restrictions
""""""""""""
This compute is part of the EXTRA-COMPUTE package. It is only enabled if
LAMMPS was built with that package. See the
:doc:`Build package <Build_package>` page for more info.
The *radius* cutoff option requires that atoms store a radius as defined by the
:doc:`atom_style sphere <atom_style>` or similar commands.
Related commands
""""""""""""""""
:doc:`compute coord/atom <compute_coord_atom>`
:doc:`compute contact/atom <compute_contact_atom>`
Default
"""""""
none

View File

@ -287,6 +287,7 @@ accelerated styles exist.
* :doc:`mvv/tdpd <fix_mvv_dpd>` - constant temperature DPD using the modified velocity-Verlet algorithm
* :doc:`neb <fix_neb>` - nudged elastic band (NEB) spring forces
* :doc:`neb/spin <fix_neb_spin>` - nudged elastic band (NEB) spring forces for spins
* :doc:`nonaffine/displacement <fix_nonaffine_displacement>` - calculate nonaffine displacement of atoms
* :doc:`nph <fix_nh>` - constant NPH time integration via Nose/Hoover
* :doc:`nph/asphere <fix_nph_asphere>` - NPH for aspherical particles
* :doc:`nph/body <fix_nph_body>` - NPH for body particles

View File

@ -0,0 +1,133 @@
.. index:: fix nonaffine/displacement
fix nonaffine/displacement command
==================================
Syntax
""""""
.. parsed-literal::
fix ID group nonaffine/displacement style args reference/style nstep
* ID, group are documented in :doc:`fix <fix>` command
* nonaffine/displacement = style name of this fix command
* nevery = calculate nonaffine displacement every this many timesteps
* style = *d2min* or *integrated*
.. parsed-literal::
*d2min* args = cutoff args
cutoff = *type* or *radius* or *custom*
*type* args = none, cutoffs determined by atom types
*radius* args = none, cutoffs determined based on atom diameters (atom style sphere)
*custom* args = *rmax*, cutoff set by a constant numeric value *rmax* (distance units)
*integrated* args = none
* reference/style = *fixed* or *update* or *offset*
.. parsed-literal::
*fixed* = use a fixed reference frame at *nstep*
*update* = update the reference frame every *nstep* timesteps
*offset* = update the reference frame *nstep* timesteps before calculating the nonaffine displacement
Examples
""""""""
.. code-block:: LAMMPS
fix 1 all nonaffine/displacement 100 integrated update 100
fix 1 all nonaffine/displacement 1000 d2min type fixed 0
fix 1 all nonaffine/displacement 1000 d2min custom 2.0 offset 100
Description
"""""""""""
.. versionadded:: TBD
This fix computes different metrics of the nonaffine displacement of
particles. The first metric, *d2min* calculates the :math:`D^2_\mathrm{min}`
nonaffine displacement by Falk and Langer in :ref:`(Falk) <d2min-Falk>`.
For each atom, the fix computes the two tensors
.. math::
X = \sum_{\mathrm{neighbors}} \vec{r} \left(\vec{r}_{0} \right)^T
and
.. math::
Y = \sum_{\mathrm{neighbors}} \vec{r}_0 \left(\vec{r}_{0} \right)^T
where the neighbors include all other atoms within the distance criterion
set by the cutoff option, discussed below, :math:`\vec{r}` is the current
displacement between particles, and :math:`\vec{r}_0` is the reference
displacement. A deformation gradient tensor is then calculated as
:math:`F = X Y^{-1}` from which
.. math::
D^2_\mathrm{min} = \sum_{\mathrm{neighbors}} \left| \vec{r} - F \vec{r}_0 \right|^2
and a strain tensor is calculated :math:`E = F F^{T} - I` where :math:`I`
is the identity tensor. This calculation is only performed on timesteps that
are a multiple of *nevery* (including timestep zero). Data accessed before
this occurs will simply be zeroed.
The *integrated* style simply integrates the velocity of particles
every timestep to calculate a displacement. This style only works if
used in conjunction with another fix that deforms the box and displaces
atom positions such as :doc:`fix deform <fix_deform>` with remap x,
:doc:`fix press/berendsen <fix_press_berendsen>`, or :doc:`fix nh <fix_nh>`.
Both of these methods require defining a reference state. With the *fixed* reference
style, the user picks a specific timestep *nstep* at which particle positions are saved.
If peratom data is accessed from this compute prior to this timestep, it will simply be
zeroed. The *update* reference style implies the reference state will be updated every
*nstep* timesteps. The *offset* reference only applies to the *d2min* metric and will
update the reference state *nstep* timesteps before a multiple of *nevery* timesteps.
----------
Restart, fix_modify, output, run start/stop, minimize info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The reference state is saved to :doc:`binary restart files <restart>`.
None of the :doc:`fix_modify <fix_modify>` options are relevant to this
fix.
This fix computes a peratom array with 3 columns, which can be accessed
by indices 1-3 using any command that uses per-atom values from a fix
as input.
For the *integrated* style, the three columns are the nonaffine
displacements in the x, y, and z directions. For the *d2min* style,
the three columns are the calculated :math:`\sqrt{D^2_\mathrm{min}}`, the
volumetric strain, and the deviatoric strain.
Restrictions
""""""""""""
This compute is part of the EXTRA-FIX package. It is only enabled if
LAMMPS was built with that package. See the
:doc:`Build package <Build_package>` page for more info.
Related commands
""""""""""""""""
none
Default
"""""""
none
----------
.. _d2min-Falk:
**(Falk)** Falk and Langer PRE, 57, 7192 (1998).

View File

@ -80,7 +80,7 @@ Syntax
groupID1, groupID2, ... = list of N group IDs
* zero or more keyword/value pairs may be appended
* keyword = *langevin* or *reinit* or *temp* or *iso* or *aniso* or *x* or *y* or *z* or *couple* or *tparam* or *pchain* or *dilate* or *force* or *torque* or *infile* or *gravity*
* keyword = *langevin* or *reinit* or *temp* or *mol* or *iso* or *aniso* or *x* or *y* or *z* or *couple* or *tparam* or *pchain* or *dilate* or *force* or *torque* or *infile* or *gravity*
.. parsed-literal::
@ -92,6 +92,8 @@ Syntax
*temp* values = Tstart Tstop Tdamp
Tstart,Tstop = desired temperature at start/stop of run (temperature units)
Tdamp = temperature damping parameter (time units)
*mol* value = template-ID
template-ID = ID of molecule template specified in a separate :doc:`molecule <molecule>` command
*iso* or *aniso* values = Pstart Pstop Pdamp
Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
Pdamp = pressure damping parameter (time units)

View File

@ -154,21 +154,25 @@ These are the recognized header keywords. Header lines can come in
any order. The numeric value(s) are read from the beginning of the
line. The keyword should appear at the end of the line. All these
settings have default values, as explained below. A line need only
appear if the value(s) are different than the default.
appear if the value(s) are different than the default, except when
defining a *body* particle, which requires setting the number of
*atoms* to 1, and setting the *inertia* in a specific section (see below).
* N *atoms* = # of atoms N in molecule, default = 0
* Nb *bonds* = # of bonds Nb in molecule, default = 0
* Na *angles* = # of angles Na in molecule, default = 0
* Nd *dihedrals* = # of dihedrals Nd in molecule, default = 0
* Ni *impropers* = # of impropers Ni in molecule, default = 0
* Nf *fragments* = # of fragments in molecule, default = 0
* Nf *fragments* = # of fragments Nf in molecule, default = 0
* Ninteger Ndouble *body* = # of integer and floating-point values in body
particle, default = 0
* Mtotal *mass* = total mass of molecule
* Xc Yc Zc *com* = coordinates of center-of-mass of molecule
* Ixx Iyy Izz Ixy Ixz Iyz *inertia* = 6 components of inertia tensor of molecule
For *mass*, *com*, and *inertia*, the default is for LAMMPS to
calculate this quantity itself if needed, assuming the molecules
consists of a set of point particles or finite-size particles (with a
consist of a set of point particles or finite-size particles (with a
non-zero diameter) that do not overlap. If finite-size particles in
the molecule do overlap, LAMMPS will not account for the overlap
effects when calculating any of these 3 quantities, so you should
@ -188,6 +192,7 @@ These are the allowed section keywords for the body of the file.
* *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections
* *Special Bond Counts, Special Bonds* = special neighbor info
* *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info
* *Body Integers, Body Doubles* = body-property sections
For the Types, Bonds, Angles, Dihedrals, and Impropers sections, each
atom/bond/angle/etc type can be specified either as a number (numeric
@ -515,6 +520,67 @@ of SHAKE clusters.
----------
*Body Integers* section:
* one line
* line syntax: N E F
* N = number of sub-particles or number or vertices
* E,F = number of edges and faces
This section is only needed when the molecule is a body particle. the other
Body section must also appear in the file.
The total number of values that must appear is determined by the body style, and
must be equal to the Ninteger value given in the *body* header.
For *nparticle* and *rounded/polygon*, only the number of sub-particles or
vertices N is required, and Ninteger should have a value of 1.
For *rounded/polyhedron*, the number of edges E and faces F is required, and
Ninteger should have a value of 3.
See the :doc:`Howto body <Howto_body>` page for a further description of
the file format.
----------
*Body Doubles* section:
* first line
* line syntax: Ixx Iyy Izz Ixy Ixz Iyz
* Ixx Iyy Izz Ixy Ixz Iyz = 6 components of inertia tensor of body particle
* one line per sub-particle or vertex
* line syntax: x y z
* x, y, z = coordinates of sub-particle or vertex
* one line per edge
* line syntax: N1 N2
* N1, N2 = vertex indices
* one line per face
* line syntax: N1 N2 N3 N4
* N1, N2, N3, N4 = vertex indices
* last line
* line syntax: diam
* diam = rounded diameter that surrounds each vertex
This section is only needed when the molecule is a body particle. the other
Body section must also appear in the file.
The total number of values that must appear is determined by the body style, and
must be equal to the Ndouble value given in the *body* header. The 6 moments of
inertia and the 3N coordinates of the sub-particles or vertices are required
for all body styles.
For *rounded/polygon*, the E = 6 + 3*N + 1 edges are automatically determined
from the vertices.
For *rounded/polyhedron*, the 2E vertex indices for the end points of the edges
and 4F vertex indices defining the faces are required.
See the :doc:`Howto body <Howto_body>` page for a further description of
the file format.
----------
Restrictions
""""""""""""

View File

@ -40,6 +40,9 @@ Examples
pair_style pace product chunksize 2048
pair_coeff * * Cu-PBE-core-rep.ace Cu
pair_style pace
pair_coeff * * Cu.yaml Cu
pair_style pace/extrapolation
pair_coeff * * Cu.yaml Cu.asi Cu
@ -64,7 +67,7 @@ specifies an ACE coefficient file followed by N additional arguments
specifying the mapping of ACE elements to LAMMPS atom types, where N is
the number of LAMMPS atom types:
* ACE coefficient file
* ACE coefficient file (.yaml or .yace/.ace format)
* N element names = mapping of ACE elements to atom types
Only a single pair_coeff command is used with the *pace* style which
@ -136,6 +139,22 @@ product B-basis evaluator is always used and only *linear* ASI is supported.
See the :doc:`pair_coeff <pair_coeff>` page for alternate ways
to specify the path for the ACE coefficient file.
Core repulsion
"""""""""""""""""""
The ACE potential can be configured to initiate core-repulsion from an inner cutoff,
seamlessly transitioning from ACE to ZBL. The core repulsion factor can be accessed
as a per-atom quantity, as demonstrated in the example below:
.. code-block:: LAMMPS
pair_style pace
pair_coeff * * CuNi.yaml Cu Ni
fix pace_corerep all pair 1 pace corerep 1
In this case, per-atom `f_pace_corerep` quantities represent the fraction of ZBL
core-repulsion for each atom.
Mixing, shift, table, tail correction, restart, rRESPA info
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

View File

@ -1087,6 +1087,7 @@ facesets
factorizable
factorizations
Fahrenberger
Falk
Faken
Farago
Fasolino
@ -1835,6 +1836,7 @@ Lanczos
Lande
Landron
Landsgesell
Langer
langevin
Langevin
Langston
@ -2512,6 +2514,7 @@ noforce
noguess
Noid
nolib
nonaffine
nonequilibrium
nongauss
nonGaussian
@ -2584,6 +2587,7 @@ nthreads
ntimestep
Ntptask
Ntriples
ntries
ntris
Ntype
ntypes

View File

@ -68,7 +68,7 @@ variable Lx1 equal round(${Lx}/${aWall})*${aWall}
#create simulation box
variable lx2 equal ${Lx1}/2
variable ly2 equal ${Ly1}/2
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} 0 0.1 units box
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} -0.1 0.1 units box
create_box 2 simbox
#####################################################################

View File

@ -0,0 +1,941 @@
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
#LAMMPS input script
#in.GD
#see README for details
###############################################################################
#initialize variables
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
#frequency for outputting info (timesteps)
variable dump_rate equal 50
variable thermo_rate equal 10
#equilibration time (timesteps)
variable equil equal 1000
#stabilization time (timesteps to reach steady-state)
variable stabil equal 1000
#data collection time (timesteps)
variable run equal 2000
#length of pipe
variable L equal 30
#width of pipe
variable d equal 20
#flux (mass/sigma*tau)
variable J equal 0.1
#simulation box dimensions
variable Lx equal 100
variable Ly equal 40
#bulk fluid density
variable dens equal 0.8
#lattice spacing for wall atoms
variable aWall equal 1.0 #1.7472
#timestep
variable ts equal 0.001
#temperature
variable T equal 2.0
#thermostat damping constant
variable tdamp equal ${ts}*100
variable tdamp equal 0.001*100
units lj
dimension 2
atom_style atomic
###############################################################################
#create box
#create lattice with the spacing aWall
variable rhoWall equal ${aWall}^(-2)
variable rhoWall equal 1^(-2)
lattice sq ${rhoWall}
lattice sq 1
Lattice spacing in x,y,z = 1 1 1
#modify input dimensions to be multiples of aWall
variable L1 equal round($L/${aWall})*${aWall}
variable L1 equal round(30/${aWall})*${aWall}
variable L1 equal round(30/1)*${aWall}
variable L1 equal round(30/1)*1
variable d1 equal round($d/${aWall})*${aWall}
variable d1 equal round(20/${aWall})*${aWall}
variable d1 equal round(20/1)*${aWall}
variable d1 equal round(20/1)*1
variable Ly1 equal round(${Ly}/${aWall})*${aWall}
variable Ly1 equal round(40/${aWall})*${aWall}
variable Ly1 equal round(40/1)*${aWall}
variable Ly1 equal round(40/1)*1
variable Lx1 equal round(${Lx}/${aWall})*${aWall}
variable Lx1 equal round(100/${aWall})*${aWall}
variable Lx1 equal round(100/1)*${aWall}
variable Lx1 equal round(100/1)*1
#create simulation box
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
variable ly2 equal ${Ly1}/2
variable ly2 equal 40/2
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 ${lx2} -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 50 -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 50 -20 ${ly2} -0.1 0.1 units box
region simbox block -50 50 -20 20 -0.1 0.1 units box
create_box 2 simbox
Created orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
1 by 1 by 1 MPI processor grid
#####################################################################
#set up potential
mass 1 1.0 #fluid atoms
mass 2 1.0 #wall atoms
pair_style lj/cut 2.5
pair_modify shift yes
pair_coeff 1 1 1.0 1.0 2.5
pair_coeff 1 2 1.0 1.0 1.12246
pair_coeff 2 2 0.0 0.0
neigh_modify exclude type 2 2
timestep ${ts}
timestep 0.001
#####################################################################
#create atoms
#create wall atoms everywhere
create_atoms 2 box
Created 4000 atoms
using lattice units in orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
create_atoms CPU = 0.002 seconds
#define region which is "walled off"
variable dhalf equal ${d1}/2
variable dhalf equal 20/2
variable Lhalf equal ${L1}/2
variable Lhalf equal 30/2
region walltop block -${Lhalf} ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 10 EDGE -0.1 0.1 units box
region wallbot block -${Lhalf} ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -10 -0.1 0.1 units box
region outsidewall union 2 walltop wallbot side out
#remove wall atoms outside wall region
group outside region outsidewall
3349 atoms in group outside
delete_atoms group outside
Deleted 3349 atoms, new total = 651
#remove wall atoms that aren't on edge of wall region
variable x1 equal ${Lhalf}-${aWall}
variable x1 equal 15-${aWall}
variable x1 equal 15-1
variable y1 equal ${dhalf}+${aWall}
variable y1 equal 10+${aWall}
variable y1 equal 10+1
region insideTop block -${x1} ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 11 EDGE -0.1 0.1 units box
region insideBot block -${x1} ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -11 -0.1 0.1 units box
region insideWall union 2 insideTop insideBot
group insideWall region insideWall
551 atoms in group insideWall
delete_atoms group insideWall
Deleted 551 atoms, new total = 100
#define new lattice, to give correct fluid density
#y lattice const must be a multiple of aWall
variable atrue equal ${dens}^(-1/2)
variable atrue equal 0.8^(-1/2)
variable ay equal round(${atrue}/${aWall})*${aWall}
variable ay equal round(1.11803398874989/${aWall})*${aWall}
variable ay equal round(1.11803398874989/1)*${aWall}
variable ay equal round(1.11803398874989/1)*1
#choose x lattice const to give correct density
variable ax equal (${ay}*${dens})^(-1)
variable ax equal (1*${dens})^(-1)
variable ax equal (1*0.8)^(-1)
#change Lx to be multiple of ax
variable Lx1 equal round(${Lx}/${ax})*${ax}
variable Lx1 equal round(100/${ax})*${ax}
variable Lx1 equal round(100/1.25)*${ax}
variable Lx1 equal round(100/1.25)*1.25
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
change_box all x final -${lx2} ${lx2} units box
change_box all x final -50 ${lx2} units box
change_box all x final -50 50 units box
Changing box ...
orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
#define new lattice
lattice custom ${dens} a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 1 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
Lattice spacing in x,y,z = 1.25 1 1
#fill in rest of box with bulk particles
variable delta equal 0.001
variable Ldelt equal ${Lhalf}+${delta}
variable Ldelt equal 15+${delta}
variable Ldelt equal 15+0.001
variable dDelt equal ${dhalf}-${delta}
variable dDelt equal 10-${delta}
variable dDelt equal 10-0.001
region left block EDGE -${Ldelt} EDGE EDGE -0.1 0.1 units box
region left block EDGE -15.001 EDGE EDGE -0.1 0.1 units box
region right block ${Ldelt} EDGE EDGE EDGE -0.1 0.1 units box
region right block 15.001 EDGE EDGE EDGE -0.1 0.1 units box
region pipe block -${Ldelt} ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 9.999 -0.1 0.1 units box
region bulk union 3 left pipe right
create_atoms 1 region bulk
Created 2675 atoms
using lattice units in orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
create_atoms CPU = 0.002 seconds
group bulk type 1
2675 atoms in group bulk
group wall type 2
100 atoms in group wall
#remove atoms that are too close to wall
delete_atoms overlap 0.9 bulk wall
System init for delete_atoms ...
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) command delete_atoms, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
(2) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Deleted 0 atoms, new total = 2775
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
neigh_modify exclude group wall wall
velocity bulk create $T 78915 dist gaussian rot yes mom yes loop geom
velocity bulk create 2 78915 dist gaussian rot yes mom yes loop geom
#####################################################################
#set up PUT
#see Evans and Morriss, Phys. Rev. Lett. 56(20) 1986, p. 2172
#average number of particles per box, Evans and Morriss used 2.0
variable NperBox equal 8.0
#calculate box sizes
variable boxSide equal sqrt(${NperBox}/${dens})
variable boxSide equal sqrt(8/${dens})
variable boxSide equal sqrt(8/0.8)
variable nX equal round(lx/${boxSide})
variable nX equal round(lx/3.16227766016838)
variable nY equal round(ly/${boxSide})
variable nY equal round(ly/3.16227766016838)
variable dX equal lx/${nX}
variable dX equal lx/32
variable dY equal ly/${nY}
variable dY equal ly/13
#temperature of fluid (excluding wall)
compute myT bulk temp
#profile-unbiased temperature of fluid
compute myTp bulk temp/profile 1 1 0 xy ${nX} ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 13
#thermo setup
thermo ${thermo_rate}
thermo 10
thermo_style custom step c_myT c_myTp etotal press
#dump initial configuration
# dump 55 all custom 1 all.init.lammpstrj id type x y z vx vy vz
# dump 56 wall custom 1 wall.init.lammpstrj id type x y z
# dump_modify 55 sort id
# dump_modify 56 sort id
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.104 | 3.104 | 3.104 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.054601 0.77892922 7.3417096
Loop time of 6.85e-07 on 1 procs for 0 steps with 2775 atoms
146.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 6.85e-07 | | |100.00
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 510 ave 510 max 510 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 26406 ave 26406 max 26406 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 26406
Ave neighs/atom = 9.5156757
Neighbor list builds = 0
Dangerous builds = 0
# undump 55
# undump 56
#####################################################################
#equilibrate without GD
fix nvt bulk nvt temp $T $T ${tdamp}
fix nvt bulk nvt temp 2 $T ${tdamp}
fix nvt bulk nvt temp 2 2 ${tdamp}
fix nvt bulk nvt temp 2 2 0.1
fix_modify nvt temp myTp
WARNING: Temperature for fix modify is not for group all (src/fix_nh.cpp:1391)
fix 2 bulk enforce2d
run ${equil}
run 1000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 3.166 | 3.166 | 3.166 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.054601 0.77892922 7.3417096
10 1.9173668 1.9381538 0.77877698 7.6702283
20 1.7033651 1.6967466 0.7798044 8.5615039
30 1.5026644 1.4718046 0.78461914 9.4308883
40 1.4881235 1.4586031 0.79494919 9.6135307
50 1.6193439 1.6144665 0.81119835 9.2594114
60 1.7405127 1.7576881 0.82966956 8.9525458
70 1.7758506 1.7999706 0.84538866 8.9719793
80 1.7574736 1.7806782 0.85780732 9.1938511
90 1.7492232 1.7720284 0.86895259 9.3714617
100 1.7800292 1.807315 0.88044504 9.3874107
110 1.8442295 1.878681 0.89278276 9.2585436
120 1.9193695 1.9667163 0.90556381 9.0683654
130 1.9885753 2.0478097 0.91782871 8.8815507
140 2.04662 2.1105827 0.92850319 8.718882
150 2.0957046 2.1672706 0.93677238 8.5718869
160 2.144595 2.2210801 0.94188484 8.4089161
170 2.1802133 2.2626399 0.9429713 8.2775682
180 2.1868284 2.2696504 0.93931537 8.2321283
190 2.1838369 2.2706873 0.93069783 8.1970105
200 2.1943436 2.2865542 0.91717737 8.0854148
210 2.2029439 2.2912731 0.89906796 7.9589187
220 2.1891494 2.2768232 0.87764254 7.9016509
230 2.1677848 2.2493747 0.85497463 7.8690125
240 2.156695 2.2377486 0.83255207 7.8020978
250 2.142758 2.2237662 0.81090722 7.7510242
260 2.1177881 2.1967699 0.79016944 7.7477503
270 2.0862408 2.1669583 0.77040874 7.7740216
280 2.0676515 2.1446262 0.75157955 7.7544068
290 2.0645498 2.1425534 0.73343008 7.6746729
300 2.0563664 2.1358776 0.71562279 7.6114783
310 2.0390115 2.1198472 0.69809211 7.581719
320 2.0209035 2.1063385 0.68093855 7.5540946
330 2.012488 2.1037583 0.66418283 7.4896097
340 2.0166095 2.1094212 0.64762479 7.3779677
350 2.0172861 2.1072653 0.63109595 7.2807114
360 2.0065768 2.0803788 0.6147802 7.2283814
370 1.9970858 2.0639903 0.59905362 7.1747592
380 1.9925189 2.056563 0.58395055 7.103506
390 1.9935388 2.0546596 0.56945318 7.010305
400 2.0020199 2.0632095 0.55532013 6.8883647
410 2.009157 2.0732883 0.54128082 6.771521
420 2.0081687 2.0785184 0.52711525 6.6868076
430 1.9990498 2.0705469 0.51283203 6.6343482
440 1.9891528 2.0586814 0.4986104 6.5888679
450 1.9829175 2.0465778 0.4846738 6.5332233
460 1.9745599 2.031067 0.4711878 6.4903915
470 1.9581101 2.006674 0.45837961 6.4836654
480 1.9367964 1.9732882 0.44656667 6.501731
490 1.9258333 1.9561395 0.43605676 6.4879447
500 1.9287 1.9571319 0.42678362 6.4296036
510 1.9274696 1.9569118 0.41856553 6.3949919
520 1.9100149 1.9392424 0.41134511 6.4307452
530 1.8827127 1.9059412 0.40536565 6.5126603
540 1.8660696 1.8912024 0.40096324 6.5610607
550 1.8701883 1.9043254 0.3982457 6.536251
560 1.8842923 1.9289528 0.39698123 6.4785367
570 1.8906147 1.9462124 0.39684504 6.4547374
580 1.8895472 1.9472747 0.39763233 6.4630103
590 1.895375 1.9551336 0.39926725 6.449517
600 1.9115711 1.9737109 0.40163655 6.3995241
610 1.92823 1.9851787 0.404506 6.3499339
620 1.9360678 1.9889572 0.40767569 6.3367514
630 1.9346853 1.9836719 0.41105958 6.3637995
640 1.9266095 1.9757908 0.41472954 6.4212842
650 1.9213863 1.9719496 0.41879537 6.4707692
660 1.922962 1.9702923 0.42332926 6.4949933
670 1.9238956 1.9707534 0.42836303 6.5212631
680 1.9212675 1.9740379 0.43388709 6.5608915
690 1.9210314 1.976311 0.43982007 6.5904702
700 1.928081 1.9868449 0.44610463 6.5915021
710 1.9428895 2.0044235 0.45257857 6.5616141
720 1.9554783 2.0176139 0.45898384 6.5367529
730 1.969838 2.0327907 0.46505662 6.5017635
740 1.9840204 2.0467126 0.47058703 6.4649226
750 1.9946633 2.0526929 0.47535832 6.4399342
760 2.0018048 2.0535606 0.47924291 6.4280737
770 1.9991703 2.0483426 0.48222842 6.4537535
780 1.9850797 2.0312444 0.48443072 6.5234271
790 1.9691589 2.0154006 0.4861158 6.5995894
800 1.9612641 2.0031407 0.48754831 6.6430968
810 1.9637155 2.0074142 0.48891261 6.6444644
820 1.9691691 2.0110229 0.49018604 6.6304512
830 1.9763962 2.0190998 0.49130448 6.6060594
840 1.9908278 2.0352615 0.49213189 6.5510683
850 2.0105715 2.0558403 0.49238435 6.4743276
860 2.0227982 2.0645732 0.49173076 6.4260863
870 2.015555 2.064081 0.48998228 6.4528588
880 1.9889672 2.0320831 0.48722022 6.5532269
890 1.9632172 2.0025881 0.48392295 6.6494723
900 1.9527429 1.9887196 0.48054642 6.6846937
910 1.9567815 1.9953408 0.47726539 6.6606541
920 1.9666996 2.0084955 0.47397593 6.6100666
930 1.9702885 2.014774 0.47048741 6.5805871
940 1.9661802 2.0116846 0.46671831 6.579539
950 1.9576953 1.9960728 0.46273983 6.5967841
960 1.9428073 1.9802284 0.45879028 6.6395002
970 1.9256011 1.9584581 0.45515059 6.6916425
980 1.913512 1.9478848 0.45214528 6.7233279
990 1.9174938 1.9449699 0.44994026 6.6943867
1000 1.9365527 1.9663901 0.44852349 6.6101761
Loop time of 0.324261 on 1 procs for 1000 steps with 2775 atoms
Performance: 266452.077 tau/day, 3083.936 timesteps/s, 8.558 Matom-step/s
99.2% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.19361 | 0.19361 | 0.19361 | 0.0 | 59.71
Neigh | 0.025544 | 0.025544 | 0.025544 | 0.0 | 7.88
Comm | 0.0023292 | 0.0023292 | 0.0023292 | 0.0 | 0.72
Output | 0.0046269 | 0.0046269 | 0.0046269 | 0.0 | 1.43
Modify | 0.092779 | 0.092779 | 0.092779 | 0.0 | 28.61
Other | | 0.005374 | | | 1.66
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 527 ave 527 max 527 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24332 ave 24332 max 24332 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24332
Ave neighs/atom = 8.7682883
Neighbor list builds = 38
Dangerous builds = 0
#####################################################################
#initialize the COM velocity and run to achieve steady-state
#calculate velocity to add: V=J/rho_total
variable Vadd equal $J*lx*ly/count(bulk)
variable Vadd equal 0.1*lx*ly/count(bulk)
#first remove any COM velocity, then add back the streaming velocity
velocity bulk zero linear
velocity bulk set ${Vadd} 0.0 0.0 units box sum yes mom no
velocity bulk set 0.149532710280374 0.0 0.0 units box sum yes mom no
fix GD bulk flow/gauss 1 0 0 #energy yes
#fix_modify GD energy yes
run ${stabil}
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Gaussian dynamics package: doi:10.1021/acs.jpcb.6b09387
@Article{strong_water_2017,
title = {The Dynamics of Water in Porous Two-Dimensional Crystals},
volume = {121},
number = {1},
url = {https://doi.org/10.1021/acs.jpcb.6b09387},
doi = {10.1021/acs.jpcb.6b09387},
urldate = {2016-12-07},
journal = {J.~Phys.\ Chem.~B},
author = {Strong, Steven E. and Eaves, Joel D.},
year = {2017},
pages = {189--207}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 3.166 | 3.166 | 3.166 Mbytes
Step c_myT c_myTp TotEng Press
1000 1.9477212 1.9663901 0.45928547 6.6176422
1010 1.9617328 1.9828061 0.45840963 6.555968
1020 1.9570976 1.9825696 0.45782895 6.5690613
1030 1.9356292 1.9690101 0.45753984 6.6493822
1040 1.9174914 1.9448868 0.4577768 6.7171474
1050 1.9202482 1.9432766 0.4588733 6.7039634
1060 1.9419998 1.9718217 0.46086407 6.617366
1070 1.9666048 1.996346 0.46339522 6.5207175
1080 1.9775489 2.0078489 0.46608862 6.4794239
1090 1.9725172 2.0005028 0.46876174 6.5044299
1100 1.9659582 1.9931537 0.47147394 6.5409107
1110 1.9670607 1.9965504 0.47432892 6.5527414
1120 1.9716302 1.9984924 0.47732198 6.5530022
1130 1.9752703 2.0057031 0.48043914 6.5579379
1140 1.976368 2.0061152 0.48358744 6.5719123
1150 1.9748014 2.0056689 0.48673155 6.5957896
1160 1.9729115 2.0036854 0.48986563 6.6200102
1170 1.9702742 2.0016461 0.49302426 6.6455948
1180 1.9680418 1.9978705 0.49625385 6.6697165
1190 1.9640159 1.9937501 0.49962311 6.7004634
1200 1.9616719 1.9932085 0.50320747 6.7253219
1210 1.9658831 1.9985624 0.50702861 6.7242078
1220 1.9790884 2.0132679 0.51100573 6.688483
1230 1.9946749 2.0324782 0.51491484 6.6422423
1240 2.0039182 2.0484588 0.5184382 6.6190292
1250 2.0033685 2.0545791 0.52130299 6.6322608
1260 1.9991533 2.0533011 0.52339221 6.6590872
1270 1.9969511 2.0571182 0.5246505 6.6789676
1280 1.9911353 2.0488281 0.52501304 6.7125634
1290 1.9712819 2.0209437 0.52460315 6.7967237
1300 1.9486195 1.9967749 0.5238106 6.886265
1310 1.951612 2.0051749 0.52294383 6.8723332
1320 1.9800953 2.0397207 0.52186525 6.7537937
1330 2.0084961 2.0723584 0.52001894 6.6279995
1340 2.021654 2.085105 0.51675149 6.554461
1350 2.0193685 2.0672662 0.5117514 6.5349176
1360 2.0084017 2.0471065 0.50518646 6.5453141
1370 1.994978 2.030683 0.49737164 6.5627932
1380 1.9781978 2.0044236 0.48871071 6.5903683
1390 1.9572368 1.9833426 0.47978207 6.6326472
1400 1.9400481 1.956474 0.47117436 6.6600696
1410 1.9380218 1.9552501 0.46336325 6.6314231
1420 1.9494747 1.9681145 0.45642218 6.5527615
1430 1.9610978 1.9824506 0.4501938 6.4763851
1440 1.9639503 1.9890985 0.44452289 6.4375535
1450 1.9560428 1.9821594 0.43936988 6.4453654
1460 1.9399344 1.9627639 0.43486138 6.488055
1470 1.9247229 1.9440629 0.43123378 6.5292381
1480 1.9213375 1.9369273 0.42866841 6.5271097
1490 1.9265729 1.9383637 0.42719968 6.4940959
1500 1.930987 1.9416689 0.4267225 6.4673585
1510 1.9303444 1.9418498 0.42714462 6.4648027
1520 1.9258423 1.940384 0.42844066 6.4834098
1530 1.9131202 1.9296653 0.4306338 6.5390881
1540 1.8990016 1.9101025 0.43386405 6.6052091
1550 1.9012878 1.9120047 0.43834036 6.6147792
1560 1.9153287 1.9388751 0.44404054 6.5851781
1570 1.9266928 1.9596147 0.45057056 6.5705776
1580 1.9358289 1.9745564 0.45744022 6.5674622
1590 1.9415248 1.9818707 0.46425451 6.5778534
1600 1.9466876 1.98498 0.47075833 6.5878483
1610 1.9557175 1.9930268 0.47674103 6.5777205
1620 1.9712902 2.0112337 0.48200984 6.5367922
1630 1.9900646 2.0303946 0.48631888 6.4790095
1640 1.9960901 2.039173 0.48947508 6.4661574
1650 1.9879046 2.0329046 0.49151173 6.504063
1660 1.9832967 2.0325843 0.49266284 6.5255647
1670 1.9875656 2.034783 0.49313513 6.5093662
1680 1.9967654 2.0492931 0.49299896 6.4699787
1690 2.0025957 2.0532539 0.49216931 6.4389613
1700 2.0022202 2.0424508 0.49070612 6.4276702
1710 2.0083188 2.0437945 0.48879489 6.3909243
1720 2.0178792 2.0439212 0.48646135 6.3411063
1730 2.0210944 2.0444299 0.48367905 6.3141106
1740 2.0170566 2.0337564 0.48044951 6.3158785
1750 2.0099049 2.0231598 0.47693196 6.3313851
1760 1.9990395 2.0132651 0.47329842 6.3631889
1770 1.9823237 1.9969291 0.46970233 6.4208124
1780 1.9640169 1.9798655 0.4663519 6.4879798
1790 1.9457657 1.9626633 0.46348315 6.557165
1800 1.9253222 1.9443136 0.46134123 6.6365286
1810 1.9123385 1.9339816 0.46011796 6.6879846
1820 1.9098744 1.9287702 0.45993599 6.7001355
1830 1.9096278 1.9220243 0.460898 6.7020982
1840 1.9223081 1.9378963 0.46303724 6.6558132
1850 1.9481113 1.9718786 0.46616351 6.5618175
1860 1.9704143 1.9931969 0.46987208 6.484088
1870 1.9864974 2.017655 0.47377416 6.4360445
1880 1.993165 2.0276398 0.47750238 6.4296162
1890 1.9852177 2.0249022 0.48088382 6.4843765
1900 1.9692398 2.0101062 0.4839255 6.5735477
1910 1.9516968 1.9893586 0.48689095 6.6692995
1920 1.9380452 1.9750949 0.49014596 6.7488323
1930 1.9323223 1.9719977 0.49399992 6.7947629
1940 1.9402144 1.9786701 0.49859677 6.7846787
1950 1.9589972 1.9956447 0.50392573 6.7291499
1960 1.979631 2.0201087 0.50984934 6.6648708
1970 2.0002749 2.0392081 0.51605302 6.6026647
1980 2.0143746 2.0524405 0.52221277 6.5687042
1990 2.0166553 2.0466885 0.5281276 6.5835144
2000 2.0130617 2.0424179 0.53381506 6.6234083
Loop time of 0.33442 on 1 procs for 1000 steps with 2775 atoms
Performance: 258357.633 tau/day, 2990.250 timesteps/s, 8.298 Matom-step/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.19616 | 0.19616 | 0.19616 | 0.0 | 58.66
Neigh | 0.023799 | 0.023799 | 0.023799 | 0.0 | 7.12
Comm | 0.0022819 | 0.0022819 | 0.0022819 | 0.0 | 0.68
Output | 0.0046967 | 0.0046967 | 0.0046967 | 0.0 | 1.40
Modify | 0.10212 | 0.10212 | 0.10212 | 0.0 | 30.54
Other | | 0.005366 | | | 1.60
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 530 ave 530 max 530 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24370 ave 24370 max 24370 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24370
Ave neighs/atom = 8.781982
Neighbor list builds = 35
Dangerous builds = 0
#####################################################################
#collect data
#print the applied force and total flux to ensure conservation of Jx
variable Fapp equal f_GD[1]
compute vxBulk bulk reduce sum vx
compute vyBulk bulk reduce sum vy
variable invVol equal 1.0/(lx*ly)
variable jx equal c_vxBulk*${invVol}
variable jx equal c_vxBulk*0.00025
variable jy equal c_vyBulk*${invVol}
variable jy equal c_vyBulk*0.00025
variable curr_step equal step
variable p_Fapp format Fapp %.3f
variable p_jx format jx %.5g
variable p_jy format jy %.5g
fix print_vCOM all print ${dump_rate} "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
fix print_vCOM all print 50 "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
#compute IK1 pressure profile
#see Todd, Evans, and Davis, Phys. Rev. E 52(2) 1995, p. 1627
#use profile-unbiased temperature to remove the streaming velocity
#from the kinetic part of the pressure
compute spa bulk stress/atom myTp
#for the pressure profile, use the same grid as the PUT
compute chunkX bulk chunk/atom bin/1d x lower ${dX} units box
compute chunkX bulk chunk/atom bin/1d x lower 3.125 units box
#output pressure profile and other profiles
#the pressure profile is (-1/2V)*(c_spa[1] + c_spa[2]), where
#V is the volume of a slice
fix profiles bulk ave/chunk 1 1 ${dump_rate} chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
fix profiles bulk ave/chunk 1 1 50 chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
#compute velocity profile across the pipe with a finer grid
variable dYnew equal ${dY}/10
variable dYnew equal 3.07692307692308/10
compute chunkY bulk chunk/atom bin/1d y center ${dYnew} units box region pipe
compute chunkY bulk chunk/atom bin/1d y center 0.307692307692308 units box region pipe
fix velYprof bulk ave/chunk 1 1 ${dump_rate} chunkY vx file Vy_profile ave running overwrite
fix velYprof bulk ave/chunk 1 1 50 chunkY vx file Vy_profile ave running overwrite
#full trajectory
# dump 7 bulk custom ${dump_rate} bulk.lammpstrj id type x y z
# dump_modify 7 sort id
run ${run}
run 2000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 5.175 | 5.175 | 5.175 Mbytes
Step c_myT c_myTp TotEng Press
2000 2.0130617 2.0424179 0.53381506 6.6234083
2010 2.011712 2.0399428 0.53937165 6.6546944
2020 2.0177252 2.0516588 0.54483848 6.6575988
2030 2.0192267 2.054258 0.55012466 6.6761208
2040 2.0155308 2.0513866 0.55518707 6.7132509
2050 2.016831 2.0539288 0.56007247 6.7306192
2060 2.0213378 2.0690043 0.56479732 6.7330132
2070 2.0292987 2.0799825 0.56913353 6.7186216
2080 2.0342188 2.0900923 0.57283821 6.7098434
2090 2.0376411 2.096351 0.57566175 6.6998818
2100 2.053128 2.1238481 0.57727694 6.637431
2110 2.0783941 2.1609599 0.5768993 6.5304031
2120 2.0887269 2.1760645 0.57341638 6.4706853
2130 2.06944 2.1522354 0.5659988 6.5099284
2140 2.0380605 2.115767 0.55466476 6.5802578
2150 2.0195872 2.0868424 0.54025148 6.5885111
2160 2.0061251 2.069266 0.52417244 6.5682875
2170 1.992682 2.0526743 0.50812177 6.5470052
2180 1.9816004 2.0352692 0.49354583 6.5244099
2190 1.9688265 2.0226679 0.4811848 6.5185172
2200 1.9574266 2.000155 0.47107703 6.5176047
2210 1.9502736 1.9925522 0.46298224 6.5078398
2220 1.9475332 1.9936032 0.45641728 6.4850252
2230 1.9545128 2.0045053 0.45087489 6.4291405
2240 1.9627871 2.0112148 0.44588526 6.3715676
2250 1.9617694 2.0073769 0.44121477 6.3541518
2260 1.9579423 2.0079137 0.43675541 6.3542735
2270 1.9475845 1.998983 0.43243494 6.3854071
2280 1.9253275 1.9715083 0.42839782 6.464845
2290 1.8996763 1.9456257 0.42496367 6.5591177
2300 1.8823546 1.9240543 0.42247729 6.6211062
2310 1.8844318 1.9216768 0.42116372 6.6085376
2320 1.8965287 1.933936 0.42103218 6.5584198
2330 1.902103 1.9433708 0.421956 6.5350698
2340 1.9061826 1.950462 0.42378825 6.5228738
2350 1.9180306 1.961141 0.42644522 6.489172
2360 1.9296124 1.9748542 0.42981448 6.4628168
2370 1.9328566 1.9718181 0.43373762 6.4721746
2380 1.9360042 1.9769998 0.43819906 6.4840942
2390 1.9387073 1.9778749 0.44317927 6.49778
2400 1.9445619 1.9882647 0.4486142 6.4971899
2410 1.9553344 1.9997412 0.45435544 6.4749774
2420 1.9710783 2.0211926 0.46019236 6.4320181
2430 1.9903873 2.046553 0.46575694 6.3751343
2440 2.0041158 2.0721071 0.47060398 6.3415121
2450 2.0020392 2.0728953 0.47431806 6.3708096
2460 1.9839851 2.0568906 0.47681718 6.465129
2470 1.9566365 2.0258852 0.47838596 6.5966256
2480 1.929674 2.0032606 0.47952215 6.7260074
2490 1.9153613 1.990031 0.48061628 6.8035919
2500 1.9188373 1.9920514 0.4819225 6.8075788
2510 1.9371656 2.0138698 0.48343533 6.7492701
2520 1.9566481 2.0340995 0.48485699 6.6821181
2530 1.9636141 2.0389496 0.48583392 6.6581326
2540 1.9585172 2.0207113 0.48622314 6.6762792
2550 1.9516934 2.0024186 0.48621721 6.6980104
2560 1.9509543 1.9960852 0.48612286 6.6946311
2570 1.9601672 2.0072552 0.48602872 6.6528934
2580 1.973804 2.0230879 0.48576601 6.5942862
2590 1.9788378 2.034436 0.48505027 6.5689819
2600 1.9716493 2.0208578 0.48368043 6.5897554
2610 1.9618006 2.007098 0.48174365 6.6188626
2620 1.9631458 2.0075461 0.4793429 6.6026194
2630 1.9706918 2.0174955 0.47638698 6.5591053
2640 1.9759585 2.0213828 0.47264742 6.5198595
2650 1.9761708 2.0225139 0.46794373 6.4977306
2660 1.9611574 2.0083871 0.46221598 6.5299021
2670 1.9342882 1.9720247 0.45576624 6.6034695
2680 1.9142009 1.9520382 0.44913109 6.6474082
2690 1.9052096 1.9428107 0.4426988 6.645123
2700 1.902446 1.9459937 0.43672046 6.6152926
2710 1.9099036 1.9594727 0.43120889 6.5473804
2720 1.9180788 1.9767479 0.42599739 6.4792536
2730 1.9142892 1.9798275 0.42092791 6.4604982
2740 1.9019844 1.9674244 0.41601841 6.4795855
2750 1.8895632 1.958412 0.41144638 6.5037424
2760 1.8824401 1.9494985 0.40739848 6.5113925
2770 1.8852759 1.9525073 0.40398809 6.484535
2780 1.8998168 1.9664907 0.40114076 6.4159782
2790 1.9153937 1.9810349 0.39863439 6.346934
2800 1.9162707 1.9824285 0.39627973 6.3364828
2810 1.9087999 1.9666258 0.39408314 6.360755
2820 1.9073152 1.956153 0.39226387 6.3655719
2830 1.9091743 1.9493705 0.39098546 6.3595054
2840 1.9042021 1.9424118 0.39036698 6.381752
2850 1.8901401 1.9353495 0.39057524 6.4417859
2860 1.872943 1.915215 0.39190057 6.5158585
2870 1.8732626 1.9181551 0.39474702 6.5269257
2880 1.8931021 1.9396049 0.39938934 6.467715
2890 1.9217069 1.9733171 0.40581935 6.3811936
2900 1.9452213 1.9949806 0.41374968 6.3217226
2910 1.9591065 2.0105363 0.42280483 6.3087055
2920 1.9649158 2.0234068 0.43256139 6.3353204
2930 1.9647653 2.0265233 0.4425691 6.3902862
2940 1.9623876 2.0281154 0.45237409 6.4560778
2950 1.9591057 2.0276078 0.46164197 6.5239614
2960 1.9556907 2.0254377 0.47016674 6.5883236
2970 1.9524475 2.0203546 0.47782337 6.6457078
2980 1.9556442 2.0212175 0.48459527 6.6731473
2990 1.9663638 2.0285202 0.49047217 6.667322
3000 1.976263 2.0326354 0.49540098 6.6601492
3010 1.9734917 2.0251301 0.49938916 6.6970878
3020 1.955368 1.9974693 0.50265656 6.7865104
3030 1.9476644 1.9780945 0.50564273 6.8327176
3040 1.9584769 1.9887952 0.50867872 6.8046262
3050 1.9705616 2.0030557 0.51168699 6.7669575
3060 1.9766986 2.0112576 0.51444822 6.74919
3070 1.9766671 2.0076853 0.51685838 6.7523339
3080 1.9763383 2.0045916 0.51896849 6.7532253
3090 1.9855877 2.0260371 0.52081442 6.7160131
3100 2.0011042 2.042205 0.52215192 6.653598
3110 2.0039819 2.0511266 0.52275172 6.6355885
3120 1.9958773 2.0457899 0.52253307 6.6565817
3130 1.9933925 2.04521 0.52158082 6.6543706
3140 1.9936643 2.0477262 0.51996279 6.639564
3150 1.9921223 2.0455965 0.51768794 6.6291901
3160 1.9914788 2.0365842 0.51483187 6.6154874
3170 1.9922866 2.0422451 0.51144092 6.5976334
3180 1.9872806 2.0376593 0.50747923 6.6043774
3190 1.9708577 2.0198422 0.50308657 6.6551127
3200 1.9534272 1.9982319 0.49857904 6.7093718
3210 1.9423425 1.9876311 0.49429833 6.7370529
3220 1.941974 1.984738 0.49043179 6.7218879
3230 1.9456357 1.9916666 0.48697785 6.6917144
3240 1.9392412 1.9874858 0.48388805 6.7004046
3250 1.9312152 1.9814714 0.4812083 6.7175714
3260 1.9364393 1.9840125 0.47897357 6.6870787
3270 1.9490184 1.9871802 0.47715672 6.6308261
3280 1.9578901 1.9917218 0.47568803 6.589659
3290 1.9598612 1.9918098 0.47449561 6.5756965
3300 1.9538424 1.9845316 0.47357576 6.5931068
3310 1.944957 1.9676243 0.47302774 6.6211221
3320 1.9479975 1.9720828 0.47296613 6.6058089
3330 1.9569283 1.98719 0.47330356 6.5698601
3340 1.9558114 1.9861834 0.47383928 6.5729191
3350 1.9461606 1.9777192 0.47452365 6.6090135
3360 1.942095 1.9776297 0.47540879 6.6255417
3370 1.9482423 1.981145 0.47643851 6.6032207
3380 1.9564098 1.992645 0.47752314 6.5736007
3390 1.9607986 2.0006048 0.47852085 6.5587348
3400 1.9595637 2.0047228 0.47933656 6.5656692
3410 1.9628181 2.013785 0.47991082 6.5570579
3420 1.9698466 2.0200788 0.48018617 6.536373
3430 1.969877 2.0210764 0.48013786 6.543084
3440 1.96327 2.0103631 0.47979187 6.5761448
3450 1.9566516 1.9996494 0.47933398 6.6098616
3460 1.9511915 1.9976175 0.47891646 6.6401481
3470 1.9410601 1.9950284 0.47859124 6.6862584
3480 1.9307395 1.98193 0.47840998 6.7307929
3490 1.9206678 1.9678856 0.47853003 6.7702613
3500 1.9139405 1.955324 0.47914241 6.7934071
3510 1.9206383 1.957176 0.48041531 6.763312
3520 1.9449301 1.9816996 0.4823109 6.6651453
3530 1.9752924 2.0115126 0.48452681 6.5438659
3540 1.9951599 2.037759 0.48660439 6.463461
3550 2.00071 2.0413872 0.48813252 6.4405933
3560 1.9939017 2.0277566 0.48901382 6.4684771
3570 1.9766844 2.0031366 0.48946452 6.5392906
3580 1.9600495 1.9790718 0.48988281 6.6106541
3590 1.9522334 1.9727673 0.49062615 6.6517495
3600 1.9522007 1.9829458 0.49183552 6.6635632
3610 1.9614098 1.9992781 0.49340617 6.6407777
3620 1.9739926 2.0159629 0.49511752 6.6062456
3630 1.9726539 2.0152219 0.49675445 6.6254361
3640 1.9613098 2.0017247 0.49829011 6.6828523
3650 1.9577727 2.0000723 0.49991877 6.7111788
3660 1.9626403 2.0037309 0.50175296 6.7072182
3670 1.9603974 1.9937256 0.50383808 6.7277464
3680 1.9532611 1.9846903 0.50638428 6.766139
3690 1.9541656 1.9798331 0.50962883 6.7752527
3700 1.9656726 1.9951191 0.51377056 6.7462001
3710 1.9834474 2.0193011 0.5187681 6.6957856
3720 2.0017372 2.0396413 0.52433682 6.6470375
3730 2.0109702 2.0469463 0.53011728 6.6363717
3740 2.0096859 2.0458572 0.53588234 6.6682277
3750 2.0066189 2.0519843 0.54153099 6.7085484
3760 2.0096126 2.0561094 0.54689937 6.7250788
3770 2.0117777 2.0668795 0.55183559 6.7400961
3780 2.0154601 2.0763941 0.55607392 6.7423369
3790 2.0313954 2.0972106 0.55930714 6.6920109
3800 2.0496133 2.1176374 0.56110467 6.6271089
3810 2.0553084 2.1205041 0.56098738 6.6034667
3820 2.0478771 2.1131255 0.5587031 6.6239895
3830 2.0342107 2.0991257 0.55418078 6.6632309
3840 2.0142205 2.0767164 0.5475632 6.7196407
3850 1.9879527 2.0516847 0.53919956 6.7932756
3860 1.9593315 2.0232738 0.52966135 6.8686984
3870 1.9362884 1.9952027 0.51970091 6.9156688
3880 1.9292997 1.988308 0.50996281 6.8957697
3890 1.9372437 1.9978667 0.50073928 6.8160964
3900 1.949918 2.0107188 0.49208883 6.7186535
3910 1.9547594 2.0160936 0.48397839 6.6537347
3920 1.9543568 2.0191268 0.47640162 6.6136066
3930 1.9582199 2.020036 0.46933873 6.5629723
3940 1.9644632 2.0304626 0.4627222 6.5077173
3950 1.9645883 2.030183 0.45644411 6.4795254
3960 1.9546999 2.0197243 0.45050582 6.4943661
3970 1.9424307 2.0063453 0.44500624 6.5237706
3980 1.9281472 1.9910524 0.44010499 6.5640156
3990 1.9168821 1.976369 0.43594016 6.592621
4000 1.9150056 1.9752502 0.43256473 6.5855641
Loop time of 0.696491 on 1 procs for 2000 steps with 2775 atoms
Performance: 248100.709 tau/day, 2871.536 timesteps/s, 7.969 Matom-step/s
99.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.39664 | 0.39664 | 0.39664 | 0.0 | 56.95
Neigh | 0.051502 | 0.051502 | 0.051502 | 0.0 | 7.39
Comm | 0.0047546 | 0.0047546 | 0.0047546 | 0.0 | 0.68
Output | 0.0095092 | 0.0095092 | 0.0095092 | 0.0 | 1.37
Modify | 0.22322 | 0.22322 | 0.22322 | 0.0 | 32.05
Other | | 0.01087 | | | 1.56
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 512 ave 512 max 512 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24313 ave 24313 max 24313 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24313
Ave neighs/atom = 8.7614414
Neighbor list builds = 75
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,941 @@
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
#LAMMPS input script
#in.GD
#see README for details
###############################################################################
#initialize variables
clear
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
#frequency for outputting info (timesteps)
variable dump_rate equal 50
variable thermo_rate equal 10
#equilibration time (timesteps)
variable equil equal 1000
#stabilization time (timesteps to reach steady-state)
variable stabil equal 1000
#data collection time (timesteps)
variable run equal 2000
#length of pipe
variable L equal 30
#width of pipe
variable d equal 20
#flux (mass/sigma*tau)
variable J equal 0.1
#simulation box dimensions
variable Lx equal 100
variable Ly equal 40
#bulk fluid density
variable dens equal 0.8
#lattice spacing for wall atoms
variable aWall equal 1.0 #1.7472
#timestep
variable ts equal 0.001
#temperature
variable T equal 2.0
#thermostat damping constant
variable tdamp equal ${ts}*100
variable tdamp equal 0.001*100
units lj
dimension 2
atom_style atomic
###############################################################################
#create box
#create lattice with the spacing aWall
variable rhoWall equal ${aWall}^(-2)
variable rhoWall equal 1^(-2)
lattice sq ${rhoWall}
lattice sq 1
Lattice spacing in x,y,z = 1 1 1
#modify input dimensions to be multiples of aWall
variable L1 equal round($L/${aWall})*${aWall}
variable L1 equal round(30/${aWall})*${aWall}
variable L1 equal round(30/1)*${aWall}
variable L1 equal round(30/1)*1
variable d1 equal round($d/${aWall})*${aWall}
variable d1 equal round(20/${aWall})*${aWall}
variable d1 equal round(20/1)*${aWall}
variable d1 equal round(20/1)*1
variable Ly1 equal round(${Ly}/${aWall})*${aWall}
variable Ly1 equal round(40/${aWall})*${aWall}
variable Ly1 equal round(40/1)*${aWall}
variable Ly1 equal round(40/1)*1
variable Lx1 equal round(${Lx}/${aWall})*${aWall}
variable Lx1 equal round(100/${aWall})*${aWall}
variable Lx1 equal round(100/1)*${aWall}
variable Lx1 equal round(100/1)*1
#create simulation box
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
variable ly2 equal ${Ly1}/2
variable ly2 equal 40/2
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 ${lx2} -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 50 -${ly2} ${ly2} -0.1 0.1 units box
region simbox block -50 50 -20 ${ly2} -0.1 0.1 units box
region simbox block -50 50 -20 20 -0.1 0.1 units box
create_box 2 simbox
Created orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
4 by 1 by 1 MPI processor grid
#####################################################################
#set up potential
mass 1 1.0 #fluid atoms
mass 2 1.0 #wall atoms
pair_style lj/cut 2.5
pair_modify shift yes
pair_coeff 1 1 1.0 1.0 2.5
pair_coeff 1 2 1.0 1.0 1.12246
pair_coeff 2 2 0.0 0.0
neigh_modify exclude type 2 2
timestep ${ts}
timestep 0.001
#####################################################################
#create atoms
#create wall atoms everywhere
create_atoms 2 box
Created 4000 atoms
using lattice units in orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
create_atoms CPU = 0.000 seconds
#define region which is "walled off"
variable dhalf equal ${d1}/2
variable dhalf equal 20/2
variable Lhalf equal ${L1}/2
variable Lhalf equal 30/2
region walltop block -${Lhalf} ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 10 EDGE -0.1 0.1 units box
region wallbot block -${Lhalf} ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -10 -0.1 0.1 units box
region outsidewall union 2 walltop wallbot side out
#remove wall atoms outside wall region
group outside region outsidewall
3349 atoms in group outside
delete_atoms group outside
Deleted 3349 atoms, new total = 651
#remove wall atoms that aren't on edge of wall region
variable x1 equal ${Lhalf}-${aWall}
variable x1 equal 15-${aWall}
variable x1 equal 15-1
variable y1 equal ${dhalf}+${aWall}
variable y1 equal 10+${aWall}
variable y1 equal 10+1
region insideTop block -${x1} ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 11 EDGE -0.1 0.1 units box
region insideBot block -${x1} ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -11 -0.1 0.1 units box
region insideWall union 2 insideTop insideBot
group insideWall region insideWall
551 atoms in group insideWall
delete_atoms group insideWall
Deleted 551 atoms, new total = 100
#define new lattice, to give correct fluid density
#y lattice const must be a multiple of aWall
variable atrue equal ${dens}^(-1/2)
variable atrue equal 0.8^(-1/2)
variable ay equal round(${atrue}/${aWall})*${aWall}
variable ay equal round(1.11803398874989/${aWall})*${aWall}
variable ay equal round(1.11803398874989/1)*${aWall}
variable ay equal round(1.11803398874989/1)*1
#choose x lattice const to give correct density
variable ax equal (${ay}*${dens})^(-1)
variable ax equal (1*${dens})^(-1)
variable ax equal (1*0.8)^(-1)
#change Lx to be multiple of ax
variable Lx1 equal round(${Lx}/${ax})*${ax}
variable Lx1 equal round(100/${ax})*${ax}
variable Lx1 equal round(100/1.25)*${ax}
variable Lx1 equal round(100/1.25)*1.25
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
change_box all x final -${lx2} ${lx2} units box
change_box all x final -50 ${lx2} units box
change_box all x final -50 50 units box
Changing box ...
orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
#define new lattice
lattice custom ${dens} a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 1 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
Lattice spacing in x,y,z = 1.25 1 1
#fill in rest of box with bulk particles
variable delta equal 0.001
variable Ldelt equal ${Lhalf}+${delta}
variable Ldelt equal 15+${delta}
variable Ldelt equal 15+0.001
variable dDelt equal ${dhalf}-${delta}
variable dDelt equal 10-${delta}
variable dDelt equal 10-0.001
region left block EDGE -${Ldelt} EDGE EDGE -0.1 0.1 units box
region left block EDGE -15.001 EDGE EDGE -0.1 0.1 units box
region right block ${Ldelt} EDGE EDGE EDGE -0.1 0.1 units box
region right block 15.001 EDGE EDGE EDGE -0.1 0.1 units box
region pipe block -${Ldelt} ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 9.999 -0.1 0.1 units box
region bulk union 3 left pipe right
create_atoms 1 region bulk
Created 2675 atoms
using lattice units in orthogonal box = (-50 -20 -0.1) to (50 20 0.1)
create_atoms CPU = 0.000 seconds
group bulk type 1
2675 atoms in group bulk
group wall type 2
100 atoms in group wall
#remove atoms that are too close to wall
delete_atoms overlap 0.9 bulk wall
System init for delete_atoms ...
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) command delete_atoms, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
(2) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Deleted 0 atoms, new total = 2775
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
neigh_modify exclude group wall wall
velocity bulk create $T 78915 dist gaussian rot yes mom yes loop geom
velocity bulk create 2 78915 dist gaussian rot yes mom yes loop geom
#####################################################################
#set up PUT
#see Evans and Morriss, Phys. Rev. Lett. 56(20) 1986, p. 2172
#average number of particles per box, Evans and Morriss used 2.0
variable NperBox equal 8.0
#calculate box sizes
variable boxSide equal sqrt(${NperBox}/${dens})
variable boxSide equal sqrt(8/${dens})
variable boxSide equal sqrt(8/0.8)
variable nX equal round(lx/${boxSide})
variable nX equal round(lx/3.16227766016838)
variable nY equal round(ly/${boxSide})
variable nY equal round(ly/3.16227766016838)
variable dX equal lx/${nX}
variable dX equal lx/32
variable dY equal ly/${nY}
variable dY equal ly/13
#temperature of fluid (excluding wall)
compute myT bulk temp
#profile-unbiased temperature of fluid
compute myTp bulk temp/profile 1 1 0 xy ${nX} ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 13
#thermo setup
thermo ${thermo_rate}
thermo 10
thermo_style custom step c_myT c_myTp etotal press
#dump initial configuration
# dump 55 all custom 1 all.init.lammpstrj id type x y z vx vy vz
# dump 56 wall custom 1 wall.init.lammpstrj id type x y z
# dump_modify 55 sort id
# dump_modify 56 sort id
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.068 | 3.069 | 3.071 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.054601 0.77892922 7.3417096
Loop time of 1.90125e-06 on 4 procs for 0 steps with 2775 atoms
26.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.901e-06 | | |100.00
Nlocal: 693.75 ave 800 max 578 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 266.25 ave 325 max 198 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 6601.5 ave 8000 max 5147 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 26406
Ave neighs/atom = 9.5156757
Neighbor list builds = 0
Dangerous builds = 0
# undump 55
# undump 56
#####################################################################
#equilibrate without GD
fix nvt bulk nvt temp $T $T ${tdamp}
fix nvt bulk nvt temp 2 $T ${tdamp}
fix nvt bulk nvt temp 2 2 ${tdamp}
fix nvt bulk nvt temp 2 2 0.1
fix_modify nvt temp myTp
WARNING: Temperature for fix modify is not for group all (src/fix_nh.cpp:1391)
fix 2 bulk enforce2d
run ${equil}
run 1000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 3.131 | 3.132 | 3.133 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.054601 0.77892922 7.3417096
10 1.9173668 1.9381538 0.77877698 7.6702283
20 1.7033651 1.6967466 0.7798044 8.5615039
30 1.5026644 1.4718046 0.78461914 9.4308883
40 1.4881235 1.4586031 0.79494919 9.6135307
50 1.6193439 1.6144665 0.81119835 9.2594114
60 1.7405127 1.7576881 0.82966956 8.9525458
70 1.7758506 1.7999706 0.84538866 8.9719793
80 1.7574736 1.7806782 0.85780732 9.1938511
90 1.7492232 1.7720284 0.86895259 9.3714617
100 1.7800292 1.807315 0.88044504 9.3874107
110 1.8442295 1.878681 0.89278276 9.2585436
120 1.9193695 1.9667163 0.90556381 9.0683654
130 1.9885753 2.0478097 0.91782871 8.8815507
140 2.04662 2.1105827 0.92850319 8.718882
150 2.0957046 2.1672706 0.93677238 8.5718869
160 2.144595 2.2210801 0.94188484 8.4089161
170 2.1802133 2.2626399 0.9429713 8.2775682
180 2.1868284 2.2696504 0.93931537 8.2321283
190 2.1838369 2.2706873 0.93069783 8.1970105
200 2.1943436 2.2865542 0.91717737 8.0854148
210 2.2029439 2.2912731 0.89906796 7.9589187
220 2.1891494 2.2768232 0.87764254 7.9016509
230 2.1677848 2.2493747 0.85497463 7.8690125
240 2.156695 2.2377486 0.83255207 7.8020978
250 2.142758 2.2237662 0.81090722 7.7510242
260 2.1177881 2.1967699 0.79016944 7.7477503
270 2.0862408 2.1669583 0.77040874 7.7740216
280 2.0676515 2.1446262 0.75157955 7.7544068
290 2.0645498 2.1425534 0.73343008 7.6746729
300 2.0563664 2.1358776 0.71562279 7.6114783
310 2.0390115 2.1198472 0.69809211 7.581719
320 2.0209035 2.1063385 0.68093855 7.5540946
330 2.012488 2.1037583 0.66418283 7.4896097
340 2.0166095 2.1094212 0.64762479 7.3779677
350 2.0172861 2.1072653 0.63109595 7.2807114
360 2.0065768 2.0803788 0.6147802 7.2283814
370 1.9970858 2.0639903 0.59905362 7.1747592
380 1.9925189 2.056563 0.58395055 7.103506
390 1.9935388 2.0546596 0.56945318 7.010305
400 2.0020199 2.0632095 0.55532013 6.8883647
410 2.009157 2.0732883 0.54128082 6.771521
420 2.0081687 2.0785184 0.52711525 6.6868076
430 1.9990498 2.0705469 0.51283203 6.6343482
440 1.9891528 2.0586814 0.4986104 6.5888679
450 1.9829175 2.0465778 0.4846738 6.5332233
460 1.9745599 2.031067 0.4711878 6.4903915
470 1.9581101 2.006674 0.45837961 6.4836654
480 1.9367964 1.9732882 0.44656667 6.501731
490 1.9258333 1.9561395 0.43605676 6.4879447
500 1.9287 1.9571319 0.42678362 6.4296036
510 1.9274696 1.9569118 0.41856553 6.3949919
520 1.9100149 1.9392424 0.41134511 6.4307452
530 1.8827127 1.9059412 0.40536565 6.5126603
540 1.8660696 1.8912024 0.40096324 6.5610607
550 1.8701883 1.9043254 0.3982457 6.536251
560 1.8842923 1.9289528 0.39698123 6.4785367
570 1.8906147 1.9462124 0.39684504 6.4547374
580 1.8895472 1.9472747 0.39763233 6.4630103
590 1.895375 1.9551336 0.39926725 6.449517
600 1.9115711 1.9737109 0.40163655 6.3995241
610 1.92823 1.9851787 0.404506 6.3499339
620 1.9360678 1.9889572 0.40767569 6.3367514
630 1.9346853 1.9836719 0.41105958 6.3637995
640 1.9266095 1.9757908 0.41472954 6.4212842
650 1.9213863 1.9719496 0.41879537 6.4707692
660 1.922962 1.9702923 0.42332926 6.4949933
670 1.9238956 1.9707534 0.42836303 6.5212631
680 1.9212675 1.9740379 0.43388709 6.5608915
690 1.9210314 1.976311 0.43982007 6.5904702
700 1.928081 1.9868449 0.44610463 6.5915021
710 1.9428895 2.0044235 0.45257857 6.5616141
720 1.9554783 2.0176139 0.45898384 6.5367529
730 1.969838 2.0327907 0.46505662 6.5017635
740 1.9840204 2.0467126 0.47058703 6.4649226
750 1.9946633 2.0526929 0.47535832 6.4399342
760 2.0018048 2.0535606 0.47924291 6.4280737
770 1.9991703 2.0483426 0.48222842 6.4537535
780 1.9850797 2.0312444 0.48443072 6.5234271
790 1.9691589 2.0154006 0.4861158 6.5995894
800 1.9612641 2.0031407 0.48754831 6.6430968
810 1.9637155 2.0074142 0.48891261 6.6444644
820 1.9691691 2.0110229 0.49018604 6.6304512
830 1.9763962 2.0190998 0.49130448 6.6060594
840 1.9908278 2.0352615 0.49213189 6.5510683
850 2.0105715 2.0558403 0.49238435 6.4743276
860 2.0227982 2.0645732 0.49173076 6.4260863
870 2.015555 2.064081 0.48998228 6.4528588
880 1.9889672 2.0320831 0.48722022 6.5532269
890 1.9632172 2.0025881 0.48392295 6.6494723
900 1.9527429 1.9887196 0.48054642 6.6846937
910 1.9567815 1.9953408 0.47726539 6.6606541
920 1.9666996 2.0084955 0.47397593 6.6100666
930 1.9702885 2.014774 0.47048741 6.5805871
940 1.9661802 2.0116846 0.46671831 6.579539
950 1.9576953 1.9960728 0.46273983 6.5967841
960 1.9428073 1.9802284 0.45879028 6.6395002
970 1.9256011 1.9584581 0.45515059 6.6916425
980 1.913512 1.9478848 0.45214528 6.7233279
990 1.9174938 1.9449699 0.44994026 6.6943867
1000 1.9365527 1.9663901 0.44852349 6.6101761
Loop time of 0.136245 on 4 procs for 1000 steps with 2775 atoms
Performance: 634150.810 tau/day, 7339.708 timesteps/s, 20.368 Matom-step/s
98.8% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.05652 | 0.058835 | 0.061144 | 0.7 | 43.18
Neigh | 0.0077706 | 0.0082387 | 0.0086435 | 0.4 | 6.05
Comm | 0.0079304 | 0.010631 | 0.013709 | 2.5 | 7.80
Output | 0.003516 | 0.0036313 | 0.0038326 | 0.2 | 2.67
Modify | 0.045283 | 0.048616 | 0.052008 | 1.3 | 35.68
Other | | 0.006293 | | | 4.62
Nlocal: 693.75 ave 800 max 584 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 255.25 ave 323 max 192 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Neighs: 6083 ave 7383 max 4741 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24332
Ave neighs/atom = 8.7682883
Neighbor list builds = 38
Dangerous builds = 0
#####################################################################
#initialize the COM velocity and run to achieve steady-state
#calculate velocity to add: V=J/rho_total
variable Vadd equal $J*lx*ly/count(bulk)
variable Vadd equal 0.1*lx*ly/count(bulk)
#first remove any COM velocity, then add back the streaming velocity
velocity bulk zero linear
velocity bulk set ${Vadd} 0.0 0.0 units box sum yes mom no
velocity bulk set 0.149532710280374 0.0 0.0 units box sum yes mom no
fix GD bulk flow/gauss 1 0 0 #energy yes
#fix_modify GD energy yes
run ${stabil}
run 1000
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Your simulation uses code contributions which should be cited:
- Gaussian dynamics package: doi:10.1021/acs.jpcb.6b09387
@Article{strong_water_2017,
title = {The Dynamics of Water in Porous Two-Dimensional Crystals},
volume = {121},
number = {1},
url = {https://doi.org/10.1021/acs.jpcb.6b09387},
doi = {10.1021/acs.jpcb.6b09387},
urldate = {2016-12-07},
journal = {J.~Phys.\ Chem.~B},
author = {Strong, Steven E. and Eaves, Joel D.},
year = {2017},
pages = {189--207}
}
CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 3.131 | 3.132 | 3.133 Mbytes
Step c_myT c_myTp TotEng Press
1000 1.9477212 1.9663901 0.45928547 6.6176422
1010 1.9617328 1.9828061 0.45840963 6.555968
1020 1.9570976 1.9825696 0.45782895 6.5690613
1030 1.9356292 1.9690101 0.45753984 6.6493822
1040 1.9174914 1.9448868 0.4577768 6.7171474
1050 1.9202482 1.9432766 0.4588733 6.7039634
1060 1.9419998 1.9718217 0.46086407 6.617366
1070 1.9666048 1.996346 0.46339522 6.5207175
1080 1.9775489 2.0078489 0.46608862 6.4794239
1090 1.9725172 2.0005028 0.46876174 6.5044299
1100 1.9659582 1.9931537 0.47147394 6.5409107
1110 1.9670607 1.9965504 0.47432892 6.5527414
1120 1.9716302 1.9984924 0.47732198 6.5530022
1130 1.9752703 2.0057031 0.48043914 6.5579379
1140 1.976368 2.0061152 0.48358744 6.5719123
1150 1.9748014 2.0056689 0.48673155 6.5957896
1160 1.9729115 2.0036854 0.48986563 6.6200102
1170 1.9702742 2.0016461 0.49302426 6.6455948
1180 1.9680418 1.9978705 0.49625385 6.6697165
1190 1.9640159 1.9937501 0.49962311 6.7004634
1200 1.9616719 1.9932085 0.50320747 6.7253219
1210 1.9658831 1.9985624 0.50702861 6.7242078
1220 1.9790884 2.0132679 0.51100573 6.688483
1230 1.9946749 2.0324782 0.51491484 6.6422423
1240 2.0039182 2.0484588 0.5184382 6.6190292
1250 2.0033685 2.0545791 0.52130299 6.6322608
1260 1.9991533 2.0533011 0.52339221 6.6590872
1270 1.9969511 2.0571182 0.5246505 6.6789676
1280 1.9911353 2.0488281 0.52501304 6.7125634
1290 1.9712819 2.0209437 0.52460315 6.7967237
1300 1.9486195 1.9967749 0.5238106 6.886265
1310 1.951612 2.0051749 0.52294383 6.8723332
1320 1.9800953 2.0397207 0.52186525 6.7537937
1330 2.0084961 2.0723584 0.52001894 6.6279995
1340 2.021654 2.085105 0.51675149 6.554461
1350 2.0193685 2.0672662 0.5117514 6.5349176
1360 2.0084017 2.0471065 0.50518646 6.5453141
1370 1.994978 2.030683 0.49737164 6.5627932
1380 1.9781978 2.0044236 0.48871071 6.5903683
1390 1.9572368 1.9833426 0.47978207 6.6326472
1400 1.9400481 1.956474 0.47117436 6.6600696
1410 1.9380218 1.9552501 0.46336325 6.6314231
1420 1.9494747 1.9681145 0.45642218 6.5527615
1430 1.9610978 1.9824506 0.4501938 6.4763851
1440 1.9639503 1.9890985 0.44452289 6.4375535
1450 1.9560428 1.9821594 0.43936988 6.4453654
1460 1.9399344 1.9627639 0.43486138 6.488055
1470 1.9247229 1.9440629 0.43123378 6.5292381
1480 1.9213375 1.9369273 0.42866841 6.5271097
1490 1.9265729 1.9383637 0.42719968 6.4940959
1500 1.930987 1.9416689 0.4267225 6.4673585
1510 1.9303444 1.9418498 0.42714462 6.4648027
1520 1.9258423 1.940384 0.42844066 6.4834098
1530 1.9131202 1.9296653 0.4306338 6.5390881
1540 1.8990016 1.9101025 0.43386405 6.6052091
1550 1.9012878 1.9120047 0.43834036 6.6147792
1560 1.9153287 1.9388751 0.44404054 6.5851781
1570 1.9266928 1.9596147 0.45057056 6.5705776
1580 1.9358289 1.9745564 0.45744022 6.5674622
1590 1.9415248 1.9818707 0.46425451 6.5778534
1600 1.9466876 1.98498 0.47075833 6.5878483
1610 1.9557175 1.9930268 0.47674103 6.5777205
1620 1.9712902 2.0112337 0.48200984 6.5367922
1630 1.9900646 2.0303946 0.48631888 6.4790095
1640 1.9960901 2.039173 0.48947508 6.4661574
1650 1.9879046 2.0329046 0.49151173 6.504063
1660 1.9832967 2.0325843 0.49266284 6.5255647
1670 1.9875656 2.034783 0.49313513 6.5093662
1680 1.9967654 2.0492931 0.49299896 6.4699787
1690 2.0025957 2.0532539 0.49216931 6.4389613
1700 2.0022202 2.0424508 0.49070612 6.4276702
1710 2.0083188 2.0437945 0.48879489 6.3909243
1720 2.0178792 2.0439212 0.48646135 6.3411063
1730 2.0210944 2.0444299 0.48367905 6.3141106
1740 2.0170566 2.0337564 0.48044951 6.3158785
1750 2.0099049 2.0231598 0.47693196 6.3313851
1760 1.9990395 2.0132651 0.47329842 6.3631889
1770 1.9823237 1.9969291 0.46970233 6.4208124
1780 1.9640169 1.9798655 0.4663519 6.4879798
1790 1.9457657 1.9626633 0.46348315 6.557165
1800 1.9253222 1.9443136 0.46134123 6.6365286
1810 1.9123385 1.9339816 0.46011796 6.6879846
1820 1.9098744 1.9287702 0.45993599 6.7001355
1830 1.9096278 1.9220243 0.460898 6.7020982
1840 1.9223081 1.9378963 0.46303724 6.6558132
1850 1.9481113 1.9718786 0.46616351 6.5618175
1860 1.9704143 1.9931969 0.46987208 6.484088
1870 1.9864974 2.017655 0.47377416 6.4360445
1880 1.993165 2.0276398 0.47750238 6.4296162
1890 1.9852177 2.0249022 0.48088382 6.4843765
1900 1.9692398 2.0101062 0.4839255 6.5735477
1910 1.9516968 1.9893586 0.48689095 6.6692995
1920 1.9380452 1.9750949 0.49014596 6.7488323
1930 1.9323223 1.9719977 0.49399992 6.7947629
1940 1.9402144 1.9786701 0.49859677 6.7846787
1950 1.9589972 1.9956447 0.50392573 6.7291499
1960 1.979631 2.0201087 0.50984934 6.6648708
1970 2.0002749 2.0392081 0.51605302 6.6026647
1980 2.0143746 2.0524405 0.52221277 6.5687042
1990 2.0166553 2.0466885 0.5281276 6.5835144
2000 2.0130617 2.0424179 0.53381506 6.6234083
Loop time of 0.141455 on 4 procs for 1000 steps with 2775 atoms
Performance: 610793.635 tau/day, 7069.371 timesteps/s, 19.618 Matom-step/s
99.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.05683 | 0.060353 | 0.062989 | 1.0 | 42.67
Neigh | 0.0072596 | 0.0077408 | 0.0081397 | 0.4 | 5.47
Comm | 0.0075975 | 0.010647 | 0.014725 | 3.0 | 7.53
Output | 0.0035631 | 0.0036749 | 0.0038919 | 0.2 | 2.60
Modify | 0.050043 | 0.052936 | 0.05613 | 1.2 | 37.42
Other | | 0.006104 | | | 4.32
Nlocal: 693.75 ave 799 max 589 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 259 ave 320 max 196 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 6092.5 ave 7344 max 4845 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24370
Ave neighs/atom = 8.781982
Neighbor list builds = 35
Dangerous builds = 0
#####################################################################
#collect data
#print the applied force and total flux to ensure conservation of Jx
variable Fapp equal f_GD[1]
compute vxBulk bulk reduce sum vx
compute vyBulk bulk reduce sum vy
variable invVol equal 1.0/(lx*ly)
variable jx equal c_vxBulk*${invVol}
variable jx equal c_vxBulk*0.00025
variable jy equal c_vyBulk*${invVol}
variable jy equal c_vyBulk*0.00025
variable curr_step equal step
variable p_Fapp format Fapp %.3f
variable p_jx format jx %.5g
variable p_jy format jy %.5g
fix print_vCOM all print ${dump_rate} "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
fix print_vCOM all print 50 "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
#compute IK1 pressure profile
#see Todd, Evans, and Davis, Phys. Rev. E 52(2) 1995, p. 1627
#use profile-unbiased temperature to remove the streaming velocity
#from the kinetic part of the pressure
compute spa bulk stress/atom myTp
#for the pressure profile, use the same grid as the PUT
compute chunkX bulk chunk/atom bin/1d x lower ${dX} units box
compute chunkX bulk chunk/atom bin/1d x lower 3.125 units box
#output pressure profile and other profiles
#the pressure profile is (-1/2V)*(c_spa[1] + c_spa[2]), where
#V is the volume of a slice
fix profiles bulk ave/chunk 1 1 ${dump_rate} chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
fix profiles bulk ave/chunk 1 1 50 chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
#compute velocity profile across the pipe with a finer grid
variable dYnew equal ${dY}/10
variable dYnew equal 3.07692307692308/10
compute chunkY bulk chunk/atom bin/1d y center ${dYnew} units box region pipe
compute chunkY bulk chunk/atom bin/1d y center 0.307692307692308 units box region pipe
fix velYprof bulk ave/chunk 1 1 ${dump_rate} chunkY vx file Vy_profile ave running overwrite
fix velYprof bulk ave/chunk 1 1 50 chunkY vx file Vy_profile ave running overwrite
#full trajectory
# dump 7 bulk custom ${dump_rate} bulk.lammpstrj id type x y z
# dump_modify 7 sort id
run ${run}
run 2000
Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 5.139 | 5.14 | 5.141 Mbytes
Step c_myT c_myTp TotEng Press
2000 2.0130617 2.0424179 0.53381506 6.6234083
2010 2.011712 2.0399428 0.53937165 6.6546944
2020 2.0177252 2.0516588 0.54483848 6.6575988
2030 2.0192267 2.054258 0.55012466 6.6761208
2040 2.0155308 2.0513866 0.55518707 6.7132509
2050 2.016831 2.0539288 0.56007247 6.7306192
2060 2.0213378 2.0690043 0.56479732 6.7330132
2070 2.0292987 2.0799825 0.56913353 6.7186216
2080 2.0342188 2.0900923 0.57283821 6.7098434
2090 2.0376411 2.096351 0.57566175 6.6998818
2100 2.053128 2.1238481 0.57727694 6.637431
2110 2.0783941 2.1609599 0.5768993 6.5304031
2120 2.0887269 2.1760645 0.57341638 6.4706853
2130 2.06944 2.1522354 0.5659988 6.5099284
2140 2.0380605 2.115767 0.55466476 6.5802578
2150 2.0195872 2.0868424 0.54025148 6.5885111
2160 2.0061251 2.069266 0.52417244 6.5682875
2170 1.992682 2.0526743 0.50812177 6.5470052
2180 1.9816004 2.0352692 0.49354583 6.5244099
2190 1.9688265 2.0226679 0.4811848 6.5185172
2200 1.9574266 2.000155 0.47107703 6.5176047
2210 1.9502736 1.9925522 0.46298224 6.5078398
2220 1.9475332 1.9936032 0.45641728 6.4850252
2230 1.9545128 2.0045053 0.45087489 6.4291405
2240 1.9627871 2.0112148 0.44588526 6.3715676
2250 1.9617694 2.0073769 0.44121477 6.3541518
2260 1.9579423 2.0079137 0.43675541 6.3542735
2270 1.9475845 1.998983 0.43243494 6.3854071
2280 1.9253275 1.9715083 0.42839782 6.464845
2290 1.8996763 1.9456257 0.42496367 6.5591177
2300 1.8823546 1.9240543 0.42247729 6.6211062
2310 1.8844318 1.9216768 0.42116372 6.6085376
2320 1.8965287 1.933936 0.42103218 6.5584198
2330 1.902103 1.9433708 0.421956 6.5350698
2340 1.9061826 1.950462 0.42378825 6.5228738
2350 1.9180306 1.961141 0.42644522 6.489172
2360 1.9296124 1.9748542 0.42981448 6.4628168
2370 1.9328566 1.9718181 0.43373762 6.4721746
2380 1.9360042 1.9769998 0.43819906 6.4840942
2390 1.9387073 1.9778749 0.44317927 6.49778
2400 1.9445619 1.9882647 0.4486142 6.4971899
2410 1.9553344 1.9997412 0.45435544 6.4749774
2420 1.9710783 2.0211926 0.46019236 6.4320181
2430 1.9903873 2.046553 0.46575694 6.3751343
2440 2.0041158 2.0721071 0.47060398 6.3415121
2450 2.0020392 2.0728953 0.47431806 6.3708096
2460 1.9839851 2.0568906 0.47681718 6.465129
2470 1.9566365 2.0258852 0.47838596 6.5966256
2480 1.929674 2.0032606 0.47952215 6.7260074
2490 1.9153613 1.990031 0.48061628 6.8035919
2500 1.9188373 1.9920514 0.4819225 6.8075788
2510 1.9371656 2.0138698 0.48343533 6.7492701
2520 1.9566481 2.0340995 0.48485699 6.6821181
2530 1.9636141 2.0389496 0.48583392 6.6581326
2540 1.9585172 2.0207113 0.48622314 6.6762792
2550 1.9516934 2.0024186 0.48621721 6.6980104
2560 1.9509543 1.9960852 0.48612286 6.6946311
2570 1.9601672 2.0072552 0.48602872 6.6528934
2580 1.973804 2.0230879 0.48576601 6.5942862
2590 1.9788378 2.034436 0.48505027 6.5689819
2600 1.9716493 2.0208578 0.48368043 6.5897554
2610 1.9618006 2.007098 0.48174365 6.6188626
2620 1.9631458 2.0075461 0.4793429 6.6026194
2630 1.9706918 2.0174955 0.47638698 6.5591053
2640 1.9759585 2.0213828 0.47264742 6.5198595
2650 1.9761708 2.0225139 0.46794373 6.4977306
2660 1.9611574 2.0083871 0.46221598 6.5299021
2670 1.9342882 1.9720247 0.45576624 6.6034695
2680 1.9142009 1.9520382 0.44913109 6.6474082
2690 1.9052096 1.9428107 0.4426988 6.645123
2700 1.902446 1.9459937 0.43672046 6.6152926
2710 1.9099036 1.9594727 0.43120889 6.5473804
2720 1.9180788 1.9767479 0.42599739 6.4792536
2730 1.9142892 1.9798275 0.42092791 6.4604982
2740 1.9019844 1.9674244 0.41601841 6.4795855
2750 1.8895632 1.958412 0.41144638 6.5037424
2760 1.8824401 1.9494985 0.40739848 6.5113925
2770 1.8852759 1.9525073 0.40398809 6.484535
2780 1.8998168 1.9664907 0.40114076 6.4159782
2790 1.9153937 1.9810349 0.39863439 6.346934
2800 1.9162707 1.9824285 0.39627973 6.3364828
2810 1.9087999 1.9666258 0.39408314 6.360755
2820 1.9073152 1.956153 0.39226387 6.3655719
2830 1.9091743 1.9493705 0.39098546 6.3595054
2840 1.9042021 1.9424118 0.39036698 6.381752
2850 1.8901401 1.9353495 0.39057524 6.4417859
2860 1.872943 1.915215 0.39190057 6.5158585
2870 1.8732626 1.9181551 0.39474702 6.5269257
2880 1.8931021 1.9396049 0.39938934 6.467715
2890 1.9217069 1.9733171 0.40581935 6.3811936
2900 1.9452213 1.9949806 0.41374968 6.3217226
2910 1.9591065 2.0105363 0.42280483 6.3087055
2920 1.9649158 2.0234068 0.43256139 6.3353204
2930 1.9647653 2.0265233 0.4425691 6.3902862
2940 1.9623876 2.0281154 0.45237409 6.4560778
2950 1.9591057 2.0276078 0.46164197 6.5239614
2960 1.9556907 2.0254377 0.47016674 6.5883236
2970 1.9524475 2.0203546 0.47782337 6.6457078
2980 1.9556442 2.0212175 0.48459527 6.6731473
2990 1.9663638 2.0285202 0.49047217 6.667322
3000 1.976263 2.0326354 0.49540098 6.6601492
3010 1.9734917 2.0251301 0.49938916 6.6970878
3020 1.955368 1.9974693 0.50265656 6.7865104
3030 1.9476644 1.9780945 0.50564273 6.8327176
3040 1.9584769 1.9887952 0.50867872 6.8046262
3050 1.9705616 2.0030557 0.51168699 6.7669575
3060 1.9766986 2.0112576 0.51444822 6.74919
3070 1.9766671 2.0076853 0.51685838 6.7523339
3080 1.9763383 2.0045916 0.51896849 6.7532253
3090 1.9855877 2.0260371 0.52081441 6.7160131
3100 2.0011042 2.042205 0.52215192 6.653598
3110 2.0039819 2.0511266 0.52275172 6.6355885
3120 1.9958773 2.0457899 0.52253307 6.6565817
3130 1.9933925 2.04521 0.52158082 6.6543706
3140 1.9936643 2.0477262 0.51996279 6.639564
3150 1.9921223 2.0455965 0.51768794 6.6291901
3160 1.9914788 2.0365842 0.51483187 6.6154874
3170 1.9922866 2.0422451 0.51144091 6.5976334
3180 1.9872806 2.0376593 0.50747923 6.6043774
3190 1.9708577 2.0198422 0.50308657 6.6551127
3200 1.9534272 1.9982319 0.49857904 6.7093718
3210 1.9423425 1.9876311 0.49429833 6.7370529
3220 1.941974 1.984738 0.49043179 6.7218879
3230 1.9456357 1.9916666 0.48697785 6.6917144
3240 1.9392412 1.9874858 0.48388805 6.7004046
3250 1.9312152 1.9814714 0.4812083 6.7175714
3260 1.9364393 1.9840125 0.47897357 6.6870787
3270 1.9490184 1.9871802 0.47715672 6.6308261
3280 1.9578901 1.9917218 0.47568803 6.5896589
3290 1.9598612 1.9918098 0.47449561 6.5756965
3300 1.9538424 1.9845316 0.47357576 6.5931068
3310 1.944957 1.9676243 0.47302774 6.6211221
3320 1.9479975 1.9720828 0.47296613 6.6058089
3330 1.9569283 1.98719 0.47330356 6.5698601
3340 1.9558114 1.9861834 0.47383928 6.5729191
3350 1.9461606 1.9777192 0.47452365 6.6090135
3360 1.942095 1.9776297 0.47540879 6.6255417
3370 1.9482423 1.981145 0.47643851 6.6032207
3380 1.9564098 1.992645 0.47752314 6.5736007
3390 1.9607986 2.0006048 0.47852085 6.5587349
3400 1.9595637 2.0047228 0.47933656 6.5656692
3410 1.9628181 2.013785 0.47991082 6.5570579
3420 1.9698466 2.0200788 0.48018617 6.536373
3430 1.969877 2.0210764 0.48013786 6.543084
3440 1.96327 2.0103631 0.47979187 6.5761448
3450 1.9566516 1.9996494 0.47933398 6.6098616
3460 1.9511915 1.9976175 0.47891646 6.6401481
3470 1.9410601 1.9950284 0.47859124 6.6862584
3480 1.9307395 1.98193 0.47840998 6.7307929
3490 1.9206678 1.9678856 0.47853003 6.7702613
3500 1.9139405 1.955324 0.47914241 6.7934071
3510 1.9206383 1.9571761 0.48041531 6.763312
3520 1.9449301 1.9816996 0.4823109 6.6651452
3530 1.9752924 2.0115126 0.48452681 6.5438659
3540 1.9951599 2.037759 0.48660438 6.463461
3550 2.00071 2.0413872 0.48813252 6.4405933
3560 1.9939017 2.0277566 0.48901382 6.4684771
3570 1.9766844 2.0031366 0.48946452 6.5392906
3580 1.9600494 1.9790718 0.48988281 6.6106542
3590 1.9522334 1.9727673 0.49062615 6.6517495
3600 1.9522007 1.9829458 0.49183552 6.6635632
3610 1.9614098 1.9992781 0.49340617 6.6407777
3620 1.9739926 2.0159629 0.49511752 6.6062456
3630 1.9726539 2.0152219 0.49675445 6.6254361
3640 1.9613098 2.0017247 0.49829012 6.6828523
3650 1.9577727 2.0000723 0.49991877 6.7111789
3660 1.9626403 2.0037309 0.50175296 6.7072182
3670 1.9603974 1.9937256 0.50383808 6.7277464
3680 1.9532611 1.9846903 0.50638429 6.766139
3690 1.9541656 1.9798331 0.50962883 6.7752527
3700 1.9656726 1.9951191 0.51377056 6.7462001
3710 1.9834474 2.0193011 0.5187681 6.6957856
3720 2.0017373 2.0396413 0.52433682 6.6470375
3730 2.0109702 2.0469463 0.53011728 6.6363717
3740 2.0096858 2.0458572 0.53588234 6.6682278
3750 2.0066189 2.0519842 0.54153099 6.7085484
3760 2.0096126 2.0561094 0.54689937 6.7250789
3770 2.0117777 2.0668795 0.55183559 6.7400962
3780 2.0154601 2.0763941 0.55607392 6.7423369
3790 2.0313954 2.0972106 0.55930714 6.6920109
3800 2.0496133 2.1176374 0.56110467 6.6271089
3810 2.0553084 2.1205041 0.56098738 6.6034668
3820 2.0478771 2.1131255 0.5587031 6.6239896
3830 2.0342107 2.0991257 0.55418078 6.6632309
3840 2.0142205 2.0767165 0.54756321 6.7196407
3850 1.9879527 2.0516847 0.53919957 6.7932756
3860 1.9593315 2.0232738 0.52966136 6.8686983
3870 1.9362884 1.9952027 0.51970092 6.9156687
3880 1.9292997 1.9883081 0.50996282 6.8957696
3890 1.9372438 1.9978667 0.50073929 6.8160963
3900 1.949918 2.0107188 0.49208883 6.7186535
3910 1.9547594 2.0160936 0.48397839 6.6537348
3920 1.9543567 2.0191268 0.47640162 6.6136067
3930 1.9582199 2.0200359 0.46933873 6.5629726
3940 1.9644631 2.0304625 0.4627222 6.5077177
3950 1.9645882 2.0301829 0.45644411 6.4795258
3960 1.9546999 2.0197242 0.45050583 6.4943664
3970 1.9424307 2.0063453 0.44500625 6.5237707
3980 1.9281472 1.9910524 0.440105 6.5640156
3990 1.9168821 1.9763691 0.43594018 6.592621
4000 1.9150056 1.9752502 0.43256475 6.585564
Loop time of 0.29535 on 4 procs for 2000 steps with 2775 atoms
Performance: 585068.702 tau/day, 6771.628 timesteps/s, 18.791 Matom-step/s
98.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.11499 | 0.12105 | 0.12753 | 1.6 | 40.99
Neigh | 0.015593 | 0.01655 | 0.017426 | 0.6 | 5.60
Comm | 0.011343 | 0.020696 | 0.029105 | 5.0 | 7.01
Output | 0.0076551 | 0.010557 | 0.01165 | 1.6 | 3.57
Modify | 0.10677 | 0.11421 | 0.1196 | 1.4 | 38.67
Other | | 0.01228 | | | 4.16
Nlocal: 693.75 ave 801 max 584 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 256.25 ave 313 max 200 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 6078.25 ave 7398 max 4746 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24313
Ave neighs/atom = 8.7614414
Neighbor list builds = 75
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,909 +0,0 @@
LAMMPS (6 Jul 2017)
using 1 OpenMP thread(s) per MPI task
#LAMMPS input script
#in.GD
#see README for details
###############################################################################
#initialize variables
clear
using 1 OpenMP thread(s) per MPI task
#frequency for outputting info (timesteps)
variable dump_rate equal 50
variable thermo_rate equal 10
#equilibration time (timesteps)
variable equil equal 1000
#stabilization time (timesteps to reach steady-state)
variable stabil equal 1000
#data collection time (timesteps)
variable run equal 2000
#length of pipe
variable L equal 30
#width of pipe
variable d equal 20
#flux (mass/sigma*tau)
variable J equal 0.1
#simulation box dimensions
variable Lx equal 100
variable Ly equal 40
#bulk fluid density
variable dens equal 0.8
#lattice spacing for wall atoms
variable aWall equal 1.0 #1.7472
#timestep
variable ts equal 0.001
#temperature
variable T equal 2.0
#thermostat damping constant
variable tdamp equal ${ts}*100
variable tdamp equal 0.001*100
units lj
dimension 2
atom_style atomic
###############################################################################
#create box
#create lattice with the spacing aWall
variable rhoWall equal ${aWall}^(-2)
variable rhoWall equal 1^(-2)
lattice sq ${rhoWall}
lattice sq 1
Lattice spacing in x,y,z = 1 1 1
#modify input dimensions to be multiples of aWall
variable L1 equal round($L/${aWall})*${aWall}
variable L1 equal round(30/${aWall})*${aWall}
variable L1 equal round(30/1)*${aWall}
variable L1 equal round(30/1)*1
variable d1 equal round($d/${aWall})*${aWall}
variable d1 equal round(20/${aWall})*${aWall}
variable d1 equal round(20/1)*${aWall}
variable d1 equal round(20/1)*1
variable Ly1 equal round(${Ly}/${aWall})*${aWall}
variable Ly1 equal round(40/${aWall})*${aWall}
variable Ly1 equal round(40/1)*${aWall}
variable Ly1 equal round(40/1)*1
variable Lx1 equal round(${Lx}/${aWall})*${aWall}
variable Lx1 equal round(100/${aWall})*${aWall}
variable Lx1 equal round(100/1)*${aWall}
variable Lx1 equal round(100/1)*1
#create simulation box
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
variable ly2 equal ${Ly1}/2
variable ly2 equal 40/2
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 ${lx2} -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 50 -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 50 -20 ${ly2} 0 0.1 units box
region simbox block -50 50 -20 20 0 0.1 units box
create_box 2 simbox
Created orthogonal box = (-50 -20 0) to (50 20 0.1)
1 by 1 by 1 MPI processor grid
#####################################################################
#set up potential
mass 1 1.0 #fluid atoms
mass 2 1.0 #wall atoms
pair_style lj/cut 2.5
pair_modify shift yes
pair_coeff 1 1 1.0 1.0 2.5
pair_coeff 1 2 1.0 1.0 1.12246
pair_coeff 2 2 0.0 0.0
neigh_modify exclude type 2 2
timestep ${ts}
timestep 0.001
#####################################################################
#create atoms
#create wall atoms everywhere
create_atoms 2 box
Created 4000 atoms
#define region which is "walled off"
variable dhalf equal ${d1}/2
variable dhalf equal 20/2
variable Lhalf equal ${L1}/2
variable Lhalf equal 30/2
region walltop block -${Lhalf} ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 10 EDGE -0.1 0.1 units box
region wallbot block -${Lhalf} ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -10 -0.1 0.1 units box
region outsidewall union 2 walltop wallbot side out
#remove wall atoms outside wall region
group outside region outsidewall
3349 atoms in group outside
delete_atoms group outside
Deleted 3349 atoms, new total = 651
#remove wall atoms that aren't on edge of wall region
variable x1 equal ${Lhalf}-${aWall}
variable x1 equal 15-${aWall}
variable x1 equal 15-1
variable y1 equal ${dhalf}+${aWall}
variable y1 equal 10+${aWall}
variable y1 equal 10+1
region insideTop block -${x1} ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 11 EDGE -0.1 0.1 units box
region insideBot block -${x1} ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -11 -0.1 0.1 units box
region insideWall union 2 insideTop insideBot
group insideWall region insideWall
551 atoms in group insideWall
delete_atoms group insideWall
Deleted 551 atoms, new total = 100
#define new lattice, to give correct fluid density
#y lattice const must be a multiple of aWall
variable atrue equal ${dens}^(-1/2)
variable atrue equal 0.8^(-1/2)
variable ay equal round(${atrue}/${aWall})*${aWall}
variable ay equal round(1.11803398874989/${aWall})*${aWall}
variable ay equal round(1.11803398874989/1)*${aWall}
variable ay equal round(1.11803398874989/1)*1
#choose x lattice const to give correct density
variable ax equal (${ay}*${dens})^(-1)
variable ax equal (1*${dens})^(-1)
variable ax equal (1*0.8)^(-1)
#change Lx to be multiple of ax
variable Lx1 equal round(${Lx}/${ax})*${ax}
variable Lx1 equal round(100/${ax})*${ax}
variable Lx1 equal round(100/1.25)*${ax}
variable Lx1 equal round(100/1.25)*1.25
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
change_box all x final -${lx2} ${lx2} units box
change_box all x final -50 ${lx2} units box
change_box all x final -50 50 units box
orthogonal box = (-50 -20 0) to (50 20 0.1)
#define new lattice
lattice custom ${dens} a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 1 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
Lattice spacing in x,y,z = 1.25 1 1
#fill in rest of box with bulk particles
variable delta equal 0.001
variable Ldelt equal ${Lhalf}+${delta}
variable Ldelt equal 15+${delta}
variable Ldelt equal 15+0.001
variable dDelt equal ${dhalf}-${delta}
variable dDelt equal 10-${delta}
variable dDelt equal 10-0.001
region left block EDGE -${Ldelt} EDGE EDGE -0.1 0.1 units box
region left block EDGE -15.001 EDGE EDGE -0.1 0.1 units box
region right block ${Ldelt} EDGE EDGE EDGE -0.1 0.1 units box
region right block 15.001 EDGE EDGE EDGE -0.1 0.1 units box
region pipe block -${Ldelt} ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 9.999 -0.1 0.1 units box
region bulk union 3 left pipe right
create_atoms 1 region bulk
Created 2675 atoms
group bulk type 1
2675 atoms in group bulk
group wall type 2
100 atoms in group wall
#remove atoms that are too close to wall
delete_atoms overlap 0.9 bulk wall
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) command delete_atoms, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
(2) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d/newton
bin: standard
Deleted 0 atoms, new total = 2775
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
neigh_modify exclude group wall wall
velocity bulk create $T 78915 dist gaussian rot yes mom yes loop geom
velocity bulk create 2 78915 dist gaussian rot yes mom yes loop geom
#####################################################################
#set up PUT
#see Evans and Morriss, Phys. Rev. Lett. 56(20) 1986, p. 2172
#average number of particles per box, Evans and Morriss used 2.0
variable NperBox equal 8.0
#calculate box sizes
variable boxSide equal sqrt(${NperBox}/${dens})
variable boxSide equal sqrt(8/${dens})
variable boxSide equal sqrt(8/0.8)
variable nX equal round(lx/${boxSide})
variable nX equal round(lx/3.16227766016838)
variable nY equal round(ly/${boxSide})
variable nY equal round(ly/3.16227766016838)
variable dX equal lx/${nX}
variable dX equal lx/32
variable dY equal ly/${nY}
variable dY equal ly/13
#temperature of fluid (excluding wall)
compute myT bulk temp
#profile-unbiased temperature of fluid
compute myTp bulk temp/profile 1 1 0 xy ${nX} ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 13
#thermo setup
thermo ${thermo_rate}
thermo 10
thermo_style custom step c_myT c_myTp etotal press
#dump initial configuration
# dump 55 all custom 1 all.init.lammpstrj id type x y z vx vy vz
# dump 56 wall custom 1 wall.init.lammpstrj id type x y z
# dump_modify 55 sort id
# dump_modify 56 sort id
run 0
WARNING: No fixes defined, atoms won't move (../verlet.cpp:55)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.103 | 3.103 | 3.103 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.0555109 0.77892922 7.3417096
Loop time of 9.53674e-07 on 1 procs for 0 steps with 2775 atoms
314.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 9.537e-07 | | |100.00
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 510 ave 510 max 510 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 26406 ave 26406 max 26406 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 26406
Ave neighs/atom = 9.51568
Neighbor list builds = 0
Dangerous builds = 0
# undump 55
# undump 56
#####################################################################
#equilibrate without GD
fix nvt bulk nvt temp $T $T ${tdamp}
fix nvt bulk nvt temp 2 $T ${tdamp}
fix nvt bulk nvt temp 2 2 ${tdamp}
fix nvt bulk nvt temp 2 2 0.1
fix_modify nvt temp myTp
WARNING: Temperature for fix modify is not for group all (../fix_nh.cpp:1395)
fix 2 bulk enforce2d
run ${equil}
run 1000
Per MPI rank memory allocation (min/avg/max) = 3.166 | 3.166 | 3.166 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.0555109 0.77892922 7.3417096
10 1.9173594 1.9390034 0.77876976 7.6702228
20 1.7033394 1.6974676 0.77977799 8.5614784
30 1.5026161 1.4723993 0.78456655 9.4308258
40 1.4880481 1.4591602 0.79486693 9.6134304
50 1.6192437 1.6150635 0.81109069 9.2592835
60 1.7404087 1.7583444 0.82955456 8.952392
70 1.7757591 1.8006606 0.8452778 8.9717917
80 1.7573847 1.7813629 0.85769389 9.1936368
90 1.7491183 1.7726908 0.86882429 9.3712357
100 1.7798944 1.8079583 0.88029084 9.3871755
110 1.8440582 1.8793133 0.89259397 9.2582848
120 1.9191606 1.9673434 0.90533438 9.0680574
130 1.9883299 2.0484299 0.91755461 8.88117
140 2.0463366 2.1111872 0.92818114 8.7184178
150 2.0953769 2.167849 0.93639789 8.5713408
160 2.1442147 2.2216228 0.94145082 8.4082835
170 2.1797848 2.2631458 0.94246877 8.2767903
180 2.1863476 2.2700986 0.93873326 8.2311689
190 2.1832866 2.2710551 0.93003012 8.1959062
200 2.1937154 2.2868403 0.91642537 8.0842007
210 2.2022708 2.2915142 0.89824533 7.9575312
220 2.1884715 2.2770564 0.87677613 7.9000591
230 2.1671124 2.2496063 0.85409501 7.8673156
240 2.1560417 2.2379998 0.83167878 7.8003228
250 2.1421449 2.2240624 0.81004723 7.7491508
260 2.1172164 2.1971044 0.78931978 7.7457415
270 2.0856847 2.1672998 0.76956352 7.7719788
280 2.0670685 2.1449303 0.75073364 7.7524614
290 2.0639481 2.1428374 0.73258016 7.6727716
300 2.055776 2.1361719 0.7147669 7.6095248
310 2.038425 2.1209353 0.69722853 7.5797085
320 2.0203023 2.1066031 0.68006634 7.5521081
330 2.0118478 2.1039797 0.66330302 7.4877535
340 2.0159442 2.1096258 0.64673694 7.3761703
350 2.0166408 2.1075061 0.63020017 7.2788
360 2.0059407 2.0806316 0.61387618 7.2263941
370 1.9964281 2.0642074 0.59814148 7.1728041
380 1.9918446 2.0567527 0.58303017 7.101597
390 1.992835 2.0548138 0.56852431 7.0084774
400 2.0012934 2.0615016 0.55438401 6.8865948
410 2.0084291 2.073418 0.54034073 6.7697478
420 2.007464 2.0786717 0.52617041 6.6849032
430 1.9983712 2.0704366 0.51188183 6.6323103
440 1.9884651 2.0588515 0.49765394 6.5868356
450 1.982221 2.0467396 0.4837102 6.5311681
460 1.9738673 2.031238 0.47021649 6.4882783
470 1.9574246 2.0060447 0.45740021 6.4814923
480 1.9361065 1.9734507 0.44557947 6.4995199
490 1.9251024 1.9562469 0.43506067 6.4858343
500 1.9279545 1.9572145 0.42577835 6.4274765
510 1.9267504 1.9570246 0.41755013 6.3927027
520 1.9093405 1.9393872 0.41031829 6.4281888
530 1.8820555 1.9060756 0.40432569 6.5099401
540 1.86537 1.8912682 0.3999087 6.55843
550 1.8694252 1.9043192 0.39717519 6.5337875
560 1.8835224 1.9294105 0.39589322 6.4760141
570 1.8898719 1.9462433 0.39573596 6.4520041
580 1.8887698 1.9472764 0.39649878 6.4602989
590 1.8945125 1.9550624 0.39810844 6.4470226
600 1.9106571 1.9735939 0.40045321 6.3971026
610 1.9273243 1.98509 0.40330026 6.3474421
620 1.9351802 1.9888986 0.4064498 6.3340566
630 1.9337889 1.9846794 0.40981479 6.3610556
640 1.9257018 1.9757153 0.4134641 6.4184721
650 1.9204429 1.9718256 0.41750942 6.4679594
660 1.9220449 1.9701963 0.42202455 6.4919724
670 1.9230578 1.9707406 0.4270412 6.5178484
680 1.9204554 1.9740485 0.43255127 6.5572507
690 1.9201811 1.9762854 0.43847123 6.5869126
700 1.9271511 1.9867455 0.44474356 6.5882669
710 1.9418851 2.0042477 0.45120727 6.558573
720 1.9544547 2.0186724 0.4576061 6.5338329
730 1.9687971 2.0326169 0.46367507 6.4988775
740 1.9830308 2.0466267 0.46920367 6.4618136
750 1.9936981 2.0526606 0.47397868 6.4367349
760 2.0008431 2.0535449 0.47786748 6.4249001
770 1.9982133 2.0483219 0.48085757 6.4504786
780 1.9841544 2.0311693 0.48306488 6.5200512
790 1.9683122 2.0158738 0.48475632 6.5959263
800 1.9604618 2.003224 0.48619405 6.6392559
810 1.9629155 2.0075077 0.48756075 6.6406486
820 1.9683056 2.0110554 0.48883443 6.6269424
830 1.975409 2.0189161 0.48995399 6.6030215
840 1.9897264 2.035016 0.4907852 6.5485575
850 2.0094338 2.0555358 0.49104505 6.4719926
860 2.0217589 2.0643603 0.49040437 6.4233305
870 2.0147718 2.0641627 0.48866908 6.4491964
880 1.9883859 2.0324092 0.48592007 6.5488061
890 1.9625853 2.0028776 0.48263002 6.6452734
900 1.9520401 1.9889124 0.47925524 6.6808078
910 1.9559583 1.9952984 0.47597346 6.6573059
920 1.9657244 2.0083503 0.47268726 6.6073704
930 1.969288 2.0152339 0.4692054 6.5780416
940 1.9652206 2.0116384 0.4654438 6.5769812
950 1.9567495 1.9960693 0.46147541 6.5942022
960 1.9418452 1.980858 0.45753557 6.6369454
970 1.9247196 1.9585585 0.45390337 6.6888821
980 1.9128262 1.9481721 0.45090045 6.7198221
990 1.9167211 1.9451096 0.44869731 6.6912394
1000 1.935529 1.9662384 0.44728238 6.6079829
Loop time of 1.307 on 1 procs for 1000 steps with 2775 atoms
Performance: 66105.601 tau/day, 765.111 timesteps/s
98.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.7676 | 0.7676 | 0.7676 | 0.0 | 58.73
Neigh | 0.088947 | 0.088947 | 0.088947 | 0.0 | 6.81
Comm | 0.0094135 | 0.0094135 | 0.0094135 | 0.0 | 0.72
Output | 0.019547 | 0.019547 | 0.019547 | 0.0 | 1.50
Modify | 0.39755 | 0.39755 | 0.39755 | 0.0 | 30.42
Other | | 0.02394 | | | 1.83
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 527 ave 527 max 527 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24332 ave 24332 max 24332 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24332
Ave neighs/atom = 8.76829
Neighbor list builds = 38
Dangerous builds = 0
#####################################################################
#initialize the COM velocity and run to achieve steady-state
#calculate velocity to add: V=J/rho_total
variable Vadd equal $J*lx*ly/count(bulk)
variable Vadd equal 0.1*lx*ly/count(bulk)
#first remove any COM velocity, then add back the streaming velocity
velocity bulk zero linear
velocity bulk set ${Vadd} 0.0 0.0 units box sum yes mom no
velocity bulk set 0.149532710280374 0.0 0.0 units box sum yes mom no
fix GD bulk flow/gauss 1 0 0 #energy yes
#fix_modify GD energy yes
run ${stabil}
run 1000
Per MPI rank memory allocation (min/avg/max) = 3.166 | 3.166 | 3.166 Mbytes
Step c_myT c_myTp TotEng Press
1000 1.9466974 1.9662384 0.45804438 6.615449
1010 1.9605467 1.9815754 0.45717241 6.5545496
1020 1.9560139 1.9823875 0.45660431 6.5672421
1030 1.9348326 1.9691606 0.45633148 6.6463667
1040 1.9167809 1.9449522 0.45657707 6.7139486
1050 1.9193541 1.943342 0.45767968 6.7014054
1060 1.9410751 1.9720491 0.45967742 6.6150379
1070 1.9658493 1.9964883 0.46221539 6.5178418
1080 1.9767205 2.0074304 0.46491236 6.4768594
1090 1.9714544 2.0003054 0.46759126 6.5026957
1100 1.9647035 1.9927455 0.4703109 6.5400181
1110 1.9657667 1.9959656 0.47317481 6.5519094
1120 1.9706062 1.9980802 0.476185 6.5512675
1130 1.9747655 2.0062292 0.47932281 6.554091
1140 1.9761245 2.0075076 0.48248327 6.5670381
1150 1.9744197 2.0073027 0.48562483 6.5914441
1160 1.9722698 2.0046687 0.48874207 6.6165575
1170 1.9692145 2.0013845 0.49187442 6.6438115
1180 1.9665609 1.9970724 0.49508053 6.6693821
1190 1.9625031 1.9908427 0.49843816 6.7002606
1200 1.960528 1.993084 0.50203044 6.7237076
1210 1.9649156 1.9981485 0.50587066 6.7217755
1220 1.9788059 2.0134511 0.50987442 6.6833452
1230 1.9952283 2.0343101 0.51379781 6.6340278
1240 2.0039391 2.0494196 0.51730872 6.6129751
1250 2.0019006 2.0526773 0.52014603 6.6320217
1260 1.9974025 2.0528914 0.52221385 6.6601786
1270 1.9953949 2.0561121 0.5234754 6.6796142
1280 1.9893864 2.0470375 0.5238632 6.7140134
1290 1.9694951 2.019253 0.5235093 6.798442
1300 1.9473901 1.9965919 0.52280384 6.8863369
1310 1.9511151 2.006161 0.52203882 6.8700917
1320 1.979341 2.0388959 0.52106938 6.7529595
1330 2.0073235 2.0720045 0.51935291 6.6297731
1340 2.0202482 2.0841419 0.51624273 6.55803
1350 2.0177489 2.0669046 0.51142591 6.5401753
1360 2.0069274 2.04717 0.50505824 6.5506533
1370 1.994854 2.0311383 0.49743042 6.5633001
1380 1.9793176 2.0077184 0.48890503 6.5859072
1390 1.9580907 1.9839831 0.48004316 6.6288992
1400 1.9415542 1.9594192 0.47143599 6.6534105
1410 1.9405188 1.9591825 0.46353105 6.620549
1420 1.9504784 1.9730647 0.45640199 6.5471784
1430 1.9594158 1.9819854 0.44995052 6.4802874
1440 1.9615108 1.9863792 0.44406411 6.44391
1450 1.9544127 1.9806249 0.43873409 6.4484818
1460 1.9384927 1.9614953 0.43408605 6.4905259
1470 1.9214711 1.9425515 0.43035972 6.5390434
1480 1.9170761 1.9300809 0.42775046 6.5409502
1490 1.9242904 1.9385731 0.42631007 6.5005057
1500 1.9307133 1.9446119 0.4258836 6.4660754
1510 1.9303576 1.9435389 0.42633976 6.4616415
1520 1.9248382 1.9408306 0.42765441 6.4832059
1530 1.9120794 1.9278123 0.42986958 6.5380951
1540 1.899122 1.9125029 0.4331459 6.5987181
1550 1.9030956 1.9187821 0.43765067 6.6012019
1560 1.9182961 1.9453782 0.44330842 6.5674222
1570 1.9272863 1.9613129 0.44971962 6.5619794
1580 1.931679 1.9698134 0.45643436 6.5780809
1590 1.9336692 1.9728684 0.46314752 6.6035675
1600 1.938895 1.9823104 0.46964519 6.6138411
1610 1.9510838 1.9937914 0.47568807 6.5916989
1620 1.9685387 2.0087314 0.48102339 6.5424432
1630 1.9894416 2.0295715 0.48539861 6.4757743
1640 1.9982699 2.0426949 0.48860411 6.4512418
1650 1.9901677 2.0363837 0.49062424 6.4879985
1660 1.9814216 2.0291326 0.49172203 6.5248034
1670 1.9812111 2.0293629 0.49218297 6.5253876
1680 1.9903906 2.0408376 0.49211747 6.4852787
1690 2.0015983 2.0538843 0.4914581 6.4325081
1700 2.009727 2.0503407 0.49011163 6.3878577
1710 2.0167822 2.0531002 0.4881688 6.3477054
1720 2.0189021 2.0445033 0.48564798 6.3273063
1730 2.0129713 2.0354734 0.48270666 6.3385541
1740 2.0048763 2.0199836 0.47950943 6.3587586
1750 1.9994843 2.0085942 0.47624908 6.3694119
1760 1.9940025 2.0072098 0.47305283 6.3816295
1770 1.9817431 1.9974066 0.46994486 6.4224295
1780 1.965171 1.9805421 0.4670779 6.4832371
1790 1.9474078 1.9662605 0.46466823 6.5516524
1800 1.9286009 1.9507751 0.46292015 6.6263366
1810 1.9168087 1.9437961 0.46199899 6.6759834
1820 1.9107555 1.9306323 0.46204129 6.7029857
1830 1.9135569 1.930819 0.46316484 6.6949737
1840 1.9345342 1.9553413 0.46532704 6.6178988
1850 1.9630349 1.9929548 0.46822932 6.5137866
1860 1.9820746 2.0188839 0.47135068 6.4489028
1870 1.9834959 2.0217145 0.47427805 6.4552721
1880 1.9731564 2.0120293 0.47692755 6.5100251
1890 1.9653605 2.0070624 0.47943307 6.5594235
1900 1.9630631 2.0095488 0.48192185 6.5912876
1910 1.9556778 2.0035006 0.48443107 6.6437189
1920 1.9408788 1.9828296 0.48710124 6.7228731
1930 1.9292393 1.9732376 0.49025327 6.7880112
1940 1.9263081 1.9708942 0.49416086 6.8162477
1950 1.9358375 1.976323 0.49899895 6.7946964
1960 1.9520543 1.9936542 0.50485961 6.7467481
1970 1.9709064 2.0108957 0.51165586 6.6909455
1980 1.9940026 2.0375428 0.51918913 6.6250463
1990 2.0171261 2.0646948 0.52705638 6.5649879
2000 2.0302713 2.0802515 0.53472229 6.5470853
Loop time of 1.34877 on 1 procs for 1000 steps with 2775 atoms
Performance: 64058.154 tau/day, 741.414 timesteps/s
98.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.77091 | 0.77091 | 0.77091 | 0.0 | 57.16
Neigh | 0.085835 | 0.085835 | 0.085835 | 0.0 | 6.36
Comm | 0.0093472 | 0.0093472 | 0.0093472 | 0.0 | 0.69
Output | 0.019047 | 0.019047 | 0.019047 | 0.0 | 1.41
Modify | 0.43949 | 0.43949 | 0.43949 | 0.0 | 32.58
Other | | 0.02415 | | | 1.79
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 530 ave 530 max 530 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24404 ave 24404 max 24404 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24404
Ave neighs/atom = 8.79423
Neighbor list builds = 36
Dangerous builds = 0
#####################################################################
#collect data
#print the applied force and total flux to ensure conservation of Jx
variable Fapp equal f_GD[1]
compute vxBulk bulk reduce sum vx
compute vyBulk bulk reduce sum vy
variable invVol equal 1.0/(lx*ly)
variable jx equal c_vxBulk*${invVol}
variable jx equal c_vxBulk*0.00025
variable jy equal c_vyBulk*${invVol}
variable jy equal c_vyBulk*0.00025
variable curr_step equal step
variable p_Fapp format Fapp %.3f
variable p_jx format jx %.5g
variable p_jy format jy %.5g
fix print_vCOM all print ${dump_rate} "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
fix print_vCOM all print 50 "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
#compute IK1 pressure profile
#see Todd, Evans, and Davis, Phys. Rev. E 52(2) 1995, p. 1627
#use profile-unbiased temperature to remove the streaming velocity
#from the kinetic part of the pressure
compute spa bulk stress/atom myTp
#for the pressure profile, use the same grid as the PUT
compute chunkX bulk chunk/atom bin/1d x lower ${dX} units box
compute chunkX bulk chunk/atom bin/1d x lower 3.125 units box
#output pressure profile and other profiles
#the pressure profile is (-1/2V)*(c_spa[1] + c_spa[2]), where
#V is the volume of a slice
fix profiles bulk ave/chunk 1 1 ${dump_rate} chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
fix profiles bulk ave/chunk 1 1 50 chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
#compute velocity profile across the pipe with a finer grid
variable dYnew equal ${dY}/10
variable dYnew equal 3.07692307692308/10
compute chunkY bulk chunk/atom bin/1d y center ${dYnew} units box region pipe
compute chunkY bulk chunk/atom bin/1d y center 0.307692307692308 units box region pipe
fix velYprof bulk ave/chunk 1 1 ${dump_rate} chunkY vx file Vy_profile ave running overwrite
fix velYprof bulk ave/chunk 1 1 50 chunkY vx file Vy_profile ave running overwrite
#full trajectory
# dump 7 bulk custom ${dump_rate} bulk.lammpstrj id type x y z
# dump_modify 7 sort id
run ${run}
run 2000
Per MPI rank memory allocation (min/avg/max) = 5.174 | 5.174 | 5.174 Mbytes
Step c_myT c_myTp TotEng Press
2000 2.0302713 2.0802515 0.53472229 6.5470853
2010 2.0303419 2.0806129 0.54177821 6.5808527
2020 2.0245167 2.0792991 0.54803523 6.6381758
2030 2.0169072 2.065404 0.55345227 6.7008962
2040 2.0052526 2.0513817 0.55818432 6.7755868
2050 1.9953625 2.0366564 0.56245299 6.8382569
2060 2.0003667 2.0462109 0.56649798 6.8390557
2070 2.0238288 2.0834553 0.57023651 6.7637821
2080 2.045765 2.1173867 0.5730944 6.6861321
2090 2.0563925 2.1370313 0.57430831 6.6422581
2100 2.0620437 2.1480293 0.57319824 6.6080678
2110 2.0584437 2.1473173 0.56913597 6.5969671
2120 2.0532825 2.1393006 0.56154606 6.5799417
2130 2.0450143 2.1234905 0.55009479 6.5616931
2140 2.0229537 2.1004507 0.53511912 6.5854627
2150 1.9832556 2.0554119 0.51812599 6.6700591
2160 1.9444027 2.0110758 0.50163049 6.7534263
2170 1.9267473 1.9904528 0.48759542 6.76469
2180 1.9262232 1.9809353 0.47662199 6.7188048
2190 1.9359331 1.9854626 0.46836289 6.6406985
2200 1.9530728 1.9971865 0.4620366 6.5409943
2210 1.9657099 2.0056761 0.45692542 6.4639397
2220 1.9661008 2.0046161 0.45253504 6.4388081
2230 1.9574696 1.9947839 0.44864257 6.4528687
2240 1.9522284 1.9922663 0.44518111 6.4584458
2250 1.9518203 1.9950044 0.44206844 6.4491722
2260 1.9527908 1.9989603 0.4391804 6.4377912
2270 1.9452231 1.9932538 0.43643529 6.4607516
2280 1.9249341 1.9759145 0.43392742 6.5320897
2290 1.9087464 1.960985 0.43186869 6.5875176
2300 1.9103289 1.964731 0.43039882 6.5765021
2310 1.9182062 1.9783814 0.4294628 6.5434488
2320 1.9204281 1.9796609 0.42889381 6.5351629
2330 1.916279 1.9720659 0.42866391 6.5562619
2340 1.9062866 1.9587628 0.42890166 6.6033936
2350 1.9024117 1.9566812 0.42979475 6.6297969
2360 1.908153 1.960687 0.43141898 6.6215148
2370 1.9115944 1.9663337 0.43376668 6.6236491
2380 1.9086193 1.9637867 0.4367911 6.6529568
2390 1.9039907 1.9610268 0.44053991 6.6926343
2400 1.9034944 1.9609406 0.44508818 6.7193441
2410 1.9151521 1.9753641 0.4504458 6.7015957
2420 1.9314517 1.9925924 0.45644382 6.6669864
2430 1.9433933 2.0062001 0.46277215 6.6481527
2440 1.9504631 2.0087015 0.46917209 6.6475757
2450 1.9550092 2.0094957 0.47550077 6.6556459
2460 1.9609689 2.0147997 0.48170141 6.6568282
2470 1.9730726 2.0328127 0.48763131 6.6337545
2480 1.9838562 2.0466643 0.49303443 6.6143423
2490 1.9862031 2.0473388 0.49767532 6.6245587
2500 1.9817565 2.0455432 0.50152131 6.6573893
2510 1.9785788 2.0423176 0.50460561 6.6808042
2520 1.9823006 2.0505106 0.50696374 6.6726698
2530 1.9907178 2.0553736 0.50852885 6.6402082
2540 2.0005205 2.0690408 0.50919421 6.5966469
2550 2.0079727 2.0809816 0.50872954 6.5568419
2560 2.0133128 2.096271 0.50682742 6.5199915
2570 2.0141298 2.0990846 0.50314491 6.4951991
2580 2.0048768 2.0874319 0.49750096 6.5025454
2590 1.9876498 2.0638834 0.4900201 6.5333038
2600 1.9720479 2.0474479 0.48105263 6.5527157
2610 1.9596324 2.0355764 0.4710001 6.5547867
2620 1.9439039 2.0106405 0.46046644 6.5646889
2630 1.9321714 1.9924346 0.45021207 6.5589454
2640 1.9349378 1.9923889 0.44082833 6.5012762
2650 1.9448459 2.0069955 0.43251999 6.4228945
2660 1.9446852 2.0050346 0.42525857 6.3921645
2670 1.9325594 1.9884937 0.41913362 6.4169726
2680 1.9121687 1.9606084 0.41434428 6.4821267
2690 1.8923613 1.9339385 0.41105831 6.5517615
2700 1.8807238 1.9191801 0.40933203 6.5949447
2710 1.8797367 1.918758 0.40906826 6.6001309
2720 1.8852961 1.9225996 0.41005611 6.58191
2730 1.8937478 1.9357751 0.41204348 6.5541946
2740 1.9019279 1.9449374 0.41476104 6.5278575
2750 1.9134396 1.9614415 0.41800066 6.4890769
2760 1.9339551 1.9913779 0.42150554 6.4159805
2770 1.9597826 2.0220988 0.42487614 6.3232273
2780 1.9753466 2.0414907 0.42771704 6.2715489
2790 1.9720423 2.0402016 0.42976012 6.2949288
2800 1.9512893 2.0172711 0.43109201 6.3878056
2810 1.9232302 1.9870212 0.4320928 6.5101822
2820 1.9026913 1.959286 0.43326424 6.6024967
2830 1.9033802 1.9621601 0.43500785 6.6114274
2840 1.9214292 1.9833838 0.43733454 6.5508757
2850 1.9440563 2.0087358 0.43995473 6.4713496
2860 1.9589136 2.0211107 0.44250821 6.4232961
2870 1.9588429 2.022232 0.44477492 6.4355861
2880 1.9456751 2.0009513 0.44676532 6.5021746
2890 1.9269155 1.9782929 0.44877858 6.5926531
2900 1.9125262 1.9554653 0.45121196 6.6657808
2910 1.9187855 1.9572583 0.45438665 6.6589954
2920 1.9416112 1.9784518 0.45839212 6.5888253
2930 1.9613579 1.9975032 0.46305788 6.5317424
2940 1.9711529 2.0102501 0.46812715 6.5148943
2950 1.9707865 2.0133283 0.47345305 6.5389543
2960 1.9732526 2.0170219 0.47898306 6.5537092
2970 1.9871126 2.0282309 0.48465048 6.5273492
2980 1.9953449 2.0404164 0.49032615 6.5227325
2990 1.9909136 2.037246 0.49581423 6.5664662
3000 1.9872474 2.0307896 0.5011051 6.6060698
3010 1.9944885 2.0457308 0.5062755 6.6031811
3020 2.0103461 2.0599491 0.51116655 6.5654871
3030 2.0240275 2.077342 0.5154921 6.5358852
3040 2.0205953 2.0704954 0.51898871 6.5708937
3050 2.0032184 2.0463036 0.52167438 6.657741
3060 1.9889341 2.0265284 0.52385964 6.7329171
3070 1.9795143 2.0201081 0.52588914 6.7881407
3080 1.9713362 2.0123964 0.52797238 6.8362858
3090 1.9692592 2.0106467 0.53025538 6.8616268
3100 1.9722487 2.0259566 0.53277635 6.8689898
3110 1.9703322 2.0314028 0.53541462 6.895271
3120 1.9594359 2.0217586 0.53808512 6.954362
3130 1.9524729 2.0148628 0.5409094 6.9965233
3140 1.9630381 2.0260807 0.54400259 6.968082
3150 1.9902598 2.0549364 0.54720142 6.8698796
3160 2.029715 2.0923999 0.54995378 6.7193678
3170 2.0581544 2.1137995 0.55150021 6.6053728
3180 2.0590739 2.1156535 0.55123668 6.5919337
3190 2.0400682 2.0904721 0.54894762 6.6505757
3200 2.0211594 2.0682597 0.54484887 6.7046468
3210 2.012712 2.0573114 0.53922056 6.7130909
3220 2.0102377 2.0554701 0.53219251 6.6919068
3230 2.0017671 2.0505068 0.52386898 6.6867054
3240 1.9854941 2.0308454 0.51458791 6.7051085
3250 1.9767009 2.0187664 0.50486784 6.6916859
3260 1.9771733 2.0186148 0.49510721 6.6424305
3270 1.974003 2.0136039 0.48556818 6.6078903
3280 1.9627665 1.9989122 0.47654147 6.6067904
3290 1.9491247 1.9826247 0.46834865 6.6186709
3300 1.9414093 1.9724941 0.4612122 6.6119543
3310 1.9433901 1.9715482 0.45518879 6.570612
3320 1.9518837 1.9872717 0.45010165 6.5057947
3330 1.9603874 1.9957995 0.44566728 6.4428221
3340 1.9615962 1.9945224 0.44167201 6.4099339
3350 1.955918 1.9882866 0.4380303 6.4070811
3360 1.9463445 1.9763654 0.43480086 6.4241178
3370 1.9411187 1.9683081 0.4320639 6.4296577
3380 1.9407224 1.9580074 0.42991627 6.4210217
3390 1.9402479 1.9530447 0.42850635 6.4170536
3400 1.9451337 1.9555771 0.42787382 6.3990336
3410 1.9475586 1.9612432 0.42797178 6.3953251
3420 1.9434927 1.960532 0.4286887 6.4210681
3430 1.9339054 1.9516935 0.43003682 6.4707071
3440 1.9234014 1.9464343 0.43214965 6.5248205
3450 1.9191846 1.9444777 0.43516361 6.5558451
3460 1.923218 1.9594606 0.43915611 6.5549213
3470 1.9328953 1.9792053 0.44397878 6.5327637
3480 1.9466227 1.9997841 0.44940599 6.4954965
3490 1.9672374 2.0323219 0.45511091 6.4358811
3500 1.9799622 2.0479841 0.46061029 6.4100217
3510 1.97942 2.0493411 0.46551964 6.4368108
3520 1.9725674 2.0389602 0.46976379 6.4892049
3530 1.9716429 2.0389798 0.47344292 6.5200899
3540 1.9789254 2.0486162 0.47659268 6.5198212
3550 1.9872455 2.0577517 0.47908145 6.5144586
3560 1.9808834 2.0545963 0.48076562 6.5633282
3570 1.9637165 2.0335394 0.4816783 6.6519124
3580 1.9407948 2.0067763 0.48212406 6.7605224
3590 1.9226532 1.9825887 0.482523 6.8486041
3600 1.9135067 1.9700999 0.48328349 6.8977859
3610 1.9157516 1.9720028 0.48470695 6.8977759
3620 1.9328644 2.0001154 0.48688778 6.8361569
3630 1.9568208 2.0243053 0.48963934 6.7442107
3640 1.9824587 2.0569223 0.49259174 6.6452535
3650 1.9934906 2.0686357 0.49529039 6.6020218
3660 1.9996281 2.0747054 0.49732231 6.5808905
3670 2.0038801 2.0772777 0.49838834 6.5691351
3680 1.9941342 2.0712365 0.49826732 6.6088108
3690 1.9762631 2.0486045 0.49689109 6.6739003
3700 1.9667284 2.034939 0.49438991 6.7010266
3710 1.9615089 2.0168112 0.49093736 6.7040385
3720 1.9613068 2.014749 0.48673789 6.6813041
3730 1.9731234 2.0290151 0.48175562 6.6096756
3740 1.9829764 2.0461907 0.47575174 6.5424752
3750 1.9792839 2.0454423 0.4685271 6.5237752
3760 1.9599692 2.0287015 0.46022485 6.5616271
3770 1.935975 2.0000948 0.45138017 6.6136471
3780 1.9236713 1.9834802 0.44262437 6.6187463
3790 1.9268004 1.9875324 0.43430113 6.5632772
3800 1.932601 1.9872595 0.42649564 6.4984765
3810 1.9322506 1.9814946 0.41928856 6.4617054
3820 1.9245737 1.9712821 0.4128224 6.461378
3830 1.9148568 1.9555602 0.40721003 6.4774474
3840 1.9049961 1.9457058 0.4026118 6.5029211
3850 1.8915137 1.9265199 0.39914962 6.5483592
3860 1.8784768 1.9058055 0.39700153 6.5962113
3870 1.8755236 1.9045158 0.39632769 6.6079033
3880 1.8841415 1.9140314 0.39710038 6.5777071
3890 1.8958027 1.9331148 0.39918951 6.5359786
3900 1.9064085 1.948805 0.40238576 6.4998591
3910 1.9185092 1.9675732 0.40647523 6.4610682
3920 1.9342595 1.9933225 0.41115392 6.4122308
3930 1.9482664 2.007614 0.41603495 6.373684
3940 1.9557759 2.0161573 0.42084462 6.3636707
3950 1.9573687 2.016612 0.42540421 6.3804123
3960 1.9486354 1.9998027 0.42974612 6.4404943
3970 1.936214 1.980721 0.43412037 6.5176787
3980 1.9274292 1.9595259 0.43885103 6.5846211
3990 1.9233082 1.953436 0.44425085 6.6354275
4000 1.9289165 1.9522097 0.45042645 6.6513836
Loop time of 2.49114 on 1 procs for 2000 steps with 2775 atoms
Performance: 69365.902 tau/day, 802.846 timesteps/s
98.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.4257 | 1.4257 | 1.4257 | 0.0 | 57.23
Neigh | 0.15501 | 0.15501 | 0.15501 | 0.0 | 6.22
Comm | 0.017206 | 0.017206 | 0.017206 | 0.0 | 0.69
Output | 0.034183 | 0.034183 | 0.034183 | 0.0 | 1.37
Modify | 0.81531 | 0.81531 | 0.81531 | 0.0 | 32.73
Other | | 0.04374 | | | 1.76
Nlocal: 2775 ave 2775 max 2775 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 517 ave 517 max 517 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 24366 ave 24366 max 24366 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 24366
Ave neighs/atom = 8.78054
Neighbor list builds = 72
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:05

View File

@ -1,909 +0,0 @@
LAMMPS (6 Jul 2017)
using 1 OpenMP thread(s) per MPI task
#LAMMPS input script
#in.GD
#see README for details
###############################################################################
#initialize variables
clear
using 1 OpenMP thread(s) per MPI task
#frequency for outputting info (timesteps)
variable dump_rate equal 50
variable thermo_rate equal 10
#equilibration time (timesteps)
variable equil equal 1000
#stabilization time (timesteps to reach steady-state)
variable stabil equal 1000
#data collection time (timesteps)
variable run equal 2000
#length of pipe
variable L equal 30
#width of pipe
variable d equal 20
#flux (mass/sigma*tau)
variable J equal 0.1
#simulation box dimensions
variable Lx equal 100
variable Ly equal 40
#bulk fluid density
variable dens equal 0.8
#lattice spacing for wall atoms
variable aWall equal 1.0 #1.7472
#timestep
variable ts equal 0.001
#temperature
variable T equal 2.0
#thermostat damping constant
variable tdamp equal ${ts}*100
variable tdamp equal 0.001*100
units lj
dimension 2
atom_style atomic
###############################################################################
#create box
#create lattice with the spacing aWall
variable rhoWall equal ${aWall}^(-2)
variable rhoWall equal 1^(-2)
lattice sq ${rhoWall}
lattice sq 1
Lattice spacing in x,y,z = 1 1 1
#modify input dimensions to be multiples of aWall
variable L1 equal round($L/${aWall})*${aWall}
variable L1 equal round(30/${aWall})*${aWall}
variable L1 equal round(30/1)*${aWall}
variable L1 equal round(30/1)*1
variable d1 equal round($d/${aWall})*${aWall}
variable d1 equal round(20/${aWall})*${aWall}
variable d1 equal round(20/1)*${aWall}
variable d1 equal round(20/1)*1
variable Ly1 equal round(${Ly}/${aWall})*${aWall}
variable Ly1 equal round(40/${aWall})*${aWall}
variable Ly1 equal round(40/1)*${aWall}
variable Ly1 equal round(40/1)*1
variable Lx1 equal round(${Lx}/${aWall})*${aWall}
variable Lx1 equal round(100/${aWall})*${aWall}
variable Lx1 equal round(100/1)*${aWall}
variable Lx1 equal round(100/1)*1
#create simulation box
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
variable ly2 equal ${Ly1}/2
variable ly2 equal 40/2
region simbox block -${lx2} ${lx2} -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 ${lx2} -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 50 -${ly2} ${ly2} 0 0.1 units box
region simbox block -50 50 -20 ${ly2} 0 0.1 units box
region simbox block -50 50 -20 20 0 0.1 units box
create_box 2 simbox
Created orthogonal box = (-50 -20 0) to (50 20 0.1)
4 by 1 by 1 MPI processor grid
#####################################################################
#set up potential
mass 1 1.0 #fluid atoms
mass 2 1.0 #wall atoms
pair_style lj/cut 2.5
pair_modify shift yes
pair_coeff 1 1 1.0 1.0 2.5
pair_coeff 1 2 1.0 1.0 1.12246
pair_coeff 2 2 0.0 0.0
neigh_modify exclude type 2 2
timestep ${ts}
timestep 0.001
#####################################################################
#create atoms
#create wall atoms everywhere
create_atoms 2 box
Created 4000 atoms
#define region which is "walled off"
variable dhalf equal ${d1}/2
variable dhalf equal 20/2
variable Lhalf equal ${L1}/2
variable Lhalf equal 30/2
region walltop block -${Lhalf} ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 ${Lhalf} ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 ${dhalf} EDGE -0.1 0.1 units box
region walltop block -15 15 10 EDGE -0.1 0.1 units box
region wallbot block -${Lhalf} ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 ${Lhalf} EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -${dhalf} -0.1 0.1 units box
region wallbot block -15 15 EDGE -10 -0.1 0.1 units box
region outsidewall union 2 walltop wallbot side out
#remove wall atoms outside wall region
group outside region outsidewall
3349 atoms in group outside
delete_atoms group outside
Deleted 3349 atoms, new total = 651
#remove wall atoms that aren't on edge of wall region
variable x1 equal ${Lhalf}-${aWall}
variable x1 equal 15-${aWall}
variable x1 equal 15-1
variable y1 equal ${dhalf}+${aWall}
variable y1 equal 10+${aWall}
variable y1 equal 10+1
region insideTop block -${x1} ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 ${x1} ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 ${y1} EDGE -0.1 0.1 units box
region insideTop block -14 14 11 EDGE -0.1 0.1 units box
region insideBot block -${x1} ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 ${x1} EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -${y1} -0.1 0.1 units box
region insideBot block -14 14 EDGE -11 -0.1 0.1 units box
region insideWall union 2 insideTop insideBot
group insideWall region insideWall
551 atoms in group insideWall
delete_atoms group insideWall
Deleted 551 atoms, new total = 100
#define new lattice, to give correct fluid density
#y lattice const must be a multiple of aWall
variable atrue equal ${dens}^(-1/2)
variable atrue equal 0.8^(-1/2)
variable ay equal round(${atrue}/${aWall})*${aWall}
variable ay equal round(1.11803398874989/${aWall})*${aWall}
variable ay equal round(1.11803398874989/1)*${aWall}
variable ay equal round(1.11803398874989/1)*1
#choose x lattice const to give correct density
variable ax equal (${ay}*${dens})^(-1)
variable ax equal (1*${dens})^(-1)
variable ax equal (1*0.8)^(-1)
#change Lx to be multiple of ax
variable Lx1 equal round(${Lx}/${ax})*${ax}
variable Lx1 equal round(100/${ax})*${ax}
variable Lx1 equal round(100/1.25)*${ax}
variable Lx1 equal round(100/1.25)*1.25
variable lx2 equal ${Lx1}/2
variable lx2 equal 100/2
change_box all x final -${lx2} ${lx2} units box
change_box all x final -50 ${lx2} units box
change_box all x final -50 50 units box
orthogonal box = (-50 -20 0) to (50 20 0.1)
#define new lattice
lattice custom ${dens} a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 ${ax} 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 ${ay} 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
lattice custom 0.8 a1 1.25 0.0 0.0 a2 0.0 1 0.0 a3 0.0 0.0 1.0 basis 0.0 0.0 0.0
Lattice spacing in x,y,z = 1.25 1 1
#fill in rest of box with bulk particles
variable delta equal 0.001
variable Ldelt equal ${Lhalf}+${delta}
variable Ldelt equal 15+${delta}
variable Ldelt equal 15+0.001
variable dDelt equal ${dhalf}-${delta}
variable dDelt equal 10-${delta}
variable dDelt equal 10-0.001
region left block EDGE -${Ldelt} EDGE EDGE -0.1 0.1 units box
region left block EDGE -15.001 EDGE EDGE -0.1 0.1 units box
region right block ${Ldelt} EDGE EDGE EDGE -0.1 0.1 units box
region right block 15.001 EDGE EDGE EDGE -0.1 0.1 units box
region pipe block -${Ldelt} ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 ${Ldelt} -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -${dDelt} ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 ${dDelt} -0.1 0.1 units box
region pipe block -15.001 15.001 -9.999 9.999 -0.1 0.1 units box
region bulk union 3 left pipe right
create_atoms 1 region bulk
Created 2675 atoms
group bulk type 1
2675 atoms in group bulk
group wall type 2
100 atoms in group wall
#remove atoms that are too close to wall
delete_atoms overlap 0.9 bulk wall
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
2 neighbor lists, perpetual/occasional/extra = 1 1 0
(1) command delete_atoms, occasional
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/2d
bin: standard
(2) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d/newton
bin: standard
Deleted 0 atoms, new total = 2775
neighbor 0.3 bin
neigh_modify delay 0 every 1 check yes
neigh_modify exclude group wall wall
velocity bulk create $T 78915 dist gaussian rot yes mom yes loop geom
velocity bulk create 2 78915 dist gaussian rot yes mom yes loop geom
#####################################################################
#set up PUT
#see Evans and Morriss, Phys. Rev. Lett. 56(20) 1986, p. 2172
#average number of particles per box, Evans and Morriss used 2.0
variable NperBox equal 8.0
#calculate box sizes
variable boxSide equal sqrt(${NperBox}/${dens})
variable boxSide equal sqrt(8/${dens})
variable boxSide equal sqrt(8/0.8)
variable nX equal round(lx/${boxSide})
variable nX equal round(lx/3.16227766016838)
variable nY equal round(ly/${boxSide})
variable nY equal round(ly/3.16227766016838)
variable dX equal lx/${nX}
variable dX equal lx/32
variable dY equal ly/${nY}
variable dY equal ly/13
#temperature of fluid (excluding wall)
compute myT bulk temp
#profile-unbiased temperature of fluid
compute myTp bulk temp/profile 1 1 0 xy ${nX} ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 ${nY}
compute myTp bulk temp/profile 1 1 0 xy 32 13
#thermo setup
thermo ${thermo_rate}
thermo 10
thermo_style custom step c_myT c_myTp etotal press
#dump initial configuration
# dump 55 all custom 1 all.init.lammpstrj id type x y z vx vy vz
# dump 56 wall custom 1 wall.init.lammpstrj id type x y z
# dump_modify 55 sort id
# dump_modify 56 sort id
run 0
WARNING: No fixes defined, atoms won't move (../verlet.cpp:55)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 72 29 1
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/2d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.067 | 3.068 | 3.07 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.0555109 0.77892922 7.3417096
Loop time of 4.35114e-06 on 4 procs for 0 steps with 2775 atoms
114.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 4.351e-06 | | |100.00
Nlocal: 693.75 ave 800 max 578 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 266.25 ave 325 max 198 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Neighs: 6601.5 ave 8000 max 5147 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 26406
Ave neighs/atom = 9.51568
Neighbor list builds = 0
Dangerous builds = 0
# undump 55
# undump 56
#####################################################################
#equilibrate without GD
fix nvt bulk nvt temp $T $T ${tdamp}
fix nvt bulk nvt temp 2 $T ${tdamp}
fix nvt bulk nvt temp 2 2 ${tdamp}
fix nvt bulk nvt temp 2 2 0.1
fix_modify nvt temp myTp
WARNING: Temperature for fix modify is not for group all (../fix_nh.cpp:1395)
fix 2 bulk enforce2d
run ${equil}
run 1000
Per MPI rank memory allocation (min/avg/max) = 3.13 | 3.131 | 3.132 Mbytes
Step c_myT c_myTp TotEng Press
0 2 2.0555109 0.77892922 7.3417096
10 1.9173594 1.9390034 0.77876976 7.6702228
20 1.7033394 1.6974676 0.77977799 8.5614784
30 1.5026161 1.4723993 0.78456655 9.4308258
40 1.4880481 1.4591602 0.79486693 9.6134304
50 1.6192437 1.6150635 0.81109069 9.2592835
60 1.7404087 1.7583444 0.82955456 8.952392
70 1.7757591 1.8006606 0.8452778 8.9717917
80 1.7573847 1.7813629 0.85769389 9.1936368
90 1.7491183 1.7726908 0.86882429 9.3712357
100 1.7798944 1.8079583 0.88029084 9.3871755
110 1.8440582 1.8793133 0.89259397 9.2582848
120 1.9191606 1.9673434 0.90533438 9.0680574
130 1.9883299 2.0484299 0.91755461 8.88117
140 2.0463366 2.1111872 0.92818114 8.7184178
150 2.0953769 2.167849 0.93639789 8.5713408
160 2.1442147 2.2216228 0.94145082 8.4082835
170 2.1797848 2.2631458 0.94246877 8.2767903
180 2.1863476 2.2700986 0.93873326 8.2311689
190 2.1832866 2.2710551 0.93003012 8.1959062
200 2.1937154 2.2868403 0.91642537 8.0842007
210 2.2022708 2.2915142 0.89824533 7.9575312
220 2.1884715 2.2770564 0.87677613 7.9000591
230 2.1671124 2.2496063 0.85409501 7.8673156
240 2.1560417 2.2379998 0.83167878 7.8003228
250 2.1421449 2.2240624 0.81004723 7.7491508
260 2.1172164 2.1971044 0.78931978 7.7457415
270 2.0856847 2.1672998 0.76956352 7.7719788
280 2.0670685 2.1449303 0.75073364 7.7524614
290 2.0639481 2.1428374 0.73258016 7.6727716
300 2.055776 2.1361719 0.7147669 7.6095248
310 2.038425 2.1209353 0.69722853 7.5797085
320 2.0203023 2.1066031 0.68006634 7.5521081
330 2.0118478 2.1039797 0.66330302 7.4877535
340 2.0159442 2.1096258 0.64673694 7.3761703
350 2.0166408 2.1075061 0.63020017 7.2788
360 2.0059407 2.0806316 0.61387618 7.2263941
370 1.9964281 2.0642074 0.59814148 7.1728041
380 1.9918446 2.0567527 0.58303017 7.101597
390 1.992835 2.0548138 0.56852431 7.0084774
400 2.0012934 2.0615016 0.55438401 6.8865948
410 2.0084291 2.073418 0.54034073 6.7697478
420 2.007464 2.0786717 0.52617041 6.6849032
430 1.9983712 2.0704366 0.51188183 6.6323103
440 1.9884651 2.0588515 0.49765394 6.5868356
450 1.982221 2.0467396 0.4837102 6.5311681
460 1.9738673 2.031238 0.47021649 6.4882783
470 1.9574246 2.0060447 0.45740021 6.4814923
480 1.9361065 1.9734507 0.44557947 6.4995199
490 1.9251024 1.9562469 0.43506067 6.4858343
500 1.9279545 1.9572145 0.42577835 6.4274765
510 1.9267504 1.9570246 0.41755013 6.3927027
520 1.9093405 1.9393872 0.41031829 6.4281888
530 1.8820555 1.9060756 0.40432569 6.5099401
540 1.86537 1.8912682 0.3999087 6.55843
550 1.8694252 1.9043192 0.39717519 6.5337875
560 1.8835224 1.9294105 0.39589322 6.4760141
570 1.8898719 1.9462433 0.39573596 6.4520041
580 1.8887698 1.9472764 0.39649878 6.4602989
590 1.8945125 1.9550624 0.39810844 6.4470226
600 1.9106571 1.9735939 0.40045321 6.3971026
610 1.9273243 1.98509 0.40330026 6.3474421
620 1.9351802 1.9888986 0.4064498 6.3340566
630 1.9337889 1.9846794 0.40981479 6.3610556
640 1.9257018 1.9757153 0.4134641 6.4184721
650 1.9204429 1.9718256 0.41750942 6.4679594
660 1.9220449 1.9701963 0.42202455 6.4919724
670 1.9230578 1.9707406 0.4270412 6.5178484
680 1.9204554 1.9740485 0.43255127 6.5572507
690 1.9201811 1.9762854 0.43847123 6.5869126
700 1.9271511 1.9867455 0.44474356 6.5882669
710 1.9418851 2.0042477 0.45120727 6.558573
720 1.9544547 2.0186724 0.4576061 6.5338329
730 1.9687971 2.0326169 0.46367507 6.4988775
740 1.9830308 2.0466267 0.46920367 6.4618136
750 1.9936981 2.0526606 0.47397868 6.4367349
760 2.0008431 2.0535449 0.47786748 6.4249001
770 1.9982133 2.0483219 0.48085757 6.4504786
780 1.9841544 2.0311693 0.48306488 6.5200512
790 1.9683122 2.0158738 0.48475632 6.5959263
800 1.9604618 2.003224 0.48619405 6.6392559
810 1.9629155 2.0075077 0.48756075 6.6406486
820 1.9683056 2.0110554 0.48883443 6.6269424
830 1.975409 2.0189161 0.48995399 6.6030215
840 1.9897264 2.035016 0.4907852 6.5485575
850 2.0094338 2.0555358 0.49104505 6.4719926
860 2.0217589 2.0643603 0.49040437 6.4233305
870 2.0147718 2.0641627 0.48866908 6.4491964
880 1.9883859 2.0324092 0.48592007 6.5488061
890 1.9625853 2.0028776 0.48263002 6.6452734
900 1.9520401 1.9889124 0.47925524 6.6808078
910 1.9559583 1.9952984 0.47597346 6.6573059
920 1.9657244 2.0083503 0.47268726 6.6073704
930 1.969288 2.0152339 0.4692054 6.5780416
940 1.9652206 2.0116384 0.4654438 6.5769812
950 1.9567495 1.9960693 0.46147541 6.5942022
960 1.9418452 1.980858 0.45753557 6.6369454
970 1.9247196 1.9585585 0.45390337 6.6888821
980 1.9128262 1.9481721 0.45090045 6.7198221
990 1.9167211 1.9451096 0.44869731 6.6912394
1000 1.935529 1.9662384 0.44728238 6.6079829
Loop time of 0.474418 on 4 procs for 1000 steps with 2775 atoms
Performance: 182118.045 tau/day, 2107.848 timesteps/s
98.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.13953 | 0.19068 | 0.23764 | 10.4 | 40.19
Neigh | 0.016439 | 0.022345 | 0.027069 | 3.2 | 4.71
Comm | 0.018215 | 0.068071 | 0.12178 | 18.6 | 14.35
Output | 0.011982 | 0.012633 | 0.013047 | 0.4 | 2.66
Modify | 0.14494 | 0.15597 | 0.16628 | 2.4 | 32.88
Other | | 0.02472 | | | 5.21
Nlocal: 693.75 ave 800 max 584 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 255.5 ave 323 max 192 min
Histogram: 2 0 0 0 0 0 0 0 1 1
Neighs: 6083 ave 7384 max 4742 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24332
Ave neighs/atom = 8.76829
Neighbor list builds = 38
Dangerous builds = 0
#####################################################################
#initialize the COM velocity and run to achieve steady-state
#calculate velocity to add: V=J/rho_total
variable Vadd equal $J*lx*ly/count(bulk)
variable Vadd equal 0.1*lx*ly/count(bulk)
#first remove any COM velocity, then add back the streaming velocity
velocity bulk zero linear
velocity bulk set ${Vadd} 0.0 0.0 units box sum yes mom no
velocity bulk set 0.149532710280374 0.0 0.0 units box sum yes mom no
fix GD bulk flow/gauss 1 0 0 #energy yes
#fix_modify GD energy yes
run ${stabil}
run 1000
Per MPI rank memory allocation (min/avg/max) = 3.13 | 3.131 | 3.132 Mbytes
Step c_myT c_myTp TotEng Press
1000 1.9466974 1.9662384 0.45804438 6.615449
1010 1.9605467 1.9815754 0.45717241 6.5545496
1020 1.9560139 1.9823875 0.45660431 6.5672421
1030 1.9348326 1.9691606 0.45633148 6.6463667
1040 1.9167809 1.9449522 0.45657707 6.7139486
1050 1.9193541 1.943342 0.45767968 6.7014054
1060 1.9410751 1.9720491 0.45967742 6.6150379
1070 1.9658493 1.9964883 0.46221539 6.5178418
1080 1.9767205 2.0074304 0.46491236 6.4768594
1090 1.9714544 2.0003054 0.46759126 6.5026957
1100 1.9647035 1.9927455 0.4703109 6.5400181
1110 1.9657667 1.9959656 0.47317481 6.5519094
1120 1.9706062 1.9980802 0.476185 6.5512675
1130 1.9747655 2.0062292 0.47932281 6.554091
1140 1.9761245 2.0075076 0.48248327 6.5670381
1150 1.9744197 2.0073027 0.48562483 6.5914441
1160 1.9722698 2.0046687 0.48874207 6.6165575
1170 1.9692145 2.0013845 0.49187442 6.6438115
1180 1.9665609 1.9970724 0.49508053 6.6693821
1190 1.9625031 1.9908427 0.49843816 6.7002606
1200 1.960528 1.993084 0.50203044 6.7237076
1210 1.9649156 1.9981485 0.50587066 6.7217755
1220 1.9788059 2.0134511 0.50987442 6.6833452
1230 1.9952283 2.0343101 0.51379781 6.6340278
1240 2.0039391 2.0494196 0.51730872 6.6129751
1250 2.0019006 2.0526773 0.52014603 6.6320217
1260 1.9974025 2.0528914 0.52221385 6.6601786
1270 1.9953949 2.0561121 0.5234754 6.6796142
1280 1.9893864 2.0470375 0.5238632 6.7140134
1290 1.9694951 2.019253 0.5235093 6.798442
1300 1.9473901 1.9965919 0.52280384 6.8863369
1310 1.9511151 2.006161 0.52203882 6.8700917
1320 1.979341 2.0388959 0.52106938 6.7529595
1330 2.0073235 2.0720045 0.51935291 6.6297731
1340 2.0202482 2.0841419 0.51624273 6.55803
1350 2.0177489 2.0669046 0.51142591 6.5401753
1360 2.0069274 2.04717 0.50505824 6.5506533
1370 1.994854 2.0311383 0.49743042 6.5633001
1380 1.9793176 2.0077184 0.48890503 6.5859072
1390 1.9580907 1.9839831 0.48004316 6.6288992
1400 1.9415542 1.9594192 0.47143599 6.6534105
1410 1.9405188 1.9591825 0.46353105 6.620549
1420 1.9504784 1.9730647 0.45640199 6.5471784
1430 1.9594158 1.9819854 0.44995052 6.4802874
1440 1.9615108 1.9863792 0.44406411 6.44391
1450 1.9544127 1.9806249 0.43873409 6.4484818
1460 1.9384927 1.9614953 0.43408605 6.4905259
1470 1.9214711 1.9425515 0.43035972 6.5390434
1480 1.9170761 1.9300809 0.42775046 6.5409502
1490 1.9242904 1.9385731 0.42631007 6.5005057
1500 1.9307133 1.9446119 0.4258836 6.4660754
1510 1.9303576 1.9435389 0.42633976 6.4616415
1520 1.9248382 1.9408306 0.42765441 6.4832059
1530 1.9120794 1.9278123 0.42986958 6.5380951
1540 1.899122 1.9125029 0.4331459 6.5987181
1550 1.9030956 1.9187821 0.43765067 6.6012019
1560 1.9182961 1.9453782 0.44330842 6.5674222
1570 1.9272863 1.9613129 0.44971962 6.5619794
1580 1.931679 1.9698134 0.45643436 6.5780809
1590 1.9336692 1.9728684 0.46314752 6.6035675
1600 1.938895 1.9823104 0.46964519 6.6138411
1610 1.9510838 1.9937914 0.47568807 6.5916989
1620 1.9685387 2.0087314 0.48102339 6.5424432
1630 1.9894416 2.0295715 0.48539861 6.4757743
1640 1.9982699 2.0426949 0.48860411 6.4512418
1650 1.9901677 2.0363837 0.49062424 6.4879985
1660 1.9814216 2.0291326 0.49172203 6.5248034
1670 1.9812111 2.0293629 0.49218297 6.5253876
1680 1.9903906 2.0408376 0.49211747 6.4852787
1690 2.0015983 2.0538843 0.4914581 6.4325081
1700 2.009727 2.0503407 0.49011163 6.3878577
1710 2.0167822 2.0531002 0.4881688 6.3477054
1720 2.0189021 2.0445033 0.48564798 6.3273063
1730 2.0129713 2.0354734 0.48270666 6.3385541
1740 2.0048763 2.0199836 0.47950943 6.3587586
1750 1.9994843 2.0085942 0.47624908 6.3694119
1760 1.9940025 2.0072098 0.47305283 6.3816295
1770 1.9817431 1.9974066 0.46994486 6.4224295
1780 1.965171 1.9805421 0.4670779 6.4832371
1790 1.9474078 1.9662605 0.46466823 6.5516524
1800 1.9286009 1.9507751 0.46292015 6.6263366
1810 1.9168087 1.9437961 0.46199899 6.6759834
1820 1.9107555 1.9306323 0.46204129 6.7029857
1830 1.9135569 1.930819 0.46316484 6.6949737
1840 1.9345342 1.9553413 0.46532704 6.6178988
1850 1.9630349 1.9929548 0.46822932 6.5137866
1860 1.9820746 2.0188839 0.47135068 6.4489028
1870 1.9834959 2.0217145 0.47427805 6.4552721
1880 1.9731564 2.0120293 0.47692755 6.5100251
1890 1.9653605 2.0070624 0.47943307 6.5594235
1900 1.9630631 2.0095488 0.48192185 6.5912876
1910 1.9556778 2.0035006 0.48443107 6.6437189
1920 1.9408788 1.9828296 0.48710124 6.7228731
1930 1.9292393 1.9732376 0.49025327 6.7880112
1940 1.9263081 1.9708942 0.49416086 6.8162477
1950 1.9358375 1.976323 0.49899895 6.7946964
1960 1.9520543 1.9936542 0.50485961 6.7467481
1970 1.9709064 2.0108957 0.51165586 6.6909455
1980 1.9940026 2.0375428 0.51918913 6.6250463
1990 2.0171261 2.0646948 0.52705638 6.5649879
2000 2.0302713 2.0802515 0.53472229 6.5470853
Loop time of 0.482133 on 4 procs for 1000 steps with 2775 atoms
Performance: 179203.608 tau/day, 2074.116 timesteps/s
98.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.1081 | 0.18228 | 0.23471 | 12.7 | 37.81
Neigh | 0.011443 | 0.019967 | 0.025651 | 4.1 | 4.14
Comm | 0.01639 | 0.073615 | 0.15634 | 21.8 | 15.27
Output | 0.011851 | 0.012603 | 0.013287 | 0.5 | 2.61
Modify | 0.14306 | 0.16634 | 0.18018 | 3.6 | 34.50
Other | | 0.02733 | | | 5.67
Nlocal: 693.75 ave 797 max 590 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 259 ave 320 max 195 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 6101 ave 7360 max 4853 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24404
Ave neighs/atom = 8.79423
Neighbor list builds = 36
Dangerous builds = 0
#####################################################################
#collect data
#print the applied force and total flux to ensure conservation of Jx
variable Fapp equal f_GD[1]
compute vxBulk bulk reduce sum vx
compute vyBulk bulk reduce sum vy
variable invVol equal 1.0/(lx*ly)
variable jx equal c_vxBulk*${invVol}
variable jx equal c_vxBulk*0.00025
variable jy equal c_vyBulk*${invVol}
variable jy equal c_vyBulk*0.00025
variable curr_step equal step
variable p_Fapp format Fapp %.3f
variable p_jx format jx %.5g
variable p_jy format jy %.5g
fix print_vCOM all print ${dump_rate} "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
fix print_vCOM all print 50 "${curr_step} ${p_Fapp} ${p_jx} ${p_jy}" file GD.out screen no title "timestep Fapp Jx Jy"
#compute IK1 pressure profile
#see Todd, Evans, and Davis, Phys. Rev. E 52(2) 1995, p. 1627
#use profile-unbiased temperature to remove the streaming velocity
#from the kinetic part of the pressure
compute spa bulk stress/atom myTp
#for the pressure profile, use the same grid as the PUT
compute chunkX bulk chunk/atom bin/1d x lower ${dX} units box
compute chunkX bulk chunk/atom bin/1d x lower 3.125 units box
#output pressure profile and other profiles
#the pressure profile is (-1/2V)*(c_spa[1] + c_spa[2]), where
#V is the volume of a slice
fix profiles bulk ave/chunk 1 1 ${dump_rate} chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
fix profiles bulk ave/chunk 1 1 50 chunkX vx density/mass c_spa[1] c_spa[2] file x_profiles ave running overwrite
#compute velocity profile across the pipe with a finer grid
variable dYnew equal ${dY}/10
variable dYnew equal 3.07692307692308/10
compute chunkY bulk chunk/atom bin/1d y center ${dYnew} units box region pipe
compute chunkY bulk chunk/atom bin/1d y center 0.307692307692308 units box region pipe
fix velYprof bulk ave/chunk 1 1 ${dump_rate} chunkY vx file Vy_profile ave running overwrite
fix velYprof bulk ave/chunk 1 1 50 chunkY vx file Vy_profile ave running overwrite
#full trajectory
# dump 7 bulk custom ${dump_rate} bulk.lammpstrj id type x y z
# dump_modify 7 sort id
run ${run}
run 2000
Per MPI rank memory allocation (min/avg/max) = 5.138 | 5.139 | 5.14 Mbytes
Step c_myT c_myTp TotEng Press
2000 2.0302713 2.0802515 0.53472229 6.5470853
2010 2.0303419 2.0806129 0.54177821 6.5808527
2020 2.0245167 2.0792991 0.54803523 6.6381758
2030 2.0169072 2.065404 0.55345227 6.7008962
2040 2.0052526 2.0513817 0.55818432 6.7755868
2050 1.9953625 2.0366564 0.56245299 6.8382569
2060 2.0003667 2.0462109 0.56649798 6.8390557
2070 2.0238288 2.0834553 0.57023651 6.7637821
2080 2.045765 2.1173867 0.5730944 6.6861321
2090 2.0563925 2.1370313 0.57430831 6.6422581
2100 2.0620437 2.1480293 0.57319824 6.6080678
2110 2.0584437 2.1473173 0.56913597 6.5969671
2120 2.0532825 2.1393006 0.56154606 6.5799417
2130 2.0450143 2.1234905 0.55009479 6.5616931
2140 2.0229537 2.1004507 0.53511912 6.5854627
2150 1.9832556 2.0554119 0.51812599 6.6700591
2160 1.9444027 2.0110758 0.50163049 6.7534263
2170 1.9267473 1.9904528 0.48759542 6.76469
2180 1.9262232 1.9809353 0.47662199 6.7188048
2190 1.9359331 1.9854626 0.46836289 6.6406985
2200 1.9530728 1.9971865 0.4620366 6.5409943
2210 1.9657099 2.0056761 0.45692542 6.4639397
2220 1.9661008 2.0046161 0.45253504 6.4388081
2230 1.9574696 1.9947839 0.44864257 6.4528687
2240 1.9522284 1.9922663 0.44518111 6.4584458
2250 1.9518203 1.9950044 0.44206844 6.4491722
2260 1.9527908 1.9989603 0.4391804 6.4377912
2270 1.9452231 1.9932538 0.43643529 6.4607516
2280 1.9249341 1.9759145 0.43392742 6.5320897
2290 1.9087464 1.960985 0.43186869 6.5875176
2300 1.9103289 1.964731 0.43039882 6.5765021
2310 1.9182062 1.9783814 0.4294628 6.5434488
2320 1.9204281 1.9796609 0.42889381 6.5351629
2330 1.916279 1.9720659 0.42866391 6.5562619
2340 1.9062866 1.9587628 0.42890166 6.6033936
2350 1.9024117 1.9566812 0.42979475 6.6297969
2360 1.908153 1.960687 0.43141898 6.6215148
2370 1.9115944 1.9663337 0.43376668 6.6236491
2380 1.9086193 1.9637867 0.4367911 6.6529568
2390 1.9039907 1.9610268 0.44053991 6.6926343
2400 1.9034944 1.9609406 0.44508818 6.7193441
2410 1.9151521 1.9753641 0.4504458 6.7015957
2420 1.9314517 1.9925924 0.45644382 6.6669864
2430 1.9433933 2.0062001 0.46277215 6.6481527
2440 1.9504631 2.0087015 0.46917209 6.6475757
2450 1.9550092 2.0094957 0.47550077 6.6556459
2460 1.9609689 2.0147997 0.48170141 6.6568282
2470 1.9730726 2.0328127 0.48763131 6.6337545
2480 1.9838562 2.0466643 0.49303443 6.6143423
2490 1.9862031 2.0473388 0.49767532 6.6245587
2500 1.9817565 2.0455432 0.50152131 6.6573893
2510 1.9785788 2.0423176 0.50460561 6.6808042
2520 1.9823006 2.0505106 0.50696374 6.6726698
2530 1.9907178 2.0553736 0.50852885 6.6402082
2540 2.0005205 2.0690408 0.50919421 6.5966469
2550 2.0079727 2.0809816 0.50872954 6.5568419
2560 2.0133128 2.096271 0.50682742 6.5199915
2570 2.0141298 2.0990846 0.50314491 6.4951991
2580 2.0048768 2.0874319 0.49750096 6.5025454
2590 1.9876498 2.0638834 0.4900201 6.5333038
2600 1.9720479 2.0474479 0.48105263 6.5527157
2610 1.9596324 2.0355764 0.4710001 6.5547867
2620 1.9439039 2.0106405 0.46046644 6.5646889
2630 1.9321714 1.9924346 0.45021207 6.5589454
2640 1.9349378 1.9923889 0.44082833 6.5012762
2650 1.9448459 2.0069955 0.43251999 6.4228945
2660 1.9446852 2.0050346 0.42525857 6.3921645
2670 1.9325594 1.9884937 0.41913362 6.4169726
2680 1.9121687 1.9606084 0.41434428 6.4821267
2690 1.8923613 1.9339385 0.41105831 6.5517615
2700 1.8807238 1.9191801 0.40933203 6.5949447
2710 1.8797367 1.918758 0.40906826 6.6001309
2720 1.8852961 1.9225996 0.41005611 6.58191
2730 1.8937478 1.9357751 0.41204348 6.5541946
2740 1.9019279 1.9449374 0.41476104 6.5278575
2750 1.9134396 1.9614415 0.41800066 6.4890769
2760 1.9339551 1.9913779 0.42150554 6.4159805
2770 1.9597826 2.0220988 0.42487614 6.3232273
2780 1.9753466 2.0414907 0.42771704 6.2715489
2790 1.9720423 2.0402016 0.42976012 6.2949288
2800 1.9512893 2.0172711 0.43109201 6.3878056
2810 1.9232302 1.9870212 0.4320928 6.5101822
2820 1.9026913 1.959286 0.43326424 6.6024967
2830 1.9033802 1.9621601 0.43500785 6.6114274
2840 1.9214292 1.9833838 0.43733454 6.5508757
2850 1.9440563 2.0087358 0.43995473 6.4713496
2860 1.9589136 2.0211107 0.44250821 6.4232961
2870 1.9588429 2.022232 0.44477492 6.4355861
2880 1.9456751 2.0009513 0.44676532 6.5021746
2890 1.9269155 1.9782929 0.44877858 6.5926531
2900 1.9125262 1.9554653 0.45121196 6.6657808
2910 1.9187855 1.9572583 0.45438665 6.6589954
2920 1.9416112 1.9784518 0.45839212 6.5888253
2930 1.9613579 1.9975032 0.46305788 6.5317424
2940 1.9711529 2.0102501 0.46812715 6.5148943
2950 1.9707865 2.0133283 0.47345305 6.5389543
2960 1.9732526 2.0170219 0.47898306 6.5537092
2970 1.9871126 2.0282309 0.48465048 6.5273492
2980 1.9953449 2.0404164 0.49032615 6.5227325
2990 1.9909136 2.037246 0.49581423 6.5664662
3000 1.9872474 2.0307896 0.50110509 6.6060698
3010 1.9944885 2.0457308 0.5062755 6.6031811
3020 2.0103461 2.0599491 0.51116655 6.5654871
3030 2.0240275 2.077342 0.5154921 6.5358852
3040 2.0205953 2.0704954 0.51898871 6.5708937
3050 2.0032184 2.0463036 0.52167438 6.657741
3060 1.9889341 2.0265284 0.52385964 6.7329171
3070 1.9795143 2.0201081 0.52588914 6.7881407
3080 1.9713362 2.0123964 0.52797238 6.8362858
3090 1.9692592 2.0106467 0.53025538 6.8616268
3100 1.9722487 2.0259566 0.53277635 6.8689898
3110 1.9703322 2.0314028 0.53541462 6.895271
3120 1.9594359 2.0217586 0.53808512 6.954362
3130 1.9524729 2.0148628 0.5409094 6.9965233
3140 1.9630381 2.0260807 0.54400259 6.968082
3150 1.9902598 2.0549364 0.54720142 6.8698796
3160 2.029715 2.0923999 0.54995378 6.7193678
3170 2.0581544 2.1137995 0.55150021 6.6053728
3180 2.059074 2.1156535 0.55123668 6.5919337
3190 2.0400682 2.0904721 0.54894762 6.6505757
3200 2.0211594 2.0682597 0.54484887 6.7046468
3210 2.012712 2.0573114 0.53922057 6.7130909
3220 2.0102377 2.0554701 0.53219251 6.6919069
3230 2.0017671 2.0505068 0.52386898 6.6867054
3240 1.9854941 2.0308454 0.51458792 6.7051085
3250 1.9767009 2.0187664 0.50486785 6.6916859
3260 1.9771733 2.0186148 0.49510722 6.6424305
3270 1.974003 2.0136039 0.48556819 6.6078903
3280 1.9627665 1.9989122 0.47654147 6.6067904
3290 1.9491247 1.9826248 0.46834866 6.6186709
3300 1.9414093 1.9724941 0.4612122 6.6119543
3310 1.9433901 1.9715482 0.45518879 6.570612
3320 1.9518837 1.9872717 0.45010165 6.5057947
3330 1.9603874 1.9957995 0.44566728 6.4428221
3340 1.9615962 1.9945224 0.44167201 6.4099339
3350 1.955918 1.9882866 0.4380303 6.4070811
3360 1.9463445 1.9763654 0.43480086 6.4241178
3370 1.9411187 1.9683081 0.43206391 6.4296577
3380 1.9407224 1.9580074 0.42991627 6.4210217
3390 1.9402479 1.9530447 0.42850635 6.4170536
3400 1.9451337 1.9555771 0.42787382 6.3990336
3410 1.9475586 1.9612432 0.42797178 6.3953251
3420 1.9434927 1.960532 0.4286887 6.4210681
3430 1.9339054 1.9516935 0.43003682 6.4707071
3440 1.9234014 1.9464343 0.43214965 6.5248205
3450 1.9191846 1.9444777 0.43516361 6.5558451
3460 1.923218 1.9594606 0.43915611 6.5549213
3470 1.9328953 1.9792053 0.44397878 6.5327637
3480 1.9466227 1.9997841 0.44940599 6.4954965
3490 1.9672374 2.0323219 0.45511091 6.4358811
3500 1.9799622 2.0479841 0.46061029 6.4100217
3510 1.97942 2.0493411 0.46551964 6.4368108
3520 1.9725674 2.0389602 0.46976378 6.4892049
3530 1.9716429 2.0389798 0.47344292 6.5200899
3540 1.9789254 2.0486162 0.47659268 6.5198212
3550 1.9872455 2.0577517 0.47908145 6.5144586
3560 1.9808834 2.0545962 0.48076561 6.5633282
3570 1.9637165 2.0335394 0.4816783 6.6519124
3580 1.9407948 2.0067763 0.48212405 6.7605224
3590 1.9226532 1.9825887 0.48252299 6.8486041
3600 1.9135067 1.9700999 0.48328348 6.8977858
3610 1.9157516 1.9720028 0.48470695 6.8977759
3620 1.9328644 2.0001154 0.48688777 6.8361569
3630 1.9568208 2.0243053 0.48963933 6.7442107
3640 1.9824587 2.0569223 0.49259173 6.6452535
3650 1.9934906 2.0686356 0.49529038 6.6020218
3660 1.9996281 2.0747054 0.4973223 6.5808904
3670 2.0038801 2.0772777 0.49838833 6.5691351
3680 1.9941342 2.0712365 0.49826732 6.6088107
3690 1.9762631 2.0486045 0.49689108 6.6739002
3700 1.9667284 2.0349391 0.4943899 6.7010265
3710 1.9615089 2.0168112 0.49093735 6.7040384
3720 1.9613068 2.0147489 0.48673788 6.6813041
3730 1.9731234 2.0290151 0.48175561 6.6096757
3740 1.9829764 2.0461907 0.47575173 6.5424752
3750 1.9792839 2.0454423 0.46852709 6.5237753
3760 1.9599692 2.0287014 0.46022484 6.5616271
3770 1.935975 2.0000948 0.45138016 6.6136471
3780 1.9236713 1.9834802 0.44262435 6.6187463
3790 1.9268004 1.9875324 0.43430112 6.5632772
3800 1.932601 1.9872595 0.42649563 6.4984764
3810 1.9322506 1.9814946 0.41928855 6.4617054
3820 1.9245737 1.9712821 0.4128224 6.4613779
3830 1.9148568 1.9555602 0.40721003 6.4774474
3840 1.9049961 1.9457058 0.40261179 6.5029211
3850 1.8915137 1.9265199 0.39914961 6.5483592
3860 1.8784768 1.9058055 0.39700153 6.5962113
3870 1.8755236 1.9045158 0.39632768 6.6079033
3880 1.8841415 1.9140314 0.39710037 6.577707
3890 1.8958027 1.9331149 0.39918951 6.5359785
3900 1.9064085 1.948805 0.40238576 6.499859
3910 1.9185092 1.9675733 0.40647523 6.4610682
3920 1.9342595 1.9933225 0.41115392 6.4122308
3930 1.9482664 2.0076139 0.41603495 6.3736841
3940 1.9557759 2.0161573 0.42084462 6.3636708
3950 1.9573687 2.016612 0.42540421 6.3804124
3960 1.9486354 1.9998027 0.42974612 6.4404944
3970 1.936214 1.9807209 0.43412037 6.5176788
3980 1.9274292 1.9595259 0.43885103 6.5846212
3990 1.9233082 1.953436 0.44425085 6.6354276
4000 1.9289166 1.9522097 0.45042645 6.6513835
Loop time of 0.998413 on 4 procs for 2000 steps with 2775 atoms
Performance: 173074.634 tau/day, 2003.179 timesteps/s
98.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.25646 | 0.3672 | 0.47947 | 15.7 | 36.78
Neigh | 0.027925 | 0.039163 | 0.050221 | 4.5 | 3.92
Comm | 0.032807 | 0.14565 | 0.27684 | 25.4 | 14.59
Output | 0.025572 | 0.032272 | 0.035355 | 2.2 | 3.23
Modify | 0.31519 | 0.35781 | 0.375 | 4.1 | 35.84
Other | | 0.05632 | | | 5.64
Nlocal: 693.75 ave 805 max 582 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 255.5 ave 312 max 199 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 6091.5 ave 7423 max 4780 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 24366
Ave neighs/atom = 8.78054
Neighbor list builds = 72
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

View File

@ -8,7 +8,7 @@
0.00000000 64.00000000 xlo xhi
0.00000000 1.00000000 ylo yhi
-0.5 0.5 zlo zhi
-0.50000000 0.50000000 zlo zhi
Atoms

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,206 +0,0 @@
############################################################
# group name of the atoms under study : all
# total number of atoms in the group : 64
# dimension of the system : 1 D
# number of atoms per unit cell : 2
# dimension of the FFT mesh : 32 x 1 x 1
# number of wait steps before measurement : 500000
# frequency of the measurement : 10
# output result after this many measurement: 50000
# number of processors used by this run : 1
############################################################
# mapping information between lattice index and atom id
# nx ny nz nucell
32 1 1 2
# l1 l2 l3 k atom_id
0 0 0 0 1
0 0 0 1 2
1 0 0 0 3
1 0 0 1 4
2 0 0 0 5
2 0 0 1 6
3 0 0 0 7
3 0 0 1 8
4 0 0 0 9
4 0 0 1 10
5 0 0 0 11
5 0 0 1 12
6 0 0 0 13
6 0 0 1 14
7 0 0 0 15
7 0 0 1 16
8 0 0 0 17
8 0 0 1 18
9 0 0 0 19
9 0 0 1 20
10 0 0 0 21
10 0 0 1 22
11 0 0 0 23
11 0 0 1 24
12 0 0 0 25
12 0 0 1 26
13 0 0 0 27
13 0 0 1 28
14 0 0 0 29
14 0 0 1 30
15 0 0 0 31
15 0 0 1 32
16 0 0 0 33
16 0 0 1 34
17 0 0 0 35
17 0 0 1 36
18 0 0 0 37
18 0 0 1 38
19 0 0 0 39
19 0 0 1 40
20 0 0 0 41
20 0 0 1 42
21 0 0 0 43
21 0 0 1 44
22 0 0 0 45
22 0 0 1 46
23 0 0 0 47
23 0 0 1 48
24 0 0 0 49
24 0 0 1 50
25 0 0 0 51
25 0 0 1 52
26 0 0 0 53
26 0 0 1 54
27 0 0 0 55
27 0 0 1 56
28 0 0 0 57
28 0 0 1 58
29 0 0 0 59
29 0 0 1 60
30 0 0 0 61
30 0 0 1 62
31 0 0 0 63
31 0 0 1 64
############################################################
############################################################
# Current time step : 1000000
# Total number of measurements : 50000
# Average temperature of the measurement : 0.00499889
# Boltzmann constant under current units : 1
# basis vector A1 = [2 0 0]
# basis vector A2 = [0 1 0]
# basis vector A3 = [0 0 1]
############################################################
# qx qy qz Phi(q)
0 0 0 2.0269 0 -1.43323 0 -1.43323 0 1.01345 0
0.03125 0 0 2.06958 0 -1.44367 0.144297 -1.44367 -0.144297 1.03745 0
0.0625 0 0 2.00734 -7.10386e-17 -1.36818 0.273607 -1.36818 -0.273607 1.02097 0
0.09375 0 0 2.06033 7.36546e-16 -1.32894 0.389454 -1.32894 -0.389454 1.00889 3.19674e-16
0.125 0 0 2.04516 7.25738e-16 -1.20961 0.516478 -1.20961 -0.516478 1.0073 2.84154e-16
0.15625 0 0 2.05756 0 -1.12954 0.615757 -1.12954 -0.615757 1.02862 0
0.1875 0 0 2.01319 0 -0.970491 0.627631 -0.970491 -0.627631 0.998014 0
0.21875 0 0 1.92269 1.42077e-16 -0.863486 0.66779 -0.863486 -0.66779 1.00343 8.73509e-17
0.25 0 0 1.99044 1.71855e-16 -0.671658 0.661397 -0.671658 -0.661397 0.956893 7.10386e-17
0.28125 0 0 1.96341 -7.10386e-17 -0.556809 0.66713 -0.556809 -0.66713 0.987126 4.2268e-17
0.3125 0 0 2.04354 0 -0.442943 0.661601 -0.442943 -0.661601 0.961726 1.77596e-17
0.34375 0 0 1.98412 0 -0.313464 0.632666 -0.313464 -0.632666 1.01134 -2.21836e-17
0.375 0 0 2.00509 2.17993e-17 -0.187554 0.499349 -0.187554 -0.499349 0.953607 -8.87982e-18
0.40625 0 0 1.91679 0 -0.0962947 0.408121 -0.0962947 -0.408121 1.02919 0
0.4375 0 0 1.98963 0 -0.0137565 0.277826 -0.0137565 -0.277826 1.01624 0
0.46875 0 0 2.08228 0 -0.0312083 0.0872272 -0.0312083 -0.0872272 0.991567 0
0.5 0 0 1.95481 0 0.0542224 0 0.0542224 0 1.00583 0
0.53125 0 0 2.08228 0 -0.0312083 -0.0872272 -0.0312083 0.0872272 0.991567 0
0.5625 0 0 1.98963 0 -0.0137565 -0.277826 -0.0137565 0.277826 1.01624 0
0.59375 0 0 1.91679 0 -0.0962947 -0.408121 -0.0962947 0.408121 1.02919 0
0.625 0 0 2.00509 -2.17993e-17 -0.187554 -0.499349 -0.187554 0.499349 0.953607 8.87982e-18
0.65625 0 0 1.98412 0 -0.313464 -0.632666 -0.313464 0.632666 1.01134 2.21836e-17
0.6875 0 0 2.04354 0 -0.442943 -0.661601 -0.442943 0.661601 0.961726 -1.77596e-17
0.71875 0 0 1.96341 7.10386e-17 -0.556809 -0.66713 -0.556809 0.66713 0.987126 -4.2268e-17
0.75 0 0 1.99044 -1.71855e-16 -0.671658 -0.661397 -0.671658 0.661397 0.956893 -7.10386e-17
0.78125 0 0 1.92269 -1.42077e-16 -0.863486 -0.66779 -0.863486 0.66779 1.00343 -8.73509e-17
0.8125 0 0 2.01319 0 -0.970491 -0.627631 -0.970491 0.627631 0.998014 0
0.84375 0 0 2.05756 0 -1.12954 -0.615757 -1.12954 0.615757 1.02862 0
0.875 0 0 2.04516 -7.25738e-16 -1.20961 -0.516478 -1.20961 0.516478 1.0073 -2.84154e-16
0.90625 0 0 2.06033 -7.36546e-16 -1.32894 -0.389454 -1.32894 0.389454 1.00889 -3.19674e-16
0.9375 0 0 2.00734 7.10386e-17 -1.36818 -0.273607 -1.36818 0.273607 1.02097 0
0.96875 0 0 2.06958 0 -1.44367 -0.144297 -1.44367 0.144297 1.03745 0
############################################################
# Current time step : 1500000
# Total number of measurements : 100000
# Average temperature of the measurement : 0.00499969
# Boltzmann constant under current units : 1
# basis vector A1 = [2 0 0]
# basis vector A2 = [0 1 0]
# basis vector A3 = [0 0 1]
############################################################
# qx qy qz Phi(q)
0 0 0 2.00227 0 -1.41582 0 -1.41582 0 1.00114 0
0.03125 0 0 2.06839 -2.94857e-15 -1.44775 0.141336 -1.44775 -0.141336 1.03568 -1.48867e-15
0.0625 0 0 1.99449 0 -1.35985 0.267438 -1.35985 -0.267438 0.997747 0
0.09375 0 0 2.01906 7.07225e-16 -1.30258 0.390432 -1.30258 -0.390432 1.00279 3.55249e-16
0.125 0 0 2.0047 0 -1.19787 0.503497 -1.19787 -0.503497 1.00067 -3.55249e-17
0.15625 0 0 2.05042 4.26299e-16 -1.12849 0.613659 -1.12849 -0.613659 1.03457 1.85685e-16
0.1875 0 0 1.99151 0 -0.971684 0.625667 -0.971684 -0.625667 0.990665 0
0.21875 0 0 1.96519 -7.10498e-17 -0.861495 0.687109 -0.861495 -0.687109 1.0008 0
0.25 0 0 2.01865 0 -0.687312 0.684014 -0.687312 -0.684014 0.977055 0
0.28125 0 0 1.9933 0 -0.560168 0.698726 -0.560168 -0.698726 1.00805 -4.40715e-17
0.3125 0 0 2.01323 0 -0.446505 0.648764 -0.446505 -0.648764 1.00283 -1.77625e-17
0.34375 0 0 2.00398 0 -0.313827 0.630741 -0.313827 -0.630741 0.996834 0
0.375 0 0 2.0191 0 -0.216211 0.499651 -0.216211 -0.499651 0.978322 0
0.40625 0 0 1.97734 -4.44061e-18 -0.102328 0.398954 -0.102328 -0.398954 1.03793 0
0.4375 0 0 1.99332 -2.22031e-18 -0.0639782 0.238226 -0.0639782 -0.238226 1.00811 -1.3774e-18
0.46875 0 0 2.02854 0 -0.0151203 0.0911116 -0.0151203 -0.0911116 1.00593 0
0.5 0 0 1.99466 0 0.0671755 0 0.0671755 0 0.967275 0
0.53125 0 0 2.02854 0 -0.0151203 -0.0911116 -0.0151203 0.0911116 1.00593 0
0.5625 0 0 1.99332 2.22031e-18 -0.0639782 -0.238226 -0.0639782 0.238226 1.00811 1.3774e-18
0.59375 0 0 1.97734 4.44061e-18 -0.102328 -0.398954 -0.102328 0.398954 1.03793 0
0.625 0 0 2.0191 0 -0.216211 -0.499651 -0.216211 0.499651 0.978322 0
0.65625 0 0 2.00398 0 -0.313827 -0.630741 -0.313827 0.630741 0.996834 0
0.6875 0 0 2.01323 0 -0.446505 -0.648764 -0.446505 0.648764 1.00283 1.77625e-17
0.71875 0 0 1.9933 0 -0.560168 -0.698726 -0.560168 0.698726 1.00805 4.40715e-17
0.75 0 0 2.01865 0 -0.687312 -0.684014 -0.687312 0.684014 0.977055 0
0.78125 0 0 1.96519 7.10498e-17 -0.861495 -0.687109 -0.861495 0.687109 1.0008 0
0.8125 0 0 1.99151 0 -0.971684 -0.625667 -0.971684 0.625667 0.990665 0
0.84375 0 0 2.05042 -4.26299e-16 -1.12849 -0.613659 -1.12849 0.613659 1.03457 -1.85685e-16
0.875 0 0 2.0047 0 -1.19787 -0.503497 -1.19787 0.503497 1.00067 3.55249e-17
0.90625 0 0 2.01906 -7.07225e-16 -1.30258 -0.390432 -1.30258 0.390432 1.00279 -3.55249e-16
0.9375 0 0 1.99449 0 -1.35985 -0.267438 -1.35985 0.267438 0.997747 0
0.96875 0 0 2.06839 2.94857e-15 -1.44775 -0.141336 -1.44775 0.141336 1.03568 1.48867e-15
############################################################
# Current time step : 2000000
# Total number of measurements : 150000
# Average temperature of the measurement : 0.00499897
# Boltzmann constant under current units : 1
# basis vector A1 = [2 0 0]
# basis vector A2 = [0 1 0]
# basis vector A3 = [0 0 1]
############################################################
# qx qy qz Phi(q)
0 0 0 1.99479 0 -1.41053 0 -1.41053 0 0.997396 0
0.03125 0 0 2.03068 0 -1.41965 0.138345 -1.41965 -0.138345 1.0155 0
0.0625 0 0 1.99892 7.10396e-17 -1.36162 0.269053 -1.36162 -0.269053 1.00066 0
0.09375 0 0 2.00599 0 -1.29893 0.389829 -1.29893 -0.389829 0.995323 0
0.125 0 0 1.991 6.87803e-16 -1.20232 0.495552 -1.20232 -0.495552 0.991252 2.84159e-16
0.15625 0 0 2.05187 1.42079e-16 -1.12612 0.617447 -1.12612 -0.617447 1.02736 0
0.1875 0 0 1.97476 7.10396e-17 -0.972012 0.630423 -0.972012 -0.630423 0.996946 0
0.21875 0 0 2.00314 0 -0.862555 0.695244 -0.862555 -0.695244 0.999215 0
0.25 0 0 1.9755 0 -0.69573 0.680591 -0.69573 -0.680591 0.988546 0
0.28125 0 0 1.99393 0 -0.560979 0.692292 -0.560979 -0.692292 0.995507 -3.55198e-17
0.3125 0 0 2.00817 0 -0.436753 0.642127 -0.436753 -0.642127 0.989051 0
0.34375 0 0 2.02348 0 -0.310766 0.620888 -0.310766 -0.620888 1.01631 0
0.375 0 0 2.01177 0 -0.213987 0.483325 -0.213987 -0.483325 0.98933 0
0.40625 0 0 1.97394 0 -0.116509 0.382146 -0.116509 -0.382146 1.03672 0
0.4375 0 0 1.98656 0 -0.0609164 0.250798 -0.0609164 -0.250798 1.01266 1.39007e-18
0.46875 0 0 2.03013 0 -0.0242785 0.120597 -0.0242785 -0.120597 1.02741 1.78858e-19
0.5 0 0 1.98872 0 0.0648313 0 0.0648313 0 0.973791 0
0.53125 0 0 2.03013 0 -0.0242785 -0.120597 -0.0242785 0.120597 1.02741 -1.78858e-19
0.5625 0 0 1.98656 0 -0.0609164 -0.250798 -0.0609164 0.250798 1.01266 -1.39007e-18
0.59375 0 0 1.97394 0 -0.116509 -0.382146 -0.116509 0.382146 1.03672 0
0.625 0 0 2.01177 0 -0.213987 -0.483325 -0.213987 0.483325 0.98933 0
0.65625 0 0 2.02348 0 -0.310766 -0.620888 -0.310766 0.620888 1.01631 0
0.6875 0 0 2.00817 0 -0.436753 -0.642127 -0.436753 0.642127 0.989051 0
0.71875 0 0 1.99393 0 -0.560979 -0.692292 -0.560979 0.692292 0.995507 3.55198e-17
0.75 0 0 1.9755 0 -0.69573 -0.680591 -0.69573 0.680591 0.988546 0
0.78125 0 0 2.00314 0 -0.862555 -0.695244 -0.862555 0.695244 0.999215 0
0.8125 0 0 1.97476 -7.10396e-17 -0.972012 -0.630423 -0.972012 0.630423 0.996946 0
0.84375 0 0 2.05187 -1.42079e-16 -1.12612 -0.617447 -1.12612 0.617447 1.02736 0
0.875 0 0 1.991 -6.87803e-16 -1.20232 -0.495552 -1.20232 0.495552 0.991252 -2.84159e-16
0.90625 0 0 2.00599 0 -1.29893 -0.389829 -1.29893 0.389829 0.995323 0
0.9375 0 0 1.99892 -7.10396e-17 -1.36162 -0.269053 -1.36162 0.269053 1.00066 0
0.96875 0 0 2.03068 0 -1.41965 -0.138345 -1.41965 0.138345 1.0155 0

View File

@ -7,46 +7,46 @@ variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary p p p
units metal
boundary p p p
#lattice sq 1.0 origin 0.5 0.5 0.0
lattice hex 1.0 origin 0.5 0.5 0.0
atom_style atomic
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 ${len} 0 ${len} -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
create_box 1 box
create_atoms 1 region atoms
mass 1 1.0
mass 1 1.0
pair_style lj/cut ${rcut}
pair_coeff 1 1 0.0 1.0
neighbor ${rskin} nsq
neighbor ${rskin} nsq
# set the minimum communication cut-off
comm_modify cutoff ${rcomm}
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
#
# TEST 1: Volume check for 2d bulk system
#
run 0
run 0
#
# TEST 2: Volume check for 2d finite system
# add margins in x and y directions
#
change_box all boundary f f p
run 0
change_box all boundary f f p
run 0

View File

@ -4,24 +4,24 @@ variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary f f p
units metal
boundary f f p
lattice hex 1.0 origin 0.25 0.25 0.0
atom_style atomic
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 ${len} 0 ${len} -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
create_box 1 box
create_atoms 1 region atoms
mass 1 1.0
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 0.0 1.0
neighbor 1.0 nsq
neighbor 1.0 nsq
#
# TEST 1:
@ -30,11 +30,11 @@ neighbor 1.0 nsq
# This compute voronoi generates all three
# types of quantity: per-atom, local, and global
compute v1 all voronoi/atom neighbors yes edge_histo 6
compute v1 all voronoi/atom neighbors yes edge_histo 6
# write voronoi per-atom quantities to a file
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
# writing voronoi local quantities to a file
@ -42,17 +42,17 @@ dump dlocal all local 1 dump.neighbors index c_v1[1] c_v1[2] c_v1[3]
# sum up a voronoi per-atom quantity
compute volvor all reduce sum c_v1[1]
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
# output voronoi global quantities
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
run 0
run 0
uncompute v1
uncompute volvor
@ -65,7 +65,7 @@ undump dlocal
# This compute voronoi generates peratom and local and global quantities
compute v2 all voronoi/atom neighbors yes edge_histo 6
compute v2 all voronoi/atom neighbors yes edge_histo 6
# write voronoi local quantities to a file
@ -73,11 +73,11 @@ dump d2 all local 1 dump.neighbors2 index c_v2[1] c_v2[2] c_v2[3]
# sum up a voronoi local quantity
compute sumarea all reduce sum c_v2[3] inputs local
compute sumarea all reduce sum c_v2[3] inputs local
# output voronoi global quantities
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
run 0
run 0

View File

@ -1,170 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Exercise different output data options
variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary f f p
lattice hex 1.0 origin 0.25 0.25 0.0
Lattice spacing in x,y,z = 1 1.73205 1
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 4 0 ${len} 0.0 ${lenz}
region box block 0 4 0 4 0.0 ${lenz}
region box block 0 4 0 4 0.0 10
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 0) to (4 6.9282 10)
1 by 1 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
Time spent = 0.000315666 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 0.0 1.0
neighbor 1.0 nsq
#
# TEST 1:
#
# This compute voronoi generates all three
# types of quantity: per-atom, local, and global
compute v1 all voronoi/atom neighbors yes edge_histo 6
# write voronoi per-atom quantities to a file
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
# writing voronoi local quantities to a file
dump dlocal all local 1 dump.neighbors index c_v1[1] c_v1[2] c_v1[3]
# sum up a voronoi per-atom quantity
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
# output voronoi global quantities
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 3.5
ghost atom cutoff = 3.5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 10.04 | 10.04 | 10.04 Mbytes
c_volvor v_volsys Volume v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
277.12813 277.12813 27.712813 3.9790393e-13 0 186 12 36 0
Loop time of 7.15256e-07 on 1 procs for 0 steps with 32 atoms
0.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 7.153e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 325 ave 325 max 325 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 325
Ave neighs/atom = 10.1562
Neighbor list builds = 0
Dangerous builds = 0
uncompute v1
uncompute volvor
undump dperatom
undump dlocal
#
# TEST 2:
#
# This compute voronoi generates
# local and global quantities, but
# not per-atom quantities
compute v2 all voronoi/atom neighbors yes edge_histo 6 peratom no
# write voronoi local quantities to a file
dump d2 all local 1 dump.neighbors2 index c_v2[1] c_v2[2] c_v2[3]
# sum up a voronoi local quantity
compute sumarea all reduce sum c_v2[3]
# output voronoi global quantities
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
Per MPI rank memory allocation (min/avg/max) = 8.787 | 8.787 | 8.787 Mbytes
c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
1215.0706 0 186 12 36 0
Loop time of 7.15256e-07 on 1 procs for 0 steps with 32 atoms
139.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 7.153e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 325 ave 325 max 325 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 325
Ave neighs/atom = 10.1562
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,170 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# Exercise different output data options
variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary f f p
lattice hex 1.0 origin 0.25 0.25 0.0
Lattice spacing in x,y,z = 1 1.73205 1
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 4 0 ${len} 0.0 ${lenz}
region box block 0 4 0 4 0.0 ${lenz}
region box block 0 4 0 4 0.0 10
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 0) to (4 6.9282 10)
2 by 2 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
Time spent = 0.000311136 secs
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 0.0 1.0
neighbor 1.0 nsq
#
# TEST 1:
#
# This compute voronoi generates all three
# types of quantity: per-atom, local, and global
compute v1 all voronoi/atom neighbors yes edge_histo 6
# write voronoi per-atom quantities to a file
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
# writing voronoi local quantities to a file
dump dlocal all local 1 dump.neighbors index c_v1[1] c_v1[2] c_v1[3]
# sum up a voronoi per-atom quantity
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
# output voronoi global quantities
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 3.5
ghost atom cutoff = 3.5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 9.922 | 9.922 | 9.922 Mbytes
c_volvor v_volsys Volume v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
277.12813 277.12813 27.712813 3.4106051e-13 0 186 12 36 0
Loop time of 1.40667e-05 on 4 procs for 0 steps with 32 atoms
46.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.407e-05 | | |100.00
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 24 ave 24 max 24 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 81.25 ave 84 max 77 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 325
Ave neighs/atom = 10.1562
Neighbor list builds = 0
Dangerous builds = 0
uncompute v1
uncompute volvor
undump dperatom
undump dlocal
#
# TEST 2:
#
# This compute voronoi generates
# local and global quantities, but
# not per-atom quantities
compute v2 all voronoi/atom neighbors yes edge_histo 6 peratom no
# write voronoi local quantities to a file
dump d2 all local 1 dump.neighbors2 index c_v2[1] c_v2[2] c_v2[3]
# sum up a voronoi local quantity
compute sumarea all reduce sum c_v2[3]
# output voronoi global quantities
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
Per MPI rank memory allocation (min/avg/max) = 8.671 | 8.671 | 8.671 Mbytes
c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
1215.0706 0 186 12 36 0
Loop time of 2.71797e-05 on 4 procs for 0 steps with 32 atoms
57.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.718e-05 | | |100.00
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 24 ave 24 max 24 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 81.25 ave 84 max 77 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 325
Ave neighs/atom = 10.1562
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -1,4 +1,5 @@
LAMMPS (27 Nov 2018)
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Test volume definitions for 2d and finite systems
@ -9,57 +10,58 @@ variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary p p p
units metal
boundary p p p
#lattice sq 1.0 origin 0.5 0.5 0.0
lattice hex 1.0 origin 0.5 0.5 0.0
Lattice spacing in x,y,z = 1 1.73205 1
Lattice spacing in x,y,z = 1 1.7320508 1
atom_style atomic
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 4 0 ${len} 0.0 ${lenz}
region box block 0 4 0 4 0.0 ${lenz}
region box block 0 4 0 4 0.0 10
region box block 0 ${len} 0 ${len} -0.5 0.5
region box block 0 4 0 ${len} -0.5 0.5
region box block 0 4 0 4 -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 0) to (4 6.9282 10)
Created orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
1 by 1 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
Time spent = 0.000315905 secs
using lattice units in orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
create_atoms CPU = 0.000 seconds
mass 1 1.0
mass 1 1.0
pair_style lj/cut ${rcut}
pair_style lj/cut 10
pair_coeff 1 1 0.0 1.0
neighbor ${rskin} nsq
neighbor 2 nsq
neighbor ${rskin} nsq
neighbor 2 nsq
# set the minimum communication cut-off
comm_modify cutoff ${rcomm}
comm_modify cutoff 20
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
#
# TEST 1: Volume check for 2d bulk system
#
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 20
@ -69,12 +71,12 @@ Neighbor list info ...
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.007 | 3.007 | 3.007 Mbytes
c_volvor v_volsys Volume v_err
277.12813 277.12813 27.712813 5.6843419e-14
Loop time of 9.53674e-07 on 1 procs for 0 steps with 32 atoms
Per MPI rank memory allocation (min/avg/max) = 3.008 | 3.008 | 3.008 Mbytes
c_volvor v_volsys Volume v_err
27.712813 27.712813 27.712813 -3.5527137e-15
Loop time of 6.33e-07 on 1 procs for 0 steps with 32 atoms
209.7% CPU use with 1 MPI tasks x 1 OpenMP threads
316.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
@ -84,13 +86,13 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 9.537e-07 | | |100.00
Other | | 6.33e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2415 ave 2415 max 2415 min
Nghost: 2415 ave 2415 max 2415 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 8256 ave 8256 max 8256 min
Neighs: 8256 ave 8256 max 8256 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 8256
@ -103,15 +105,17 @@ Dangerous builds = 0
# add margins in x and y directions
#
change_box all boundary f f p
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
change_box all boundary f f p
Changing box ...
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.688 | 7.688 | 7.688 Mbytes
c_volvor v_volsys Volume v_err
277.12813 277.12813 27.712813 3.4106051e-13
Loop time of 4.76837e-07 on 1 procs for 0 steps with 32 atoms
c_volvor v_volsys Volume v_err
27.712813 27.712813 27.712813 3.5527137e-14
Loop time of 3.93e-07 on 1 procs for 0 steps with 32 atoms
209.7% CPU use with 1 MPI tasks x 1 OpenMP threads
254.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
@ -121,13 +125,13 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 4.768e-07 | | |100.00
Other | | 3.93e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 496 ave 496 max 496 min
Neighs: 496 ave 496 max 496 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 496

View File

@ -1,4 +1,5 @@
LAMMPS (27 Nov 2018)
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Test volume definitions for 2d and finite systems
@ -9,57 +10,58 @@ variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary p p p
units metal
boundary p p p
#lattice sq 1.0 origin 0.5 0.5 0.0
lattice hex 1.0 origin 0.5 0.5 0.0
Lattice spacing in x,y,z = 1 1.73205 1
Lattice spacing in x,y,z = 1 1.7320508 1
atom_style atomic
atom_style atomic
region box block 0 ${len} 0 ${len} 0.0 ${lenz}
region box block 0 4 0 ${len} 0.0 ${lenz}
region box block 0 4 0 4 0.0 ${lenz}
region box block 0 4 0 4 0.0 10
region box block 0 ${len} 0 ${len} -0.5 0.5
region box block 0 4 0 ${len} -0.5 0.5
region box block 0 4 0 4 -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 0) to (4 6.9282 10)
Created orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
2 by 2 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
Time spent = 0.000319481 secs
using lattice units in orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
create_atoms CPU = 0.000 seconds
mass 1 1.0
mass 1 1.0
pair_style lj/cut ${rcut}
pair_style lj/cut 10
pair_coeff 1 1 0.0 1.0
neighbor ${rskin} nsq
neighbor 2 nsq
neighbor ${rskin} nsq
neighbor 2 nsq
# set the minimum communication cut-off
comm_modify cutoff ${rcomm}
comm_modify cutoff 20
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
compute v1 all voronoi/atom neighbors yes
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
thermo_style custom c_volvor v_volsys vol v_err
thermo 1
#
# TEST 1: Volume check for 2d bulk system
#
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 12
ghost atom cutoff = 20
@ -69,12 +71,12 @@ Neighbor list info ...
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.042 | 3.042 | 3.042 Mbytes
c_volvor v_volsys Volume v_err
277.12813 277.12813 27.712813 5.1159077e-13
Loop time of 2.79546e-05 on 4 procs for 0 steps with 32 atoms
Per MPI rank memory allocation (min/avg/max) = 3.038 | 3.038 | 3.038 Mbytes
c_volvor v_volsys Volume v_err
27.712813 27.712813 27.712813 2.1316282e-14
Loop time of 2.18725e-06 on 4 procs for 0 steps with 32 atoms
51.9% CPU use with 4 MPI tasks x 1 OpenMP threads
45.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
@ -84,13 +86,13 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.795e-05 | | |100.00
Other | | 2.187e-06 | | |100.00
Nlocal: 8 ave 8 max 8 min
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 2159 ave 2159 max 2159 min
Nghost: 2159 ave 2159 max 2159 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 2064 ave 2077 max 2051 min
Neighs: 2064 ave 2077 max 2051 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Total # of neighbors = 8256
@ -103,15 +105,17 @@ Dangerous builds = 0
# add margins in x and y directions
#
change_box all boundary f f p
run 0
WARNING: No fixes defined, atoms won't move (src/verlet.cpp:55)
Per MPI rank memory allocation (min/avg/max) = 7.678 | 7.678 | 7.678 Mbytes
c_volvor v_volsys Volume v_err
277.12813 277.12813 27.712813 3.4106051e-13
Loop time of 1.88947e-05 on 4 procs for 0 steps with 32 atoms
change_box all boundary f f p
Changing box ...
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 7.671 | 7.671 | 7.671 Mbytes
c_volvor v_volsys Volume v_err
27.712813 27.712813 27.712813 3.907985e-14
Loop time of 2.22e-06 on 4 procs for 0 steps with 32 atoms
47.6% CPU use with 4 MPI tasks x 1 OpenMP threads
112.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
@ -121,13 +125,13 @@ Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.889e-05 | | |100.00
Other | | 2.22e-06 | | |100.00
Nlocal: 8 ave 8 max 8 min
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 24 ave 24 max 24 min
Nghost: 24 ave 24 max 24 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 124 ave 124 max 124 min
Neighs: 124 ave 124 max 124 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 496

View File

@ -0,0 +1,168 @@
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Exercise different output data options
variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary f f p
lattice hex 1.0 origin 0.25 0.25 0.0
Lattice spacing in x,y,z = 1 1.7320508 1
atom_style atomic
region box block 0 ${len} 0 ${len} -0.5 0.5
region box block 0 4 0 ${len} -0.5 0.5
region box block 0 4 0 4 -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
1 by 1 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
using lattice units in orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
create_atoms CPU = 0.000 seconds
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 0.0 1.0
neighbor 1.0 nsq
#
# TEST 1:
#
# This compute voronoi generates all three
# types of quantity: per-atom, local, and global
compute v1 all voronoi/atom neighbors yes edge_histo 6
# write voronoi per-atom quantities to a file
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
# writing voronoi local quantities to a file
dump dlocal all local 1 dump.neighbors index c_v1[1] c_v1[2] c_v1[3]
# sum up a voronoi per-atom quantity
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
# output voronoi global quantities
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 3.5
ghost atom cutoff = 3.5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 3.03 | 3.03 | 3.03 Mbytes
c_volvor v_volsys Volume v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
27.712813 27.712813 27.712813 3.1974423e-14 0 186 12 36 0
Loop time of 7.96e-07 on 1 procs for 0 steps with 32 atoms
125.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 7.96e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 325 ave 325 max 325 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 325
Ave neighs/atom = 10.15625
Neighbor list builds = 0
Dangerous builds = 0
uncompute v1
uncompute volvor
undump dperatom
undump dlocal
#
# TEST 2:
#
# This compute voronoi generates peratom and local and global quantities
compute v2 all voronoi/atom neighbors yes edge_histo 6
# write voronoi local quantities to a file
dump d2 all local 1 dump.neighbors2 index c_v2[1] c_v2[2] c_v2[3]
# sum up a voronoi local quantity
compute sumarea all reduce sum c_v2[3] inputs local
# output voronoi global quantities
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 3.03 | 3.03 | 3.03 Mbytes
c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
171.39013 0 186 12 36 0
Loop time of 3.74e-07 on 1 procs for 0 steps with 32 atoms
0.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 3.74e-07 | | |100.00
Nlocal: 32 ave 32 max 32 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 325 ave 325 max 325 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 325
Ave neighs/atom = 10.15625
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1,168 @@
LAMMPS (21 Nov 2023 - Development - patch_21Nov2023-132-g9edf553332)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
using 1 OpenMP thread(s) per MPI task
# Exercise different output data options
variable len equal 4.0
variable lenz equal 10.0
dimension 2
units metal
boundary f f p
lattice hex 1.0 origin 0.25 0.25 0.0
Lattice spacing in x,y,z = 1 1.7320508 1
atom_style atomic
region box block 0 ${len} 0 ${len} -0.5 0.5
region box block 0 4 0 ${len} -0.5 0.5
region box block 0 4 0 4 -0.5 0.5
region atoms block 0 ${len} 0 ${len} 0.0 0.0
region atoms block 0 4 0 ${len} 0.0 0.0
region atoms block 0 4 0 4 0.0 0.0
create_box 1 box
Created orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
2 by 2 by 1 MPI processor grid
create_atoms 1 region atoms
Created 32 atoms
using lattice units in orthogonal box = (0 0 -0.5) to (4 6.9282032 0.5)
create_atoms CPU = 0.000 seconds
mass 1 1.0
pair_style lj/cut 2.5
pair_coeff 1 1 0.0 1.0
neighbor 1.0 nsq
#
# TEST 1:
#
# This compute voronoi generates all three
# types of quantity: per-atom, local, and global
compute v1 all voronoi/atom neighbors yes edge_histo 6
# write voronoi per-atom quantities to a file
dump dperatom all custom 1 dump.voro id type x y z c_v1[1] c_v1[2]
# writing voronoi local quantities to a file
dump dlocal all local 1 dump.neighbors index c_v1[1] c_v1[2] c_v1[3]
# sum up a voronoi per-atom quantity
compute volvor all reduce sum c_v1[1]
variable volsys equal lz*lx*ly
variable err equal c_volvor-v_volsys
# output voronoi global quantities
thermo_style custom c_volvor v_volsys vol v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
thermo 1
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Neighbor list info ...
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 3.5
ghost atom cutoff = 3.5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/nsq/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 2.921 | 2.921 | 2.921 Mbytes
c_volvor v_volsys Volume v_err c_v1[3] c_v1[4] c_v1[5] c_v1[6] c_v1[7]
27.712813 27.712813 27.712813 3.907985e-14 0 186 12 36 0
Loop time of 2.21425e-06 on 4 procs for 0 steps with 32 atoms
45.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 2.214e-06 | | |100.00
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 24 ave 24 max 24 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 81.25 ave 84 max 77 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 325
Ave neighs/atom = 10.15625
Neighbor list builds = 0
Dangerous builds = 0
uncompute v1
uncompute volvor
undump dperatom
undump dlocal
#
# TEST 2:
#
# This compute voronoi generates peratom and local and global quantities
compute v2 all voronoi/atom neighbors yes edge_histo 6
# write voronoi local quantities to a file
dump d2 all local 1 dump.neighbors2 index c_v2[1] c_v2[2] c_v2[3]
# sum up a voronoi local quantity
compute sumarea all reduce sum c_v2[3] inputs local
# output voronoi global quantities
thermo_style custom c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
thermo 1
run 0
WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60)
Generated 0 of 0 mixed pair_coeff terms from geometric mixing rule
Per MPI rank memory allocation (min/avg/max) = 2.921 | 2.921 | 2.921 Mbytes
c_sumarea c_v2[3] c_v2[4] c_v2[5] c_v2[6] c_v2[7]
171.39013 0 186 12 36 0
Loop time of 1.82375e-06 on 4 procs for 0 steps with 32 atoms
82.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0 | 0 | 0 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0 | 0 | 0 | 0.0 | 0.00
Output | 0 | 0 | 0 | 0.0 | 0.00
Modify | 0 | 0 | 0 | 0.0 | 0.00
Other | | 1.824e-06 | | |100.00
Nlocal: 8 ave 8 max 8 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 24 ave 24 max 24 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 81.25 ave 84 max 77 min
Histogram: 1 0 0 0 1 0 0 0 0 2
Total # of neighbors = 325
Ave neighs/atom = 10.15625
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -18,11 +18,11 @@ from install_helpers import fullpath, geturl, checkmd5sum, getfallback
# settings
thisdir = fullpath('.')
version ='v.2023.10.04'
version ='v.2023.11.25.fix'
# known checksums for different PACE versions. used to validate the download.
checksums = { \
'v.2023.10.04': '70ff79f4e59af175e55d24f3243ad1ff'
'v.2023.11.25.fix': 'b45de9a633f42ed65422567e3ce56f9f'
}
parser = ArgumentParser(prog='Install.py', description="LAMMPS library build wrapper script")

4
src/.gitignore vendored
View File

@ -629,6 +629,8 @@
/compute_pressure_grem.h
/compute_ptm_atom.cpp
/compute_ptm_atom.h
/compute_rattlers_atom.cpp
/compute_rattlers_atom.h
/compute_rigid_local.cpp
/compute_rigid_local.h
/compute_smd_triangle_vertices.cpp
@ -912,6 +914,8 @@
/fix_nvt_sllod_eff.h
/fix_nve_tri.cpp
/fix_nve_tri.h
/fix_nonaffine_displacement.cpp
/fix_nonaffine_displacement.h
/fix_oneway.cpp
/fix_oneway.h
/fix_orient_bcc.cpp

View File

@ -0,0 +1,312 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL)
------------------------------------------------------------------------- */
#include "compute_rattlers_atom.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "force.h"
#include "memory.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cmath>
#include <cstring>
using namespace LAMMPS_NS;
enum { TYPE, RADIUS };
/* ---------------------------------------------------------------------- */
ComputeRattlersAtom::ComputeRattlersAtom(LAMMPS *lmp, int narg, char **arg) :
Compute(lmp, narg, arg), ncontacts(nullptr), rattler(nullptr)
{
if (narg != 6) error->all(FLERR, "Illegal compute rattlers/atom command");
if (strcmp(arg[3], "type") == 0)
cutstyle = TYPE;
else if (strcmp(arg[3], "radius") == 0)
cutstyle = RADIUS;
else
error->all(FLERR, "Illegal compute rattlers/atom command");
if (cutstyle == RADIUS && !atom->radius_flag)
error->all(FLERR, "Compute rattlers/atom radius style requires atom attribute radius");
ncontacts_rattler = utils::inumeric(FLERR, arg[4], false, lmp);
max_tries = utils::inumeric(FLERR, arg[5], false, lmp);
nmax = 0;
invoked_peratom = -1;
scalar_flag = 1;
extscalar = 1;
peratom_flag = 1;
size_peratom_cols = 0;
comm_forward = 1;
comm_reverse = 1;
}
/* ---------------------------------------------------------------------- */
ComputeRattlersAtom::~ComputeRattlersAtom()
{
memory->destroy(ncontacts);
memory->destroy(rattler);
}
/* ---------------------------------------------------------------------- */
void ComputeRattlersAtom::init()
{
if (force->pair == nullptr) error->all(FLERR, "No pair style is defined for compute rattlers");
// Cannot calculate distance from radii for JKR/DMT
if (force->pair->beyond_contact)
error->all(FLERR, "Compute rattlers does not currently support pair styles that extend beyond contact");
// need an occasional half neighbor list
// set size to same value as request made by force->pair
// this should enable it to always be a copy list (e.g. for granular pstyle)
auto pairrequest = neighbor->find_request(force->pair);
if (pairrequest && pairrequest->get_size())
neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_OCCASIONAL);
else
neighbor->add_request(this, NeighConst::REQ_OCCASIONAL);
}
/* ---------------------------------------------------------------------- */
void ComputeRattlersAtom::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void ComputeRattlersAtom::compute_peratom()
{
if (invoked_peratom == update->ntimestep) return;
invoked_peratom = update->ntimestep;
int i, j, ii, jj, inum, jnum, itype, jtype, tmp_flag;
tagint itag, jtag;
double xtmp, ytmp, ztmp, delx, dely, delz;
double rsq, radsum;
if (nmax < atom->nmax) {
nmax = atom->nmax;
memory->destroy(ncontacts);
memory->destroy(rattler);
memory->create(ncontacts, nmax, "rattlers:ncontacts");
memory->create(rattler, nmax, "rattlers:rattler");
vector_atom = rattler;
}
for (i = 0; i < nmax; i++) rattler[i] = 0;
int *ilist, *jlist, *numneigh, **firstneigh;
double **x = atom->x;
double *radius = atom->radius;
tagint *tag = atom->tag;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
// invoke half neighbor list (will copy or build if necessary)
neighbor->build_one(list);
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
Pair *pair = force->pair;
double **cutsq = force->pair->cutsq;
int change_flag = 1;
int ntry = 0;
while (ntry < max_tries) {
change_flag = 0;
for (i = 0; i < nmax; i++) ncontacts[i] = 0;
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
if (!(mask[i] & groupbit)) continue;
if (rattler[i] == 1) continue;
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itag = tag[i];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
if (!(mask[j] & groupbit)) continue;
if (rattler[j] == 1) continue;
// itag = jtag is possible for long cutoffs that include images of self
if (newton_pair == 0 && j >= nlocal) {
jtag = tag[j];
if (itag > jtag) {
if ((itag + jtag) % 2 == 0) continue;
} else if (itag < jtag) {
if ((itag + jtag) % 2 == 1) continue;
} else {
if (x[j][2] < ztmp) continue;
if (x[j][2] == ztmp) {
if (x[j][1] < ytmp) continue;
if (x[j][1] == ytmp && x[j][0] < xtmp) continue;
}
}
}
jtype = type[j];
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx * delx + dely * dely + delz * delz;
if (cutstyle == TYPE) {
if (rsq >= cutsq[itype][jtype]) continue;
} else {
radsum = radius[i] + radius[j];
if (rsq >= radsum * radsum) continue;
}
ncontacts[i] += 1;
if (newton_pair || j < nlocal)
ncontacts[j] += 1;
}
}
// add contributions from ghosts
if (force->newton_pair) comm->reverse_comm(this);
// Set flags for rattlers
for (i = 0; i < atom->nlocal; i++) {
if (ncontacts[i] < ncontacts_rattler && rattler[i] == 0) {
rattler[i] = 1;
change_flag = 1;
}
}
comm->forward_comm(this);
MPI_Allreduce(&change_flag, &tmp_flag, 1, MPI_INT, MPI_MAX, world);
change_flag = tmp_flag;
if (change_flag == 0) break;
ntry += 1;
}
if (change_flag == 1)
error->warning(FLERR, "Rattler calculation failed to converge within max tries");
}
/* ---------------------------------------------------------------------- */
double ComputeRattlersAtom::compute_scalar()
{
if (invoked_peratom != update->ntimestep)
compute_peratom();
invoked_scalar = update->ntimestep;
double total_rattlers = 0;
for (int i = 0; i < atom->nlocal; i++) {
if (rattler[i] == 1) {
total_rattlers += 1;
}
}
//Total across processors
MPI_Allreduce(&total_rattlers, &scalar, 1, MPI_DOUBLE, MPI_SUM, world);
return scalar;
}
/* ---------------------------------------------------------------------- */
int ComputeRattlersAtom::pack_reverse_comm(int n, int first, double *buf)
{
int i, m, last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
buf[m++] = ubuf(ncontacts[i]).d;
}
return m;
}
/* ---------------------------------------------------------------------- */
void ComputeRattlersAtom::unpack_reverse_comm(int n, int *list, double *buf)
{
int i, j, m;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
ncontacts[j] += (int) ubuf(buf[m++]).i;
}
}
/* ---------------------------------------------------------------------- */
int ComputeRattlersAtom::pack_forward_comm(int n, int *list, double *buf,
int /*pbc_flag*/, int * /*pbc*/)
{
int i, j, m;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
buf[m++] = rattler[j];
}
return m;
}
/* ---------------------------------------------------------------------- */
void ComputeRattlersAtom::unpack_forward_comm(int n, int first, double *buf)
{
int i, m, last;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
rattler[i] = buf[m++];
}
}

View File

@ -0,0 +1,52 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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.
------------------------------------------------------------------------- */
#ifdef COMPUTE_CLASS
// clang-format off
ComputeStyle(rattlers/atom,ComputeRattlersAtom);
// clang-format on
#else
#ifndef LMP_COMPUTE_RATTLERS_ATOM_H
#define LMP_COMPUTE_RATTLERS_ATOM_H
#include "compute.h"
namespace LAMMPS_NS {
class ComputeRattlersAtom : public Compute {
public:
ComputeRattlersAtom(class LAMMPS *, int, char **);
~ComputeRattlersAtom() override;
void init() override;
void init_list(int, class NeighList *) override;
void compute_peratom() override;
double compute_scalar() override;
int pack_forward_comm(int, int *, double *, int, int *) override;
void unpack_forward_comm(int, int, double *) override;
int pack_reverse_comm(int, int, double *) override;
void unpack_reverse_comm(int, int *, double *) override;
private:
int pstyle, cutstyle;
int ncontacts_rattler, max_tries, nmax, invoked_peratom;
int *ncontacts;
double *rattler;
class NeighList *list;
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -0,0 +1,736 @@
// clang-format off
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL)
------------------------------------------------------------------------- */
#include "fix_nonaffine_displacement.h"
#include "atom.h"
#include "citeme.h"
#include "comm.h"
#include "domain.h"
#include "error.h"
#include "fix_store_atom.h"
#include "force.h"
#include "group.h"
#include "math_extra.h"
#include "memory.h"
#include "modify.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "neighbor.h"
#include "pair.h"
#include "update.h"
#include <cstring>
using namespace LAMMPS_NS;
using namespace FixConst;
using namespace MathExtra;
enum { TYPE, RADIUS, CUSTOM };
enum { INTEGRATED, D2MIN };
enum { FIXED, OFFSET, UPDATE };
static const char cite_nonaffine_d2min[] =
"@article{PhysRevE.57.7192,\n"
" title = {Dynamics of viscoplastic deformation in amorphous solids},\n"
" author = {Falk, M. L. and Langer, J. S.},\n"
" journal = {Phys. Rev. E},\n"
" volume = {57},\n"
" issue = {6},\n"
" pages = {7192--7205},\n"
" numpages = {0},\n"
" year = {1998},\n"
" month = {Jun},\n"
" publisher = {American Physical Society},\n"
" doi = {10.1103/PhysRevE.57.7192},\n"
"url = {https://link.aps.org/doi/10.1103/PhysRevE.57.7192}\n"
"}\n\n";
/* ---------------------------------------------------------------------- */
FixNonaffineDisplacement::FixNonaffineDisplacement(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg), id_fix(nullptr), X(nullptr), Y(nullptr), F(nullptr), norm(nullptr)
{
if (narg < 4) error->all(FLERR,"Illegal fix nonaffine/displacement command");
nevery = utils::inumeric(FLERR, arg[3], false, lmp);
if (nevery <= 0) error->all(FLERR,"Illegal nevery value {} in fix nonaffine/displacement", nevery);
int iarg = 4;
if (strcmp(arg[iarg], "integrated") == 0) {
nad_style = INTEGRATED;
nevery = 1;
iarg += 1;
} else if (strcmp(arg[iarg], "d2min") == 0) {
if (iarg + 1 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command");
nad_style = D2MIN;
if (strcmp(arg[iarg + 1], "type") == 0) {
cut_style = TYPE;
} else if (strcmp(arg[iarg + 1], "radius") == 0) {
cut_style = RADIUS;
} else if (strcmp(arg[iarg + 1], "custom") == 0) {
if (iarg + 2 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command");
cut_style = CUSTOM;
cutoff_custom = utils::numeric(FLERR, arg[iarg + 2], false, lmp);
cutsq_custom = cutoff_custom * cutoff_custom;
if (cutoff_custom <= 0)
error->all(FLERR, "Illegal custom cutoff length {}", arg[iarg + 2]);
iarg += 1;
} else error->all(FLERR,"Illegal cutoff style {} in fix nonaffine/displacement", arg[iarg + 1]);
iarg += 2;
} else error->all(FLERR,"Illegal nonaffine displacement style {} in fix nonaffine/displacement", arg[iarg]);
if (iarg + 2 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command");
if (strcmp(arg[iarg], "fixed") == 0) {
reference_style = FIXED;
reference_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
if (update_timestep < 0)
error->all(FLERR, "Illegal reference timestep {} in fix nonaffine/displacement", arg[iarg + 1]);
} else if (strcmp(arg[iarg], "update") == 0) {
reference_style = UPDATE;
update_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
if (update_timestep < 0)
error->all(FLERR, "Illegal update timestep {} in fix nonaffine/displacement", arg[iarg + 1]);
} else if (strcmp(arg[iarg], "offset") == 0) {
reference_style = OFFSET;
offset_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp);
if ((offset_timestep <= 0) || (offset_timestep > nevery))
error->all(FLERR, "Illegal offset timestep {} in fix nonaffine/displacement", arg[iarg + 1]);
} else error->all(FLERR,"Illegal reference style {} in fix nonaffine/displacement", arg[iarg]);
if (nad_style == D2MIN)
if (cut_style == RADIUS && (!atom->radius_flag))
error->all(FLERR, "Fix nonaffine/displacement radius style requires atom attribute radius");
if (nad_style == INTEGRATED && reference_style == OFFSET)
error->all(FLERR, "Fix nonaffine/displacement cannot use the integrated style with an offset reference state");
peratom_flag = 1;
peratom_freq = nevery;
nmax = -1;
reference_saved = 0;
restart_global = 1;
size_peratom_cols = 3;
comm_reverse = 0;
comm_forward = 0;
if (nad_style == D2MIN) {
comm_reverse = 18;
comm_forward = 9;
}
if (nad_style == D2MIN && lmp->citeme) lmp->citeme->add(cite_nonaffine_d2min);
}
/* ---------------------------------------------------------------------- */
FixNonaffineDisplacement::~FixNonaffineDisplacement()
{
if (id_fix && modify->nfix) modify->delete_fix(id_fix);
delete[] id_fix;
if (nad_style == D2MIN) {
memory->destroy(X);
memory->destroy(Y);
memory->destroy(F);
memory->destroy(norm);
memory->destroy(array_atom);
}
}
/* ---------------------------------------------------------------------- */
int FixNonaffineDisplacement::setmask()
{
int mask = 0;
mask |= POST_FORCE;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::post_constructor()
{
// Create persistent peratom storage for either an integrated velocity or reference position
// Ghost atoms need reference coordinates for D2min
std::string ghost_status = "0";
if (nad_style == D2MIN) ghost_status = "1";
id_fix = utils::strdup(id + std::string("_FIX_PA"));
fix = dynamic_cast<FixStoreAtom *>(modify->add_fix(fmt::format("{} {} STORE/ATOM 3 0 {} 1", id_fix, group->names[igroup], ghost_status)));
if (nad_style == INTEGRATED)
array_atom = fix->astore;
if (nad_style == D2MIN)
grow_arrays(atom->nmax);
for (int i = 0; i < atom->nlocal; i++)
for (int j = 0; j < 3; j++) array_atom[i][j] = 0.0;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::init()
{
dtv = update->dt;
if ((!reference_saved) && (reference_style == FIXED) && (update->ntimestep > reference_timestep))
error->all(FLERR, "Initial timestep exceeds that of the reference state in fix nonaffine/displacement");
if (nad_style == D2MIN) {
if ((!force->pair) && (cut_style == TYPE))
error->all(FLERR,"Fix nonaffine/displacement D2Min option requires a pair style be defined "
"or cutoff specified");
// need an occasional half neighbor list
if (cut_style == RADIUS) {
auto req = neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_OCCASIONAL);
} else {
auto req = neighbor->add_request(this, NeighConst::REQ_OCCASIONAL);
if (cut_style == CUSTOM) {
double skin = neighbor->skin;
mycutneigh = cutoff_custom + skin;
double cutghost; // as computed by Neighbor and Comm
if (force->pair)
cutghost = MAX(force->pair->cutforce + skin, comm->cutghostuser);
else
cutghost = comm->cutghostuser;
if (mycutneigh > cutghost)
error->all(FLERR,"Fix nonaffine/displacement D2Min option cutoff exceeds ghost atom range - use comm_modify cutoff command");
req->set_cutoff(mycutneigh);
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::init_list(int /*id*/, NeighList *ptr)
{
list = ptr;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::setup(int vflag)
{
post_force(0); // Save state if needed before starting the 1st timestep
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::post_force(int /*vflag*/)
{
if (reference_saved && (!update->setupflag)) {
if (nad_style == INTEGRATED) {
integrate_velocity();
} else {
if ((update->ntimestep % nevery) == 0) calculate_D2Min();
}
}
if (reference_style == FIXED)
if (update->ntimestep == reference_timestep)
save_reference_state();
if (reference_style == UPDATE)
if ((update->ntimestep % update_timestep) == 0)
save_reference_state();
if (reference_style == OFFSET)
if (((update->ntimestep + offset_timestep) % nevery) == 0)
save_reference_state();
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::write_restart(FILE *fp)
{
if (comm->me == 0) {
int size = sizeof(int);
fwrite(&size, sizeof(int), 1, fp);
fwrite(&reference_saved, sizeof(int), 1, fp);
}
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::restart(char *buf)
{
reference_saved = (int) ubuf(buf[0]).i;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::integrate_velocity()
{
int i,n;
dtv = update->dt;
double **v = atom->v;
int *mask = atom->mask;
int nlocal = atom->nlocal;
for (int m = 0; m < 3; m++) {
for (int i = 0; i < nlocal; i++) {
if (mask[i] & groupbit) {
array_atom[i][m] += dtv * v[i][m];
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::save_reference_state()
{
int i, n;
double **x = atom->x;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int nall = nlocal + atom->nghost;
if (nad_style == D2MIN) {
for (int m = 0; m < 3; m++) {
for (int i = 0; i < nall; i++) {
if (mask[i] & groupbit) array_atom[i][m] = x[i][m];
}
}
} else {
for (int m = 0; m < 3; m++) {
for (int i = 0; i < nall; i++) {
if (mask[i] & groupbit) array_atom[i][m] = 0.0;
}
}
}
if (nad_style == D2MIN) {
xprd0 = domain->xprd;
yprd0 = domain->yprd;
zprd0 = domain->zprd;
xprd0_half = domain->xprd_half;
yprd0_half = domain->yprd_half;
zprd0_half = domain->zprd_half;
xy0 = domain->xy;
xz0 = domain->xz;
yz0 = domain->yz;
}
reference_saved = 1;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::calculate_D2Min()
{
// invoke half neighbor list (will copy or build if necessary)
neighbor->build_one(list);
if (atom->nmax > nmax)
grow_arrays(atom->nmax);
int i, j, k, l, ii, jj, inum, jnum, itype, jtype;
double evol, j2, edev;
double r[3], r0[3], rsq, rsq0, radsum, temp[3];
double X_tmp[3][3], Y_tmp[3][3], F_tmp[3][3], E[3][3];
double Y_inv[3][3] = {0.0}; // Zero for 2d since not all entries used
int *ilist, *jlist, *numneigh, **firstneigh;
double **x = atom->x;
double **x0 = array_atom;
double *radius = atom->radius;
tagint *tag = atom->tag;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
int newton_pair = force->newton_pair;
int dim = domain->dimension;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
Pair *pair = force->pair;
double **cutsq;
if (pair) cutsq = force->pair->cutsq;
for (i = 0; i < nmax; i++) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
X[i][k][l] = 0.0;
Y[i][k][l] = 0.0;
}
}
norm[i] = 0;
array_atom[i][0] = 0;
}
// First loop through neighbors
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
if (!(mask[i] & groupbit)) continue;
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
if (!(mask[j] & groupbit)) continue;
jtype = type[j];
r[0] = x[i][0] - x[j][0];
r[1] = x[i][1] - x[j][1];
r[2] = x[i][2] - x[j][2];
rsq = lensq3(r);
// Only include contributions from atoms that are CURRENTLY neighbors
if (cut_style == TYPE) {
if (rsq > cutsq[itype][jtype]) continue;
} else if (cut_style == CUSTOM) {
if (rsq > cutsq_custom) continue;
} else {
radsum = radius[i] + radius[j];
if (rsq > (radsum * radsum)) continue;
}
r0[0] = x0[i][0] - x0[j][0];
r0[1] = x0[i][1] - x0[j][1];
r0[2] = x0[i][2] - x0[j][2];
minimum_image0(r0);
// Using notation from Falk & Langer 1998
outer3(r, r0, X_tmp);
outer3(r0, r0, Y_tmp);
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
X[i][k][l] += X_tmp[k][l];
Y[i][k][l] += Y_tmp[k][l];
}
}
if (newton_pair || j < nlocal) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
X[j][k][l] += X_tmp[k][l];
Y[j][k][l] += Y_tmp[k][l];
}
}
}
}
}
comm_flag = 0;
if (newton_pair) comm->reverse_comm(this, 18);
// Calculate contributions to strain tensor
double denom;
for (i = 0; i < nlocal; i++) {
if (!(mask[i] & groupbit)) continue;
for (j = 0; j < 3; j++) {
for (k = 0; k < 3; k++) {
Y_tmp[j][k] = Y[i][j][k];
X_tmp[j][k] = X[i][j][k];
}
}
if (dim == 3) {
invert3(Y_tmp, Y_inv);
} else {
denom = Y_tmp[0][0] * Y_tmp[1][1] - Y_tmp[0][1] * Y_tmp[1][0];
if (denom != 0.0) denom = 1.0 / denom;
Y_inv[0][0] = Y_tmp[1][1] * denom;
Y_inv[0][1] = -Y_tmp[0][1] * denom;
Y_inv[1][0] = -Y_tmp[1][0] * denom;
Y_inv[1][1] = Y_tmp[0][0] * denom;
}
times3(X_tmp, Y_inv, F_tmp);
for (j = 0; j < 3; j++) {
for (k = 0; k < 3; k++) {
F[i][j][k] = F_tmp[j][k];
}
}
}
comm->forward_comm(this);
// Second loop through neighbors
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
if (!(mask[i] & groupbit)) continue;
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
j &= NEIGHMASK;
if (!(mask[j] & groupbit)) continue;
jtype = type[j];
r[0] = x[i][0] - x[j][0];
r[1] = x[i][1] - x[j][1];
r[2] = x[i][2] - x[j][2];
rsq = lensq3(r);
// Only include contributions from atoms that are CURRENTLY neighbors
if (cut_style == TYPE) {
if (rsq >= cutsq[itype][jtype]) continue;
} else if (cut_style == CUSTOM) {
if (rsq >= cutsq_custom) continue;
} else {
radsum = radius[i] + radius[j];
if (rsq >= radsum * radsum) continue;
}
r0[0] = x0[i][0] - x0[j][0];
r0[1] = x0[i][1] - x0[j][1];
r0[2] = x0[i][2] - x0[j][2];
minimum_image0(r0);
// E * r0
for (k = 0; k < 3; k++) {
temp[k] = 0.0;
for (l = 0; l < 3; l++)
temp[k] += F[i][k][l] * r0[l];
}
sub3(r, temp, temp);
array_atom[i][0] += lensq3(temp);
norm[i] += 1;
if (newton_pair || j < nlocal) {
for (k = 0; k < 3; k++) {
temp[k] = 0.0;
for (l = 0; l < 3; l++)
temp[k] += F[j][k][l] * r0[l];
}
sub3(r, temp, temp);
array_atom[j][0] += lensq3(temp);
norm[j] += 1;
}
}
}
comm_flag = 1;
if (newton_pair) comm->reverse_comm(this, 2);
for (i = 0; i < nlocal; i++) {
if (!(mask[i] & groupbit)) continue;
if (norm[i] != 0)
array_atom[i][0] /= norm[i];
else
array_atom[i][0] = 0.0;
array_atom[i][0] = sqrt(array_atom[i][0]);
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
F_tmp[j][k] = F[i][j][k];
transpose_times3(F_tmp, F_tmp, E);
for (j = 0; j < dim; j++) E[j][j] -= 1.0;
evol = (E[0][0] + E[1][1] + E[2][2]) / dim;
// Calculate deviatoric strain
for (j = 0; j < dim; j++) E[j][j] -= evol;
j2 = 0.0;
for (j = 0; j < 3; j++)
for (k = 0; k < 3; k++)
j2 += E[j][k] * E[j][k];
edev = sqrt(0.5 * j2);
array_atom[i][1] = evol;
array_atom[i][2] = edev;
}
}
/* ---------------------------------------------------------------------- */
int FixNonaffineDisplacement::pack_reverse_comm(int n, int first, double *buf)
{
int i, m, last, k, l;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
if (comm_flag == 0) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
buf[m++] = X[i][k][l];
buf[m++] = Y[i][k][l];
}
}
} else {
buf[m++] = array_atom[i][0];
buf[m++] = ubuf(norm[i]).d;
}
}
return m;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::unpack_reverse_comm(int n, int *list, double *buf)
{
int i, j, m, k, l;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
if (comm_flag == 0) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l++) {
X[j][k][l] += buf[m++];
Y[j][k][l] += buf[m++];
}
}
} else {
array_atom[j][0] += buf[m++];
norm[j] += (int) ubuf(buf[m++]).i;
}
}
}
/* ---------------------------------------------------------------------- */
int FixNonaffineDisplacement::pack_forward_comm(int n, int *list, double *buf,
int /*pbc_flag*/, int * /*pbc*/)
{
int i, j, m, k, l;
m = 0;
for (i = 0; i < n; i++) {
j = list[i];
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l ++) {
buf[m++] = F[j][k][l];
}
}
}
return m;
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::unpack_forward_comm(int n, int first, double *buf)
{
int i, m, last, k, l;
m = 0;
last = first + n;
for (i = first; i < last; i++) {
for (k = 0; k < 3; k++) {
for (l = 0; l < 3; l ++) {
F[i][k][l] = buf[m++];
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::minimum_image0(double *delta)
{
if (domain->triclinic == 0) {
if (domain->xperiodic) {
while (fabs(delta[0]) > xprd0_half) {
if (delta[0] < 0.0) delta[0] += xprd0;
else delta[0] -= xprd0;
}
}
if (domain->yperiodic) {
while (fabs(delta[1]) > yprd0_half) {
if (delta[1] < 0.0) delta[1] += yprd0;
else delta[1] -= yprd0;
}
}
if (domain->zperiodic) {
while (fabs(delta[2]) > zprd0_half) {
if (delta[2] < 0.0) delta[2] += zprd0;
else delta[2] -= zprd0;
}
}
} else {
if (domain->zperiodic) {
while (fabs(delta[2]) > zprd0_half) {
if (delta[2] < 0.0) {
delta[2] += zprd0;
delta[1] += yz0;
delta[0] += xz0;
} else {
delta[2] -= zprd0;
delta[1] -= yz0;
delta[0] -= xz0;
}
}
}
if (domain->yperiodic) {
while (fabs(delta[1]) > yprd0_half) {
if (delta[1] < 0.0) {
delta[1] += yprd0;
delta[0] += xy0;
} else {
delta[1] -= yprd0;
delta[0] -= xy0;
}
}
}
if (domain->xperiodic) {
while (fabs(delta[0]) > xprd0_half) {
if (delta[0] < 0.0) delta[0] += xprd0;
else delta[0] -= xprd0;
}
}
}
}
/* ---------------------------------------------------------------------- */
void FixNonaffineDisplacement::grow_arrays(int nmax_new)
{
nmax = nmax_new;
memory->destroy(X);
memory->destroy(Y);
memory->destroy(F);
memory->destroy(norm);
memory->create(X, nmax, 3, 3, "fix_nonaffine_displacement:X");
memory->create(Y, nmax, 3, 3, "fix_nonaffine_displacement:Y");
memory->create(F, nmax, 3, 3, "fix_nonaffine_displacement:F");
memory->create(norm, nmax, "fix_nonaffine_displacement:norm");
}

View File

@ -0,0 +1,71 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, Sandia National Laboratories
LAMMPS development team: developers@lammps.org
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.
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
// clang-format off
FixStyle(nonaffine/displacement,FixNonaffineDisplacement)
// clang-format on
#else
#ifndef LMP_FIX_NONAFFINE_DISPLACEMENT_H
#define LMP_FIX_NONAFFINE_DISPLACEMENT_H
#include "fix.h"
namespace LAMMPS_NS {
class FixNonaffineDisplacement : public Fix {
public:
FixNonaffineDisplacement(class LAMMPS *, int, char **);
~FixNonaffineDisplacement() override;
int setmask() override;
void post_constructor() override;
void init() override;
void init_list(int, class NeighList *) override;
void setup(int);
void post_force(int) override;
void write_restart(FILE *fp) override;
void restart(char *buf) override;
int pack_forward_comm(int, int *, double *, int, int *) override;
void unpack_forward_comm(int, int, double *) override;
int pack_reverse_comm(int, int, double *) override;
void unpack_reverse_comm(int, int *, double *) override;
private:
double dtv;
char *id_fix;
class FixStoreAtom *fix;
int nmax, comm_flag;
int nad_style, cut_style;
int reference_style, offset_timestep, reference_timestep, update_timestep;
int reference_saved;
double cutoff_custom, cutsq_custom, mycutneigh;
double xprd0, yprd0, zprd0, xprd0_half, yprd0_half, zprd0_half, xy0, xz0, yz0;
double ***X, ***Y, ***F;
int *norm;
class NeighList *list; // half neighbor list
void integrate_velocity();
void calculate_D2Min();
void save_reference_state();
void minimum_image0(double *);
void grow_arrays(int);
};
} // namespace LAMMPS_NS
#endif
#endif

View File

@ -11,6 +11,10 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL)
------------------------------------------------------------------------- */
#include "compute_fabric.h"
#include "atom.h"

View File

@ -123,6 +123,10 @@ void PairPACEExtrapolationKokkos<DeviceType>::grow(int natom, int maxneigh)
// hard-core repulsion
MemKK::realloc_kokkos(rho_core, "pace:rho_core", natom);
MemKK::realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom);
MemKK::realloc_kokkos(dF_dfcut, "pace:dF_dfcut", natom);
MemKK::realloc_kokkos(d_d_min, "pace:r_min_pair", natom);
MemKK::realloc_kokkos(d_jj_min, "pace:j_min_pair", natom);
MemKK::realloc_kokkos(d_corerep, "pace:corerep", natom); // per-atom corerep
MemKK::realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_ms_combs_max, basis_set->rankmax);
@ -219,6 +223,24 @@ void PairPACEExtrapolationKokkos<DeviceType>::copy_pertype()
Kokkos::deep_copy(d_wpre, h_wpre);
Kokkos::deep_copy(d_mexp, h_mexp);
// ZBL core-rep
MemKK::realloc_kokkos(d_cut_in, "pace:d_cut_in", nelements, nelements);
MemKK::realloc_kokkos(d_dcut_in, "pace:d_dcut_in", nelements, nelements);
auto h_cut_in = Kokkos::create_mirror_view(d_cut_in);
auto h_dcut_in = Kokkos::create_mirror_view(d_dcut_in);
for (int mu_i = 0; mu_i < nelements; ++mu_i) {
for (int mu_j = 0; mu_j < nelements; ++mu_j) {
h_cut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).rcut_in;
h_dcut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).dcut_in;
}
}
Kokkos::deep_copy(d_cut_in, h_cut_in);
Kokkos::deep_copy(d_dcut_in, h_dcut_in);
is_zbl = basis_set->radial_functions->inner_cutoff_type == "zbl";
}
/* ---------------------------------------------------------------------- */
@ -573,13 +595,20 @@ void PairPACEExtrapolationKokkos<DeviceType>::compute(int eflag_in, int vflag_in
d_vatom = k_vatom.view<DeviceType>();
}
if (gamma_flag && atom->nlocal > nmax) {
if (flag_compute_extrapolation_grade && atom->nlocal > nmax) {
memory->destroy(extrapolation_grade_gamma);
nmax = atom->nlocal;
memory->create(extrapolation_grade_gamma, nmax, "pace/atom:gamma");
//zeroify array
memset(extrapolation_grade_gamma, 0, nmax * sizeof(*extrapolation_grade_gamma));
}
if (flag_corerep_factor && atom->nlocal > nmax_corerep) {
memory->destroy(corerep_factor);
nmax_corerep = atom->nlocal;
memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep");
//zeroify array
memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor));
}
copymode = 1;
if (!force->newton_pair)
@ -631,8 +660,13 @@ void PairPACEExtrapolationKokkos<DeviceType>::compute(int eflag_in, int vflag_in
Kokkos::deep_copy(A_rank1, 0.0);
Kokkos::deep_copy(rhos, 0.0);
Kokkos::deep_copy(rho_core, 0.0);
Kokkos::deep_copy(d_d_min, PairPACEExtrapolation::aceimpl->basis_set->cutoffmax);
Kokkos::deep_copy(d_jj_min, -1);
Kokkos::deep_copy(projections, 0.0);
Kokkos::deep_copy(d_gamma, 0.0);
Kokkos::deep_copy(d_corerep, 0.0);
EV_FLOAT ev_tmp;
@ -696,7 +730,7 @@ void PairPACEExtrapolationKokkos<DeviceType>::compute(int eflag_in, int vflag_in
}
//ComputeGamma
if (gamma_flag) {
if (flag_compute_extrapolation_grade) {
typename Kokkos::RangePolicy<DeviceType,TagPairPACEComputeGamma> policy_gamma(0,chunk_size);
Kokkos::parallel_for("ComputeGamma",policy_gamma,*this);
}
@ -738,12 +772,17 @@ void PairPACEExtrapolationKokkos<DeviceType>::compute(int eflag_in, int vflag_in
}
ev += ev_tmp;
//if gamma_flag - copy current d_gamma to extrapolation_grade_gamma
if (gamma_flag){
//if flag_compute_extrapolation_grade - copy current d_gamma to extrapolation_grade_gamma
if (flag_compute_extrapolation_grade){
h_gamma = Kokkos::create_mirror_view(d_gamma);
Kokkos::deep_copy(h_gamma, d_gamma);
memcpy(extrapolation_grade_gamma+chunk_offset, (void *) h_gamma.data(), sizeof(double)*chunk_size);
}
if (flag_corerep_factor) {
h_corerep = Kokkos::create_mirror_view(d_corerep);
Kokkos::deep_copy(h_corerep,d_corerep);
memcpy(corerep_factor+chunk_offset, (void *) h_corerep.data(), sizeof(double)*chunk_size);
}
chunk_offset += chunk_size;
} // end while
@ -799,6 +838,7 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeNeig
const X_FLOAT ytmp = x(i,1);
const X_FLOAT ztmp = x(i,2);
const int jnum = d_numneigh[i];
const int mu_i = d_map(type(i));
// get a pointer to scratch memory
// This is used to cache whether or not an atom is within the cutoff
@ -858,6 +898,36 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeNeig
}
offset++;
});
if (is_zbl) {
//adapted from https://www.osti.gov/servlets/purl/1429450
if (ncount > 0) {
using minloc_value_type=Kokkos::MinLoc<F_FLOAT,int>::value_type;
minloc_value_type djjmin;
djjmin.val=1e20;
djjmin.loc=-1;
Kokkos::MinLoc<F_FLOAT,int> reducer_scalar(djjmin);
// loop over ncount (actual neighbours withing cutoff) rather than jnum (total number of neigh in cutoff+skin)
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, ncount),
[&](const int offset, minloc_value_type &min_d_dist) {
int j = d_nearest(ii,offset);
j &= NEIGHMASK;
const int jtype = type(j);
auto r = d_rnorms(ii,offset);
const int mu_j = d_map(type(j));
const F_FLOAT d = r - (d_cut_in(mu_i, mu_j) - d_dcut_in(mu_i, mu_j));
if (d < min_d_dist.val) {
min_d_dist.val = d;
min_d_dist.loc = offset;
}
}, reducer_scalar);
d_d_min(ii) = djjmin.val;
d_jj_min(ii) = djjmin.loc;// d_jj_min should be NOT in 0..jnum range, but in 0..d_ncount(<=jnum)
} else {
d_d_min(ii) = 1e20;
d_jj_min(ii) = -1;
}
}
}
/* ---------------------------------------------------------------------- */
@ -998,7 +1068,7 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeRho,
//gamma_i
if (gamma_flag)
if (flag_compute_extrapolation_grade)
Kokkos::atomic_add(&projections(ii, func_ind), d_gen_cgs(mu_i, idx_ms_comb) * A_cur);
} else { // rank > 1
@ -1037,7 +1107,7 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeRho,
Kokkos::atomic_add(&rhos(ii, p), B.real_part_product(d_coeffs(mu_i, func_ind, p) * d_gen_cgs(mu_i, idx_ms_comb)));
}
//gamma_i
if (gamma_flag)
if (flag_compute_extrapolation_grade)
Kokkos::atomic_add(&projections(ii, func_ind), B.real_part_product(d_gen_cgs(mu_i, idx_ms_comb)));
}
}
@ -1056,23 +1126,45 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeFS,
const int ndensity = d_ndensity(mu_i);
double evdwl, fcut, dfcut;
double evdwl_cut;
evdwl = fcut = dfcut = 0.0;
inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut);
FS_values_and_derivatives(ii, evdwl, mu_i);
dF_drho_core(ii) = evdwl * dfcut + 1;
if (is_zbl) {
if (d_jj_min(ii) != -1) {
const int mu_jmin = d_mu(ii,d_jj_min(ii));
F_FLOAT dcutin = d_dcut_in(mu_i, mu_jmin);
F_FLOAT transition_coordinate = dcutin - d_d_min(ii); // == cutin - r_min
cutoff_func_poly(transition_coordinate, dcutin, dcutin, fcut, dfcut);
dfcut = -dfcut; // invert, because rho_core = cutin - r_min
} else {
// no neighbours
fcut = 1;
dfcut = 0;
}
evdwl_cut = evdwl * fcut + rho_core(ii) * (1 - fcut); // evdwl * fcut + rho_core_uncut - rho_core_uncut* fcut
dF_drho_core(ii) = 1 - fcut;
dF_dfcut(ii) = evdwl * dfcut - rho_core(ii) * dfcut;
} else {
inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut);
dF_drho_core(ii) = evdwl * dfcut + 1;
evdwl_cut = evdwl * fcut + rho_core(ii);
}
for (int p = 0; p < ndensity; ++p)
dF_drho(ii, p) *= fcut;
// tally energy contribution
if (eflag) {
double evdwl_cut = evdwl * fcut + rho_core(ii);
// E0 shift
evdwl_cut += d_E0vals(mu_i);
e_atom(ii) = evdwl_cut;
}
if (flag_corerep_factor)
d_corerep(ii) = 1-fcut;
}
/* ---------------------------------------------------------------------- */
@ -1240,6 +1332,15 @@ void PairPACEExtrapolationKokkos<DeviceType>::operator() (TagPairPACEComputeDeri
f_ij(ii, jj, 0) = scale * f_ji[0] + fpair * r_hat[0];
f_ij(ii, jj, 1) = scale * f_ji[1] + fpair * r_hat[1];
f_ij(ii, jj, 2) = scale * f_ji[2] + fpair * r_hat[2];
if (is_zbl) {
if (jj==d_jj_min(ii)) {
// DCRU = 1.0
f_ij(ii, jj, 0) += dF_dfcut(ii) * r_hat[0];
f_ij(ii, jj, 1) += dF_dfcut(ii) * r_hat[1];
f_ij(ii, jj, 2) += dF_dfcut(ii) * r_hat[2];
}
}
}
/* ---------------------------------------------------------------------- */
@ -1777,6 +1878,8 @@ double PairPACEExtrapolationKokkos<DeviceType>::memory_usage()
bytes += MemKK::memory_usage(weights_rank1);
bytes += MemKK::memory_usage(rho_core);
bytes += MemKK::memory_usage(dF_drho_core);
bytes += MemKK::memory_usage(dF_dfcut);
bytes += MemKK::memory_usage(d_corerep);
bytes += MemKK::memory_usage(dB_flatten);
bytes += MemKK::memory_usage(fr);
bytes += MemKK::memory_usage(dfr);
@ -1794,6 +1897,8 @@ double PairPACEExtrapolationKokkos<DeviceType>::memory_usage()
bytes += MemKK::memory_usage(d_mu);
bytes += MemKK::memory_usage(d_rhats);
bytes += MemKK::memory_usage(d_rnorms);
bytes += MemKK::memory_usage(d_d_min);
bytes += MemKK::memory_usage(d_jj_min);
bytes += MemKK::memory_usage(d_nearest);
bytes += MemKK::memory_usage(f_ij);
bytes += MemKK::memory_usage(d_rho_core_cutoff);
@ -1842,9 +1947,10 @@ double PairPACEExtrapolationKokkos<DeviceType>::memory_usage()
template<class DeviceType>
void *PairPACEExtrapolationKokkos<DeviceType>::extract(const char *str, int &dim)
{
//check if str=="gamma_flag" then compute extrapolation grades on this iteration
dim = 0;
if (strcmp(str, "gamma_flag") == 0) return (void *) &gamma_flag;
//check if str=="flag_compute_extrapolation_grade" then compute extrapolation grades on this iteration
if (strcmp(str, "gamma_flag") == 0) return (void *) &flag_compute_extrapolation_grade;
if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor;
dim = 2;
if (strcmp(str, "scale") == 0) return (void *) scale;
@ -1867,6 +1973,10 @@ void *PairPACEExtrapolationKokkos<DeviceType>::extract_peratom(const char *str,
ncol = 0;
return (void *) extrapolation_grade_gamma;
}
if (strcmp(str, "corerep") == 0) {
ncol = 0;
return (void *) corerep_factor;
}
return nullptr;
}

View File

@ -106,7 +106,6 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation {
protected:
int inum, maxneigh, chunk_size, chunk_offset, idx_ms_combs_max, total_num_functions_max;
int host_flag;
int gamma_flag;
int eflag, vflag;
@ -130,6 +129,7 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation {
tdual_fparams k_cutsq, k_scale;
typedef Kokkos::View<F_FLOAT**, DeviceType> t_fparams;
t_fparams d_cutsq, d_scale;
t_fparams d_cut_in, d_dcut_in; // inner cutoff
typename AT::t_int_1d d_map;
@ -234,12 +234,16 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation {
t_ace_2d rhos;
t_ace_2d dF_drho;
t_ace_3c dB_flatten;
// hard-core repulsion
t_ace_1d rho_core;
t_ace_3c dB_flatten;
t_ace_2d cr;
t_ace_2d dcr;
t_ace_1d dF_drho_core;
t_ace_1d dF_dfcut;
t_ace_1d d_corerep;
th_ace_1d h_corerep;
// radial functions
t_ace_4d fr;
@ -282,6 +286,11 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation {
t_ace_3d3 d_rhats;
t_ace_2i d_nearest;
// for ZBL core-rep implementation
t_ace_1d d_d_min; // [i] -> min-d for atom ii, d=d = r - (cut_in(mu_i, mu_j) - dcut_in(mu_i, mu_j))
t_ace_1i d_jj_min; // [i] -> jj-index of nearest neigh (by r-(cut_in-dcut_in) criterion)
bool is_zbl;
// per-type
t_ace_1i d_ndensity;
t_ace_1i d_npoti;

View File

@ -121,6 +121,11 @@ void PairPACEKokkos<DeviceType>::grow(int natom, int maxneigh)
// hard-core repulsion
MemKK::realloc_kokkos(rho_core, "pace:rho_core", natom);
MemKK::realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom);
MemKK::realloc_kokkos(dF_dfcut, "pace:dF_dfcut", natom);
MemKK::realloc_kokkos(d_d_min, "pace:r_min_pair", natom);
MemKK::realloc_kokkos(d_jj_min, "pace:j_min_pair", natom);
MemKK::realloc_kokkos(d_corerep, "pace:corerep", natom); // per-atom corerep
MemKK::realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_rho_max, basis_set->rankmax);
}
@ -212,6 +217,23 @@ void PairPACEKokkos<DeviceType>::copy_pertype()
Kokkos::deep_copy(d_wpre, h_wpre);
Kokkos::deep_copy(d_mexp, h_mexp);
// ZBL core-rep
MemKK::realloc_kokkos(d_cut_in, "pace:d_cut_in", nelements, nelements);
MemKK::realloc_kokkos(d_dcut_in, "pace:d_dcut_in", nelements, nelements);
auto h_cut_in = Kokkos::create_mirror_view(d_cut_in);
auto h_dcut_in = Kokkos::create_mirror_view(d_dcut_in);
for (int mu_i = 0; mu_i < nelements; ++mu_i) {
for (int mu_j = 0; mu_j < nelements; ++mu_j) {
h_cut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).rcut_in;
h_dcut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).dcut_in;
}
}
Kokkos::deep_copy(d_cut_in, h_cut_in);
Kokkos::deep_copy(d_dcut_in, h_dcut_in);
is_zbl = basis_set->radial_functions->inner_cutoff_type == "zbl";
}
/* ---------------------------------------------------------------------- */
@ -535,6 +557,13 @@ void PairPACEKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom");
d_vatom = k_vatom.view<DeviceType>();
}
if (flag_corerep_factor && atom->nlocal > nmax_corerep) {
memory->destroy(corerep_factor);
nmax_corerep = atom->nlocal;
memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep");
//zeroify array
memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor));
}
copymode = 1;
if (!force->newton_pair)
@ -588,6 +617,9 @@ void PairPACEKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
Kokkos::deep_copy(A_rank1, 0.0);
Kokkos::deep_copy(rhos, 0.0);
Kokkos::deep_copy(rho_core, 0.0);
Kokkos::deep_copy(d_d_min, PairPACE::aceimpl->basis_set->cutoffmax);
Kokkos::deep_copy(d_jj_min, -1);
Kokkos::deep_copy(d_corerep, 0.0);
EV_FLOAT ev_tmp;
@ -686,6 +718,13 @@ void PairPACEKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
}
}
ev += ev_tmp;
if (flag_corerep_factor) {
h_corerep = Kokkos::create_mirror_view(d_corerep);
Kokkos::deep_copy(h_corerep,d_corerep);
memcpy(corerep_factor+chunk_offset, (void *) h_corerep.data(), sizeof(double)*chunk_size);
}
chunk_offset += chunk_size;
} // end while
@ -741,6 +780,7 @@ void PairPACEKokkos<DeviceType>::operator() (TagPairPACEComputeNeigh,const typen
const X_FLOAT ytmp = x(i,1);
const X_FLOAT ztmp = x(i,2);
const int jnum = d_numneigh[i];
const int mu_i = d_map(type(i));
// get a pointer to scratch memory
// This is used to cache whether or not an atom is within the cutoff
@ -800,6 +840,36 @@ void PairPACEKokkos<DeviceType>::operator() (TagPairPACEComputeNeigh,const typen
}
offset++;
});
if (is_zbl) {
//adapted from https://www.osti.gov/servlets/purl/1429450
if(ncount>0) {
using minloc_value_type=Kokkos::MinLoc<F_FLOAT,int>::value_type;
minloc_value_type djjmin;
djjmin.val=1e20;
djjmin.loc=-1;
Kokkos::MinLoc<F_FLOAT,int> reducer_scalar(djjmin);
// loop over ncount (actual neighbours withing cutoff) rather than jnum (total number of neigh in cutoff+skin)
Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, ncount),
[&](const int offset, minloc_value_type &min_d_dist) {
int j = d_nearest(ii,offset);
j &= NEIGHMASK;
const int jtype = type(j);
auto r = d_rnorms(ii,offset);
const int mu_j = d_map(type(j));
const F_FLOAT d = r - (d_cut_in(mu_i, mu_j) - d_dcut_in(mu_i, mu_j));
if (d < min_d_dist.val) {
min_d_dist.val = d;
min_d_dist.loc = offset;
}
}, reducer_scalar);
d_d_min(ii) = djjmin.val;
d_jj_min(ii) = djjmin.loc;// d_jj_min should be NOT in 0..jnum range, but in 0..d_ncount(<=jnum)
} else {
d_d_min(ii) = 1e20;
d_jj_min(ii) = -1;
}
}
}
/* ---------------------------------------------------------------------- */
@ -990,23 +1060,42 @@ void PairPACEKokkos<DeviceType>::operator() (TagPairPACEComputeFS, const int& ii
const int ndensity = d_ndensity(mu_i);
double evdwl, fcut, dfcut;
double evdwl_cut;
evdwl = fcut = dfcut = 0.0;
inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut);
FS_values_and_derivatives(ii, evdwl, mu_i);
dF_drho_core(ii) = evdwl * dfcut + 1;
if (is_zbl) {
if (d_jj_min(ii) != -1) {
const int mu_jmin = d_mu(ii,d_jj_min(ii));
F_FLOAT dcutin = d_dcut_in(mu_i, mu_jmin);
F_FLOAT transition_coordinate = dcutin - d_d_min(ii); // == cutin - r_min
cutoff_func_poly(transition_coordinate, dcutin, dcutin, fcut, dfcut);
dfcut = -dfcut; // invert, because rho_core = cutin - r_min
} else {
// no neighbours
fcut = 1;
dfcut = 0;
}
evdwl_cut = evdwl * fcut + rho_core(ii) * (1 - fcut); // evdwl * fcut + rho_core_uncut - rho_core_uncut* fcut
dF_drho_core(ii) = 1 - fcut;
dF_dfcut(ii) = evdwl * dfcut - rho_core(ii) * dfcut;
} else {
inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut);
dF_drho_core(ii) = evdwl * dfcut + 1;
evdwl_cut = evdwl * fcut + rho_core(ii);
}
for (int p = 0; p < ndensity; ++p)
dF_drho(ii, p) *= fcut;
dF_drho(ii, p) *= fcut;
// tally energy contribution
if (eflag) {
double evdwl_cut = evdwl * fcut + rho_core(ii);
// E0 shift
evdwl_cut += d_E0vals(mu_i);
e_atom(ii) = evdwl_cut;
// E0 shift
evdwl_cut += d_E0vals(mu_i);
e_atom(ii) = evdwl_cut;
}
if (flag_corerep_factor)
d_corerep(ii) = 1-fcut;
}
/* ---------------------------------------------------------------------- */
@ -1146,6 +1235,15 @@ void PairPACEKokkos<DeviceType>::operator() (TagPairPACEComputeDerivative, const
f_ij(ii, jj, 0) = scale * f_ji[0] + fpair * r_hat[0];
f_ij(ii, jj, 1) = scale * f_ji[1] + fpair * r_hat[1];
f_ij(ii, jj, 2) = scale * f_ji[2] + fpair * r_hat[2];
if (is_zbl) {
if (jj==d_jj_min(ii)) {
// DCRU = 1.0
f_ij(ii, jj, 0) += dF_dfcut(ii) * r_hat[0];
f_ij(ii, jj, 1) += dF_dfcut(ii) * r_hat[1];
f_ij(ii, jj, 2) += dF_dfcut(ii) * r_hat[2];
}
}
}
/* ---------------------------------------------------------------------- */
@ -1683,6 +1781,8 @@ double PairPACEKokkos<DeviceType>::memory_usage()
bytes += MemKK::memory_usage(weights_rank1);
bytes += MemKK::memory_usage(rho_core);
bytes += MemKK::memory_usage(dF_drho_core);
bytes += MemKK::memory_usage(dF_dfcut);
bytes += MemKK::memory_usage(d_corerep);
bytes += MemKK::memory_usage(dB_flatten);
bytes += MemKK::memory_usage(fr);
bytes += MemKK::memory_usage(dfr);
@ -1700,6 +1800,8 @@ double PairPACEKokkos<DeviceType>::memory_usage()
bytes += MemKK::memory_usage(d_mu);
bytes += MemKK::memory_usage(d_rhats);
bytes += MemKK::memory_usage(d_rnorms);
bytes += MemKK::memory_usage(d_d_min);
bytes += MemKK::memory_usage(d_jj_min);
bytes += MemKK::memory_usage(d_nearest);
bytes += MemKK::memory_usage(f_ij);
bytes += MemKK::memory_usage(d_rho_core_cutoff);

View File

@ -121,6 +121,7 @@ class PairPACEKokkos : public PairPACE {
tdual_fparams k_cutsq, k_scale;
typedef Kokkos::View<F_FLOAT**, DeviceType> t_fparams;
t_fparams d_cutsq, d_scale;
t_fparams d_cut_in, d_dcut_in; // inner cutoff
typename AT::t_int_1d d_map;
@ -209,6 +210,8 @@ class PairPACEKokkos : public PairPACE {
typedef Kokkos::View<complex****, DeviceType> t_ace_4c;
typedef Kokkos::View<complex***[3], DeviceType> t_ace_4c3;
typedef typename Kokkos::View<double*, DeviceType>::HostMirror th_ace_1d;
t_ace_3d A_rank1;
t_ace_4c A;
@ -222,12 +225,16 @@ class PairPACEKokkos : public PairPACE {
t_ace_2d rhos;
t_ace_2d dF_drho;
t_ace_3c dB_flatten;
// hard-core repulsion
t_ace_1d rho_core;
t_ace_3c dB_flatten;
t_ace_2d cr;
t_ace_2d dcr;
t_ace_1d dF_drho_core;
t_ace_1d dF_dfcut;
t_ace_1d d_corerep;
th_ace_1d h_corerep;
// radial functions
t_ace_4d fr;
@ -265,6 +272,11 @@ class PairPACEKokkos : public PairPACE {
t_ace_3d3 d_rhats;
t_ace_2i d_nearest;
// for ZBL core-rep implementation
t_ace_1d d_d_min; // [i] -> min-d for atom ii, d=d = r - (cut_in(mu_i, mu_j) - dcut_in(mu_i, mu_j))
t_ace_1i d_jj_min; // [i] -> jj-index of nearest neigh (by r-(cut_in-dcut_in) criterion)
bool is_zbl;
// per-type
t_ace_1i d_ndensity;
t_ace_1i d_npoti;

View File

@ -45,6 +45,7 @@ Copyright 2021 Yury Lysogorskiy^1, Cas van der Oord^2, Anton Bochkarev^1,
#include "ace-evaluator/ace_evaluator.h"
#include "ace-evaluator/ace_recursive.h"
#include "ace-evaluator/ace_version.h"
#include "ace/ace_b_basis.h"
namespace LAMMPS_NS {
struct ACEImpl {
@ -87,6 +88,10 @@ PairPACE::PairPACE(LAMMPS *lmp) : Pair(lmp)
one_coeff = 1;
manybody_flag = 1;
nmax_corerep = 0;
flag_corerep_factor = 0;
corerep_factor = nullptr;
aceimpl = new ACEImpl;
recursive = false;
@ -109,6 +114,7 @@ PairPACE::~PairPACE()
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(scale);
memory->destroy(corerep_factor);
}
}
@ -143,10 +149,18 @@ void PairPACE::compute(int eflag, int vflag)
// the pointer to the list of neighbors of "i"
firstneigh = list->firstneigh;
if (flag_corerep_factor && atom->nlocal > nmax_corerep) {
memory->destroy(corerep_factor);
nmax_corerep = atom->nlocal;
memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep_factor");
//zeroify array
memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor));
}
//determine the maximum number of neighbours
int max_jnum = 0;
int nei = 0;
for (ii = 0; ii < list->inum; ii++) {
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
jnum = numneigh[i];
nei = nei + jnum;
@ -156,7 +170,7 @@ void PairPACE::compute(int eflag, int vflag)
aceimpl->ace->resize_neighbours_cache(max_jnum);
//loop over atoms
for (ii = 0; ii < list->inum; ii++) {
for (ii = 0; ii < inum; ii++) {
i = list->ilist[ii];
const int itype = type[i];
@ -181,6 +195,9 @@ void PairPACE::compute(int eflag, int vflag)
error->one(FLERR, e.what());
}
if (flag_corerep_factor)
corerep_factor[i] = 1 - aceimpl->ace->ace_fcut;
// 'compute_atom' will update the `aceimpl->ace->e_atom` and `aceimpl->ace->neighbours_forces(jj, alpha)` arrays
for (jj = 0; jj < jnum; jj++) {
@ -287,7 +304,14 @@ void PairPACE::coeff(int narg, char **arg)
//load potential file
delete aceimpl->basis_set;
if (comm->me == 0) utils::logmesg(lmp, "Loading {}\n", potential_file_name);
aceimpl->basis_set = new ACECTildeBasisSet(potential_file_name);
// if potential is in ACEBBasisSet (YAML) format, then convert to ACECTildeBasisSet automatically
if (utils::strmatch(potential_file_name,".*\\.yaml$")) {
ACEBBasisSet bBasisSet = ACEBBasisSet(potential_file_name);
ACECTildeBasisSet cTildeBasisSet = bBasisSet.to_ACECTildeBasisSet();
aceimpl->basis_set = new ACECTildeBasisSet(cTildeBasisSet);
} else {
aceimpl->basis_set = new ACECTildeBasisSet(potential_file_name);
}
if (comm->me == 0) {
utils::logmesg(lmp, "Total number of basis functions\n");
@ -374,7 +398,29 @@ double PairPACE::init_one(int i, int j)
---------------------------------------------------------------------- */
void *PairPACE::extract(const char *str, int &dim)
{
dim = 0;
//check if str=="corerep_flag" then compute extrapolation grades on this iteration
if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor;
dim = 2;
if (strcmp(str, "scale") == 0) return (void *) scale;
return nullptr;
}
/* ----------------------------------------------------------------------
peratom requests from FixPair
return ptr to requested data
also return ncol = # of quantites per atom
0 = per-atom vector
1 or more = # of columns in per-atom array
return NULL if str is not recognized
---------------------------------------------------------------------- */
void *PairPACE::extract_peratom(const char *str, int &ncol)
{
if (strcmp(str, "corerep") == 0) {
ncol = 0;
return (void *) corerep_factor;
}
return nullptr;
}

View File

@ -48,11 +48,15 @@ class PairPACE : public Pair {
double init_one(int, int) override;
void *extract(const char *, int &) override;
void *extract_peratom(const char *, int &) override;
protected:
struct ACEImpl *aceimpl;
int nmax_corerep = 0;
virtual void allocate();
double *corerep_factor; //per-atom core-rep factor (= 1 - fcut)
int flag_corerep_factor;
double **scale;
bool recursive; // "recursive" option for ACERecursiveEvaluator

View File

@ -93,11 +93,14 @@ PairPACEExtrapolation::PairPACEExtrapolation(LAMMPS *lmp) : Pair(lmp)
manybody_flag = 1;
nmax = 0;
nmax_corerep = 0;
aceimpl = new ACEALImpl;
scale = nullptr;
flag_compute_extrapolation_grade = 0;
extrapolation_grade_gamma = nullptr;
flag_corerep_factor = 0;
corerep_factor = nullptr;
chunksize = 4096;
}
@ -118,6 +121,7 @@ PairPACEExtrapolation::~PairPACEExtrapolation()
memory->destroy(scale);
memory->destroy(map);
memory->destroy(extrapolation_grade_gamma);
memory->destroy(corerep_factor);
}
}
@ -166,11 +170,18 @@ void PairPACEExtrapolation::compute(int eflag, int vflag)
//zeroify array
memset(extrapolation_grade_gamma, 0, nmax * sizeof(*extrapolation_grade_gamma));
}
if (flag_corerep_factor && atom->nlocal > nmax_corerep) {
memory->destroy(corerep_factor);
nmax_corerep = atom->nlocal;
memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep_factor");
//zeroify array
memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor));
}
//determine the maximum number of neighbours
int max_jnum = 0;
int nei = 0;
for (ii = 0; ii < list->inum; ii++) {
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
jnum = numneigh[i];
nei = nei + jnum;
@ -183,7 +194,7 @@ void PairPACEExtrapolation::compute(int eflag, int vflag)
aceimpl->rec_ace->resize_neighbours_cache(max_jnum);
//loop over atoms
for (ii = 0; ii < list->inum; ii++) {
for (ii = 0; ii < inum; ii++) {
i = list->ilist[ii];
const int itype = type[i];
@ -216,6 +227,11 @@ void PairPACEExtrapolation::compute(int eflag, int vflag)
if (flag_compute_extrapolation_grade)
extrapolation_grade_gamma[i] = aceimpl->ace->max_gamma_grade;
if (flag_corerep_factor) {
corerep_factor[i] = 1 - (flag_compute_extrapolation_grade ? aceimpl->ace->ace_fcut
: aceimpl->rec_ace->ace_fcut);
}
Array2D<DOUBLE_TYPE> &neighbours_forces =
(flag_compute_extrapolation_grade ? aceimpl->ace->neighbours_forces
: aceimpl->rec_ace->neighbours_forces);
@ -437,9 +453,11 @@ double PairPACEExtrapolation::init_one(int i, int j)
---------------------------------------------------------------------- */
void *PairPACEExtrapolation::extract(const char *str, int &dim)
{
//check if str=="gamma_flag" then compute extrapolation grades on this iteration
dim = 0;
//check if str=="gamma_flag" then compute extrapolation grades on this iteration
if (strcmp(str, "gamma_flag") == 0) return (void *) &flag_compute_extrapolation_grade;
//check if str=="corerep_flag" then compute extrapolation grades on this iteration
if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor;
dim = 2;
if (strcmp(str, "scale") == 0) return (void *) scale;
@ -461,5 +479,10 @@ void *PairPACEExtrapolation::extract_peratom(const char *str, int &ncol)
return (void *) extrapolation_grade_gamma;
}
if (strcmp(str, "corerep") == 0) {
ncol = 0;
return (void *) corerep_factor;
}
return nullptr;
}

View File

@ -47,13 +47,15 @@ class PairPACEExtrapolation : public Pair {
protected:
struct ACEALImpl *aceimpl;
int nmax;
int nmax = 0, nmax_corerep = 0;
virtual void allocate();
std::vector<std::string> element_names; // list of elements (used by dump pace/extrapolation)
double *extrapolation_grade_gamma; //per-atom gamma value
double *extrapolation_grade_gamma = nullptr; //per-atom gamma value
double *corerep_factor = nullptr; //per-atom core-rep factor (= 1 - fcut)
int flag_compute_extrapolation_grade;
int flag_compute_extrapolation_grade = 0;
int flag_corerep_factor = 0;
double **scale;