GithubHelp home page GithubHelp logo

Comments (4)

peastman avatar peastman commented on June 7, 2024

Do you want to calculate the field at a lot of points, or just a few? You can compute the field at a single point by putting a probe particle there with charge 1 and epsilon 0, then computing the force. Put the NonbondedForce in its own force group and use the groups argument to getState(). That only works for one point at a time, though, since multiple probe particles would interact with each other.

from openmm.

tomfay avatar tomfay commented on June 7, 2024

(Apologies for my slow response). That would seem to work - presumably you also need to calculate the Nonbonded energy in the absence of the probe particle and subtract this from the Nonbonded energy with the probe particle?

I'm really interested in doing this for multiple points at every time-step of a simulation. It seems like there should be a more direct way of extracting this?

from openmm.

peastman avatar peastman commented on June 7, 2024

I would probably use two different NonbondedForces. One would be for running the simulation, and would set the probe particle to have charge 0 so it doesn't interact at all. The other would be for evaluating the force on the probe particle, and would be in a force group that doesn't affect the simulation (call setIntegrationForceGroups() on the Integrator).

To compute the electric field, you just need the force on the probe particle. If you want the potential, you'll need to compute the energies from both NonbondedForces and subtract.

This will be very inefficient if you want to compute fields at multiple points in every step of a simulation. In principle it could be computed much faster, but that would require NonbondedForce to provide support for it directly. Currently it doesn't.

from openmm.

mdpoleto avatar mdpoleto commented on June 7, 2024

@tomfay is there a particular reason to extract these fields from OpenMM? Another option is to use TUPÃ (https://github.com/mdpoleto/tupa) to calculate the electric fields at any given point in the simulation box using over multiple trajectory frames using a real distance approach. In principle, the PME contribution beyond 15A to the field is minor (smaller than st.deviation), so a real distance approach is reasonable.

from openmm.

Related Issues (20)

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.