Hello, and sorry for answering so late ; yesterday I had too many other things to worry about. But in fact I have already added a simple support for "frozen atoms" ; it only applies to geometry optimization and molecular dynamics, but it should work for all "engine" classes since it is independent of them. Please see the file src/atom.h around line 108 ; there is this definition: #define ATOMFLAG_USER_LOCKED (1 << 2) It is a definition for an "atomflag" bit, that causes the atom coordinates to be locked if set into atom::flags of the corresponding atom. This is a code example how you can set the flag for an atom object: atom * someatom; // this is a pointer to the atom object. someatom->flags |= ATOMFLAG_USER_LOCKED; // set the flag. Unfortunately there is not yet any user interface where one could set these flags ; the feature has existed only for my own use. > changes I made in Ghemical-GMS before) As of now I'm only playing with > tripos engine and it works pretty good, the changes shouldn't be too > hard for the rest of the MM engines. In my implementation I still calculate the forces (that is, the d1 array elements) for all atoms, and I just refuse to move them or assign them a non-zero velocity in geomopt/moldyn code. You can find the code by simply grepping for string ATOMFLAG_USER_LOCKED. > Here is a "coding standards" question. If i'm coding in a boolean field > would you prefer that it be type 'bool' or 'int'? I chose 'int' on the > basis it's C and more compatible with the GTK stuff *shrug*. I use bool if I'm sure that the values for this field will always be either 0 or 1 ; else I use an int. You don't need to think about the C language because ghemical/libghemical always need a C++ compiler. Regards, Tommi