Git Product home page Git Product logo

espresso's Introduction

ESPResSo

GitLab CI codecov Binder Contribute with Gitpod

This is the Molecular Dynamics software ESPResSo ("Extensible Simulation Package for Research on Soft Matter Systems").

ESPResSo is a highly versatile software package for performing and analyzing scientific Molecular Dynamics many-particle simulations of "coarse-grained" bead-spring models as they are used in soft-matter research in physics, chemistry and molecular biology. It can be used to simulate systems as for example polymers, liquid crystals, colloids, ferrofluids and biological systems such as DNA and lipid membranes.

In "coarse-grained" models, a whole group of atoms or molecules are treated as a single bead. Although many details are coarse-grained away in these models, they can often predict qualitative properties, such as for example the scaling behavior of a system, and can give insight into theoretical models. Due to the drastic reduction of degrees of freedom, coarse-graining allows to investigate systems which would be out of reach of the commonly used atom-based simulations, due to the large time- and length scales of the studied processes.

ESPResSo is capable of doing classical Molecular Dynamics simulations of many types of systems in different statistical ensembles (microcanonical, canonical, isobaric-isothermal, (semi-)grand canonical, reaction, constant pH, Gibbs ensemble) and non-equilibrium situations, using standard potentials such as the Lennard-Jones or Morse potential. It contains many advanced simulation algorithms, which take into account hydrodynamic (lattice-Boltzmann) and electrostatic interactions (P3M, ELC, MMM1D). Rigid bodies can be modelled by virtual site interactions, and it can integrate rotationally non-invariant particles.

ESPResSo is free, open-source software (GPL). It is parallelized and can be employed on desktop machines, convenience clusters as well as on supercomputers with hundreds of CPUs. The parallel code is controlled via the scripting language Python, which gives the software its great flexibility and allows for many unconventional simulation protocols, as are often required when studying coarse-grained models.

ESPResSo is used in scientific working groups all over the world both as a production platform as well as a research platform for developing new algorithms and methods and designing new models for coarse-grained simulations. It is mainly developed at the Institute for Computational Physics of the University of Stuttgart, but has contributors from all over the world.

Documentation

The user guide will walk you through the basic usage of ESPResSo. Advanced simulation methods are extensively documented, with examples and links to the relevant literature. Additional resources such as tutorials and doxygen documentation can be found on https://espressomd.github.io. The official website is https://espressomd.org/wordpress/.

Installation

Detailed installation instructions for Ubuntu and macOS can be found in the user guide, section Installation. Common installation issues are addressed in the FAQ.

For most users, we recommend downloading the latest release version of ESPResSo. You can find it in the release page, together with past releases until 4.0. When choosing a release, we recommend that you get the latest bugfix release in that line. For example, for 4.2 you would like to use 4.2.1.

Join the community

Please consider subscribing to our mailing list if you're actively using ESPResSo, as we occasionally need community feedback when making decisions on the future of specific features in upcoming releases. You'll also get notifications on bugfix releases.

Please cite us!

If you use ESPResSo to publish scientific results, we would ask you to acknowledge this usage by mentioning the software with its version number and citing the relevant papers. A number of algorithms in ESPResSo are fairly advanced and unique to ESPResSo. The authors of these contributions kindly ask you to cite the relevant publications, as indicated in the documentation. For detailed instructions, see How to cite ESPResSo.

License

Copyright (C) 2010-2022 The ESPResSo project

Copyright (C) 2002-2010 Max-Planck-Institute for Polymer Research, Theory Group

ESPResSo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

espresso's People

Contributors

bogdan-tanygin avatar bors[bot] avatar christophlohrmann avatar davidsean avatar dschwoerer avatar fweik avatar hirschsn avatar hmenke avatar itischler avatar jdegraaf avatar jngrad avatar jonaslandsgesell avatar junghans avatar kaiszuttor avatar kessel avatar kodiakhq[bot] avatar konradbreitsprecher avatar kosovan avatar marcello-sega avatar mehmetsayar avatar mkuron avatar ohickey avatar pkreissl avatar rbardak avatar reinaual avatar rempferg avatar richter-t avatar rudolfweeber avatar sehrhardt avatar stuehn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

espresso's Issues

electrokinetics: print lbforce only works after calling print flux

integrate 1
electrokinetics print lbforce vtk "lbforce.vtk"

This results in a VTK file containing only zeros.

integrate 1
electrokinetics 1 print flux vtk "flux_1.vtk"
electrokinetics 2 print flux vtk "flux_2.vtk"
electrokinetics print lbforce vtk "lbforce.vtk"

This results in a VTK file containing the correct forces.

unexpected lbfluid + inter behavior

If an interaction is set up after the LB fluid, the latter is brought to the initial state (see simple script below)

Is this the expected behaviour or should it be fixed?

setmd box_l 2 2 2
setmd periodic 1 1 1
setmd time_step 0.1
setmd skin 0.1
lbfluid cpu agrid 1 dens 1 visc 1.0 tau 0.1
lbnode 0 0 0 set v 0.1 0.0 0.0
integrate 0
# uncomment the line below to see the "unexpected behavior" (momentum= 0 0 0)
# inter 0 0 lennard-jones 1.0 1.0 0.1

puts "[analyze fluid momentum ]"  ; # this should yield 0.1 0 0 

The stress tensor is broken when used together with p3m

Wed 08 Apr 2015 07:28:51 PM CEST, original submission:
The values in the stress tensor don't make sense when used together with p3m. Stretching in different directions does reflect the symmetry of the system.
As example I have used just a cubic box with salt and stretched a polymer over the main diagonal. Simulations without p3m yielded that the normal components of the unchanged directions are the same. With p3m stretching yields completely different behavior.
A script with the sample system is attached.
Kind regards,
Tobias Richter

topology should be synchronized automatically

Thu 12 Jun 2014 04:05:58 PM CEST, original submission:
At the moment, one has to manually call "analyze set topo_part_sync" to match the topology information stored with the particles and the topology array. This was long ago decided as the synchronization involves a loop over all particles, but really should be done automatically directly after the "analyze set ..." commands.
Otherwise, we would need to check for all analysis functions that use mol_ids and clarify that "analyze set" is not sufficient for them to work, which is really non-obvious.
In addition, this probably means that the mol_id should be a read-only property, since synchronizing back from particle mol_ids will be PITA.

ELC with dielectric contrasts doesn't work

Mon 04 Aug 2014 03:44:21 PM CEST, original submission:
Errors are not huge, but very noticable with single test charges. I fixed one obvious bug which at least in some cases fixes the forces, but so far, don't trust ELC with any dielectrics.

Remove code duplication in integrate function

Integration loop is duplicated between integrate.cpp (velocity verlet/langevin, stepest descend) and integrate_sd.cpp (BD/SD). This will break within weeks. Needs some thoughts because one and two step integrators. Maybe new hooks (on_...).

ghmc_mc() not called if autoupdates are used.

In integrate.cpp the variable 'step' is used to check whether a ghmc_mc() step is done.
If autoupdates of observables or the correlator are activated, step is always 0, and this is never the case.
I could not find it in the user guide that this is the expected behavior.

Temperature in LB_GPU is too high

Fri 30 Jan 2015 05:08:59 PM CET, original submission:
(1) The particle temperature is too high; as determined by running a longer version of the lb_gpu.tcl test case, see figure.
(2) The lb_gpu.tcl (and by extension the lb.tcl) test case uses the instantaneous fluid temperature as its error criterion, this should be the averaged fluid temperature.
(3) The lb fluid temperature may be too high; could not confirm, different seeds gave different averages, see figure for an instance of a too high fluid temperature.
(4) The lb gpu is improperly seeded; it uses global seed plus thread index. If one uses the PID as global seed (as done in the test case) successive runs produce systems with nearly identical progression of the kinetic energy.
(5) In the extended run length version of the lb_gpu.tcl test case there is unexpected divergence of the kinetic energy (temperature) when runs are initialized with identical seeds. They evolve identically at first, but diverge suddenly somewhere between 16000 and 20000 steps (depending on the seed and possibly time step), see attached images. This could be an uninitialized memory issue.
(6) The deviation of the temperature with respect to the input value becomes smaller with smaller time step.

Improve virtual sites and topology handling

Thu 22 Mar 2012 06:02:32 PM CET, original submission:
VIRTUAL_SITES_RELATIVE and VIRTUAL_SITES_COM are implemented in opposite ways.
VIRTUAL_SITES_RELATIVE uses particle properties, while VIRTUAL_SITES_COM uses the topology data.
The first approach seems easy to generalize, however for many molecule the second one save memory as every molecule data is only stores once.
Also the setup is very different VIRTUAL_SITES_RELATIVE uses the part command, while VIRTUAL_SITES_COM uses the "analyze set" command.
The first one is more obvious to use as there is no documentation for the second one ("analyze set chain" is documented, but this is something else).
The suggestion would be to make both accessible via the part command under a "vs" sub-command:
part ... vs relative ...
part ... vs relative_auto ...
part ... vs com ...
With this we can disallow the direct setting of the virtual property via the "part .. virtual {0|1}" command.
Additionally the "analyze set" could be reworked into a topology command:
topology create mol_id parts id id id type int excl {0|1}
topology delete mol_id
topology create mol_id chain ....
With this we can disallow the direct setting of the mol_id property via the "part .. mol_id id" command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.