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")