[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