Skip to content

mphowardlab/gsd-vmd

HOOMD-blue GSD plugin for VMD

Provides a VMD molfile plugin reader for GSD files generated by HOOMD-blue. In order to compile the plugin, you will first need a working installation of VMD. Then, installation can be as simple as

cd /path/to/gsd-vmd
mkdir build && cd build
cmake ..
make install

On Linux, gsd-vmd should automatically detect the location of your VMD installation, provided that it is on your path. On macOS, the VMD installation can be trickier to find. You can hint the location of your VMD plugin directory by setting VMDDIR either as an environment variable or as a build-time definition. Failing this, you can also force the values of your plugin installation directory and plugin include directory with the VMD_PLUGIN_INCLUDE_PATH and VMD_PLUGIN_MOLFILE_PATH. These directories are the location of your plugin headers (e.g., molfile_plugin.h) and system-specific molfile libraries, respectively.

By default, gsd-vmd will be installed into VMD_PLUGIN_MOLFILE_PATH. You can specify an alternative installation location; however, you must ensure that this is added to your VMD search path, which is a tricky endeavour and not recommended. To uninstall the library, simply remove gsdplugin.so from the installation location.

This plugin has been tested on Linux using gcc and clang compilers for x86 architecture. It has also been successfully built for versions of the Mac operating system supporting 32-bit applications. However, beginning with macOS 10.15, VMD is currently not officially supported on macOS because 32-bit applications were deprecated. Users have reported success building the plugin against an unofficial 64-bit port of VMD. If you would like to try this, you should set the CMake option CMAKE_OSX_ARCHITECTURES=x86_64 to only build in 64-bit. No support has been tested for Windows.

To test your build (on Linux), run

make test

out of your build directory. If you have valgrind installed, a memcheck will also be run to detect memory leaks.

Requirements

  • A compiler supporting basic C99 standard (tested gcc and clang)
  • CMake >= 3.1
  • valgrind (optional, for testing only)

Source code

GSD: The GSD library (https://github.com/glotzerlab/gsd) is used for file reading under the following license:

Copyright (c) 2016-2020 The Regents of the University of Michigan
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Catch: The Catch framework is used for unit test validation under the Boost Software License (version 1.0).