Although the main objective of the framework is to provide an easy and user-friendly solution for simulating colloids immersed in a Lennard-Jones fluid, TKMMD is not limited to this purpose. Other feasible applications include binary and confined fluids, liquid-vapour interfaces and glass transitions.
We strive to make the simulation-driven research on Brownian particles and swimmers as easy and straightforward as possible, while simultaneously being able to harness all the processing power modern cuda-enabled GPU-devices can provide.
To this end we developed a highly specialized C++ template library, utilizing all the nifty features of C++11 and CUDA.
We further reduced the complexities of writing simulation scripts going hand in hand with low-level C++ templates,
by means of a Python-Wrapper focused solely on user-friendliness.
The following example script constructs the initial configuration of a spherical Brownian particle in a LJ-liquid, equilibrates the system, brings the system in a non-equilibrium steady state and subsequently measures a few observables for a specific amount of time.
import tkmmd sim = tkmmd.Simulation(N=160000) fluid = sim.setup_lj_fluid(rho=0.835, T=0.75) colloid = sim.add_spherical_colloid(R=5.1, rho=8, pos=sim.box.center) sim.add_harmonic_trap(colloid, k=2) sim.init() equilibration_steps = sim.equilibrate(T=0.75) colloid.heat(T=1.25) boundary = fluid.boundary(center=colloid.pos) boundary.cool(T=0.75) sim.run(equilibration_steps) colloid.measure.position() colloid.measure.velocity() colloid.measure.angularvelocity() sim.run("11h30m") #or sim.run("10000measurements")