# test of constrained (i.e. projected) forces - two molecules in a box, with the
# sum of their relative separations constrained to 8.0
# Test prepared by Steve Erwin
# Atomic structure
#-----------------
# "molecule A" is atom5+atom6, with separation initially 4.0
# "molecule B" is atom7+atom8, with separation initially 4.0
acell 5 30 5
rprim 1 0 0 0 1 0 0 0 1
ntypat 1
znucl 14
typat 8*1
natom 8
xcart
0 10.0 0
0 13.0 0
0 16.0 0
0 19.0 0
0 -6.0 0
0 -2.0 0
0 6.5 0
0 2.5 0
# Structure optimization
#-----------------------
ionmov 1 # Molecular dynamics with viscosity
tolmxf 1d-3
toldff 1d-5
dtion 350
vis 100
# the following atomic motion algorithms work with the constraints
#ionmov 2 tolmxf 1d-2 toldff 1d-3
#ionmov 3 tolmxf 1d-2 toldff 1d-3
#ionmov 6 tolmxf 1d-2 toldff 1d-3 dtion 350
ntime 10
natfix 4
iatfix 1 2 3 4
# Other variables
#----------------
kptopt 0
nkpt 1
kpt 3*0
wtk 1
# diemac 10
# diemix 0.5
nline 6
ecut 3
nband 20
occopt 3
tsmear 0.04 # to ensure good portability of the test
nstep 100
nconeq 1 # one constraint equation
natcon 4 # four atoms are constrained
iatcon 5 6 7 8 # atom indices for constraints
wtatcon 0 -1 0 0 +1 0 0 +1 0 0 -1 0 # constraint coefficients
prtvol 10 # tells 'constrf.F90' to write forces and projected forces
## After modifying the following section, one might need to regenerate the pickle database with runtests.py -r
#%%
#%% [setup]
#%% executable = abinit
#%% [files]
#%% files_to_test =
#%% t40.out, tolnlines = 7, tolabs = 1.1e-03, tolrel = 5.0e-04, fld_options = -easy
#%% psp_files = 14si.pspnc
#%% [paral_info]
#%% max_nprocs = 1
#%% [extra_info]
#%% authors = S. Erwin
#%% keywords =
#%% description =
#%% 8 atoms of Si in an elongated box.
#%% 4 of them are fixed, while atoms 5 and 6
#%% and 7 and 8 are grouped by pair, such as
#%% the sum of their relative separations along y is constrained to 8.0 .
#%% This is a crazy constraint, just to show that it can be done !
#%% topics = GeoOpt, MolecularDynamics
#%%