Code Monkey home page Code Monkey logo

Comments (4)

mattwthompson avatar mattwthompson commented on May 28, 2024

Having read into some more of the details, this is a little tricky. A custom set of BBCs (using a ChargeIncrementModelHandler) conflicts somewhat with using the default AM1BCC, but this is undocumented in the SMIRNOFF spec.

Electrostatics in general are tricky, and this case is complicated by the fact that it's a mix of "take it or leave it" data from (AM1 or similar methods) and force field parameters (BCCs). The AM1 charges need to be stored at some point, but the BCCs need to be exposed as differentiable objects.

This is probably the time to make electrostatics in general parsed better; the current approach muddies everything up and prevent BCCs or library charges from being exposed as tunable.

There also needs to be some structure for handling metadata (cutoffs, methods, 1-4 scaling factors, etc.) and dispatching the partial charge assignment methods, ideally in a way that is not too specific to SMIRNOFF.

from openff-interchange.

mattwthompson avatar mattwthompson commented on May 28, 2024

I think re-applying BCCs is a use case we value, and we probably want to avoid re-calculating AM1 charges. I'll try caching the AM1 charges so that BCCs can be quickly re-applied.

from openff-interchange.

mattwthompson avatar mattwthompson commented on May 28, 2024

I supposed it's possible that the AM1/AM1-Mulliken call here could be executed by a single function that can also cache AM1BCC values for the <ToolkitAM1BCC> tag ... both could involve similar toolkit calls and caching of results.

from openff-interchange.

mattwthompson avatar mattwthompson commented on May 28, 2024

Implemented

from openff-interchange.

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.