next up previous contents
Next: Scattering intensity Up: Files structure and use Previous: Jahn-Teller tensorial force constants   Contents

Use of an arbitrary screening function for Coulomb interactions

You activate the contribution from for the screened Coulomb interactions by setting the variable USE_SCREENING_FUNCTION=1 in the input file for dispersionDeb.py. The contribution is calculated in reciprocal space. As analytical formula in real space are not easy for an arbitrary screening function the contribution is calculated only in reciprocal space, so that a small enough $\sigma_c$ has to be used and the $K$ range of the summation must be large enough to assure convergence. The followinf is a tipycal input file for a calculation with a user defined screening function.
astar=2*math.pi/3.95
cstar=2*math.pi/12.06556
eps=0.0011
Q=Numeric.array( [ [astar*0.5*i+eps,-astar*0.5*i+eps,0] for i in range(1,2)]    )
debyerange=[ -12, -12, -6]
debye=astar/4
SMcellrange=[2,2,2]
cellrange= [-1,-1,-1]
Kcellrange=[-6,-6,-12]
sigmacellrange=[-4,-4,-2]
sigmacharge=0.5
IS_IT_SCREENED=0

USE_SCREENING_FUNCTION =1
ScreenKrange = [6,6,12]

selectors=[(1.0,1.0,0.0), (1.0,-1.0,0.0), (1.0,0.0,1.0), (-1.0,1.0,0.0)]

Note the $K$ range that is specified by the variable ScreenKrange. The contribution from Coulomb interaction without screening function is still active (note IS_IT_SCREENED=0) but gives zero contributions as Kcellrange and sigmacellrange are set to zero. one could still calculate both contribution if the inputted screening function is

\begin{displaymath}
\frac{1}{\epsilon}-1
\end{displaymath}

In case on lets IS_IT_SCREENED=1 the contribution from Debye potential must be made silent by setting debyerange to negative values.

The screening function must be set in the parinputedit with the following format :

def SCREENING_FUNCTION(self, Q):
  moduli2 = Numeric.sum(Numeric.transpose(Q*Q))
  astar=2*math.pi/3.95
  debye=astar/4
  debye=debye*debye
  # res=(1.0/(1.0+debye/moduli2) )-1
  # debye=0.0
  res=(1.0/(1.0+debye/moduli2) )
  return res
Thats just an example. You can write whatever function you whish provided that you return either an array of scalars or an array of $3X3$ tensors, the arrays having the same lenght than $Q$, as it is shown in the above example.


next up previous contents
Next: Scattering intensity Up: Files structure and use Previous: Jahn-Teller tensorial force constants   Contents
Alessandro Mirone 2003-11-17