VMD 1.9.2 Development
VMD Development Status
- Working toward the first beta release
- fftk: added checks for fwd and rev bond/angle defintions when calculating bonded parameters
- fftk: added proc to reset Gaussian values to defaults, both in init and in gui, for all instances; modified default wat int route from RHF to HF - gaussian can determine R or U
- fftk: fixed dipole angle weighting in objective function
- fftk: fixed order of statments in GenBonded fftk LOG file
- qmtool: fixed Calc Bonded to properly assign force constants to internal coordinates
- fftk: fixed Calc Bonded to properly assign force constants to internal coordinates
- fftk: corrected testreb to testrev in buildpar
- Eliminated old code paths for generating point arrays and pickpoint arrays that predated the new atom selection acceleration logic.
- fftk: fixed plot color variable in colp
- fftk: write charge optimization debugging file to same dir as the log file
- fftk: fixed kmax to refineKmax in refine proc for dihedral optimization
- fftk: fixed problem loading LOG files from previous charge opt runs; data was loading into the wrong column in results box
- fftk: changed QME-MME to MME-QME reported in chargeopt log file
- fftk: fixed problem writing out the optimized geometry to pdb
- fftk: fixed gridding issue with Dipole Weight when mode is set to SA in charge opt
- fftk: added phase lock feature for dihedral optimizations
- fftk: fixed error in setting default upper bound when guessing charge groups for charge opt
- fftk: changed charge sum implementation in charge opt.
- fftk: added dipole weight variable to sanity check, print settings, and build script
- moldenplugin: Use case-insensitive string comparisons when reading shell types from Molden files.
- Added comment about the MacOS X Cocoa workaround based on recent email feedback from Francois-Xavier Coudert who did his own 32-bit MacOS X compilations using FLTK 1.3.0.
- maeffplugin: Fixed uninitialized optflags state in maeffplugin, so that compilations that don't define DESRES_CTNUMBER will behave correctly.
- fftk: added dipole component to charge optimization; updated COLP
- fftk: replaced qmtool parsing of geometry optimization with custom parsing code
- Cranked version
- VMD 1.9.2 alpha 7 (April 4, 2012)
- molefacture: Changed file menu item to reflect that .prm files are not written anymore
- fftk: fixed problem writing new charges to PSF when 'final charges' is empty
- fftk: fixed bug for writing psf with updated charges
- nanotube: allow to set the C-C bond length for carbon nanotubes and graphene sheets. expose this feature to the GUI and step version number to 1.4. update documentation for text mode flags
- fftk: fixed adjust charge in chargeopt results
- fftk: somehow the writeSPfiles command was lost from 'write gaussian input files' section of genzmat
- qmtool: additional fix for G09RevC log file parsing
- qmtool: fixed problem parsing G09RevC log file from fftk hessian calculation
- optimization: Updated optimization makefile for new version number.
- fftk: modifications to charge opt gui; added charge optimization log plotter (COLP)
- fftk: added support for constrained optimization (needed for charges). Requires optimization ver. 1.3.
- optimization: added the complex algorithm for constrained optimization. currently undocumented. cranked version to reflect new functionality.
- molefacture: Re-added mistakenly removed dialogue to write out .top,.pdb and .psf files.
- Added generic PTX generation for compute_20 so that runtime cross-compilation for Kepler will work, even for builds using CUDA 4.0.
- Cranked version
- VMD 1.9.2 alpha 6 (March 21, 2012)
- remote: fixed event handling for the aux buttons on honeycomb tablets that Johan found.
- hesstrans: Patch from Ben Kaduk to make some versions of GNU make happy on FreeBSD.
- fftk: fixed typos in header description
- viewchangerender: Fixed recently introduced bug that causes multiple molecules to show when movetime_vp is called
- fftk: changed path to CHK file from absolute to relative
- Added #ifdef to conditionally compile the multithreaded MPI dynamic work scheduler, so that it doesn't create difficulties on platforms that don't have the MPI includes and libraries.
- Improved floating point type consistency in the multi-touch user interface processing loop for wireless mobile devices.
- Improved floating point type consistency in I/O bandwidth reporting calculations.
- Improved floating point type consistency in QuickSurf resolution slider calculations.
- Improved floating point type consistency in QuickSurf grid padding calculations.
- Eliminated MSVC compiler warnings for floating point type conversion.
- Updated Windows installer with the latest plugins.
- Updated Windows registry key in the startup code.
- Cranked version
- VMD 1.9.2 alpha 5 (March 19, 2012)
- remote: updated android package
- Added MPI_Init_thread() call in place of MPI_Init() when VMD is compiled with threading enabled. Warnings are printed if the MPI implementation does not support at least thread-serialized MPI calls.
- Implemented a multithreaded work scheduler for the MPI "parallel for" command so that node zero does work just like the rest of the nodes. Node zero processes the worker callback activity in the main thread, and runs the dynamic scheduler and MPI message passing operations in the child thread.
- Added some example VMD startup script code for MPI-enabled builds of VMD on clusters that use the PBS batch scheduler. The two examples show how to figure out the right number of nodes to launch on with 'mpirun' or the Cray 'aprun' commands, and in the case of the Cray, we determine the correct number of host threads to use by calling apstat.
- remote: per Johan's request, added the ability to remove all buttons of a button group. This allows the research to "change" the buttons that appear on the screen.
- remote: changed a hardcoded string into a resource and added a self-expiring popup when the vmd server goes away.
- remote: clerical; removed some unneeded string resources and added another
- When VMD is compiled for parallel execution with MPI, we don't allow the Tcl text interpreter to try and read stdin for text input, because it can caus shutdown problems where MPI_Finalize() hangs indefinitely. This was observed both for a classic cluster-based MPICH and the MPI implementation on the NCSA Blue Waters Cray XK6. This patch cures the problem completely on MPICH, still need to verify on the Cray XK6 when the system comes back up.
- Updated the plugin build script for the NCSA 'AC' GPU cluster
- remote: Based on the bugs johan found from having multiple vmd's running at the same time, we reworked the port release code when the user changes the port number of the server so that it is more robust.
- Cranked version
- VMD 1.9.2 alpha 4 (March 17, 2012)
- remote: Fixed a list print that didn't need to be there.
- remote: Added ability for plugins to specify buttons that they want to appear on mobile device. Code similar should be added to the various plugins that want be be "mobile enhanced". All devices should be able to handle at least 5 buttons with short names. Some devices, such as tablets, can handle many more. This limitation will be removed in the future. This will create a "button group" on the mobile device. It will have 4 buttons in it. This button group can be chosen via a menu option on the mobile device for 'choose buttons'. The user can switch between groups of buttons. This will cause the proper tcl code to be executed on the server, if they are either in control or the call has specified that the mobile user doesn't need to be in control for execution to occur. For right now, the button group name and the text to appear on the buttons themselves can't have spaces in it. This limitation will be removed in the future.
- remote: added support for receiving a specific string from the mobile device and sending it back through to the tcl interface. String is a key into a lookup table that will be interpreted by the tcl.
- Increased QuickSurf box padding radius scale factor to prevent clipping of surfaces when large radius scaling factors are used with dense structures, and in certain cases when small radius scaling factors are used.
- viewchangerender: Added correct package requires
- Protect the userdata parameter to the 'parallel for' commands from being evaluated prematurely.
- Added a dynamic load balancer for the "parallel for" command when VMD is running on an MPI-based cluster or supercomputer.
- Implemented command parsing and single-node implementation of a parallel for loop construct. Adding the MPI implementation next.
- viewchangerender: added movie script writing procs for parallel rendering
- viewchangerender: Improved gui behaviour, improved interaction with moviemaker, now also saves movieList, and fixed some minor gui bugs
- viewchangerender: Added ability to switch representations on viewpoint changes and improved interaction with moviemaker
- Silence QuickSurf console output for Blue Waters MPI builds, so we don't get hundreds of thousands of console messages when doing parallel movie rendering jobs on hundreds of nodes.
- remote: cleaned up bitmap viewing a bit so that we get filtering when zoomed in
- remote: fixed a bug that was only occuring on Motorola Xoom when closing a tab. The event handler for the Xoom sends action messages that the other devices don't. Might be an ICS thing (though the events being sent aren't new to ICS)
- fftk: fixed bug in error message
- Added -DUSE_MPI_IN_PLACE for Blue Waters builds since they are based on MPI 2.x which requires the use of MPI_IN_PLACE for several types of collective operations where source and destination buffers are the same.
- Switched MPI calls to check for ifdef on USE_MPI_IN_PLACE rather than on the Blue Waters target platform, since other machines can also MPI implementations that require MPI_IN_PLACE.
- Enabled use of MPI_IN_PLACE with MPI_Allgather[v] operations when compiling for Blue Waters since it supports MPI 2.x.
- Updated Blue Waters plugin targets to use the Cray-specific compilers activated by the modules system.
- Updated VMD startup scripts for BLUEWATERS target.
- Updated the BLUEWATERS build configuration to enable CUDA, using the unusual directory paths needed in the Cray software environment.
- Switched BLUEWATERS build targets to use CUDA instead of OpenCL, since the Cray XK6 has NVIDIA GPUs in it (the IBM Power7 only had OpenCL)
- Updated the BLUEWATERS platform target for the new Cray XK6 platform that has replaced the IBM Power7 target.
- Updated Blue Waters build target with minimal dependencies to get the basic VMD builds bootstrapped on the early science system.
- Added plugins build target for Blue Waters Early Science System.
- Cranked version
- VMD 1.9.2 alpha 3 (March 13, 2012)
- remote: commented out the file deleting for the time being, so that multiple mobile clients can download an image
- Any tcl code can now request that mobile apps display an image. Can be used in external plugin code by doing something like: ::remote::distributeImageToAll /PATH/TO/IMG TitleName or, a specific example might be: ::remote::distributeImageToAll /tmp/VMD_Timeline_Window.png TimeLine This will cause a new tab to appear on the remote device with the contents being the image. For right now, each invocation will cause an additional tab to be created on mobile devices.
- remote: added ability to display images from the server with a tab name specified by the server. Turned off ability to rotate images via pinch/twisting.
- remote: revised message sending to mobile clients to include a specific tag describing the type of message that is being sent, now that we have more than one.
- molefacture: fixed typo when calling alchemify
- Point lights are specified to renderers in world coordinates
- Added initial support for rendering scenes with advanced forms of point lights, spot lights, glow lights, etc, with an initial implementation for the Tachyon renderers. Unlike the existing directional lighting model VMD already supports, the user wants to place these light in the currently active model coordinate system for the "top" molecule, rather than in world coordinates. The first implementation requires that the coordinates be pre-transformed, which we can do using a simple modification of the glowlights scripts people have been using to date. A more robust implementation will do the same thing, but will be implemented entirely internally. I still need to implement the matching GLSL shader code path for the more sophisticated lighting models, once we've tested this well.
- fftk: fixed type in variable name
- Use file scope linkage for internal QuickSurf helper routines that generate the acceleration grid and other temporary data structures. Ultimately, some of these routines should be pulled out of QuickSurf and shared with other algorithms that take advantage of the same kind of spatial decomposition to accelerate calculations using nearest-neighbor information.
- remote: Added Tabs to the app that can be used to switch between the standard touchpad view, and image snapshots that the user can request. Stripped out the previous touchpad layout into its own file so that it can be shown and hidden. Added a new layout for viewing snapshots sent from the server. Added a menu option to take a snapshot of the current VMD view as well as all of the code to send a request to VMD to actually initiate the snapping of the shot. Added infrastructure to receive notice from the server that there is an image that we need to download and display. Snapshot view can be shared with any apps on the device that is configured to consume jpegs. Revised layouts so that the main layout contains a holder for daughter views. Removed title bar to give us a few more pixels of height
- remote: Added proc that renders the current OpenGL window and notifies the client that a snapshot exists. Then launch a webserver to handle the request for said image (which is, currently, deleted after being retrieved). Added proc to process a request coming in from the mobile device. Currently performs a lookup on the request to determine what Tcl needs to be run. Added a user option to give a tmp dir where said image is stored. Rev'd version of tcl package.
- VMD remote control changes: Added passthrough support for messages between the mobile devices and the remote control tcl code: Mobile Device to Tcl: Callback is MobileDeviceCommandEvent, via the variable exposed in tcl-space, vmd_mobile_device_command Added ability to send a message (originating in the remote control plugin tcl) to the mobile device.
- molefacture: Updated documentation link for AmberTools 1.5
- Imported improvements from the Tachyon BMP writer to address the behavior of BMP files loaded for display on Android phone/tablet devices
- Cranked version
- VMD 1.9.2 alpha 2 (March 7, 2012)
- optimization: cranked optimization plugin version due to recent changes
- Migrated the shared QuickSurf object out of DrawMolItem and into DrawMolecule, so that it is shared among all of the reps created for a given molecule. This greatly increases the GPU buffer memory reuse thereby allowing large numbers of QuickSurf reps to run with full acceleration and fewer passes, and it helps ameliorate problems where we can run the GPU completely out of memory in certain dire cases. It is now clear that what we ultimately need is a high-level VMD app-wide GPU temporary buffer management mechanism for things like QuickSurf that need allocate (and ideally repeatedly reuse) a large GPU memory buffer for extremely fast running per-frame calculations used for interactive visualization or analysis tasks. These calculations don't need the contents of the buffer after each iteration, they just need the buffer space itself. This would greatly reduce the performance cost and complexity of memory allocation/deallocation for similar algorithms, and would address the potential problem that multiple independent algorithms in VMD may need such buffers, but acting in isolation in their own interests they would allocate their own private buffers and run the GPU out of memory.
- Added code to catch std::bad_alloc exceptions that can get thrown by Thrust if a GPU memory allocation fails while running the thrust::sort algorithms. In principle this shouldn't ever happen since we allocate safety padding arrays that we subsequently free before calling thrust, but in practice it does, so we need to cope with it by falling back to computing on the host if we run out of GPU memory.
- remote: updates to newer version of android sdk
- fftk: fixed bug writing water single point energy GAU file
- fftk: writes to NUL if in windows
- optimization: simplex now respects bounds
- fftk: commented out depreciated code in buildpar
- fftk: added code to also write single point energy GAU files when writing water interation GAU files
- fftk: modified some labels for clarity; based on group meeting feedback
- fftk: rmse for imported data in visualize results section of dihedral top formatted to 4 decimal places
- Temporarily reverted the MolBrowser GUI update behavior to address bugs that affected updates for multi-molecule selections and file I/O cancel operations, caused by optimizations to update routine that improved performance substantially for cases with thousands of molecules loaded.
- fftk: added button to reset all force constants in dihedral refinement
- fftk: added button for loading dihedral scan LOG files into VMD for visual inspection
- changed CHK specification in GAU header to a relative path (as opposed to an absolute path)
- Use single-precision transcendental functions where possible.
- remote: revised the app so that it now allows orientation changes properly without messing everything up.
- Changed QuickSurf parameter handling for CG and cell models so that in cases where the minimum particle radius is greater than 4.0A, we change from absolute units of Angstroms in the GUI controls, to using relative units based on the minimum particle radius. This allows the default rep parameters and rep control value ranges to work well for a much wider range of models well beyond the normal all-atom case.
- Added a define for VMDPBCSMOOTH so it is always enabled, thereby eliminating the need to explicitly set it in the Windows builds.
- cranked version, and removed VMDPBCSMOOTH flag from configure options since it will now be (essentially) permanently set within the soure code.
- Cranked version
- VMD 1.9.2 alpha 1 (February 23, 2012)
- remote: fix a bug that crept in with the scaling that was causing movement to stop in vmd if the mobile device didn't send any packets
- remote: fixed a bug that was causing no clients to be active when you had multiple clients and the active one disconnected.
- added a tcl command to retrieve the api version supported by the C code.
- remote: added printing of the currently supported API version to the window
- remote: added support for different sensitivity factors for tran, scale, rot
- remote: device can now send a touchpad sensitivity aka scaling factor to the vmd session. The sensitivity factor is set in the preferences at the current time.
- remote: added support for scaling the speed of rotation, translation, scaling based on input from the mobile device
- Removed paratool from the plugin menu since the new FFTK plugin is making excellent progress. We still need to look at what to do about interactions between paratool and autopsf which might now be able to be handled through FFTK.
- qmtool: fixed cart to dih and dih to cart to use proper signed dihedral (atan2, etc)
- fftk: Major revision of charge optimization. Increased speed by orders of magnitude.
- psfplugin: Updated PSF plugin to write 10-char bond records when emitting EXT format files
- added bossconvert to the plugin builds
- No longer doing builds for MacOS X on PowerPC platforms.
- remote: Added detection of vmd server that has gone away
- remote: Added the ability to set the desired API version to send to server. Reordered settings items to be more logical with subheadings.
- remote: Added ability to receive data from VMD. Currently getting list of users (not being used) and who is in control. Control is shown via green or red area.
- Added ability for VMD to send messages to mobile app. Currently only sending a list of connected users and who is in control.
- fftk: fixed major problem with determining angle type definitions when parsing/averaging bonded parameters
- fftk: added 'esc' key binding to dihopt visualize results data tv box to unselect all datasets
- fftk: added event to delete selected charge constraint tv items with 'delete' key
- networkview: updated version to 1.1
- networkview: changes from john eargle on a proc that hadn't been fully converted from arrays
- fftk: fixed mode setting for Build Script of charge optimization
- fftk: fixed memory request in Gaussian input file for hessian calc
- fftk: modify geomopt Gaussian input file to write CHK to CWD
- nanotube: step version to 1.3 and make it depend on the current topotools.
- nanotube: have the nanotube plugin assign segment ids to atoms so that psfgen no longer incorrectly identifies saved psf files as being in X-plor format.
- nanotube: document which atom properties are set by the plugin.
- topotools: step topotools version to 1.3
- topotools: properly fix the bug with detecting invalid commands
- topotools: reduce stack size requirements through avoiding long selection strings detect short reads, e.g. due to a wrong atom style flag, when reading lammps data files.
- topotools: correct logic for printing the help message
- Check for VMDFORCECPUCOUNT environment variable. I should also back-patch this change into the 'sed' script that adapts the Tachyon thread library into the "workforce" version.
- gamessplugin: Fixed reading of minimization steps for latest build of Firefly 8
- fftk: scale energies and distances by tol^2 now in ChargeOpt
- fftk: fixed problem with writing dihedral optimization refinement results to LOG; issue with default file type in file dialog
- fftk: added TODO.txt file
- fftk: fixed gaussian memory setting when writing gaussian input file for hessian calculation
- fftk: more tiny bug fixes
- multiseq: fix a bug noticed by charles.sun1990 at gmail.com, where the ctrl key was not working properly when selecting individual residues. The display update proc was being called for everything but ctrl key selections for some reason.
- qmtool: couple bug fixes to qmtool_readwrite
- remote: made the docs a bit more readable with more HTML formatting
- remote: give better example of a button1Pressed proc in the docs
- viewmaster: updated version number in the docs
- remote: Fixed bad URL in the VMD remote plugin docs.
- nmwiz: Updated version of NMWiz plugin from Ahmet Bakan. This update adds support for a new "porcupine" style vector representation.
- rmsdvt: Updated rmsdvt source file author credits and usage comments per Anssi Nurminen's latest email. Updated the help menu "About" box.
- heatmapper: Updated heatmapper source file author credits and usage comments per Anssi Nurminen's latest email.
- heatmapper: more docs for heatmapper
- bossconvert: fix distrib target for Win32
- rnaview: fixed makefile tabbing in the distrib target
- bossconvert: added bossconvert files to the plugin tree
- Cranked version
- VMD 1.9.1 Final Release (February 4, 2012)
Please email any questions to vmd@ks.uiuc.edu.
footer
