- simple Lennard-Jones systems,
- molecular systems with bond, angle, and torsion potentials,
- confined flow systems, eg., Couette and Poiseuille flows,
- charged systems using shifted force,
- and more ...
At the Octave prompt simply use the command
>> pkg install "https://github.com/jesperschmidthansen/molsim/archive/refs/tags/v<version>.tar.gz"
where <version> is the version number.
Checkout the project example folderI encourage anyone who uses or plans to use molsim to submit problematic issues - this includes issues regarding the documentation. I also welcome contributions to the code for the project, whether it is core features or post simulation data analysis programs.
GNU Octave offers a great C++ interface with the dynamically linked functions (DLDs). However, my experience is that the pure C MEX interface to produces faster running binaries. This is perhaps due to DLD's call-by-value interface giving an additional copying overhead.
Test: The functions below shows a DLD and a MEX version of a function that calculates the sum of an array and updates the array with a number; this is a relevant task in molecular dynamics.
| DLD msum_oct.cpp | MEX msum_mex.c |
|
|
The functions are compiled with or without -Ofast flag. Timing is done by
>> A=randn(1000, 1000); s=zeros(40, 1);
>> for n=1:40; tic(); [sumA A]= msum_oct(A); s(n) = toc(); end;
>> sum(s), mean(s), std(s)
>> for n=1:40; tic(); sumA = msum_oct(A); s(n) = toc(); end;
>> sum(s), mean(s), std(s)
- Feature: Barostate
- Feature: Standard run time sample classes
- Feature: Electrostatic interactions using the Wolf scheme
- Feature: A set of molecular and atomic configurations
- Feature: Molecular class for infrastructure (contained in molsim class)
- Feature: DPD support (initiated)
- Feature: A doc/ directory (initially just a reference to examples/ directory?)
- Revision: Class properties access. Should these be different from public?
- Revision: Define class constants with correct properties (Constant=true)
- Revision: All classes should have a disp method
- Revision: Consider whether methods should have specified properties
- Revision: Naming conventions (at the moment none)
- Revision: ms_molconfig is a mess...
- Revision: Thermostating is hand-held at the moment, should be fixed
