Dear Yong Liu, The constr.f routine you have to edit is that in the Src directory. I attach my constr.f file for PbTiO3 caclulations, imposing the same symetry that you propose. Notice that in my constr.f subroutine O1 and O2 are atoms number 3 and 4 respectively.
Hope it helps Pablo On 3/30/07, Yong Liu <[EMAIL PROTECTED]> wrote:
Dear Adam, Thank you very much for your kind advice. I tried to use the 'GeometryConstraints' block with 'routine', but what confuses me is that I find two constr.f files in the src and its subdirectory, respectively. Since I have no idiea which one should be edited for the calculation and find that ZMatrix also can provide the constraints on the geometry relaxation, the latter will be used. After this calculation, I will try both constr.f files one by one. 2007/3/30, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > > Dear Yong Liu, > > > I also found the 'routine' of 'GeometryConstraints' in the manual. > But > > it's too brief for me to use it. Would you mind send me some > detail > > information about this trick? > > Z-matrix was also suggested but if does not work then you can use the > GeometryConstraints block with 'routine'. It means that SIESTA will use > the constraints defined in constr.f file. Unfortunately, I do not find > my > original files as example but I give you some hints. > > By default, constr.f file does not effect the calculation, it is a > template file. You should edit this file and program your constraints > for > your particular input. > > Your input: > > >>which has a=b!=c, Pb(0,0,x1), > > > > > Ti(0.5,0.5,x2),O1(0,0.5,x3),O2(0.5,0,x3),O3(0.5,0.5,x4) > > Then you should program that: > > cell(1,1)=cell(2,2) > cell(1,2)=0.0 > cell(1,3)=0.0 > cell(2,1)=0.0 > cell(2,3)=0.0 > cell(3,1)=0.0 > cell(3,2)=0.0 > > With this you define a=b!=c system. More important you should define the > constraints for stress matrix: > > stress(1,1)=stress(2,2) ,etc. > > if the order of your atoms is set as you listed above: > > ! the third coordinate of the given atom should be the multiplication of > ! the third coordinate of the first atom > xa(3,2)= xa(3,1)*2 > xa(3,3)= xa(3,1)*3 > xa(3,4)= xa(3,1)*3 > xa(3,5)= xa(3,1)*4 > > and you can fix the other coordinates as well. It is important to > symmetrize your atomic forces as well ('fa' array). This will ensure > that > you will keep the symmetry during the optimization. You have to look at > the source code for the meaning of 'ntcon' and how to set it. Maybe, it > is > needed for normalization of the forces but I do not remember for that > any > more. > > After you programmed it you should compile the code and run it. I advise > you to first to try it on very simple examples (like small symmetric > molecules), then for very simple lattice (to compute the symmetric > stress > tensor) and, then to apply for your problem. > > Yours, > Adam > > > ------------------------------------------------------------------------------- > Dr. Gali Ádám Adam Gali, PhD > > Budapesti Műszaki és Department of Atomic Physics, > Gazdaságtudományi Egyetem, Budapest University of > Technology and > Atomfizika Tanszék Economics > Budapest, Budafoki út 8., 1111 Budafoki út 8., H-1111, > Budapest, > Hungary > > telefon: 463-1580 telephone: [36]-(1)-463-1580 > fax: 463-4357 fax: [36]-(1)-463-4357 > > e-mail: [EMAIL PROTECTED] > http://www.fat.bme.hu/homepages/galia/index.en.html > ------------------------------------------------------------------------------- > -- Best regards. ------------------------------------------------------------------------------------- Liu, Yong, Ph D Institute of Inorganic Materials, Department of Materials Science and Engineering, Zhejiang University,PR China
-- ----------------------------------------------------------- Pablo Aguado Puente [EMAIL PROTECTED] ------------------------------------------------------------