(git:3add494)
ewalds_multipole Module Reference

Treats the electrostatic for multipoles (up to quadrupoles) More...

Functions/Subroutines

recursive subroutine, public ewald_multipole_evaluate (ewald_env, ewald_pw, nonbond_env, cell, particle_set, local_particles, energy_local, energy_glob, e_neut, e_self, task, do_correction_bonded, do_forces, do_stress, do_efield, radii, charges, dipoles, quadrupoles, forces_local, forces_glob, pv_local, pv_glob, efield0, efield1, efield2, iw, do_debug, atomic_kind_set, mm_section)
 Computes the potential and the force for a lattice sum of multipoles (up to quadrupole) More...
 

Detailed Description

Treats the electrostatic for multipoles (up to quadrupoles)

Author
Teodoro Laino [tlaino] - 12.2007 - University of Zurich inclusion of optional electric field damping for the polarizable atoms Rodolphe Vuilleumier and Mathieu Salanne - 12.2009

Function/Subroutine Documentation

◆ ewald_multipole_evaluate()

recursive subroutine, public ewalds_multipole::ewald_multipole_evaluate ( type(ewald_environment_type), pointer  ewald_env,
type(ewald_pw_type), pointer  ewald_pw,
type(fist_nonbond_env_type), pointer  nonbond_env,
type(cell_type), pointer  cell,
type(particle_type), dimension(:), pointer  particle_set,
type(distribution_1d_type), pointer  local_particles,
real(kind=dp), intent(inout)  energy_local,
real(kind=dp), intent(inout)  energy_glob,
real(kind=dp), intent(out)  e_neut,
real(kind=dp), intent(out)  e_self,
logical, dimension(3), intent(in)  task,
logical, intent(in)  do_correction_bonded,
logical, intent(in)  do_forces,
logical, intent(in)  do_stress,
logical, intent(in)  do_efield,
real(kind=dp), dimension(:), optional, pointer  radii,
real(kind=dp), dimension(:), optional, pointer  charges,
real(kind=dp), dimension(:, :), optional, pointer  dipoles,
real(kind=dp), dimension(:, :, :), optional, pointer  quadrupoles,
real(kind=dp), dimension(:, :), intent(inout), optional  forces_local,
real(kind=dp), dimension(:, :), intent(inout), optional  forces_glob,
real(kind=dp), dimension(:, :), intent(inout), optional  pv_local,
real(kind=dp), dimension(:, :), intent(inout), optional  pv_glob,
real(kind=dp), dimension(:), intent(out), optional  efield0,
real(kind=dp), dimension(:, :), intent(out), optional  efield1,
real(kind=dp), dimension(:, :), intent(out), optional  efield2,
integer, intent(in)  iw,
logical, intent(in)  do_debug,
type(atomic_kind_type), dimension(:), optional, pointer  atomic_kind_set,
type(section_vals_type), optional, pointer  mm_section 
)

Computes the potential and the force for a lattice sum of multipoles (up to quadrupole)

Parameters
ewald_env...
ewald_pw...
nonbond_env...
cell...
particle_set...
local_particles...
energy_local...
energy_glob...
e_neut...
e_self...
task...
do_correction_bonded...
do_forces...
do_stress...
do_efield...
radii...
charges...
dipoles...
quadrupoles...
forces_local...
forces_glob...
pv_local...
pv_glob...
efield0...
efield1...
efield2...
iw...
do_debug...
atomic_kind_set...
mm_section...
Note
atomic_kind_set and mm_section are between the arguments only for debug purpose (therefore optional) and can be avoided when this function is called in other part of the program
Note
When a gaussian multipole is used instead of point multipole, i.e. when radii(i)>0, the electrostatic fields (efield0, efield1, efield2) become derivatives of the electrostatic potential energy towards these gaussian multipoles.
Author
Teodoro Laino [tlaino] - 12.2007 - University of Zurich

Definition at line 116 of file ewalds_multipole.F.

Here is the call graph for this function:
Here is the caller graph for this function: