Documentation for module qs_modify_pab_block

Set of procedures to modify the density matrix, in order to collocate on the real space grid specific functions of the primitives

source: qs_modify_pab_block.F
Loading...

public Subroutines/Functions:

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with pgf_a (nabla_{idir} pgf_b) - (nabla_{idir} pgf_a) pgf_b ( pgf_a ) (ddx pgf_b) - (ddx pgf_a)( pgf_b ) = pgf_a *(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x}) - (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_b
SUBROUTINE
prepare_arb (pab_local, pab, ir, lxa, lya, lza, lxb, lyb, lzb, o1, o2)
create a new pab_local so that mapping pab_local with pgf_a pgf_b pgf_a (r-Rb)_{ir} pgf_b = pgf_a * pgf_b{+1ir}
create a new pab_local so that mapping pab_local with pgf_a pgf_b pgf_a (r-Rb)_{ir} (nabla_{idir} pgf_b) - (nabla_{idir} pgf_a) (r-Rb)_{ir} pgf_b ( pgf_a )(r-Rb)_{ir} (ddx pgf_b) - (ddx pgf_a) (r-Rb)_{ir} ( pgf_b ) = pgf_a *(lbx pgf_{b-1x+1ir} - 2*zetb*pgf_{b+1x+1ir}) - (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_{b+1ir}
create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with pgf_a (nabla_{idir} pgf_b) + (nabla_{idir} pgf_a) pgf_b ( pgf_a ) (ddx pgf_b) + (ddx pgf_a)( pgf_b ) = pgf_a *(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x}) + (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_b
SUBROUTINE
prepare_dadb (pab_local, pab, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)
create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with 0.5 * (nabla pgf_a) . (nabla pgf_b) (ddx pgf_a ) (ddx pgf_b) = (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x})*(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x})
create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddi pgf_a) . (ddi pgf_b) (ddx pgf_a ) (ddx pgf_b) = (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x})*(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x})
create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddidj pgf_a) . (ddidj pgf_b) (ddxdx pgf_a ) (ddxdx pgf_b) =
create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddidj pgf_a) . (ddidj pgf_b) (ddxdy pgf_a ) (ddxdy pgf_b) =

Parameters:

INTEGER
:: func_ab = 401
INTEGER
:: func_adbmdab = 403
INTEGER
:: func_arb = 406
INTEGER
:: func_ardbmdarb = 404
INTEGER
:: func_dabpadb = 405
INTEGER
:: func_dadb = 402
INTEGER
:: func_der(0:9) = (/401,501,502,503,601,602,603,604,605,606/)
INTEGER
:: func_dx = 501
INTEGER
:: func_dxdx = 604
INTEGER
:: func_dxdy = 601
INTEGER
:: func_dy = 502
INTEGER
:: func_dydy = 605
INTEGER
:: func_dydz = 602
INTEGER
:: func_dz = 503
INTEGER
:: func_dzdx = 603
INTEGER
:: func_dzdz = 606

SUBROUTINEprepare_adb_m_dab(pab_local, pab, idir, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with pgf_a (nabla_{idir} pgf_b) - (nabla_{idir} pgf_a) pgf_b ( pgf_a ) (ddx pgf_b) - (ddx pgf_a)( pgf_b ) = pgf_a *(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x}) - (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_b

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: idir ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_arb(pab_local, pab, ir, lxa, lya, lza, lxb, lyb, lzb, o1, o2)

create a new pab_local so that mapping pab_local with pgf_a pgf_b pgf_a (r-Rb)_{ir} pgf_b = pgf_a * pgf_b{+1ir}

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: ir ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...

SUBROUTINEprepare_ardb_m_darb(pab_local, pab, idir, ir, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b pgf_a (r-Rb)_{ir} (nabla_{idir} pgf_b) - (nabla_{idir} pgf_a) (r-Rb)_{ir} pgf_b ( pgf_a )(r-Rb)_{ir} (ddx pgf_b) - (ddx pgf_a) (r-Rb)_{ir} ( pgf_b ) = pgf_a *(lbx pgf_{b-1x+1ir} - 2*zetb*pgf_{b+1x+1ir}) - (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_{b+1ir}

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: idir ...
INTEGER,
INTENT(in)
:: ir ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_dab_p_adb(pab_local, pab, idir, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with pgf_a (nabla_{idir} pgf_b) + (nabla_{idir} pgf_a) pgf_b ( pgf_a ) (ddx pgf_b) + (ddx pgf_a)( pgf_b ) = pgf_a *(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x}) + (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x}) pgf_b

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: idir ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_dadb(pab_local, pab, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with 0.5 * (nabla pgf_a) . (nabla pgf_b) (ddx pgf_a ) (ddx pgf_b) = (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x})*(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x})

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_diadib(pab_local, pab, ider, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddi pgf_a) . (ddi pgf_b) (ddx pgf_a ) (ddx pgf_b) = (lax pgf_{a-1x} - 2*zeta*pgf_{a+1x})*(lbx pgf_{b-1x} - 2*zetb*pgf_{b+1x})

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: ider ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_diiadiib(pab_local, pab, ider, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddidj pgf_a) . (ddidj pgf_b) (ddxdx pgf_a ) (ddxdx pgf_b) =

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: ider ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...

SUBROUTINEprepare_dijadijb(pab_local, pab, ider1, ider2, lxa, lya, lza, lxb, lyb, lzb, o1, o2, zeta, zetb)

create a new pab_local so that mapping pab_local with pgf_a pgf_b is equivalent to mapping pab with (ddidj pgf_a) . (ddidj pgf_b) (ddxdy pgf_a ) (ddxdy pgf_b) =

Arguments:
REAL(dp),
INTENT(inout)
:: pab_local(:,:) ...
REAL(dp),
INTENT(in)
:: pab(:,:) ...
INTEGER,
INTENT(in)
:: ider1 ...
INTEGER,
INTENT(in)
:: ider2 ...
INTEGER,
INTENT(in)
:: lxa ...
INTEGER,
INTENT(in)
:: lya ...
INTEGER,
INTENT(in)
:: lza ...
INTEGER,
INTENT(in)
:: lxb ...
INTEGER,
INTENT(in)
:: lyb ...
INTEGER,
INTENT(in)
:: lzb ...
INTEGER,
INTENT(in)
:: o1 ...
INTEGER,
INTENT(in)
:: o2 ...
REAL(dp),
INTENT(in)
:: zeta ...
REAL(dp),
INTENT(in)
:: zetb ...