Commit 18169e7a authored by Gregor Michalicek's avatar Gregor Michalicek

Implementation of basic Wannier input in inp.xml

...still buggy and very incomplete.

The new test does not pass yet but it might already work.
parent 238fc39a
......@@ -59,7 +59,7 @@ CONTAINS
INTEGER i,i1 ,j,jsp,jsp1,k,ne,nn,nn1,nrec,info
INTEGER idim_c,idim_r,jsp2,nbas,j1
CHARACTER vectors
LOGICAL l_file,l_socvec,l_qsgw,l_open,l_real
LOGICAL l_socvec,l_qsgw,l_open,l_real
INTEGER irec,irecl_qsgw
COMPLEX cdum
! ..
......@@ -316,14 +316,13 @@ else
! i +
! reorder new e.w. in 2x2 spin space : zhelp(,1),zhelp(,2)
!
INQUIRE (file='wann_inp',exist=l_file)
DO i1 = 1,2
jsp = i1
jsp2= i1
IF (input%jspins.EQ.1) jsp = 1
IF (input%jspins.EQ.1 .AND..NOT.(l_file.OR.l_socvec)) jsp2=1
IF (input%jspins.EQ.1 .AND..NOT.(input%l_wann.OR.l_socvec)) jsp2=1
IF (i1.EQ.1) nn = 0
IF (i1.EQ.2) nn = nsz(1)
......
......@@ -51,7 +51,7 @@ CONTAINS
! .. Local Scalars ..
INTEGER i,j,nk,jspin,n ,l
INTEGER n_loc,n_plus,i_plus,n_end,nsz,nmat
LOGICAL l_file,l_socvec !,l_all
LOGICAL l_socvec !,l_all
INTEGER wannierspin
TYPE(t_enpara) :: enpara
TYPE(t_usdus):: usdus
......@@ -90,8 +90,7 @@ CONTAINS
enpara%evac0(2,DIMENSION%jspd),enpara%ello0(atoms%nlod,atoms%ntype,DIMENSION%jspd),&
enpara%el0(0:atoms%lmaxd,atoms%ntype,DIMENSION%jspd))
INQUIRE (file='wann_inp',exist=l_file)
IF (l_file.OR.l_socvec) THEN
IF (input%l_wann.OR.l_socvec) THEN
wannierspin = 2
ELSE
wannierspin = input%jspins
......
......@@ -39,23 +39,35 @@ contains
kpts%nkpt = kpts%nkpt3(1) * kpts%nkpt3(2) * kpts%nkpt3(3)
END IF
IF (input%l_wann) THEN
IF (kpts%specificationType.NE.2) THEN
CALL juDFT_error('l_wann only with kPointMesh', calledby = 'kpoints')
END IF
END IF
IF (.NOT.l_kpts) THEN
IF (.NOT.oneD%odd%d1) THEN
IF (jij%l_J) THEN
IF (input%l_wann) THEN
sym_hlp=sym
sym_hlp%nop=1
sym_hlp%nop2=1
CALL kptgen_hybrid(kpts,sym_hlp%invs,noco%l_soc,sym_hlp%nop,sym_hlp%mrot,sym_hlp%tau)
ELSE IF ((jij%l_J)) THEN
sym_hlp=sym
sym_hlp%nop=1
sym_hlp%nop2=1
CALL julia(sym_hlp,cell,input,noco,banddos,kpts,.FALSE.,.TRUE.)
ELSE IF(kpts%l_gamma .and. banddos%ndir .eq. 0) THEN
ELSE IF (kpts%l_gamma.and.(banddos%ndir.eq.0)) THEN
CALL kptgen_hybrid(kpts,sym%invs,noco%l_soc,sym%nop,sym%mrot,sym%tau)
ELSE
CALL julia(sym,cell,input,noco,banddos,kpts,.FALSE.,.TRUE.)
END IF
ELSE
STOP 'Error: No kpoint set generation for 1D systems yet!'
CALL juDFT_error('Error: No kpoint set generation for 1D systems yet!', calledby = 'kpoints')
CALL od_kptsgen (kpts%nkpt)
END IF
END IF
!Rescale weights and kpoints
kpts%wtkpt(:) = kpts%wtkpt(:) / sum(kpts%wtkpt)
......@@ -63,7 +75,5 @@ contains
kpts%posScale = 1.0
IF (kpts%nkpt3(3).EQ.0) kpts%nkpt3(3) = 1
end subroutine kpoints
end module m_kpoints
......@@ -1877,13 +1877,14 @@ SUBROUTINE r_inpXML(&
ELSE
wann%band_max(2) = wann%band_max(1)
END IF
wann%l_byindex = .TRUE.
END IF
xPathA = '/fleurInput/output/wannier/jobList'
numberNodes = xmlGetNumberOfNodes(xPathA)
IF (numberNodes.EQ.1) THEN
xPathA = 'normalize-space(/fleurInput/output/wannier/jobList/text())[1]'
xPathA = '/fleurInput/output/wannier/jobList/text()'
! Note: At the moment only 255 characters for the text in this node. Maybe this is not enough.
valueString = xmlGetAttributeValue(TRIM(ADJUSTL(xPathA)))
......
......@@ -109,7 +109,7 @@ CONTAINS
! .. Local Scalars ..
INTEGER:: eig_id, archiveType
INTEGER:: n,it,ithf,pc
LOGICAL:: stop80,reap,l_endit,l_opti,l_cont,l_qfix, l_error
LOGICAL:: stop80,reap,l_endit,l_opti,l_cont,l_qfix, l_error, l_wann_inp
REAL :: fermiEnergyTemp, fix
!--- J<
INTEGER :: phn
......@@ -152,11 +152,11 @@ CONTAINS
!+Wannier
input%l_wann = .FALSE.
INQUIRE (file='wann_inp',exist=input%l_wann)
INQUIRE (file='wann_inp',exist=l_wann_inp)
input%l_wann = input%l_wann.OR.l_wann_inp
IF (input%l_wann.AND.(mpi%irank==0).AND.(.NOT.wann%l_bs_comf)) THEN
IF(mpi%isize.NE.1) CALL juDFT_error('No Wannier+MPI at the moment',calledby = 'fleur')
CALL wann_optional(input,atoms,sym,cell,oneD,noco,wann)
CALL wann_optional(input,kpts,atoms,sym,cell,oneD,noco,wann)
END IF
IF (wann%l_gwf) input%itmax = 1
......@@ -559,10 +559,8 @@ CONTAINS
! ----> charge density
!
!+Wannier functions
input%l_wann = .FALSE.
INQUIRE (file='wann_inp',exist=input%l_wann)
IF ((input%l_wann).AND.(.NOT.wann%l_bs_comf)) THEN
CALL wannier(DIMENSION,mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,&
CALL wannier(DIMENSION,mpi,input,kpts,sym,atoms,stars,vacuum,sphhar,oneD,&
wann,noco,cell,enpara,banddos,sliceplot,vTot,results,&
eig_idList,(sym%invs).AND.(.NOT.noco%l_soc).AND.(.NOT.noco%l_noco),kpts%nkpt)
END IF
......
......@@ -137,6 +137,7 @@
ENDIF
ENDIF
input%l_wann = .FALSE.
CALL initWannierDefaults(wann)
input%minDistance = 0.0
......@@ -574,17 +575,8 @@
END IF
! Initializations for Wannier functions (start)
wann%l_ms=.false.
wann%l_sgwf=.false.
wann%l_socgwf=.false.
wann%l_gwf=.false.
wann%l_bs_comf=.false. !.true.
wann%scale_param = 1.0
wann%aux_latt_const = 8.0!5.5!5.45886450 !5.98136400 !8.0725882513951497 !5.4170 !1.0
wann%param_file='qpts'
wann%l_dim=.false.
IF (mpi%irank.EQ.0) THEN
#ifdef CPP_WANN
#ifdef CPP_WANN
INQUIRE(FILE='plotbscomf',EXIST=wann%l_bs_comf)
WRITE(*,*)'l_bs_comf=',wann%l_bs_comf
WRITE(*,*) 'Logical variables for wannier functions to be read in!!'
......
......@@ -17,8 +17,8 @@ endif()
#Add Wannier tests if fleur is compiled with Wannier support
if (${FLEUR_USE_WANN})
set(Testdirs ${Testdirs} Cwann)
set(ParTestdirs ${ParTestdirs} Cwann)
set(Testdirs ${Testdirs} Cwann CwannXML)
set(ParTestdirs ${ParTestdirs} Cwann CwannXML)
endif()
#The serial tests
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fleurInput fleurInputVersion="0.29">
<comment>
unnamed project
</comment>
<calculationSetup>
<cutoffs Kmax="4.00000000" Gmax="13.79155315" GmaxXC="11.60000000" numbands="0"/>
<scfLoop itmax="1" minDistance=".00000000" maxIterBroyd="99" imix="Anderson" alpha=".05000000" spinf="2.00000000"/>
<coreElectrons ctail="T" frcor="F" kcrel="0" coretail_lmax="99"/>
<magnetism jspins="1" l_noco="F" l_J="F" swsp="F" lflip="F"/>
<soc theta=".00000000" phi=".00000000" l_soc="F" spav="F" off="F"/>
<nocoParams l_ss="F" l_mperp="F" l_constr="F" l_disp="F" sso_opt="FFF" mix_b=".00000000" thetaJ=".00000000" nsh="0">
<qss>.0000000000 .0000000000 .0000000000</qss>
</nocoParams>
<expertModes gw="0" pot8="F" isec1="99" secvar="F"/>
<geometryOptimization l_f="F" xa="2.00000000" thetad="330.00000000" epsdisp=".00001000" epsforce=".00001000"/>
<ldaU l_linMix="F" mixParam=".050000" spinf="1.000000"/>
<bzIntegration valenceElectrons="8.00000000" mode="hist" fermiSmearingEnergy=".00100000">
<kPointCount count="3" gamma="F">
</bzIntegration>
<energyParameterLimits ellow="-.80000000" elup="1.50000000"/>
</calculationSetup>
<cell>
<symmetryOperations>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
</symmetryOperations>
<bulkLattice scale="1.0000000000" latnam="any">
<bravaisMatrix>
<row-1>.0000000000 3.3710000000 3.3710000000</row-1>
<row-2>3.3710000000 .0000000000 3.3710000000</row-2>
<row-3>3.3710000000 3.3710000000 .0000000000</row-3>
</bravaisMatrix>
</bulkLattice>
</cell>
<xcFunctional name="pbe" relativisticCorrections="F"/>
<atomSpecies>
<species name="C-1" element="C" atomicNumber="6" coreStates="1" magMom=".00000000" flipSpin="T">
<mtSphere radius="1.28000000" gridPoints="311" logIncrement=".03200000"/>
<atomicCutoffs lmax="6" lnonsphr="4"/>
<energyParameters s="2" p="2" d="3" f="4"/>
</species>
</atomSpecies>
<atomGroups>
<atomGroup species="C-1">
<relPos label=" 1">-1.000/8.000 -1.000/8.000 -1.000/8.000</relPos>
<relPos label=" 2">1.000/8.000 1.000/8.000 1.000/8.000</relPos>
<force calculate="F" relaxXYZ="FFT"/>
<nocoParams l_relax="F" l_magn="F" M=".00000000" alpha=".00000000" beta=".00000000" b_cons_x=".00000000" b_cons_y=".00000000"/>
</atomGroup>
</atomGroups>
<output dos="F" band="F" vacdos="F" slice="F">
<checks vchk="F" cdinf="F" disp="F"/>
<densityOfStates ndir="0" minEnergy="-.50000000" maxEnergy=".50000000" sigma=".01500000"/>
<vacuumDOS layers="0" integ="F" star="F" nstars="0" locx1=".00000" locy1=".00000" locx2=".00000" locy2=".00000" nstm="0" tworkf=".00000"/>
<plotting iplot="F" score="F" plplot="F"/>
<chargeDensitySlicing numkpt="0" minEigenval=".00000000" maxEigenval=".00000000" nnne="0" pallst="F"/>
<specialOutput eonly="F" bmt="F"/>
</output>
</fleurInput>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fleurInput fleurInputVersion="0.29">
<comment>
unnamed project
</comment>
<calculationSetup>
<cutoffs Kmax="4.00000000" Gmax="13.79155315" GmaxXC="11.60000000" numbands="0"/>
<scfLoop itmax="1" minDistance=".00000000" maxIterBroyd="99" imix="Anderson" alpha=".05000000" spinf="2.00000000"/>
<coreElectrons ctail="T" frcor="F" kcrel="0" coretail_lmax="99"/>
<magnetism jspins="1" l_noco="F" l_J="F" swsp="F" lflip="F"/>
<soc theta=".00000000" phi=".00000000" l_soc="F" spav="F" off="F"/>
<nocoParams l_ss="F" l_mperp="F" l_constr="F" l_disp="F" sso_opt="FFF" mix_b=".00000000" thetaJ=".00000000" nsh="0">
<qss>.0000000000 .0000000000 .0000000000</qss>
</nocoParams>
<expertModes gw="0" pot8="F" isec1="99" secvar="F"/>
<geometryOptimization l_f="F" xa="2.00000000" thetad="330.00000000" epsdisp=".00001000" epsforce=".00001000"/>
<ldaU l_linMix="F" mixParam=".050000" spinf="1.000000"/>
<bzIntegration valenceElectrons="8.00000000" mode="hist" fermiSmearingEnergy=".00100000">
<kPointMesh nx="2" ny="2" nz="2" gamma="F"/>
</bzIntegration>
<energyParameterLimits ellow="-.80000000" elup="1.50000000"/>
</calculationSetup>
<cell>
<symmetryOperations>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>1 1 1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>-1 -1 -1 .5000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 0 -1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 0 -1 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>0 1 0 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>-1 0 0 .0000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 1 1 .5000000000</row-1>
<row-2>0 -1 0 .0000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 1 .0000000000</row-1>
<row-2>1 0 0 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 0 -1 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 -1 -1 .5000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>-1 0 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>0 -1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 -1 0 .0000000000</row-1>
<row-2>1 1 1 .5000000000</row-2>
<row-3>-1 0 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>0 0 1 .0000000000</row-2>
<row-3>0 1 0 .0000000000</row-3>
</symOp>
<symOp>
<row-1>1 0 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>
<symOp>
<row-1>0 1 0 .0000000000</row-1>
<row-2>-1 -1 -1 .5000000000</row-2>
<row-3>0 0 1 .0000000000</row-3>
</symOp>