Contribute to ForceSolve

Project Links
Project Summary Page

Group Links
Dr. Beck Lab
David Rogers

Further Reading
About Open Source Logo

Become a Contributor!

If you have made some improvements to ForceSolve and want to svn commit them, contact us about joining the development team!

If you want to become a part of the project, but don't know where to start, take a look at the following improvement goals for the project.

Project Goals

Speed Up The Core Solver
Scipy has a nice tutorial on several methods for speeding up execution of compute-intensive parts. There are several options there I would like to explore, but don't have the time. The compute-intensive parts are:
  • Calculating spline design matrices (design_??? in cg_topol).
  • Calculating spline coefficients for design matrices (spline(self, x, nd) in cg_topol/
  • FM: Compiling design matrices (type_sum_D2 in
  • FM: Calculating the Cholesky decomp. and forward+backward substitution functions in
  • MD: Calculating forces and energies (???_force and ???_energy), especially pair_force in cg_topol/???.py).
Special Pairwise Computations
The pairwise computations mentioned above (cg_topol/ could be greatly improved if we added and maintained a pair grid, where each atom was assigned to a grid cell. This would requiring adding a methods to cg_topol to initialize the grid, and another to assign atoms to it, while modifying pair_??? to use the pair_grid object maintained above.
There are some niceties that I would also like to add:
  • Adding appropriate tags to the cg.ff parser to specify the range of each interaction type. Currently, if you want to change the nonbonded cutoff you have to modify the spline_func call at the end of pair_type_calc in Ideally, we could pull this from a parameter during finalize_pair.
  • Same goes for bond length ranges. Angles and Torsions are not so important, since their ranges won't change.
  • Any suggestions for improving the overall layout of the code for enhanced clarity are welcome on the discussion board.