.. index:: pair: namespace; rgpot_edip .. _doxid-namespacergpot__edip: namespace rgpot_edip ==================== .. toctree:: :hidden: Overview ~~~~~~~~ EDIP silicon in gather form. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block namespace rgpot_edip { // global variables real(wp), parameter :ref:`exp_floor` = -300.0_wp; // global functions subroutine, public :ref:`edip_energy_forces`(real(wp), dimension(:, :), intent(in), contiguous positions, real(wp), dimension(3, 3), intent(in) cell, type(:ref:`edip_params_t`), intent(in) par, type(:ref:`neighbor_table_t`), intent(inout) table, real(wp), intent(out) energy, real(wp), dimension(:, :), intent(out), contiguous forces, integer, intent(out) status, character(len=:), intent(out), allocatable errmsg); } // namespace rgpot_edip .. _details-namespacergpot__edip: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ EDIP silicon in gather form. EDIP gives atom ``i`` a pair sum whose strength depends on a coordination number ``Z_i``, plus a three-body sum over the neighbour pairs ``i`` centres: ``E_i = sum_j V2(r_ij, Z_i) + sum_{j```. Evaluation is therefore two ``do concurrent`` passes: one over the per-atom scalars (``Z``, energy, ``dE/dZ``), one over forces. Neither writes outside the atom it is indexed by. A triplet whose two ends are the same atom reached through different periodic images is dropped, in the centre role and the end role alike, so the force stays the exact gradient of the energy reported here. Global Variables ---------------- .. index:: pair: variable; exp_floor .. _doxid-namespacergpot__edip_1a63dd0f191c49f4adc045524ec1c150ee: .. ref-code-block:: cpp :class: doxyrest-title-code-block real(wp), parameter exp_floor = -300.0_wp Exponential arguments below this underflow to zero; guarding keeps ``exp`` out of its denormal range for pairs sitting at a cutoff. Global Functions ---------------- .. index:: pair: function; edip_energy_forces .. _doxid-namespacergpot__edip_1aec230a5d866031d4d855466c3e9845e4: .. ref-code-block:: cpp :class: doxyrest-title-code-block subroutine, public edip_energy_forces(real(wp), dimension(:, :), intent(in), contiguous positions, real(wp), dimension(3, 3), intent(in) cell, type(:ref:`edip_params_t`), intent(in) par, type(:ref:`neighbor_table_t`), intent(inout) table, real(wp), intent(out) energy, real(wp), dimension(:, :), intent(out), contiguous forces, integer, intent(out) status, character(len=:), intent(out), allocatable errmsg) Energy and forces for ``positions`` (3 x natoms) in ``cell``.