Skip to content
This repository was archived by the owner on Feb 4, 2026. It is now read-only.

Commit efea128

Browse files
authored
Add files via upload
1 parent 6a0cf81 commit efea128

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

multioptpy/Optimizer/trust_radius_neb.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ def TR_calc(self, geometry_num_list, total_force_list, total_delta, biased_energ
1818
if self.fix_init_edge:
1919
move_vector = [total_delta[0]*0.0]
2020
else:
21-
move_vector = [total_force_list[0]]
21+
init_norm_move_vector = np.linalg.norm(total_delta[0])
22+
init_tr = min(0.5, init_norm_move_vector)
23+
move_vector = [init_tr * total_delta[0] / init_norm_move_vector]
24+
2225
trust_radii_1_list = []
2326
trust_radii_2_list = []
2427

@@ -77,9 +80,11 @@ def TR_calc(self, geometry_num_list, total_force_list, total_delta, biased_energ
7780
f.write(",".join(trust_radii_2_list)+"\n")
7881

7982
if self.fix_end_edge:
80-
move_vector.append(total_force_list[-1]*0.0)
83+
move_vector.append(total_delta[-1]*0.0)
8184
else:
82-
move_vector.append(total_force_list[-1])
85+
end_norm_move_vector = np.linalg.norm(total_delta[-1])
86+
end_tr = min(0.5, end_norm_move_vector)
87+
move_vector.append(end_tr * total_delta[-1] / end_norm_move_vector)
8388

8489
if self.apply_convergence_criteria:
8590
move_vector = self.check_convergence(total_force_list, move_vector)

0 commit comments

Comments
 (0)