(git:98357aa)
Loading...
Searching...
No Matches
nnp_force Module Reference

Methods dealing with Neural Network potentials. More...

Functions/Subroutines

subroutine, public nnp_calc_energy_force (nnp, calc_forces)
 Calculate the energy and force for a given configuration with the NNP.
 
subroutine, public nnp_scatter_dgdr_to_forces (nnp, ind, i, denergydsym, force_xyz)
 Scatter the per-neighbour dG/dr arrays held in the nnp_neighbor_workspace into a per-atom Cartesian force array. Three contributions per central atom i: 1) self: self_dGdr(:, m) -> force_xyz(:, i) 2) radial: walk neighborrad(s)ind(j), read dGdr_rad(s)data(:, sf, j) 3) angular: walk neighborang1(s)ind / ang2(s)ind, read dGdr_ang_jj/kk No global (n_sf, num_atoms) slab is touched. Reused by the helium-NNP coupling in helium_interactions.
 

Detailed Description

Methods dealing with Neural Network potentials.

Author
Christoph Schran (chris.nosp@m.toph.nosp@m..schr.nosp@m.an@r.nosp@m.ub.de)
Dhruv Sharma (ds217.nosp@m.3@ca.nosp@m.m.ac..nosp@m.uk)
Date
2020-10-10

Function/Subroutine Documentation

◆ nnp_calc_energy_force()

subroutine, public nnp_force::nnp_calc_energy_force ( type(nnp_type), intent(inout), pointer  nnp,
logical, intent(in)  calc_forces 
)

Calculate the energy and force for a given configuration with the NNP.

Parameters
nnp...
calc_forces...
Date
2020-10-10
Author
Christoph Schran (chris.nosp@m.toph.nosp@m..schr.nosp@m.an@r.nosp@m.ub.de)

Definition at line 63 of file nnp_force.F.

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

◆ nnp_scatter_dgdr_to_forces()

subroutine, public nnp_force::nnp_scatter_dgdr_to_forces ( type(nnp_type), intent(in)  nnp,
integer, intent(in)  ind,
integer, intent(in)  i,
real(kind=dp), dimension(:), intent(in)  denergydsym,
real(kind=dp), dimension(:, :), intent(inout)  force_xyz 
)

Scatter the per-neighbour dG/dr arrays held in the nnp_neighbor_workspace into a per-atom Cartesian force array. Three contributions per central atom i: 1) self: self_dGdr(:, m) -> force_xyz(:, i) 2) radial: walk neighborrad(s)ind(j), read dGdr_rad(s)data(:, sf, j) 3) angular: walk neighborang1(s)ind / ang2(s)ind, read dGdr_ang_jj/kk No global (n_sf, num_atoms) slab is touched. Reused by the helium-NNP coupling in helium_interactions.

Precondition: nnp_calc_acsf(nnp, i, calc_forces=.TRUE.[, stress]) must have run for this same atom i immediately before; the per-element workspace it fills is overwritten on every ACSF call.

Parameters
nnp...
indcentral-atom element index
icentral atom index (absolute)
denergydsymdE/dG_k for k = 1..n_input_nodes(ind)
force_xyz(3, num_atoms) destination – accumulated, NOT overwritten
Author
Dhruv Sharma (ds217.nosp@m.3@ca.nosp@m.m.ac..nosp@m.uk)

Definition at line 716 of file nnp_force.F.

Here is the caller graph for this function: