forked from lijiext/lammps
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14792 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
parent
aa833f17a1
commit
f28b6cf0e5
|
@ -0,0 +1,60 @@
|
||||||
|
.. index:: compute angle
|
||||||
|
|
||||||
|
compute angle command
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute ID group-ID angle
|
||||||
|
|
||||||
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
|
* angle = style name of this compute command
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute 1 all angle
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
Define a computation that extracts the angle energy calculated by each
|
||||||
|
of the angle sub-styles used in the "angle_style
|
||||||
|
hybrid" angle_hybrid.html command. These values are made accessible
|
||||||
|
for output or further processing by other commands. The group
|
||||||
|
specified for this command is ignored.
|
||||||
|
|
||||||
|
This compute is useful when using :doc:`angle_style hybrid <angle_hybrid>` if you want to know the portion of the total
|
||||||
|
energy contributed by one or more of the hybrid sub-styles.
|
||||||
|
|
||||||
|
**Output info:**
|
||||||
|
|
||||||
|
This compute calculates a global vector of length N where N is the
|
||||||
|
number of sub_styles defined by the :doc:`angle_style hybrid <angle_style>` command, which can be accessed by indices
|
||||||
|
1-N. These values can be used by any command that uses global scalar
|
||||||
|
or vector values from a compute as input. See :ref:`this section <howto_15>` for an overview of LAMMPS output
|
||||||
|
options.
|
||||||
|
|
||||||
|
The vector values are "extensive" and will be in energy
|
||||||
|
:doc:`units <units>`.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
none
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`compute pe <compute_pe>`, :doc:`compute pair <compute_pair>`
|
||||||
|
|
||||||
|
**Default:** none
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Section_commands.html#comm
|
|
@ -0,0 +1,59 @@
|
||||||
|
.. index:: compute dihedral
|
||||||
|
|
||||||
|
compute dihedral command
|
||||||
|
========================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute ID group-ID dihedral
|
||||||
|
|
||||||
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
|
* dihedral = style name of this compute command
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute 1 all dihedral
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
Define a computation that extracts the dihedral energy calculated by
|
||||||
|
each of the dihedral sub-styles used in the :doc:`dihedral_style hybrid <dihedral_hybrid>` command. These values are made
|
||||||
|
accessible for output or further processing by other commands. The
|
||||||
|
group specified for this command is ignored.
|
||||||
|
|
||||||
|
This compute is useful when using :doc:`dihedral_style hybrid <dihedral_hybrid>` if you want to know the portion of the
|
||||||
|
total energy contributed by one or more of the hybrid sub-styles.
|
||||||
|
|
||||||
|
**Output info:**
|
||||||
|
|
||||||
|
This compute calculates a global vector of length N where N is the
|
||||||
|
number of sub_styles defined by the :doc:`dihedral_style hybrid <dihedral_style>` command. which can be accessed by indices
|
||||||
|
1-N. These values can be used by any command that uses global scalar
|
||||||
|
or vector values from a compute as input. See :ref:`this section <howto_15>` for an overview of LAMMPS output
|
||||||
|
options.
|
||||||
|
|
||||||
|
The vector values are "extensive" and will be in energy
|
||||||
|
:doc:`units <units>`.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
none
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`compute pe <compute_pe>`, :doc:`compute pair <compute_pair>`
|
||||||
|
|
||||||
|
**Default:** none
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Section_commands.html#comm
|
|
@ -0,0 +1,59 @@
|
||||||
|
.. index:: compute improper
|
||||||
|
|
||||||
|
compute improper command
|
||||||
|
========================
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute ID group-ID improper
|
||||||
|
|
||||||
|
* ID, group-ID are documented in :doc:`compute <compute>` command
|
||||||
|
* improper = style name of this compute command
|
||||||
|
|
||||||
|
Examples
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
compute 1 all improper
|
||||||
|
|
||||||
|
Description
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
Define a computation that extracts the improper energy calculated by
|
||||||
|
each of the improper sub-styles used in the :doc:`improper_style hybrid <improper_hybrid>` command. These values are made
|
||||||
|
accessible for output or further processing by other commands. The
|
||||||
|
group specified for this command is ignored.
|
||||||
|
|
||||||
|
This compute is useful when using :doc:`improper_style hybrid <improper_hybrid>` if you want to know the portion of the
|
||||||
|
total energy contributed by one or more of the hybrid sub-styles.
|
||||||
|
|
||||||
|
**Output info:**
|
||||||
|
|
||||||
|
This compute calculates a global vector of length N where N is the
|
||||||
|
number of sub_styles defined by the :doc:`improper_style hybrid <improper_style>` command. which can be accessed by indices
|
||||||
|
1-N. These values can be used by any command that uses global scalar
|
||||||
|
or vector values from a compute as input. See :ref:`this section <howto_15>` for an overview of LAMMPS output
|
||||||
|
options.
|
||||||
|
|
||||||
|
The vector values are "extensive" and will be in energy
|
||||||
|
:doc:`units <units>`.
|
||||||
|
|
||||||
|
Restrictions
|
||||||
|
""""""""""""
|
||||||
|
none
|
||||||
|
|
||||||
|
Related commands
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
:doc:`compute pe <compute_pe>`, :doc:`compute pair <compute_pair>`
|
||||||
|
|
||||||
|
**Default:** none
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Section_commands.html#comm
|
|
@ -54,18 +54,18 @@ value other than "ffield.reax" will be rejected (see below).
|
||||||
LAMMPS provides several different versions of ffield.reax in its
|
LAMMPS provides several different versions of ffield.reax in its
|
||||||
potentials dir, each called potentials/ffield.reax.label. These are
|
potentials dir, each called potentials/ffield.reax.label. These are
|
||||||
documented in potentials/README.reax. The default ffield.reax
|
documented in potentials/README.reax. The default ffield.reax
|
||||||
contains parameterizations for the following elements: C, H, O, N, S.
|
contains parameterizations for the following elements: C, H, O, N.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
We do not distribute a wide variety of ReaxFF force field files
|
We do not distribute a wide variety of ReaxFF force field files
|
||||||
with LAMMPS. Adri van Duin's group at PSU is the central repository
|
with LAMMPS. Adri van Duin's group at PSU is the central repository
|
||||||
for this kind of data as they are continuously deriving and updating
|
for this kind of data as they are continuously deriving and updating
|
||||||
parameterizations for different classes of materials. You can visit
|
parameterizations for different classes of materials. You can submit
|
||||||
their WWW site at
|
a contact request at the Materials Computation Center (MCC) website
|
||||||
`http://www.engr.psu.edu/adri <http://www.engr.psu.edu/adri>`_, register
|
`https://www.mri.psu.edu/materials-computation-center/connect-mcc <https://www.mri.psu.edu/materials-computation-center/connect-mcc>`_,
|
||||||
as a "new user", and then submit a request to their group describing
|
describing the material(s) you are interested in modeling with ReaxFF.
|
||||||
material(s) you are interested in modeling with ReaxFF. They can tell
|
They can tell
|
||||||
you what is currently available or what it would take to create a
|
you what is currently available or what it would take to create a
|
||||||
suitable ReaxFF parameterization.
|
suitable ReaxFF parameterization.
|
||||||
|
|
||||||
|
@ -86,7 +86,11 @@ be specified.
|
||||||
|
|
||||||
Two examples using *pair_style reax* are provided in the examples/reax
|
Two examples using *pair_style reax* are provided in the examples/reax
|
||||||
sub-directory, along with corresponding examples for
|
sub-directory, along with corresponding examples for
|
||||||
:doc:`pair_style reax/c <pair_reax_c>`.
|
:doc:`pair_style reax/c <pair_reax_c>`. Note that while the energy and force
|
||||||
|
calculated by both of these pair styles match very closely, the
|
||||||
|
contributions due to the valence angles differ slightly due to
|
||||||
|
the fact that with *pair_style reax/c* the default value of *thb_cutoff_sq*
|
||||||
|
is 0.00001, while for *pair_style reax* it is hard-coded to be 0.001.
|
||||||
|
|
||||||
Use of this pair style requires that a charge be defined for every
|
Use of this pair style requires that a charge be defined for every
|
||||||
atom since the *reax* pair style performs a charge equilibration (QEq)
|
atom since the *reax* pair style performs a charge equilibration (QEq)
|
||||||
|
|
|
@ -55,7 +55,7 @@ a package.
|
||||||
LAMMPS provides several different versions of ffield.reax in its
|
LAMMPS provides several different versions of ffield.reax in its
|
||||||
potentials dir, each called potentials/ffield.reax.label. These are
|
potentials dir, each called potentials/ffield.reax.label. These are
|
||||||
documented in potentials/README.reax. The default ffield.reax
|
documented in potentials/README.reax. The default ffield.reax
|
||||||
contains parameterizations for the following elements: C, H, O, N, S.
|
contains parameterizations for the following elements: C, H, O, N.
|
||||||
|
|
||||||
The format of these files is identical to that used originally by van
|
The format of these files is identical to that used originally by van
|
||||||
Duin. We have tested the accuracy of *pair_style reax/c* potential
|
Duin. We have tested the accuracy of *pair_style reax/c* potential
|
||||||
|
@ -69,11 +69,11 @@ tested).
|
||||||
We do not distribute a wide variety of ReaxFF force field files
|
We do not distribute a wide variety of ReaxFF force field files
|
||||||
with LAMMPS. Adri van Duin's group at PSU is the central repository
|
with LAMMPS. Adri van Duin's group at PSU is the central repository
|
||||||
for this kind of data as they are continuously deriving and updating
|
for this kind of data as they are continuously deriving and updating
|
||||||
parameterizations for different classes of materials. You can visit
|
parameterizations for different classes of materials. You can submit
|
||||||
their WWW site at
|
a contact request at the Materials Computation Center (MCC) website
|
||||||
`http://www.engr.psu.edu/adri <http://www.engr.psu.edu/adri>`_, register
|
`https://www.mri.psu.edu/materials-computation-center/connect-mcc <https://www.mri.psu.edu/materials-computation-center/connect-mcc>`_,
|
||||||
as a "new user", and then submit a request to their group describing
|
describing the material(s) you are interested in modeling with ReaxFF.
|
||||||
material(s) you are interested in modeling with ReaxFF. They can tell
|
They can tell
|
||||||
you what is currently available or what it would take to create a
|
you what is currently available or what it would take to create a
|
||||||
suitable ReaxFF parameterization.
|
suitable ReaxFF parameterization.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,256 @@
|
||||||
|
LAMMPS GitHub tutorial
|
||||||
|
######################
|
||||||
|
|
||||||
|
written by Stefan Paquay
|
||||||
|
========================
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
This document briefly describes how to use GitHub to merge changes
|
||||||
|
into LAMMPS using GitHub. It assumes that you are familiar with
|
||||||
|
git. You may want to have a look at the `Git book <http://git-scm.com/book/>`_ to reacquaint yourself.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
Making an account
|
||||||
|
*****************
|
||||||
|
|
||||||
|
First of all, you need a GitHub account. This is fairly simple, just
|
||||||
|
go to `GitHub <https://github.com>`_ and create an account by clicking
|
||||||
|
the ``Sign up for GitHub'' button. Once your account is created, you
|
||||||
|
can sign in by clicking the button in the top left and filling in your
|
||||||
|
username or e-mail address and password.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
Forking the repository
|
||||||
|
**********************
|
||||||
|
|
||||||
|
To get changes into LAMMPS, you need to first fork the repository. At
|
||||||
|
the time of writing, LAMMPS-ICMS is the preferred fork. Go to `LAMMPS on GitHub <https://github.com/lammps/lammps>`_ and make sure branch is
|
||||||
|
set to ``lammps-icms'', see the figure below.
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_branch.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Now, click on fork in the top right corner:
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_fork.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
This will create your own fork of the LAMMPS repository. You can make
|
||||||
|
changes in this fork and later file *pull requests* to allow the
|
||||||
|
upstream repository to merge changes from your own fork into the one
|
||||||
|
we just forked from. At the same time, you can set things up, so you
|
||||||
|
can include changes from upstream into your repository.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
Adding changes to your own fork
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Before adding changes, it is better to first create a new branch that
|
||||||
|
will contain these changes, a so-called feature branch.
|
||||||
|
|
||||||
|
Feature branches
|
||||||
|
================
|
||||||
|
|
||||||
|
Since LAMMPS is such a big project and most user contributions come in
|
||||||
|
small portions, the most ideal workflow for LAMMPS is the so-called
|
||||||
|
``Feature branch'' workflow. It is explained in great detail here:
|
||||||
|
`feature branch workflow <https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow>`_.
|
||||||
|
|
||||||
|
The idea is that every new feature for LAMMPS gets its own
|
||||||
|
branch. This way, it is fairly painless to incorporate new features
|
||||||
|
into the upstream repository. I will explain briefly here how to do
|
||||||
|
it. In this feature branch, I will add a USER-package.
|
||||||
|
|
||||||
|
I assume that git is installed on the local machine and you know how
|
||||||
|
to use a command line.
|
||||||
|
|
||||||
|
First of all, you need to clone your own fork of LAMMPS:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git clone https://github.com/<your user name>/lammps.git
|
||||||
|
|
||||||
|
You can find the proper url to the right of the "HTTPS" block, see figure.
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_https_block.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
The above command copies (``clones'') the git repository to your local
|
||||||
|
machine. You can use this local clone to make changes and test them
|
||||||
|
without interfering with the repository on github. First, however, it
|
||||||
|
is recommended to make a new branch for a particular feature you would
|
||||||
|
like added to LAMMPS. In this example, I will try adding a new
|
||||||
|
USER-package called USER-MANIFOLD.
|
||||||
|
|
||||||
|
To create a new branch, run the following git command in your repository:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git checkout -b add-user-manifold
|
||||||
|
|
||||||
|
The name of this new branch is "add-user-manifold" in my case. Just
|
||||||
|
name it after something that resembles the feature you want added to
|
||||||
|
LAMMPS.
|
||||||
|
|
||||||
|
Now that you've changed branches, you can edit the files as you see
|
||||||
|
fit, add new files, and commit as much as you would like. Just
|
||||||
|
remember that if halfway you decide to add another, unrelated feature,
|
||||||
|
you should switch branches!
|
||||||
|
|
||||||
|
After everything is done, add the files to the branch and commit them:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git add src/USER-MANIFOLD examples/USER/manifold/
|
||||||
|
$ git add doc/fix_nv*t,e*_manifold_rattle.txt
|
||||||
|
$ git add doc/fix_manifoldforce.txt doc/user_manifolds.txt
|
||||||
|
|
||||||
|
After the files are added, the change should be comitted:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git commit -m 'Added user-manifold package'
|
||||||
|
|
||||||
|
The "-m" switch is used to add a message to the commit. Use this to
|
||||||
|
indicate what type of change was commited.
|
||||||
|
|
||||||
|
Wisdom by Axel:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
*"Do not use "git commit -a". the -a flag will automatically include
|
||||||
|
*all* modified or new files. mercurial does that and it find it
|
||||||
|
hugely annoying and often leading to accidental commits of files you
|
||||||
|
don't want. use git add, git rm, git mv for adding, removing,
|
||||||
|
renaming and then git commit to finalize the commit. personally, i
|
||||||
|
find it very convenient to use the bundled gui for commits, i.e. git
|
||||||
|
gui. typically, i will do git add and other operations, but then
|
||||||
|
verify and review them with git gui. git gui also allows to do
|
||||||
|
line-by-line unstaging and other convenient operations."*
|
||||||
|
|
||||||
|
After the commit, the changes can be pushed to the same branch on GitHub:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git push
|
||||||
|
|
||||||
|
Git will ask you for your user name and password on GitHub if you have
|
||||||
|
not configured anything. If you correctly type your user name and
|
||||||
|
password, the change should be added to your fork on GitHub.
|
||||||
|
|
||||||
|
If you want to make really sure you push to the right repository
|
||||||
|
(which is good practice), you can provide it explicitly:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git push origin
|
||||||
|
|
||||||
|
or using an explicit URL:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git push git@github.com:Pakketeretet2/lammps.git
|
||||||
|
|
||||||
|
After that, you can file a new pull request based on this
|
||||||
|
branch. GitHub will now look like this:
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_pull_request_feature_branch1.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Make sure that the current branch is set to the correct one, which, in
|
||||||
|
this case, is "add-user-manifold". Now click "New pull request". If
|
||||||
|
done correctly, the only changes you will see are those that were made
|
||||||
|
on this branch, so in my case, I will see nothing related to
|
||||||
|
$\mathrm*pair\_dzugatov*.$
|
||||||
|
|
||||||
|
This will open up a new window that lists changes made to the
|
||||||
|
repository. If you are just adding new files, there is not much to do,
|
||||||
|
but I suppose merge conflicts are to be resolved here if there are
|
||||||
|
changes in existing files. If all changes can automatically be merged,
|
||||||
|
green text at the top will say so and you can click the "Create pull
|
||||||
|
request" button, see image.
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_pull_request2.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
After this you have to specify a short title and a comment with
|
||||||
|
details about your pull request. I guess here you write what your
|
||||||
|
modifications do and why they should be incorporated upstream. After
|
||||||
|
that, click the "Create pull request" button, see image below.
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_pull_request3.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Now just write some nice comments, click "Comment", and that is it. It
|
||||||
|
is now up to the maintainer(s) of the upstream repository to
|
||||||
|
incorporate the changes into the repository and to close the pull
|
||||||
|
request.
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_pull_request4.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
Additional changes
|
||||||
|
******************
|
||||||
|
|
||||||
|
Before the pull request is accepted, any additional changes you push
|
||||||
|
into your repository will automatically become part of the pull
|
||||||
|
request.
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
|
||||||
|
After a merge
|
||||||
|
*************
|
||||||
|
|
||||||
|
When everything is fine the feature branch is merged into the LAMMPS
|
||||||
|
repositories:
|
||||||
|
|
||||||
|
.. image:: JPG/tutorial_merged.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Now one question remains: What to do with the feature branch that got
|
||||||
|
merged into upstream?
|
||||||
|
|
||||||
|
It is in principle safe to delete them from your own fork. This helps
|
||||||
|
keep it a bit more tidy. Note that you first have to switch to another
|
||||||
|
branch!
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git checkout lammps-icms
|
||||||
|
$ git pull lammps-icms
|
||||||
|
$ git branch -d add-user-manifold
|
||||||
|
|
||||||
|
If you do not pull first, it is not really a problem but git will warn
|
||||||
|
you at the next statement that you are deleting a local branch that
|
||||||
|
was not yet fully merged into HEAD. This is because git does not yet
|
||||||
|
know your branch just got merged into lammps-icms upstream. If you
|
||||||
|
first delete and then pull, everything should still be fine.
|
||||||
|
|
||||||
|
Finally, if you delete the branch locally, you might want to push this
|
||||||
|
to your remote(s) as well:
|
||||||
|
|
||||||
|
.. parsed-literal::
|
||||||
|
|
||||||
|
$ git push origin :add-user-manifold
|
||||||
|
|
||||||
|
|
||||||
|
.. _lws: http://lammps.sandia.gov
|
||||||
|
.. _ld: Manual.html
|
||||||
|
.. _lc: Section_commands.html#comm
|
Loading…
Reference in New Issue