2020-06-12 System Design update
Date
Jun 12, 2020
Participants
@Jeffrey Wagner
@Matt Thompson
Yutong Zhao
Discussion topics
Item | Notes |
---|---|
System jacobian discussion / matrix stuff | A jacobian is a matrix where each element is a function (partial derivatives) It just so happens that, in the FF world, most of the time these evaluate to 1 or 0 In FF-land, the jacobian matrix is “change in system parameter wrt change in FF parameter”
parameterization: R^P -> R^Q Jacobian of parameterization: R^P -> R^PxQ Energies: R^N->R^1 Jacobian of Energy (forces): R^N->R^N JW – Why is jacobian of parameterization so high-dimension on the right? Shouldn’t it just be R^Q as well? YTZ – Jacobian of parameterization has high right dimension because it prepares for worst-case situation where parameters are eg. squared or combined with each other
JW – Is a function different from a matrix? YTZ – Yes. It can include derivatives and other non-matrixy things |
| Example function signature, the function whose derivative is the jacobian that we care about def parameterize(p_bonds, p_torsions, b_idxs, t_idxs):
return p_bonds[b_idxs], p_torsions[t_idxs]
|
Prototype update | (Skipped for time) |
Slots intro | (Jeff talked about how we can’t know, just from the topology, how many system parameters will be applied in some cases, eg impropers) YTZ – We’ve run into this too. We’re handling it somewhat by separating the problem by force type. So
This way, we can at least isolate this uncertainty to CERTAIN parameter types, and make safe assumptions about the value of Q for others.
JW – Keep in mind that this means that analytical differentiation for SMIRKS changes in some parameter types is impossible.
|