lammps/doc/create_box.html

152 lines
6.8 KiB
HTML

<HTML>
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
</CENTER>
<HR>
<H3>create_box command
</H3>
<P><B>Syntax:</B>
</P>
<PRE>create_box N region-ID keyword value ...
</PRE>
<UL><LI>N = # of atom types to use in this simulation
<LI>region-ID = ID of region to use as simulation domain
<LI>zero or more keyword/value pairs may be appended
<LI>keyword = <I>bond/types</I> or <I>angle/types</I> or <I>dihedral/types</I> or <I>improper/types</I> or <I>extra/bond/per/atom</I> or <I>extra/angle/per/atom</I> or <I>extra/dihedral/per/atom</I> or <I>extra/improper/per/atom</I>
<PRE> <I>bond/types</I> value = # of bond types
<I>angle/types</I> value = # of angle types
<I>dihedral/types</I> value = # of dihedral types
<I>improper/types</I> value = # of improper types
<I>extra/bond/per/atom</I> value = # of bonds per atom
<I>extra/angle/per/atom</I> value = # of angles per atom
<I>extra/dihedral/per/atom</I> value = # of dihedrals per atom
<I>extra/improper/per/atom</I> value = # of impropers per atom
<I>extra/special/per/atom</I> value = # of special neighbors per atom
</PRE>
</UL>
<P><B>Examples:</B>
</P>
<PRE>create_box 2 mybox
create_box 2 mybox bond/types 2 extra/bond/per/atom 1
</PRE>
<P><B>Description:</B>
</P>
<P>This command creates a simulation box based on the specified region.
Thus a <A HREF = "region.html">region</A> command must first be used to define a
geometric domain. It also partitions the simulation box into a
regular 3d grid of rectangular bricks, one per processor, based on the
number of processors being used and the settings of the
<A HREF = "processors.html">processors</A> command. The partitioning can later be
changed by the <A HREF = "balance.html">balance</A> or <A HREF = "fix_balance.html">fix
balance</A> commands.
</P>
<P>The argument N is the number of atom types that will be used in the
simulation.
</P>
<P>If the region is not of style <I>prism</I>, then LAMMPS encloses the region
(block, sphere, etc) with an axis-aligned orthogonal bounding box
which becomes the simulation domain.
</P>
<P>If the region is of style <I>prism</I>, LAMMPS creates a non-orthogonal
simulation domain shaped as a parallelepiped with triclinic symmetry.
As defined by the <A HREF = "region.html">region prism</A> command, the
parallelepiped has its "origin" at (xlo,ylo,zlo) and is defined by 3
edge vectors starting from the origin given by A = (xhi-xlo,0,0); B =
(xy,yhi-ylo,0); C = (xz,yz,zhi-zlo). <I>Xy,xz,yz</I> can be 0.0 or
positive or negative values and are called "tilt factors" because they
are the amount of displacement applied to faces of an originally
orthogonal box to transform it into the parallelipiped.
</P>
<P>A <I>prism</I> region used with the create_box command must have tilt
factors (xy,xz,yz) that do not skew the box more than half the
distance of the parallel box length. For example, if xlo = 2 and xhi
= 12, then the x box length is 10 and the xy tilt factor must be
between -5 and 5. Similarly, both xz and yz must be between
-(xhi-xlo)/2 and +(yhi-ylo)/2. Note that this is not a limitation,
since if the maximum tilt factor is 5 (as in this example), then
configurations with tilt = ..., -15, -5, 5, 15, 25, ... are all
geometrically equivalent.
</P>
<P>See <A HREF = "Section_howto.html#howto_12">Section_howto 12</A> of the doc pages
for a geometric description of triclinic boxes, as defined by LAMMPS,
and how to transform these parameters to and from other commonly used
triclinic representations.
</P>
<P>When a prism region is used, the simulation domain must be periodic in
any dimensions with a non-zero tilt factor, as defined by the
<A HREF = "boundary.html">boundary</A> command. I.e. if the xy tilt factor is
non-zero, then both the x and y dimensions must be periodic.
Similarly, x and z must be periodic if xz is non-zero and y and z must
be periodic if yz is non-zero. Also note that if your simulation will
tilt the box, e.g. via the <A HREF = "fix_deform.html">fix deform</A> command, the
simulation box must be defined as triclinic, even if the tilt factors
are initially 0.0.
</P>
<P>IMPORTANT NOTE: If the system is non-periodic (in a dimension), then
you should not make the lo/hi box dimensions (as defined in your
<A HREF = "region.html">region</A> command) radically smaller/larger than the extent
of the atoms you eventually plan to create, e.g. via the
<A HREF = "create_atoms.html">create_atoms</A> command. For example, if your atoms
extend from 0 to 50, you should not specify the box bounds as -10000
and 10000. This is because as described above, LAMMPS uses the
specified box size to layout the 3d grid of processors. A huge
(mostly empty) box will be sub-optimal for performance when using
"fixed" boundary conditions (see the <A HREF = "boundary.html">boundary</A>
command). When using "shrink-wrap" boundary conditions (see the
<A HREF = "boundary.html">boundary</A> command), a huge (mostly empty) box may cause
a parallel simulation to lose atoms the first time that LAMMPS
shrink-wraps the box around the atoms.
</P>
<HR>
<P>The optional keywords can be used to create a system that allows for
bond (angle, dihedral, improper) interactions, or for molecules with
special 1-2,1-3,1-4 neighbors to be added later. These optional
keywords serve the same purpose as the analagous keywords that can be
used in a data file which are recognized by the
<A HREF = "read_data.html">read_data</A> command when it sets up a system.
</P>
<P>Note that if these keywords are not used, then the create_box command
creates an atomic (non-molecular) simulation that does not allow bonds
between pairs of atoms to be defined, or a <A HREF = "bond_style.html">bond
potential</A> to be specified, or for molecules with
special neighbors to be added to the system by commands such as
<A HREF = "create_atoms.html">create_atoms mol</A>, <A HREF = "fix_deposit.html">fix deposit</A>
or <A HREF = "fix_pour.html">fix pour</A>.
</P>
<P>As an example, see the examples/deposit/in.deposit.molecule script,
which deposits molecules onto a substrate. Initially there are no
molecules in the system, but they are added later by the <A HREF = "fix_deposit.html">fix
deposit</A> command. The create_box command in the
script uses the bond/types and extra/bond/per/atom keywords to allow
this. If the added molecule contained more than 1 special bond
(allowed by default), an extra/special/per/atom keyword would also
need to be specified.
</P>
<HR>
<P><B>Restrictions:</B>
</P>
<P>An <A HREF = "atom_style.html">atom_style</A> and <A HREF = "region.html">region</A> must have
been previously defined to use this command.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "read_data.html">read_data</A>, <A HREF = "create_atoms.html">create_atoms</A>,
<A HREF = "region.html">region</A>
</P>
<P><B>Default:</B> none
</P>
</HTML>