Please Read This First: Guidelines and Suggestions for posting LAMMPS questions

The LAMMPS categories on MatSci.org are the primary way to get help with installing, running, programming the LAMMPS Molecular Dynamics software package and to facilitate exchange between LAMMPS users and developers. The main motivation of using a forum versus the traditional mailing list is, that this allows anybody to join a discussion at any time and try to provide assistance, even when they have not been around when the original question was posted. As the LAMMPS community is growing, the pool of people that can potentially help others needs to grow as well. Users are often better equipped to explain how to use software effectively to other users than developers who tend to be more focused on the programming aspects of a software project.

Please always keep in mind that people here are volunteering their time. So please be respectful to anybody that makes the effort to respond to your posts, even if you feel slighted or unfairly treated. Communication via text is limited, and we have people here communicating with very different cultural backgrounds, so what may be acceptable for one, can be beyond the limit for others.

Below are several guidelines to assist with using the forum effectively and to avoid wasting anybody’s time. Thus please read and follow them carefully. You can find additional, more in-depth guidelines and suggestions on the LAMMPS homepage.

Click on the triangles to see more detailed explanations for the individual guidelines.

Format your post so it is readable

The LAMMPS forum posts are formatted using Markdown and BBCode. Markdown is a simple markup language that uses special characters such as * $ and other to render equation, bold words, titles etc. BBCode’s spirit is the same but with some tag system.

This has two main consequences:

  1. PLEASE: Do not copy and paste your LAMMPS input file as is. The forum formatting engine will make your post hard to read and may drop important details. In any case, avoid posting your full file if it is too big and try to isolate the commands that you think are causing the problem. If you then want to copy and paste lines from your file, enclose them between three backquote characters (```). Be sure to use backquote ` and not apostrophes '.
  2. You can format your post to make it easier to read and go through. Markdown is easy to grasp and even has a dedicated 10 min tutorial on the Commonmark website. Do not hesitate to go through it. You can also have a look at the BBCode tag system.

The forum offers a preview of your message before posting. Please use that to format your posts beforehand and ensure it looks correct. Also, you can also edit your post afterwards, if you notice an issue. Appearances matter, so if you post looks like you do not care, then you are much less likely to get a (good) response.

Talk with local people *first*

The practice and learning of science is better done in direct contact with people. An advisor, a mentor, a tutor, or a colleague which you can directly explain your problem to, is very likely to provide more meaningful help than people on the internet. You often do not know about the level of expertise of a remote person and how much care that person has spent reading your post. And the remote person does not know anything about you or your research. This is also valid for installation related problems, as your local system administrator is the person that will know the most about your system.

It is very tempting to come back and ask more questions, once you have found useful help, and you may be in need of advice on how to do your research project and not just how to master LAMMPS (or how to program it), but if the only connection to LAMMPS is the fact that you are using LAMMPS, then the question is likely off-topic.

Post in the correct category

The MatSci.org server hosts discussion forums for multiple materials science related topics and multiple software packages. To have your post show up in the LAMMPS related area where other LAMMPS users and enthusiasts can see and respond to it. Do not use the default.

To organize discussions within the LAMMPS category, there are sub-categories. Please always choose the most appropriate one:

  • LAMMPS Beginners: for people that are not very experienced with using LAMMPS. People will be more forgiving if you make mistakes, but don’t be offended when you get explanations for what you already know
  • LAMMPS Development: for discussions about programming LAMMPS, using the library interface or python module or possible bugs
  • LAMMPS Installation: for questions about compiling or installing LAMMPS
  • LAMMPS General Discussion: for all other topics. This assumes that you know the science, so responses may just point you to a source of information. Don’t be offended when not all details are explained

Questions related to pre-processing, post-processing or visualization of your data using software other than LAMMPS are very likely to fall outside of the LAMMPS forum scope. These would better be posted using the dedicated channels related to the software you are using. In some cases, they are just a different category within the MatSci.org server.

Always report your LAMMPS version and platform

The behavior of LAMMPS changes over time. New features are added, obsolete ones removed, syntax changed and more. Mentioning the exact version of LAMMPS being used (it is printed as the first line of output or at the top of lmp -h) can be crucial information for anybody trying to provide an answer. Please do not use terms like “the latest version” or “the stable version”. Those can be very different depending on how you obtain LAMMPS and they will change over time.

The LAMMPS version has the format of a date (e.g. 8 Feb 2023). This is what you should report.

Reporting the LAMMPS version helps significantly, because the developers may remember or can look up when a similar problem came up, and can tell if you are encountering a bug that has already been fixed.

Note that if you are using a old version and your problem is something that many users would run into, like a bug with input or output, then you might be told to upgrade to the most current version to see if your problem goes away.

Be concise and specific; do not make any assumptions about how easy it is to find a solution

The quality of any assistance available to you crucially depends on several things. For example:

  • how well you describe your problem
  • what solutions you have tried
  • how easy it is to reproduce your issue

Most users of the forum are not likely experts in your specific area of research. Thus avoid domain specific slang terms (specific acronyms and so on), explain all details relevant for a non-expert, and try to simplify your input to focus on the problem at hand. It is important for other readers to understand how what you expected differs from what you obtained.

A recurring issue is that people ask about one specific detail assuming that addressing this detail will resolve the situation. However, the solutions often require an understanding of the context and the solution may be that you need to follow a different approach.

The worst you could do is to attach your input and say “it doesn’t work”. Competent and helpful responses require context. This kind of post has none.

If you get a response, please read *all* of it, and have the courtesy to respond to questions

It can be frustrating to a person responding, when the person posting the original question follows up only to the first part of the response and seems to disregard the rest. Nobody likes to be ignored when they invest the effort. The same is true for not answering questions that you are being asked. At the very least explain why you cannot answer a question, if there is a reason. Questions are often asked for a good reason and with the purpose of making you think about something and thus find the solution of your problem on your own or at least better understand it. Experienced LAMMPS users often can anticipate the next questions a less experienced person would have after resolving an initial problem. This is often done to save time. Thus, even if it may not apply currently, please read everything and keep it in your mind, having to explain the same thing multiple times can be very annoying.

You can see it this way: while you get your problem resolved without having to pay for it with money, you can pay back by respecting the effort and satisfying the curiosity of the person responding.

Provide specific references and quotes

Same as when writing papers, it is extremely important to provide specific and accurate references to statements and sources of information. When information is posted on the web, provide an URL to the specific page or part of page. When referring to the LAMMPS manual, mention the title (not the page number) and for which version of LAMMPS. When your information is informal and based on something your overheard or were told in a conversation or lecture, say so.

When a simulation does not behave as expected, it means that either your expectations, or your input, or the commands used in the simulation are not correct. However, without context and specific information on how to reproduce the situation and how you justify your expectations, it is impossible to provide assistance.

When reporting errors, provide the entire error message (and not just say that there was an error). Most error messages in LAMMPS have a source file and line number associated with them, these can provide crucial information about the nature of the error and possibly the cause, specifically when you also report the exact version of LAMMPS.

Don’t use phrases like “we all know”, but rather repeat/quote what you are referring to. Don’t be afraid to be redundant.

What you should *not* expect from this forum

Since this forum is dedicated on the use of the LAMMPS software, keep in mind that the forum is in no way a replacement for:

  • Operating software manuals (Linux, Mac, or Windows)
  • Reading the LAMMPS manual
  • Programming lessons
  • Physics or chemistry classes
  • General advice on how to conduct research from your adviser
  • Literature research engines

A good way to learn what to expect (and what not, is to just read through existing topics for a while before posting your own topics. You should quickly see that some exchanges are brief and concise and others complex and belabored with the people responding asking for many more details. Since the forum allows to acknowledge good questions and good answers with a “like”, you should specifically check out messages with multiple likes.

Be sure to research your problem before posting

It is always better to show that you have already tried to solve your problem on your own before asking for help. Be sure to read the LAMMPS manual sections that correspond to the commands you used. Also, before asking what a given error/warning message means, please be sure to read the dedicated section from the manual. This section contains information related to common errors, how to report a bug and detailed descriptions of the error and warning messages.

If you don’t know what line in your input script is causing LAMMPS to generate an error, then use the -echo screen command-line option when you run LAMMPS. If you are having a problem with a specific input script command, carefully read the entire doc page associated with that command. There may be text somewhere on that page which answers your question.

As there are many people using the LAMMPS software and since LAMMPS has been around for a long time, it is likely that someone already had the same issue before that you currently have and plan to ask about. You can research previous posts using the research function of the forum before posting. Some questions have been answered dozen of times and the forum already contains a lot of information. In addition to forum posts, there is the LAMMPS subcategory with the archives of the old LAMMPS users mailing-list that ran from 2005 to June 2022. These archives are also accessible through the search function.

In the case where you find a thread relating/responding to a problem similar to yours, please do not post in this thread. This is called ‘necroposting’ and is very bad forum practice. If you’re not able to find a solution to your issue, create a new dedicated thread and include a reference to the old post, if it is sufficiently relevant.

Visualize your simulation

It is always a good idea to have a look at what is happening in your simulations. If your results make no sense, be sure to check if something catastrophic is may be happening or if your starting configuration is not bogus to begin with. LAMMPS data and dump files can be visualized with several software packages. You can see a incomplete list on the LAMMPS website. You may need to change your input to output data more frequently and shorten runs.

If your simulation is not going according to what you expected, do not assume firsthand that the software is doing things wrong. It is very common that an unphysical simulation actually results from some bad combination of commands or some wrong starting setup.

Start small before building complexity

You should (even before you run into errors) build small, simple systems that give straightforward results that you fully understand, before adding in complexity. For example, you should simulate a polymer at equilibrium before trying to shear it, and you should simulate a liquid at uniform temperature before trying a thermal gradient. You should not use polarizability, many-body potentials, or ReaxFF, unless you can clearly justify the extra accuracy compared to nonpolarizable, pair potential, or non-reactive simulations respectively.

Small systems (in terms of volume and particle number) are also very valuable because they run faster, crash faster, and are faster to visualize. They therefore save you lots of time. Also, fluctuation magnitudes (and thus, notably, diffusivities) change in interesting ways against system size, and the easiest way to convince yourself that a simulation is “big enough” is to simulate something slightly larger and see that there is no change in your (intensive) observable of interest.

Your system just does what your force field, input settings, and equations of motion say

The foundational inputs to LAMMPS are your force field – that is, given a set of coordinates, what the forces between particles are – and your equations of motion – that is, are particles’ velocities and positions altered in any way beyond Newton’s laws. Many LAMMPS (indeed, MD) problems boil down to either inappropriate force fields or inappropriate equations of motion.

When a simulation does not behave the way you expect it. The solution is usually not to force it to behave the way you expect, but to try and understand why this happens and then correct the cause. This is similar to a doctor needing to cure the disease and not just make the symptoms go away. If you suppress the symptoms, you are still sick.

Force fields are tricky beasts and you should tell us clearly what force fields you are using, with a reference if possible. Note that a force field is the complete description of all interactions between all particle types in a system, and mixing different coefficients from different publications creates an all-new force field. So, for example, MD simulations of DMSO with water show different miscibilities depending on whether SPC/E or TIP3P parameters are used (https://pubs.acs.org/doi/abs/10.1021/jp0007336).

'fix nve' and similar are *integrators* not ensembles

The fixes fix nve, fix nvt and so on are integrators – that is, they update particles’ positions based on the calculated forces and velocities. While these integrators can include thermostats or barostats, these -stat components do not ensure that your simulation samples a particular thermodynamic ensemble, unless no additional forces are imposed or velocities modified, and you have a uniform bulk system with periodic boundaries.

To drive this point home, consider the following two script fragments:

fix 1 all setforce 0 0 0
fix 2 all nvt temp 300 300 100

The fix nvt integrator is used here, but clearly LAMMPS cannot sample the NVT ensemble using this script.

fix 1 all nve
fix 2 all langevin 300 300 100 6734534

This is clearly not an NVE ensemble since it uses the Langevin thermostat.

Make use of the forum's 'like' feature

By clicking on the heart symbol you can indicate that a question was well formed or a response well put and helpful. Adding likes to such messages is very useful since it allows the forum software to learn what it should rank higher within search results. If everybody follows this advice, everybody will benefit. Also, you can see from the number of likes how active and how much appreciated somebody is, which can help you to assess the credibility of somebody’s suggestions.

12 Likes