Documentation for module manybody_siepmann

implementation of dipole and three-body part of Siepmann-Sprik potential dipole term: 3rd term in Eq. (1) in J. Chem. Phys., Vol. 102, p.511 three-body term: Eq. (4) in J. Chem. Phys., Vol. 102, p. 511 remaining terms of Siepmann-Sprik potential can be given via the GENPOT section

source: manybody_siepmann.F
Loading...

public Subroutines/Functions:

...
prints the number of OH- ions or H3O+ ions near surface
...
energy of two-body dipole term and three-body term
forces generated by the dipole term
forces generated by the three-body term

SUBROUTINEdestroy_siepmann_arrays(glob_loc_list, glob_cell_v, glob_loc_list_a)

...

Arguments:
INTEGER,
POINTER
:: glob_loc_list(:,:) ...
REAL(dp),
POINTER
:: glob_cell_v(:,:) ...
INTEGER,
POINTER
:: glob_loc_list_a(:) ...

SUBROUTINEsetup_siepmann_arrays(nonbonded, potparm, glob_loc_list, glob_cell_v, glob_loc_list_a, cell)

...

Arguments:
POINTER
:: nonbonded ...
POINTER
:: potparm ...
INTEGER,
POINTER
:: glob_loc_list(:,:) ...
REAL(dp),
POINTER
:: glob_cell_v(:,:) ...
INTEGER,
POINTER
:: glob_loc_list_a(:) ...
TYPE(cell_type),
POINTER
:: cell ...

SUBROUTINEsiepmann_energy(pot_loc, siepmann, r_last_update_pbc, atom_a, atom_b, nloc_size, full_loc_list, cell_v, cell, drij, particle_set, nr_oh, nr_h3o, nr_o)

energy of two-body dipole term and three-body term

Arguments:
REAL(dp),
INTENT(out)
:: pot_loc ...
POINTER
:: siepmann ...
TYPE(pos_type),
POINTER
:: r_last_update_pbc(:) ...
INTEGER,
INTENT(in)
:: atom_a ...
INTEGER,
INTENT(in)
:: atom_b ...
INTEGER,
INTENT(in)
:: nloc_size ...
INTEGER
:: full_loc_list(2,1:nloc_size) ...
REAL(dp)
:: cell_v(3) ...
TYPE(cell_type),
POINTER
:: cell ...
REAL(dp)
:: drij ...
POINTER
:: particle_set(:) ...
INTEGER,
INTENT(inout)
:: nr_oh number of OH- ions near surface
INTEGER,
INTENT(inout)
:: nr_h3o number of hydronium ions near surface
INTEGER,
INTENT(inout)
:: nr_o number of O^(2-) ions near surface

SUBROUTINEsiepmann_forces_v2(siepmann, r_last_update_pbc, cell_v, cell, iparticle, jparticle, f_nonbond, use_virial, rcutsq, particle_set)

forces generated by the dipole term

Arguments:
POINTER
:: siepmann ...
TYPE(pos_type),
POINTER
:: r_last_update_pbc(:) ...
REAL(dp)
:: cell_v(3) ...
TYPE(cell_type),
POINTER
:: cell ...
INTEGER,
INTENT(in)
:: iparticle ...
INTEGER,
INTENT(in)
:: jparticle ...
REAL(dp),
INTENT(inout)
:: f_nonbond(:,:) ...
LOGICAL,
INTENT(in)
:: use_virial ...
REAL(dp),
INTENT(in)
:: rcutsq ...
POINTER
:: particle_set(:) ...

SUBROUTINEsiepmann_forces_v3(siepmann, r_last_update_pbc, cell_v, n_loc_size, full_loc_list, iparticle, jparticle, f_nonbond, use_virial, rcutsq, cell, particle_set)

forces generated by the three-body term

Arguments:
POINTER
:: siepmann ...
TYPE(pos_type),
POINTER
:: r_last_update_pbc(:) ...
REAL(dp)
:: cell_v(3) ...
INTEGER,
INTENT(in)
:: n_loc_size ...
INTEGER
:: full_loc_list(2,1:n_loc_size) ...
INTEGER,
INTENT(in)
:: iparticle ...
INTEGER,
INTENT(in)
:: jparticle ...
REAL(dp),
INTENT(inout)
:: f_nonbond(:,:) ...
LOGICAL,
INTENT(in)
:: use_virial ...
REAL(dp),
INTENT(in)
:: rcutsq ...
TYPE(cell_type),
POINTER
:: cell ...
POINTER
:: particle_set(:) ...