Dear all,

I encounter a problem which I think has already been mentionned in previous messages: when simulating surfaces (i.e. slabs + vacuum), the SCF loop goes completely crazy after some iterations. In my case, this is always the same scenario:
- for small slabs (~ 4-5 layers) it works perfectly
- when the thickness increases, the SCF loop goes crazy, like that:

siesta: iscf Eharris(eV) E_KS(eV) FreeEng(eV) dDmax Ef_up Ef_dn(eV) siesta: 1 -33906.0903 -33846.2100 -33846.2100 0.9317 -4.0527 -4.0527
timer: Routine,Calls,Time,% = IterSCF        1    1060.402  74.54
elaps: Routine,Calls,Wall,% = IterSCF        1    2120.809  77.15
siesta: 2 -34774.8916 -33783.9534 -33783.9671 63.0993 -2.7994 -2.7994 siesta: 3 -59491.0873 -32509.4245 -32509.4388109.3144 -76.4386 -76.4386 siesta: 4 -111533.4330 -22127.9203 -22127.9366147.8978-277.2337-277.2337 siesta: 5 -77233.2656 -25713.9823 -25714.0108127.3315-162.8721-162.8721 siesta: 6 -61186.4413 -27094.5345 -27094.5430146.7737 -54.6958 -54.6958 siesta: 7 -119320.5730 -17529.8343 -17529.8563 63.4149-285.2653-285.2653 siesta: 8 -92386.7875 -18939.3725 -18939.3917193.6104-261.1572-261.1572
....
etc... until the last iteration of the loop:
siesta: 144 -49241.0248 -23355.0125 -23355.0307 89.2656 -36.4019 -36.4019 siesta: 145 -88556.6170 -21558.7038 -21558.7083 63.0390-173.2360-173.2360 siesta: 146 -92624.4787 -17754.6189 -17754.6299 75.6454-241.8001-241.8001 siesta: 147 -63806.0777 -23578.2794 -23578.3094 69.1123-101.6597-101.6597 siesta: 148 -87399.0418 -23078.6146 -23078.6443200.3330-112.9953-112.9953 siesta: 149 -103152.0975 -15736.6015 -15736.6163 87.2093-268.4937-268.4937

Of course the forces have very large values and it is impossible to optimize the structure. The example above is taken from BiFeO3 slabs, but I had exactly the same problem with
1) BaTiO3 slabs (so this is not related to magnetism)
2) Pt slabs

In this example, the 4-layer slab has been perfectly converged and optimized
(supercell height 5.517471 x 2.84 ang). The SCF loop goes crazy in the case of 6 layers (supercell height 5.517471 x 3.20 ang).

This is not a question of compilation since I have the same problem on different machines (PC linux and SGI altix supercomputer). According to me this is specific to systems in which there is vacuum.

Does anybody have an idea to correct the problem?
Thanks in advance!
Gregory

Here follows my complete input file:


#
# General system descriptors
#

SystemName     BFO
SystemLabel    BFO
NumberOfAtoms          30
NumberOfSpecies         3
%block ChemicalSpeciesLabel
      1      83     Bi
      2      26     Fe
      3       8     O
%endblock ChemicalSpeciesLabel

#
# Basis definition
#

PAO.EnergyShift  0.01 Ry
PAO.BasisType    split
block PAO.Basis < basis.fdf
%block PS.lmax
   Bi    3
   Fe    3
    O    3
%endblock PS.lmax

#
# Lattice, coordinates, k-sampling
#

LatticeConstant       5.517471 Ang
%block LatticeVectors
1.00  0.00  0.00
0.00  1.00  0.00
0.00  0.00  3.20
%endblock LatticeVectors

AtomicCoordinatesFormat            Bohr
%block AtomicCoordinatesAndAtomicSpecies
   0.00000   0.00000   0.00000  1
   5.21326   5.21326   0.00000  1
   0.00000   0.00000   7.40297  1
   5.21326   5.21326   7.40297  1
   0.00000   0.00000  14.80550  1
   5.21326   5.21326  14.80550  1
   0.00000   5.21326   3.70126  2
   0.00000   5.21326  11.10424  2
   5.21326   0.00000   3.70126  2
   5.21326   0.00000  11.10424  2
   0.00000   5.21326  18.50676  2
   5.21326   0.00000  18.50676  2
   0.00000   5.21326   0.00000  3
   5.21326   0.00000   0.00000  3
   0.00000   5.21326   7.40297  3
   5.21326   0.00000   7.40297  3
   2.60663   2.60663   3.70126  3
   7.81988   7.81988   3.70126  3
   2.60663   7.81988   3.70126  3
   7.81988   2.60663   3.70126  3
   2.60663   2.60663  11.10424  3
   7.81988   7.81988  11.10424  3
   2.60663   7.81988  11.10424  3
   7.81988   2.60663  11.10424  3
   0.00000   5.21326  14.80550  3
   5.21326   0.00000  14.80550  3
   2.60663   2.60663  18.50676  3
   7.81988   7.81988  18.50676  3
   2.60663   7.81988  18.50676  3
   7.81988   2.60663  18.50676  3
%endblock AtomicCoordinatesAndAtomicSpecies


# Magnetism
FixSpin               .true.
TotalSpin               0.0
NonCollinearSpin      .false.

%block DM.InitSpin
   7   +     # Atom index, spin, theta, phi (deg)
   8   -
   9   -
   10  +
   11  +
   12  -
%endblock DM.InitSpin


%block kgrid_Monkhorst_Pack
   4   0   0    0.0
   0   4   0    0.0
   0   0   1    0.0
%endblock kgrid_Monkhorst_Pack


#
# DFT, Grid, SCF
#

XC.Functional          LDA
XC.Authors             CA                 # CA = Ceperley-Alder
SpinPolarized          .true.
MeshCutoff             200 Ry


Diag.DivideAndConquer   .false.
#note: this one has been added after the message:
#Failure to converge standard eigenproblem Stopping Program from Node: 0


DM.MixingWeight        0.1000      # New DM amount for next SCF cycle
DM.Tolerance           1.d-5       # Tolerance in maximum difference
                                   # between input and output DM
DM.NumberPulay         3
#DM.NumberKick          21
#DM.KickMixingWeight    0.200
MaxSCFIterations       150


#
# Eigenvalue problem: order-N or diagonalization
#

SolutionMethod         diagon
ElectronicTemperature  300 K

#
# Molecular dynamics and relaxations
#

MD.TypeOfRun            CG          # Type of dynamics:
                                    #   - CG
                                    #   - Verlet
                                    #   - Nose
                                    #   - Parrinello-Rahman
                                    #   - Nose-Parrinello-Rahman
                                    #   - Anneal
                                    #   - FC
MD.VariableCell         .false.     # The lattice is relaxed together with
                                    # the atomic coordinates?
MD.NumCGsteps            300         # Number of CG steps for
                                    #   coordinate optimization
MD.MaxCGDispl           0.5 Bohr    # Maximum atomic displacement
                                    #   in one CG step
MD.MaxForceTol          0.01 eV/Ang # Tolerance in the maximum
                                    #   atomic force
MD.MaxStressTol         0.0005 eV/Ang**3

#
# Output options
#

LongOutput              .false.
WriteCoorStep           .true.
WriteForces             .true.
WriteMullikenPop        0            # Write Mulliken Population Analysis
                                     #   - 0 = None
                                     #   - 1 = atomic and orbital charges
                                     #   - 2 = 1 + atomic overlap population
                                     #   - 3 = 2 + orbital overlap population
WriteCoorXmol           .true.
WriteMDCoorXmol         .false.
WriteMDhistory          .false.
WriteEigenvalues        .true.
AllocReportLevel        2            # Sets the level of the allocation report
                                     #   - 0 = No report at all (default)
# - 1 = Only total memory peak and where
                                     #         it ocurred
                                     #   - 2 = detailed report printed only
                                     #         at normal program termination
                                     #   - 3 = detailed report printed at
                                     #         every new memory peak
                                     #   - 4 = print every individual
                                     #         (re)allocation or deallocation

#
# Options for saving/reading information
#

DM.UseSaveDM            .false.      # Use DM Continuation files
MD.UseSaveXV            .false.      # Use stored positions and velocities
MD.UseSaveCG            .false.      # Use CG history information
SaveRho                 .false.      # Write valence pseudocharge at the mesh
SaveDeltaRho            .false.      # Write RHOscf-RHOatm at the mesh
SaveElectrostaticPotential .false.   # Write the total elect. pot. at the mesh
SaveTotalPotential      .false.      # Write the total pot. at the mesh
#WriteSiestaDim         .false.      # Write minimum dim to siesta.h and stop
WriteDenchar            .false.      # Write information for DENCHAR


My basis and pseudopotentials include semicore electrons for Bi and Fe and perfectly work for bulk R3c BiFeO3:

PAO.BasisType    split
%block PAO.Basis
Bi    4
 n=5    2    2  P  1
   0.000        0.000
   1.000        1.000
 n=6    0    2  P  1
   0.000        0.000
   1.000        1.000
 n=6    1    2  P  1
   0.000        0.000
   1.000        1.000
 n=7    0    1
   0.000
   1.000
Fe    4
 n=3    1    2  P  1
   0.000        0.000
   1.000        1.000
 n=4    0    2  P  1
   0.000        0.000
   1.000        1.000
 n=3    2    2  P  1
   0.000        0.000
   1.000        1.000
 n=4    1    1
   0.000
   1.000
O    2
 n=2   0   2
   0.000      0.000
   1.000      1.000
 n=2   1   2 P   1
   0.000      0.000
   1.000      1.000
%endblock PAO.Basis

Reply via email to