Package: mechanica
MechanicaMechanica is an interactive particle based physics, chemistry and biology
simulation environment, with a heavy emphasis towards enabling users to model
and simulate complex sub-cellular and cellular biological physics
problems. Mechanica is part of the Telluriumhttp://tellurium.analogmachine.orgproject.Mechanica is designed first and foremost to enable users to work interactively
with simulations – so they can build, and run a simulation in real-time, and
interact with that simulation whilst it’s running. The goal is to create an
SolidWorks type environment where users can create and explore virtual models of
soft condensed matter physics, with a emphasis towards biological physics.Mechanica is a native compiled C++ shared library with a native and extensive
Python API, that’s designed to used from an ipython console (or via scripts of
course).HistoryVersion Alpha 1.0.30.3fixed bugs in performance timersVersion Alpha 1.0.30.3imporved logging, file loggingbug fixes in determining if jupyter is runningmore logging infobetter error handlinglog performance countersexpose performance counter in PythonVersion Alpha 1.0.29.0bug fixes in multi-threaded rendering from Pythonbug fixes in jupyter widgetVersion Alpha 1.0.28.0switch to Python 3.9 on Mac.disable jpeg on ARMVersion Alpha 1.0.27.0Added massivly experimental support for ARM on M1 processor. Note, we have no
way of testing this.Version Alpha 1.0.26.0Clipping Planes! users can specify arbitrary clipping planes with nice Python API.Forked Magnum Phong shader, we now have complete control over the shader.Version Alpha 1.0.25.2functions to detect if we are running in interactive terminal or
jupyter notebookstubbed out new jupyter widget file.call jupyter widget init / run if we are running in jupyter notebook server.Version Alpha 1.0.24.1new coupling parameter between single body forces and chemical species on
objects.Version Alpha 1.0.23.1bug fix in DPD potential between fluid and large objectsnew scaled DPD potential that enables fluid interaction between objects of
varying size.Version Alpha 1.0.22.1lots of new bonds method, can iterate network connected by bondsfix in bind, to make bond to instancesfix in parsing boundary conditionsnew ‘reset’ boundary condition for species attached to objects.Version Alpha 1.0.21.1major bug fix in moving particles to different cells if cell has both periodic
and bounce-back boundary conditions.additional particle verify functionsbug fix in virial calculation with DPD potentialsVersion Alpha 1.0.20.1newuniverse.gridmethod to get particles binned on grid locationsimprove error handlingchange some examples to use Morse potentialdoc updatesforce calculation bug fixesVersion Alpha 1.0.19.1new Morse potentialmajor bug fix in potential calculationaddreset_speciesmethod on particle state vectorspecies syntax parsing fixes, read boundary and init condition correctlylots of new view camera rotation functions in python api.Version Alpha 1.0.18.1generalized passive, consumer and producer fluxesbetter OpenGL info reporting,gl_info(),egl_info()enable boundary conditions on chemical species, bug fix parsing init
conditionsuse species boundary value to enable source / sinkssource / sinks in exampleVersion Alpha 1.0.17.1multi-threaded rendering fixesVersion Alpha 1.0.16.2Logging, standardized all logging output, python api for setting log level.fix kinetic energy reportingsynchronize gl contexts between GLFW and Magnum for multi-thread renderingVersion Alpha 1.0.16.2initialize Mechanica either via m.init, m.Simulator, or m.simulator.initVersion Alpha 1.0.16.1finally, completely expunged pybind11! pybind11 is finally GONE!context management methods for multi-threaded headless rendering.universe.reset() method, clears objectsset window title to script nameadd ‘positions()’, ‘velocities()’ and ‘forces()’ methods to particle list.universe.particles() is now a method, and returns a proper listVersion Alpha 1.0.15.5bug fix with boundary condition constantsVersion Alpha 1.0.15.5bug fix with force calculation when distance too short: pic random separation
vector of with minimal distance. Seems to work…better diagnostic messagesadded normal to boundary vectorsVersion Alpha 1.0.15.4generalized boundary conditionsadd potentials to boundary conditionsvelocity, free-slip, no-slip and periodic boundary conditionsrender updates, back face cullingheadless rendering, rendering without X11 using GLES on Linuxgeneralized power potentialmuch improved error handling, much more consistencyparticle list fixesRigid Body Dynamics ! (only cuboids currently supported, but still rigid bodies)add potentials to rigid bodiespython api rigid body updatesrendering updates, more consistency, simplifyrigid body particle interactionsfriction forcemore expunging pybind, soon, soon we will be rid of pybind.bond dissociation_energy (break strength)lattice initializeradd bonds to lattice initliazerperformance loggingupdates to dissipative particle dynamics forcesenable adding DPD force to boundaries.generalized single body force (external force)fluid dynamics examplesvisco-elastic materials, with bond breakingsingle-body time-dependent force definitions in pythonVersion Alpha 1.0.15.2initial dissipative particle dynamicsdoc constant force, DPDVersion Alpha 1.0.15.1Version Alpha 0.0.14.1added convenience methods to get spherical and Cartesian coords from listsupdated example modelsupdate docsadded plot function in examples to plot polar angle velocity.code cleanupVersion Alpha 0.0.14All new FLUX / DIFFUSION / TRANSPORT, We’ve not got
Transport-Dissipative-Dynamics working!!!secrete methods on particle to perform atomic secretebug fixes in neighbor list, make sure neighbor don’t contain the particlebug fixes in harmonic potentialnew overlapped sphere potentialnew potential plotting method, lots of nice improvementsnew examplesupdate become to copy over species valueslattice initializersadd decay to fluxdetect hardware concurrencybug fix in Windows release-mode CPUID crashmulti-threaded integrationall new C++ thread pool, working on getting rid of OpenMP / pthreadsevent system bug fixesdocumentation updatesVersion Alpha 0.0.13preliminary SBML species per object supportSBML parsing, create state vector per objectcpuinfo to determine instruction set supportneighbor list bug fixesimprove and simplify eventson_keypress eventcolormap support per SBML speciesVersion Alpha 0.0.12free-slip boundary conditionsrendering updatesenergy minimizer in initial condition generatorupdates to init condition codeinitial vertex model supportVersion Alpha 0.0.11new linear potentialtriangulated surface mesh generation for spheres, triangulate sphere
surfaces with particles and bonds, returns the set.banded spherical mesh generationbug fixes in making particle list from python listpoints works with spherical geometryinternal refactoring and updatesDynamic Bonds! can dynamically create and destroy bondslots of changes to deal with variable bond numbersrendering updates for dynamic bondsparticle init re-factoradded metrics (pressure, center of mass, etc…) to particle listsadd properties and methods to Python bond APIbond energy calcs avail in pythonbond_str and reprautomatically delete delete bond if particle is deletedVersion Alpha 0.0.10-dev1bug fixes in bond pairwise searchimproved particle__repr__,__str__newstylevisible attribute to style to toggle visibility on any
rendered objectmake show() work in command line modeinternal changes for more consistent use of handles vs direct pointersbind_pairwiseto search a particle list for pairs, and bind them with a
bond.newpointsandrandom_pointsto generate position distributionsspherical plot updatesnewdistancemethod on particlesimplmementbecome– now allow dynamic type changebig fixes in simulation start right away instead of wait for eventbasic bond rendering (still lines, will upgrade to cylinders in futurerender large particles with higher resolutionnew particle list composite structure, all particles returned
to python in this new list type. fast low overhead list.major performance improvment, large object cutoff optimizationnumpy array conversion bug fixneighbor list for particles in rangeenumerate all particles of type with ‘items()’new c++ <-> python type conversions, getting rid of pybind.better error handling, check space cells are compatible with periodic boundary
conditions.addstart,stop,show, etc. methods to top-level as convenience.fix ipython interaction withshow, default is universe not running when showingenable single stepping and visualization with ipythonenable start and stop with keyboard space bar.pressure tensor calculations, add to different objects.newUniverse.centerpropertybetter error handling inUniverse.bindclean up of importing numpyexpose periodic boundary conditions to python.periodic on individual axis.new metrics calculations, including center of mass, radius of gyration,
centroid, moment of inertianew spherical coords methodfrozen particlesadd harmonic term to generalized Lennard-Jones ‘glj’ potentialVersion Alpha 0.0.9-dev4tweaks in example modelsmore options (periodic, max distance) in simulator ctoradd flags to potentialspersistence time in random forcefrozen option for particlesmake glj also have harmonic potentialin force eval, if distance is less than min, set eval force to value at min position.accept bound python methods for eventsVersion Alpha 0.0.9all new cluster dynamics to create sub-cellular element modelscluster splittingsplitting via cleavage planesplitting via cleavage axisother splitting optionsnew potential system to deal with cluster and non-cluster interactionsrevamped generalized Lennard-Jones (glj) potentialnew ‘shifted’ potential takes into account particle radiusupdated potential plottingmore examplesfixed major integrator bugVersion Alpha 0.0.8explicit Bond and Angle objectsnew example appsnew square well potential to model constrained particlesbug fixes in potentialthread count in Simulator initVersion Alpha 0.0.7lots of changes related to running in Spyder.force windows of background process to forgrounddetect if running in IPython connsole – use different message loopfix re-entrancy bugs in ipython message loop.Spyder on Windows tested.Version Alpha 0.0.6lots of changes to simulation running / showing windows / closing windows, etc..documentation updatesVersion Alpha 0.0.5 Dev 1Add documentation to event handlers, and example programsfix bugs in creating event eventsadd version info to build system and make available as API.Version Alpha 0.0.4 Dev 1All new particle rendering based on instanced meshes. Rendering quality is
dramatically improved. Now in a position to do all sorts of discrete elements
like ellipsoids, bonds, rigid particles, etc…Implement NOMStyle objects. This is essentially the CSS model, but for 3D
applications. Each object has a ‘style’ property that’s a collection of all
sorts of style attributes. The renderer looks at the current object, and chain
of parent objects to find style attributes. Basically the CSS approach.More demo applications.Memory bugs resolved.Version Alpha 0.0.3 Dev 1Windows Build!lots of portability updatessome memleak fixesVersion Alpha 0.0.2 Dev 5lots of new documentationreorganize utility stuff to utily fileadd performance timing info to particle engineadd examples (multi-size particles, random force, epiboly,
events with creation, destruction, mitosis, …)new dynamics options, include both Newtonian (Velocity-Verlet) and
over-damped.new defaults to set space cell size, better threadingNew explicit bond objectadd creation time / age to particleparticle fission (mitosis) method (simple)clean up potential flagsharmonic potentialnew reactive potential to trigger (partial implementation)random points function to create points for geometric regionsprime number generatorFixed major bug in cell pair force calculation (was in wrong direction)major bug fix in not making sure potential distance does not go past end of
interpolation segments.new random forcenew soft-sphere interaction potentialadd radius to particle type defupdate renderer to draw different sized particlesadd number of space cells to simulator constructorconfigurable dynamics (Newtonian, Over-damped), more to come
particle delete functionality, and fix particle eventsexamples bind events to destroy, creation and mitosis methodsnew event modelVersion Alpha 0.0.1 Dev 3Refactoring of Particle python meta-types, simpler and cleanerUpgrade to GLFW 3.3New single body generalized force systemBerendsen thermostat as first example single body generalized forcesPer-type thermostatArc-ball user interactionSimplify and eliminate redundancy between C++ and Python apps.Version Alpha 0.0.1 Dev 2First public release