[ghemical-devel] Frozen Atoms

Tommi Hassinen thassine at messi.uku.fi
Thu Mar 2 05:11:20 EST 2006


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



More information about the ghemical-devel mailing list