## Documentation for module mulliken

compute mulliken charges we (currently) define them as c_i = 1/2 [ (PS)_{ii} + (SP)_{ii} ]

source: mulliken.F

mulliken_charges

#### public Subroutines/Functions:

compute Mayer bond orders for a single spin channel for complete result sum up over all spins and multiply by Nspin
computes the energy and density matrix derivate of a constraint on the mulliken charges

#### Generic procedure mulliken_charges^

print the mulliken charges to scr on ionode

POINTER
:: p_matrix(:) × × ×
:: p_matrix ×
TYPE(dbcsr_type),
POINTER
:: s_matrix × ×
POINTER
:: s_matrix(:) ×
:: s_matrix ×
POINTER
:: para_env × × × × × × ×
POINTER
:: particle_set(:) × ×
POINTER
:: qs_kind_set(:) × ×
INTEGER
:: scr × ×
CHARACTER(*)
:: title × ×
REAL(dp),
POINTER
:: mcharge(:,:) × × × ×
REAL(dp)
:: mcharge(:) ×
REAL(dp),
POINTER
:: dmcharge(:,:) × ×
POINTER
:: p_matrix_kp(:,:) × × ×
POINTER
:: s_matrix_kp(:,:) × × ×

#### SUBROUTINEcompute_bond_order(psmat, spmat, bond_order)^

compute Mayer bond orders for a single spin channel for complete result sum up over all spins and multiply by Nspin

##### Arguments:
 TYPE(dbcsr_type) :: psmat ... TYPE(dbcsr_type) :: spmat ... REAL(dp) :: bond_order(:,:) ...

#### SUBROUTINEmulliken_restraint(mulliken_restraint_control, para_env, s_matrix, p_matrix, energy, order_p, ks_matrix, w_matrix)^

computes the energy and density matrix derivate of a constraint on the mulliken charges

##### Arguments:
 TYPE(mulliken_restraint_type), INTENT(in) :: mulliken_restraint_control additional parameters needed to control the restraint TYPE(cp_para_env_type), POINTER :: para_env para_env of the matrices TYPE(dbcsr_type), POINTER :: s_matrix containing the respective quantities TYPE(dbcsr_p_type), POINTER :: p_matrix(:) containing the respective quantities REAL(dp), OPTIONAL :: energy ... REAL(dp), OPTIONAL :: order_p ... TYPE(dbcsr_p_type), OPTIONAL, POINTER :: ks_matrix(:) ... TYPE(dbcsr_p_type), OPTIONAL, POINTER :: w_matrix(:) ...

#### SUBROUTINEmulliken_charges_a(p_matrix, s_matrix, para_env, particle_set, qs_kind_set, scr, title)^

print the mulliken charges to scr on ionode

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix(:) ... TYPE(dbcsr_type), POINTER :: s_matrix ... TYPE(cp_para_env_type), POINTER :: para_env ... TYPE(particle_type), POINTER :: particle_set(:) (needed for Z) TYPE(qs_kind_type), POINTER :: qs_kind_set(:) ... INTEGER :: scr unit for output CHARACTER(*) :: title ...

#### SUBROUTINEmulliken_charges_b(p_matrix, s_matrix, para_env, mcharge)^

...

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix(:) ... TYPE(dbcsr_type), POINTER :: s_matrix ... TYPE(cp_para_env_type), POINTER :: para_env ... REAL(dp), POINTER :: mcharge(:,:) ...

#### SUBROUTINEmulliken_charges_c(p_matrix, s_matrix, para_env, mcharge, dmcharge)^

...

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix(:) ... TYPE(dbcsr_p_type), POINTER :: s_matrix(:) ... TYPE(cp_para_env_type), POINTER :: para_env ... REAL(dp), POINTER :: mcharge(:,:) ... REAL(dp), POINTER :: dmcharge(:,:) ...

#### SUBROUTINEmulliken_charges_s(p_matrix, s_matrix, para_env, mcharge)^

...

##### Arguments:
 TYPE(dbcsr_type) :: p_matrix ... TYPE(dbcsr_type) :: s_matrix ... TYPE(cp_para_env_type), POINTER :: para_env ... REAL(dp) :: mcharge(:) ...

#### SUBROUTINEmulliken_charges_akp(p_matrix_kp, s_matrix_kp, para_env, particle_set, qs_kind_set, scr, title)^

print the mulliken charges to scr on ionode

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix_kp(:,:) ... TYPE(dbcsr_p_type), POINTER :: s_matrix_kp(:,:) ... TYPE(cp_para_env_type), POINTER :: para_env ... TYPE(particle_type), POINTER :: particle_set(:) (needed for Z) TYPE(qs_kind_type), POINTER :: qs_kind_set(:) ... INTEGER :: scr unit for output CHARACTER(*) :: title ...

#### SUBROUTINEmulliken_charges_bkp(p_matrix_kp, s_matrix_kp, para_env, mcharge)^

...

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix_kp(:,:) ... TYPE(dbcsr_p_type), POINTER :: s_matrix_kp(:,:) ... TYPE(cp_para_env_type), POINTER :: para_env ... REAL(dp), POINTER :: mcharge(:,:) ...

#### SUBROUTINEmulliken_charges_ckp(p_matrix_kp, s_matrix_kp, para_env, mcharge, dmcharge)^

...

##### Arguments:
 TYPE(dbcsr_p_type), POINTER :: p_matrix_kp(:,:) ... TYPE(dbcsr_p_type), POINTER :: s_matrix_kp(:,:) ... TYPE(cp_para_env_type), POINTER :: para_env ... REAL(dp), POINTER :: mcharge(:,:) ... REAL(dp), POINTER :: dmcharge(:,:) ...