Commit 6a40a891 authored by Pietro Delugas's avatar Pietro Delugas

Merge branch 'update' into 'develop'

update of release notes and small fixes to xml

See merge request !354
parents c731fe86 bd1fedf2
New in development version:
New in version 6.4:
* Experimental and specific for gamma_only case: specifing nscdm the SCDM localization is performed
only for iterations multiples of nscdm, in the intermediate iterations the localized orbitals are
derived with parallel transport from the last SCDM localization.
* Added experimental version of SCDM localization with many K_POINTS. The calculation using SCDM
is set as in the gamma-only case just specifing localization_thr to any value greater than 0 in
the system namelist.
* It is now possible to limit the number of xml step elements printed out for relaxation or
molecular dynamics simulation setting the envinroment variable MAX_XML_STEPS, useful in case
of very long trajectories to avoid issues due to too large file size.
* EPW works with ultrasoft pseudopotentials (F. Giustino, S. Poncé, R. Margine)
* New code hp.x to compute Hubbard parameters using density-functional
perturbation theory (experimental stage) (I. Timrov, N. Marzari, and M. Cococcioni,
......
......@@ -121,7 +121,9 @@ MODULE input_parameters
INTEGER :: iprint = 10
! number of steps/scf iterations between successive writings
! of relevant physical quantities to standard output
INTEGER :: max_xml_steps = 0
! max number of steps between successive appending of an xml step
! in the xml data file, default 0 means all steps are printed.
INTEGER :: isave = 100
! number of steps between successive savings of
! information needed to restart the run (see "ndr", "ndw")
......
......@@ -1317,7 +1317,7 @@ CONTAINS
step_counter = step_counter+1
!
step_obj%tagname="step"
step_obj%n_step = step_counter
step_obj%n_step = i_step
!
CALL qes_init( scf_conv_obj,"scf_conv", scf_has_converged, n_scf_steps, scf_error )
!
......
......@@ -60,6 +60,7 @@ MODULE read_namelists_module
IMPLICIT NONE
!
CHARACTER(LEN=2) :: prog ! ... specify the calling program
CHARACTER(LEN=20) :: temp_string
!
!
IF ( prog == 'PW' ) THEN
......@@ -105,6 +106,10 @@ MODULE read_namelists_module
pseudo_dir = TRIM( pseudo_dir ) // '/espresso/pseudo/'
END IF
!
! ... max number of md steps added to the xml file. Needs to be limited for very long
! md simulations
CALL get_environment_variable('MAX_XML_STEPS', temp_string)
IF ( TRIM(temp_string) .NE. ' ') READ(temp_string, *) max_xml_steps
refg = 0.05_DP
max_seconds = 1.E+7_DP
ekin_conv_thr = 1.E-6_DP
......
......@@ -27,6 +27,7 @@ USE force_mod, ONLY: force, sigma
USE control_flags,ONLY: nstep, n_scf_steps, scf_error, conv_elec
USE fcp_variables,ONLY: fcp_mu, lfcpopt, lfcpdyn
USE extfield, ONLY: gate, etotgatefield, tefield, etotefield
USE input_parameters, ONLY: max_xml_steps
!-----------------------------------------------------------------------------
! END_GLOBAL_VARIABLES
!-----------------------------------------------------------------------------
......@@ -53,6 +54,17 @@ REAL(DP),TARGET :: potstat_contr_tgt, fcp_force_tgt, fcp_tot_charge_
REAL(DP),POINTER :: potstat_contr_ptr, fcp_force_ptr, fcp_tot_charge_ptr,&
demet_ptr, degauss_ptr, gatefield_en_ptr, efield_corr_ptr
!
INTEGER :: stride = 1, max_xml_steps_
IF ( max_xml_steps > 0 ) THEN
stride = nstep/max_xml_steps
max_xml_steps_ = max_xml_steps+2
ELSE
max_xml_steps_ = nstep
END IF
IF (.NOT. ( i_step == 1 .OR. MOD(i_step-1, stride) == 0 .OR. i_step == nstep)) RETURN
NULLIFY(potstat_contr_ptr, fcp_force_ptr, fcp_tot_charge_ptr, demet_ptr, degauss_ptr, &
gatefield_en_ptr, efield_corr_ptr)
!
......@@ -65,8 +77,8 @@ END IF
IF ( lfcpopt .OR. lfcpdyn ) THEN
potstat_contr_tgt = ef * tot_charge / e2
potstat_contr_ptr => potstat_contr_tgt
!FIXME ( again shouldn't we use Hartree units for this ? )
fcp_force_tgt = fcp_mu - ef
!
fcp_force_tgt = (fcp_mu - ef)/e2
fcp_force_ptr => fcp_force_tgt
!
fcp_tot_charge_tgt = tot_charge
......@@ -81,7 +93,7 @@ IF (tefield) THEN
efield_corr_tgt = etotefield/e2
efield_corr_ptr => efield_corr_tgt
END IF
CALL qexsd_step_addstep ( i_step, nstep, nsp, atm, ityp, nat, alat*tau, alat, alat*at(:,1), &
CALL qexsd_step_addstep ( i_step, max_xml_steps_, nsp, atm, ityp, nat, alat*tau, alat, alat*at(:,1), &
alat*at(:,2), alat*at(:,3), etot/e2, eband/e2, ehart/e2, vtxc/e2, etxc/e2, &
ewld/e2, degauss_ptr, demet_ptr, force/e2, sigma/e2, conv_elec, n_scf_steps, scf_error, &
FCP_FORCE = fcp_force_ptr , FCP_TOT_CHARGE = fcp_tot_charge_ptr,&
......
......@@ -246,7 +246,7 @@ MODULE pw_restart_new
n_opt_steps = istep
END IF
scf_has_converged = conv_elec
n_scf_steps = n_scf_steps
n_scf_steps_ = n_scf_steps
CASE ("nscf", "bands" )
n_opt_steps = 0
scf_has_converged = .FALSE.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment