- #1
nitroamos
- 5
- 0
Hello -- I want to solve a very general type of minimization problem. I have 2 rigid bodies (e.g. molecules) which are exerting forces on each other, and I want to minimize the interaction energy (e.g. from a molecular forcefield with terms for things like Coulomb, van der Waals, etc). In general, there are 6 degrees of freedom for moving one of those molecules relative to the other.
Minimizing the translations is straightforward. I calculate the derivatives of the energy on each atom "dE_x" of the movable molecule and sum them all into one x,y,z vector, and this is the derivative of the energy with respect to the 3 translational degrees of freedom "dE_t = \sum{ dE_x }".
What are my options for handling rotation?
I've tried The Google, but I haven't been able to figure out productive search terms... There are quite a few questions embedded in here, but I'm only looking for general advice, references I can read, or better search keywords to find what I'm looking for.
Thanks!
Minimizing the translations is straightforward. I calculate the derivatives of the energy on each atom "dE_x" of the movable molecule and sum them all into one x,y,z vector, and this is the derivative of the energy with respect to the 3 translational degrees of freedom "dE_t = \sum{ dE_x }".
What are my options for handling rotation?
- I have some idea of how rotation matrices might be used. In this case, I'd use 3 matrices, one each for a rotation around 3 axes. A coworker was able to loosely explain how this might work -- something about taking derivatives of the rotation matrix "dx_a", and calculating the dot-product "dE_a = \sum{dE_x . dx_a}". I haven't worked out all the details for myself, because I'm not sure this is the direction I should go.
The problems with this method include the "gimbal lock" problem affecting minimization, and there might be some issues getting the minimizer to handle the angles correctly and efficiently. There's also some question regarding which axes are the best. - Is there a way to do this with quaternions instead? I would like to use them because I already use quaternions to position the molecules in the first place. Quaternions avoid the gimbal lock problem, but it appears that by introducing a new parameter, we now have a constrained minimization problem. Does this mean that quaternions shouldn't be used for this problem?
- Is there some other way I should do this?
I've tried The Google, but I haven't been able to figure out productive search terms... There are quite a few questions embedded in here, but I'm only looking for general advice, references I can read, or better search keywords to find what I'm looking for.
Thanks!