Added extxyz file output for run types of static and structural optimization(cg_run, lbfgs, and sqnm)

This commit is contained in:
JianboLin 2024-01-18 16:46:47 +09:00
parent 7956f56a67
commit e6bb43441d
1 changed files with 12 additions and 4 deletions

View File

@ -54,6 +54,8 @@
!! Added SQNM maximum step size (sqnm_trust_step) as user-adjustable parameter
!! 2023/09/13 lu
!! Added XSF and XSF output frequency as user-adjustable parameter
!! 2024/01/18 lin
!! Added extended XYZ file output for all types of runs
!! SOURCE
!!
module control
@ -152,6 +154,8 @@ contains
flag_opt_cell, optcell_method, min_layer, flag_DM_converged
use input_module, only: leqi
use store_matrix, only: dump_pos_and_matrices
use io_module, only: write_extxyz
use md_control, only: flag_write_extxyz
implicit none
@ -184,6 +188,7 @@ contains
endif
call get_E_and_F(fixed_potential, vary_mu, total_energy,&
flag_ff, flag_wf, level=backtrace_level)
if (flag_write_extxyz) call write_extxyz('trajectory.xyz', total_energy, tot_force)
!
else if ( leqi(runtype, 'cg') ) then
if (flag_opt_cell) then
@ -491,6 +496,7 @@ contains
end if
call write_atomic_positions("UpdatedAtoms.dat", trim(pdb_template))
if (flag_write_xsf) call write_xsf('trajectory.xsf', iter)
if (flag_write_extxyz) call write_extxyz('trajectory.xyz', energy1, tot_force)
! Analyse forces
g0 = dot(length, tot_force, 1, tot_force, 1)
call get_maxf(max)
@ -1504,14 +1510,14 @@ contains
use GenBlas, only: dot
use force_module, only: tot_force
use io_module, only: write_atomic_positions, pdb_template, &
check_stop, write_xsf
check_stop, write_xsf, write_extxyz
use memory_module, only: reg_alloc_mem, reg_dealloc_mem, type_dbl
use primary_module, only: bundle
use store_matrix, only: dump_pos_and_matrices
use mult_module, ONLY: matK, S_trans, matrix_scale, matL, L_trans
use matrix_data, ONLY: Hrange, Lrange
use dimens, only: r_super_x, r_super_y, r_super_z
use md_control, only: flag_write_xsf
use md_control, only: flag_write_xsf, flag_write_extxyz
implicit none
@ -1662,6 +1668,7 @@ contains
! Add call to write_atomic_positions and write_xsf (2020/01/17: smujahed)
call write_atomic_positions("UpdatedAtoms.dat", trim(pdb_template))
if (flag_write_xsf) call write_xsf('trajectory.xsf', iter)
if (flag_write_extxyz) call write_extxyz('trajectory.xyz', energy1, tot_force)
! Build q
do i=iter, iter_low, -1
! Indexing
@ -1792,12 +1799,12 @@ contains
use GenComms, only: myid, inode, ionode
use GenBlas, only: dot, syev
use force_module, only: tot_force
use io_module, only: write_atomic_positions, pdb_template, &
use io_module, only: write_atomic_positions, pdb_template, write_extxyz, &
check_stop, write_xsf, print_atomic_positions, return_prefix
use memory_module, only: reg_alloc_mem, reg_dealloc_mem, type_dbl
use store_matrix, only: dump_pos_and_matrices
use dimens, only: r_super_x, r_super_y, r_super_z
use md_control, only: flag_write_xsf
use md_control, only: flag_write_xsf, flag_write_extxyz
implicit none
@ -1971,6 +1978,7 @@ contains
! Add call to write_atomic_positions and write_xsf (2020/01/17: smujahed)
call write_atomic_positions("UpdatedAtoms.dat", trim(pdb_template))
if (flag_write_xsf) call write_xsf('trajectory.xsf', iter)
if (flag_write_extxyz) call write_extxyz('trajectory.xyz', energy1, tot_force)
! Build significant subspace
Sij = zero
omega = zero