From 412b752a2294064761cc6802bbe46c398b311fd8 Mon Sep 17 00:00:00 2001 From: David Bowler Date: Fri, 10 Jun 2022 10:42:20 +0100 Subject: [PATCH] Add full stress calculation Added calculation for the full stress tensor --- src/DFT_D2_module.f90 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/DFT_D2_module.f90 b/src/DFT_D2_module.f90 index 6fc1943f..117a1a97 100644 --- a/src/DFT_D2_module.f90 +++ b/src/DFT_D2_module.f90 @@ -222,6 +222,25 @@ contains disp_force(3, ia_glob) = disp_force(3, ia_glob) + emp_energy * emp_force * unit_vec_z if(flag_stress) then if(flag_full_stress) then + ! NB force direction is set by unit_vec so tracks first index + disp_stress(1,1) = disp_stress(1,1) + emp_energy * emp_force & + * rijx * unit_vec_x + disp_stress(1,2) = disp_stress(1,2) + emp_energy * emp_force & + * rijy * unit_vec_x + disp_stress(1,3) = disp_stress(1,3) + emp_energy * emp_force & + * rijz * unit_vec_x + disp_stress(2,1) = disp_stress(2,1) + emp_energy * emp_force & + * rijx * unit_vec_y + disp_stress(2,2) = disp_stress(2,2) + emp_energy * emp_force & + * rijy * unit_vec_y + disp_stress(2,3) = disp_stress(2,3) + emp_energy * emp_force & + * rijz * unit_vec_y + disp_stress(3,1) = disp_stress(3,1) + emp_energy * emp_force & + * rijx * unit_vec_z + disp_stress(3,2) = disp_stress(3,2) + emp_energy * emp_force & + * rijy * unit_vec_z + disp_stress(3,3) = disp_stress(3,3) + emp_energy * emp_force & + * rijz * unit_vec_z else disp_stress(1,1) = disp_stress(1,1) + emp_energy * emp_force & * rijx * unit_vec_x