Fixing atoms in structure optimizations

Dear GULP developers,

I am trying to calculate interactions between a porous material (periodic) and molecular adsorbates using structural relaxation with GULP. For many reasons, the porous material is pre-optimized and should not change during the relaxation: only the molecular adsorbate is allowed to relax.

I am aware of the region sub-option for the cartesian option, but am confused on whether GULP treats the porous material and molecule as two separate, non-interacting configurations separately if the molecule is specified as region 1 and the porous material is set as a rigid region 2 (cartesian region 2 rigid). The final output coordinates suggest they’re not interacting and the molecule is relaxing in the absence of the porous material, but I might be doing something wrong.

Is there a way to prevent the atoms from the porous material from relaxing during the (conv) optimization while still allowing it to interact with the molecule?

Thank you very much for your support.

Cheers,
John

Hi John,
If you’ve placed your molecule in region 1 and your framework in region 2 then the molecule should be interacting with the framework while the framework by default will be kept rigid. Of course this is subject to charges/potentials being specified for the interaction. The other (more time consuming) way to achieve this is to get rid of “conv” an specify the optimisation flags for each coordinate (see the manual) so that you can control which atoms are moving and which are fixed.
Cheers

Julian

Dear Julian,

Thank you for your quick reply. I confirm both ways worked for me and returned the same result. What I was doing wrong was defining cartesian region 2 rigid before cartesian region 1 in the input file, assuming the order of the inputs would not make a difference. Once the atoms were reindexed to have region 1 before region 2, however, everything worked as expected.

Thanks again and cheers,
John

Dear John,
Glad it’s all working for you now. Apologies if entering the region numbers in the non-standard order didn’t get handled as expected. I’ll take a look into this. Most files for surface calculations (where the region settings are most commonly used) are written from GDis & so this outputs in the default way GULP expects.
Cheers

Julian

Dear John,
Just an update - it seems the region numbers are actually just applied based on the order of specification rather than by reading the number, so apologies that the help is misleading. I’ve corrected this in the help.txt that comes with the code and will propagate the correction as soon as possible. This means that if you want to switch the order for regions 1 and 2 from the default, it would be necessary to explicitly specify that region 1 is “rigid” and the second region to be “nonrigid”.
Cheers

Julian

1 Like

Dear Julian,

No worries at all. Thanks for the update, the support, and for the awesome package!

Cheers,
John