Coding day 2015 non-bonded interactions

=Instructions=

1. Chose a nonbonded interaction to work on. Only begin with Stage 2 after stage 1 is complete. 2. Expose the relevant part of the IA_parameters data structure in src/core/interaction_data.hpp to Cython in src/python/espressomd/interaction_data.pxd. This happens in the section ctypedef struct IA_parameters: Exampel for Lennard Jones: # Lennard Jones double LJ_eps double LJ_sig double LJ_cut ... 3. Find the c-function in the Espresso core which activates the interaction. Most interactions have individual .cpp-files in src/core (lj.cpp, morse.cpp ...) They typically contain a function such as  lennard_jones_set_params 4. Expose this function to Cython in src/python/espressomd/interactions.pxd Example: cdef extern from "lj.hpp": cdef int lennard_jones_set_params(int part_type_a, int part_type_b, 5. In src/python/espressomd/interactions.pyx, implement a class derived from NonBondedInteraction. Use the LennardJonesInteraction class as example 6. Add a test case in testsuite/python/nonBondedInteractions.py. These Tests only test the interface, i.e., whether parameters set euql parameters queried from Espresso

=Tasks=

Stage 1
(shervin, milena)
 * lennard-jones DONE
 * lj-gen DONE
 * tabulated DONE
 * hat
 * yukawa (debye huckel) DONE

Stage 2

 * lj-angle
 * smooth-step
 * hertzian
 * gaussian
 * bmhtf-nacl
 * morse
 * lj-cos
 * buckingham
 * soft-sphere
 * comforce
 * lj-cos2
 * cos2
 * comfixed
 * gay-berne
 * inter_dpd
 * inter_rf
 * tunable_slip
 * molcut
 * affinity