diff --git a/src/api/sirius_api.cpp b/src/api/sirius_api.cpp index e6f1961c3..c3b1f4aff 100644 --- a/src/api/sirius_api.cpp +++ b/src/api/sirius_api.cpp @@ -851,7 +851,7 @@ sirius_set_parameters(void* const* handler__, int const* lmax_apw__, int const* } if (hubbard_full_orthogonalization__ != nullptr) { if (*hubbard_full_orthogonalization__) { - sim_ctx.cfg().hubbard().full_orthogonalization(true); + sim_ctx.cfg().hubbard().hubbard_subspace_method("full_orthogonalization"); } } @@ -862,12 +862,17 @@ sirius_set_parameters(void* const* handler__, int const* lmax_apw__, int const* if (hubbard_orbitals__ != nullptr) { std::string s(hubbard_orbitals__); std::transform(s.begin(), s.end(), s.begin(), ::tolower); + bool jump = false; if (s == "ortho-atomic") { - sim_ctx.cfg().hubbard().orthogonalize(true); - sim_ctx.cfg().hubbard().full_orthogonalization(true); + sim_ctx.cfg().hubbard().hubbard_subspace_method("full_orthogonalization"); + jump = true; } if (s == "norm-atomic") { - sim_ctx.cfg().hubbard().normalize(true); + sim_ctx.cfg().hubbard().hubbard_subspace_method("normalize"); + jump = true; + } + if (!jump) { + sim_ctx.cfg().hubbard().hubbard_subspace_method(s); } } if (fft_grid_size__ != nullptr) { @@ -2240,8 +2245,29 @@ sirius_set_atom_type_hubbard(void* const* handler__, char const* label__, int co auto& sim_ctx = get_sim_ctx(handler__); auto& type = sim_ctx.unit_cell().atom_type(std::string(label__)); type.hubbard_correction(true); - type.add_hubbard_orbital(*n__, *l__, *occ__, *U__, J__[1], J__, *alpha__, *beta__, *J0__, - std::vector(), true); + if (type.file_name().empty()) { + type.add_hubbard_orbital(*n__, *l__, *occ__, *U__, J__[1], J__, *alpha__, *beta__, *J0__, + std::vector(), true); + } else { + // we use a an external file containing the potential + // information which means that we do not have all information + // yet. + // + // let's build the local hubbard section instead + // + + json elem; + + elem["atom_type"] = label__; + elem["n"] = *n__; + elem["l"] = *l__; + elem["total_initial_occupancy"] = *occ__; + elem["U"] = *U__; + elem["J"] = *J__; + elem["alpha"] = *alpha__; + elem["beta"] = *beta__; + sim_ctx.cfg().hubbard().local().append(elem); + } }, error_code__); } diff --git a/src/context/config.hpp b/src/context/config.hpp index a39e43f2b..55a6dcc63 100644 --- a/src/context/config.hpp +++ b/src/context/config.hpp @@ -1587,41 +1587,17 @@ class config_t : dict_(dict__) { } - /// If true, orthogonalization is applied to Hubbard orbitals. - inline auto orthogonalize() const + /// Method to use for generating the hubbard subspace. [none] bare hubbard orbitals, [full_orthogonaliation] use all atomic wave functions to generate the hubbard subspace, [normalize] normalize the original hubbard wave functions, [orthogonalize] orthogonalize the hubbard wave functions + inline auto hubbard_subspace_method() const { - return dict_.at("/hubbard/orthogonalize"_json_pointer).get(); + return dict_.at("/hubbard/hubbard_subspace_method"_json_pointer).get(); } - inline void orthogonalize(bool orthogonalize__) + inline void hubbard_subspace_method(std::string hubbard_subspace_method__) { if (dict_.contains("locked")) { throw std::runtime_error(locked_msg); } - dict_["/hubbard/orthogonalize"_json_pointer] = orthogonalize__; - } - /// If true, all atomic orbitals from all atoms are used to orthogonalize the hubbard subspace - inline auto full_orthogonalization() const - { - return dict_.at("/hubbard/full_orthogonalization"_json_pointer).get(); - } - inline void full_orthogonalization(bool full_orthogonalization__) - { - if (dict_.contains("locked")) { - throw std::runtime_error(locked_msg); - } - dict_["/hubbard/full_orthogonalization"_json_pointer] = full_orthogonalization__; - } - /// If true, normalization is applied to Hubbard orbitals. - inline auto normalize() const - { - return dict_.at("/hubbard/normalize"_json_pointer).get(); - } - inline void normalize(bool normalize__) - { - if (dict_.contains("locked")) { - throw std::runtime_error(locked_msg); - } - dict_["/hubbard/normalize"_json_pointer] = normalize__; + dict_["/hubbard/hubbard_subspace_method"_json_pointer] = hubbard_subspace_method__; } /// If true, simplified version of Hubbard correction is used. inline auto simplified() const diff --git a/src/context/input_schema.json b/src/context/input_schema.json index fb760323b..83018cf89 100644 --- a/src/context/input_schema.json +++ b/src/context/input_schema.json @@ -854,20 +854,16 @@ "type": "object", "title": "Hubbard U correction", "properties": { - "orthogonalize": { - "type": "boolean", - "default": false, - "title": "If true, orthogonalization is applied to Hubbard orbitals." - }, - "full_orthogonalization": { - "type": "boolean", - "default": false, - "title": "If true, all atomic orbitals from all atoms are used to orthogonalize the hubbard subspace" - }, - "normalize": { - "type": "boolean", - "default": false, - "title": "If true, normalization is applied to Hubbard orbitals." + "hubbard_subspace_method": { + "type": "string", + "default": "none", + "enum": [ + "none", + "full_orthogonalization", + "normalize", + "orthogonalize" + ], + "title": "Method to use for generating the hubbard subspace. [none] bare hubbard orbitals, [full_orthogonaliation] use all atomic wave functions to generate the hubbard subspace, [normalize] normalize the original hubbard wave functions, [orthogonalize] orthogonalize the hubbard wave functions" }, "simplified": { "type": "boolean", diff --git a/src/hubbard/hubbard_occupancies_derivatives.cpp b/src/hubbard/hubbard_occupancies_derivatives.cpp index 052cdfc37..276c392f4 100644 --- a/src/hubbard/hubbard_occupancies_derivatives.cpp +++ b/src/hubbard/hubbard_occupancies_derivatives.cpp @@ -78,7 +78,7 @@ build_phi_hub_s_psi_deriv(Simulation_context const& ctx__, int nbnd__, int nawf_ int offset_in_wf = atomic_wf_offset__[ia] + type.indexb_wfs().index_of(rf_index(idxr_wf)); int offset_in_hwf = hubbard_wf_offset__[ia] + type.indexb_hub().index_of(e.idxrf); - if (ctx__.cfg().hubbard().full_orthogonalization()) { + if (ctx__.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { /* compute \sum_{m} d/d r_{alpha} O^{-1/2}_{m,i} */ la::wrap(la::lib_t::blas) .gemm('C', 'N', mmax, nbnd__, nawf__, &la::constant>::one(), @@ -174,7 +174,7 @@ Hubbard::compute_occupancies_derivatives(K_point& kp__, Q_operator>> inv_sqrt_O; std::unique_ptr>> evec_O; std::vector eval_O; - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { ovlp = la::dmatrix>(nawf, nawf); wf::inner(ctx_.spla_context(), mt, wf::spin_range(0), phi_atomic, wf::band_range(0, nawf), phi_atomic_S, wf::band_range(0, nawf), ovlp, 0, 0); @@ -231,7 +231,7 @@ Hubbard::compute_occupancies_derivatives(K_point& kp__, Q_operator * used to compute derivative of the inverse square root of the overlap matrix */ - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { grad_phi_atomic_s_phi_atomic[x] = la::dmatrix>(nawf, nawf); wf::inner(ctx_.spla_context(), mt, wf::spin_range(0), *s_phi_atomic_tmp, wf::band_range(0, nawf), phi_atomic, wf::band_range(0, nawf), grad_phi_atomic_s_phi_atomic[x], 0, 0); @@ -249,7 +249,7 @@ Hubbard::compute_occupancies_derivatives(K_point& kp__, Q_operator */ std::array>, 2> phi_atomic_s_psi; - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { for (int ispn = 0; ispn < ctx_.num_spins(); ispn++) { phi_atomic_s_psi[ispn] = la::dmatrix>(nawf, kp__.num_occupied_bands(ispn)); /* compute < phi_atomic | S | psi_{ik} > for all atoms */ @@ -312,7 +312,7 @@ Hubbard::compute_occupancies_derivatives(K_point& kp__, Q_operator we get * O' = + + */ - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { /* */ wf::inner(ctx_.spla_context(), mt, wf::spin_range(0), phi_atomic, wf::band_range(0, nawf), *phi_atomic_tmp, wf::band_range(0, nawf), ovlp, 0, 0); @@ -463,7 +463,7 @@ Hubbard::compute_occupancies_stress_derivatives(K_point& kp__, Q_operato std::unique_ptr>> inv_sqrt_O; std::unique_ptr>> evec_O; std::vector eval_O; - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { ovlp = la::dmatrix>(nawf, nawf); wf::inner(ctx_.spla_context(), mt, wf::spin_range(0), phi_atomic, wf::band_range(0, nawf), phi_atomic_S, wf::band_range(0, nawf), ovlp, 0, 0); @@ -477,7 +477,7 @@ Hubbard::compute_occupancies_stress_derivatives(K_point& kp__, Q_operato /* compute */ std::array>, 2> phi_atomic_s_psi; - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { for (int ispn = 0; ispn < ctx_.num_spins(); ispn++) { phi_atomic_s_psi[ispn] = la::dmatrix>(nawf, kp__.num_occupied_bands(ispn)); /* compute < phi_atomic | S | psi_{ik} > for all atoms */ @@ -508,7 +508,7 @@ Hubbard::compute_occupancies_stress_derivatives(K_point& kp__, Q_operato sirius::apply_S_operator_strain_deriv(mt, 3 * nu + mu, bp_gen, bp_coeffs, bp_strain_gen, bp_strain_coeffs, phi_atomic, q_op__, *ds_phi_atomic); - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { /* compute */ wf::inner(ctx_.spla_context(), mt, wf::spin_range(0), phi_atomic, wf::band_range(0, nawf), *ds_phi_atomic, wf::band_range(0, nawf), ovlp, 0, 0); diff --git a/src/k_point/k_point.cpp b/src/k_point/k_point.cpp index 6c32bb6cd..d15a00cfa 100644 --- a/src/k_point/k_point.cpp +++ b/src/k_point/k_point.cpp @@ -238,7 +238,7 @@ K_point::generate_hubbard_orbitals() sirius::apply_S_operator>(mem, wf::spin_range(0), wf::band_range(0, nwf), bp_gen, bp_coeffs, *atomic_wave_functions_, q_op.get(), *atomic_wave_functions_S_); - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { /* save phi and sphi */ wf_tmp = std::make_unique>(gkvec_, wf::num_mag_dims(0), wf::num_bands(nwf), @@ -319,7 +319,7 @@ K_point::generate_hubbard_orbitals() } } /* restore phi and sphi */ - if (ctx_.cfg().hubbard().full_orthogonalization()) { + if (ctx_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { wf::copy(memory_t::host, *wf_tmp, wf::spin_index(0), wf::band_range(0, nwf), *atomic_wave_functions_, wf::spin_index(0), wf::band_range(0, nwf)); diff --git a/src/unit_cell/atom_type.cpp b/src/unit_cell/atom_type.cpp index a7ae92227..5388ce606 100644 --- a/src/unit_cell/atom_type.cpp +++ b/src/unit_cell/atom_type.cpp @@ -358,13 +358,15 @@ Atom_type::print_info(std::ostream& out__) const } out__ << lo_descriptors_hub_[i]; } + + bool orthogonalize_ = parameters_.cfg().hubbard().hubbard_subspace_method() == "orthogonalize"; + bool full_orthogonalization_ = + parameters_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization"; + bool normalize_ = parameters_.cfg().hubbard().hubbard_subspace_method() == "normalize"; out__ << std::endl; - out__ << " orthogonalize : " << boolstr(parameters_.cfg().hubbard().orthogonalize()) - << std::endl - << " normalize : " << boolstr(parameters_.cfg().hubbard().normalize()) - << std::endl - << " full_orthogonalization : " - << boolstr(parameters_.cfg().hubbard().full_orthogonalization()) << std::endl + out__ << " orthogonalize : " << boolstr(orthogonalize_) << std::endl + << " normalize : " << boolstr(normalize_) << std::endl + << " full_orthogonalization : " << boolstr(full_orthogonalization_) << std::endl << " simplified : " << boolstr(parameters_.cfg().hubbard().simplified()) << std::endl; } @@ -858,7 +860,7 @@ Atom_type::read_hubbard_input() } } - if (parameters_.cfg().hubbard().full_orthogonalization()) { + if (parameters_.cfg().hubbard().hubbard_subspace_method() == "full_orthogonalization") { this->hubbard_correction_ = true; if (lo_descriptors_hub_.empty()) { for (int s = 0; s < (int)ps_atomic_wfs_.size(); s++) { diff --git a/verification/test22/output_ref.json b/verification/test22/output_ref.json index c15104414..2824f7283 100644 --- a/verification/test22/output_ref.json +++ b/verification/test22/output_ref.json @@ -5,35 +5,38 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 32, - "fft_mode": "serial", + "fft_mode": "parallel", "gen_evp_solver_name": "lapack", - "memory_usage": "high", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": true, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": true, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 0.0001, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, "verbosity": 2, "verification": 0 }, "hubbard": { - "full_orthogonalization": false, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "none", "local": [ { "J": 0.0, @@ -45,9 +48,8 @@ "total_initial_occupancy": 8 } ], + "local_constraint": [], "nonlocal": [], - "normalize": false, - "orthogonalize": false, "simplified": true }, "iterative_solver": { @@ -81,6 +83,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -97,8 +100,8 @@ "gk_cutoff": 6.325, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 4, @@ -212,6 +215,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -224,55 +237,66 @@ 1 ], "num_atoms": 4, - "omega": 249.33862849999997 + "omega": 249.3386285 }, "counters": { - "band_evp_work_count": 5141.447995115001, - "local_operator_num_applied": 39628 + "band_evp_work_count": 6094.895786688399, + "local_operator_num_applied": 53141 }, - "git_hash": "ce6ae705e2870be0b66928bcce68667b3c0cdf49", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.10974174153770971, + "band_gap": 0.10974172760116385, "converged": true, - "core_leakage": 0.0, - "efermi": 0.5246334957773069, + "efermi": 0.5246334556620487, "energy": { - "bxc": -0.21533660045621467, - "core_eval_sum": 0.0, - "entropy_sum": -2.468095155091394e-16, - "enuc": 0.0, - "eval_sum": -27.46239309559973, - "ewald": -237.8225283083057, - "exc": -42.93999555007287, - "kin": 114.98833840923253, - "scf_correction": -8.543736385036027e-08, - "total": -375.38903762575023, - "veff": -142.23539490437605, - "vha": 246.75254182494697, - "vloc": -335.33821793272693, - "vxc": -53.6497187965967 + "bxc": -0.2153364979074735, + "entropy_sum": -2.467979438715347e-16, + "eval_sum": -27.462395753275004, + "ewald": -237.82252835243912, + "exc": -42.939995185083696, + "kin": 114.98833783810144, + "scf_correction": -1.1304166491754586e-09, + "total": -375.3890376308642, + "veff": -142.23539709346898, + "vha": 246.75253646841466, + "vloc": -335.3382151243094, + "vxc": -53.64971843757389 }, "etot_history": [ - -359.0918985584859, - -370.84096812724385, - -373.99733375306323, - -374.9262348738466, - -374.8800418937111, - -375.3691863584895, - -375.3522202716779, - -375.39878595543917, - -375.3886962095654, - -375.3888452121745, - -375.38946907692196, - -375.3890395134396, - -375.3890169010583, - -375.38905486659564, - -375.38904996549076, - -375.38903472902916, - -375.3890366040884, - -375.38903725582543, - -375.3890376169785, - -375.38903762575023 + -358.4084383387285, + -370.87678391559444, + -373.82390452188343, + -375.11651120379673, + -374.94523565019944, + -375.321392013332, + -375.2291798715251, + -375.41123130892936, + -375.3925709189242, + -375.38716424885126, + -375.38898244277743, + -375.38886923760765, + -375.38907555920605, + -375.3890417664653, + -375.38905947455726, + -375.38905489646515, + -375.38902894787884, + -375.3890345423415, + -375.38903681850707, + -375.3890377418872, + -375.38903764566606, + -375.38903762273264, + -375.3890376433061, + -375.38903762737544, + -375.3890376312384, + -375.3890376308435, + -375.38903763079304, + -375.38903763091844, + -375.38903763102815, + -375.3890376309063, + -375.38903763090457, + -375.3890376308841, + -375.3890376308776, + -375.3890376308642 ], "forces": [ [ @@ -286,58 +310,73 @@ 0.0 ], [ - -2.154001144332873e-27, - -1.0771076498589902e-27, - 1.0770745720121956e-27 + 1.723271577835958e-26, + 4.3081961752431304e-26, + -3.446581809085899e-26 ], [ - 3.231209207364338e-27, - -2.1541513909426594e-27, - -1.0768558024199293e-27 + 1.7233257927638924e-26, + -2.5849479910362307e-26, + 3.44658629650267e-26 ] ], - "num_scf_iterations": 19, + "num_scf_iterations": 33, + "rho_min": 0.011102112306705672, "rms_history": [ - 0.24948540316260026, - 0.4223991628011268, - 0.15771137063893834, - 0.043305862904582534, - 0.02725259951530781, - 0.005881417513958454, - 0.0023499137156983755, - 0.0022576325526756525, - 0.0004600300221397486, - 0.00017304871078388962, - 6.332582005717656e-05, - 1.697826933561424e-05, - 1.3650434458740082e-05, - 7.012852169725774e-06, - 2.81663841182026e-06, - 9.286663670762648e-07, - 3.094542007816707e-07, - 4.6032609136001136e-08, - 1.7310503948905668e-08, - 6.012874366940067e-09 + 0.2603150775868331, + 0.42969943019134943, + 0.15367955360049987, + 0.03668355022084875, + 0.032364647149176945, + 0.016428456885404827, + 0.011208731540272241, + 0.0023431136879189652, + 0.001528511371610114, + 0.0002838617787249873, + 0.000129448210735305, + 7.213923382194998e-05, + 6.502476652114032e-05, + 1.8399339420840173e-05, + 6.900372962257638e-06, + 7.51379643173383e-06, + 3.3260278990222326e-06, + 5.242836206422701e-07, + 1.7079472164631037e-07, + 7.578089571316931e-08, + 2.7728952963261304e-08, + 1.4962006366791425e-08, + 3.0970384697738574e-09, + 5.558742661403489e-10, + 3.50566659298708e-10, + 1.9410815706712357e-10, + 2.7240397345843037e-10, + 4.68953040117688e-10, + 4.6126372187859634e-10, + 3.8109186470518147e-10, + 3.267452670139814e-10, + 2.455305444225234e-10, + 2.542183283796671e-10, + 2.45257032120946e-10 ], - "scf_time": 84.010706007, + "scf_time": 60.561824894, "stress": [ [ - -8.490828646799675e-05, - 8.476751189883732e-06, - 8.476751189883722e-06 + -8.489845282177479e-05, + 8.461485223347476e-06, + 8.461485223347481e-06 ], [ - 8.476751189883732e-06, - -8.4908286467969e-05, - 8.476751189883722e-06 + 8.461485223347476e-06, + -8.489845282180428e-05, + 8.461485223347475e-06 ], [ - 8.476751189883722e-06, - 8.476751189883722e-06, - -8.490828646805573e-05 + 8.461485223347481e-06, + 8.461485223347475e-06, + -8.489845282186673e-05 ] ] }, "task": 0, - "threads_per_rank": 16 + "threads_per_rank": 4 } \ No newline at end of file diff --git a/verification/test22/sirius.json b/verification/test22/sirius.json index 0ed42b70a..31346c395 100644 --- a/verification/test22/sirius.json +++ b/verification/test22/sirius.json @@ -68,7 +68,6 @@ } }, "hubbard" : { - "full_orthogonalization": false, "simplified" : true, "local" : [ { diff --git a/verification/test24/output_ref.json b/verification/test24/output_ref.json index 07b08c775..248cce92c 100644 --- a/verification/test24/output_ref.json +++ b/verification/test24/output_ref.json @@ -5,35 +5,38 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 32, - "fft_mode": "serial", + "fft_mode": "parallel", "gen_evp_solver_name": "lapack", - "memory_usage": "high", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": true, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": false, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 0.0001, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, - "verbosity": 2, + "verbosity": 1, "verification": 0 }, "hubbard": { - "full_orthogonalization": false, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "none", "local": [ { "J": 0.0, @@ -58,6 +61,7 @@ "total_initial_occupancy": 6.0 } ], + "local_constraint": [], "nonlocal": [ { "T": [ @@ -540,8 +544,6 @@ ] } ], - "normalize": false, - "orthogonalize": false, "simplified": false }, "iterative_solver": { @@ -575,6 +577,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -591,8 +594,8 @@ "gk_cutoff": 8.0, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 4, @@ -706,6 +709,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -721,52 +734,62 @@ "omega": 244.65193599999998 }, "counters": { - "band_evp_work_count": 5453.145888459187, - "local_operator_num_applied": 41210 + "band_evp_work_count": 6158.010482393651, + "local_operator_num_applied": 52573 }, - "git_hash": "e9f2d4bb3608d5c83dc05e3efb31a11ff7bf1c05", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.11372279448745692, + "band_gap": 0.11372286810628573, "converged": true, - "core_leakage": 0.0, - "efermi": 0.5465272479599192, + "efermi": 0.5465272834823605, "energy": { - "bxc": -0.2016845381284836, - "core_eval_sum": 0.0, - "entropy_sum": -1.3785464372953916e-14, - "enuc": 0.0, - "eval_sum": -26.670665056968037, - "ewald": -239.33155450557894, - "exc": -42.97454526948176, - "kin": 115.06945060535183, - "scf_correction": 1.2282881186820305e-05, - "total": -375.4175873683011, - "veff": -141.5384311241914, - "vha": 245.4767965268977, - "vloc": -333.3046713419334, - "vxc": -53.7105563091324 + "bxc": -0.2016840891333303, + "entropy_sum": -1.3786339020955453e-14, + "eval_sum": -26.670663206572435, + "ewald": -239.33155454842023, + "exc": -42.97454309484983, + "kin": 115.06945465984519, + "scf_correction": 2.991669134644326e-10, + "total": -375.4175873449568, + "veff": -141.5384337772843, + "vha": 245.47677477688487, + "vloc": -333.3046545335191, + "vxc": -53.710554020627754 }, "etot_history": [ - -359.721915063696, - -371.37562028246145, - -373.9063838926186, - -375.0357579658876, - -374.766778465209, - -375.3828634143508, - -375.44134707423797, - -375.42281744305126, - -375.40990909258517, - -375.4178108443515, - -375.41893248012013, - -375.4173411543968, - -375.4174677258191, - -375.41759745769275, - -375.4175795008814, - -375.417595741125, - -375.41758595577255, - -375.4175846780406, - -375.4175873279337, - -375.4175873683011 + -359.30429344799825, + -371.3695565468656, + -373.7876273978042, + -375.1604071680232, + -375.0148694252025, + -375.1342336228813, + -375.3831116799262, + -375.404715181061, + -375.42026006261415, + -375.41759718962464, + -375.41693033517345, + -375.41814868022, + -375.4174894260394, + -375.41743484289, + -375.41763261121287, + -375.41760293417803, + -375.41759218409345, + -375.417588034386, + -375.41758752718533, + -375.4175873368588, + -375.41758730473407, + -375.41758737039606, + -375.4175873472568, + -375.4175873434154, + -375.41758734474445, + -375.41758734531544, + -375.4175873459617, + -375.4175873455582, + -375.4175873454648, + -375.4175873454172, + -375.4175873452698, + -375.41758734550893, + -375.4175873449568 ], "forces": [ [ @@ -780,41 +803,55 @@ 0.0 ], [ - 6.77625280764636e-21, - 1.552895029097067e-20, - -5.64689062327348e-21 + 2.876857854428433e-32, + 5.386409796792451e-27, + 8.582863911115445e-27 ], [ - 6.776265463267136e-21, - -3.0157807600941564e-26, - 1.9199433935271015e-20 + -2.1540976976207513e-27, + 6.462301286089226e-27, + -9.68093569360508e-27 ] ], - "num_scf_iterations": 19, + "num_scf_iterations": 32, + "rho_min": 0.011482845699626917, "rms_history": [ - 0.253753952308959, - 0.40630320115579927, - 0.15105101392401402, - 0.03745968380938165, - 0.0272166314491455, - 0.027675175865754513, - 0.008486418335490254, - 0.0066056469594926925, - 0.0024855101370033104, - 0.0010602356120234999, - 0.00035495394979684553, - 2.485201285540339e-05, - 1.8831940639527654e-05, - 7.680688040387284e-06, - 5.350064169863785e-06, - 1.4205047026355141e-06, - 1.1574726094085924e-06, - 6.89522859121526e-07, - 1.507692407468822e-07, - 7.387103736401036e-08 + 0.26153436671148983, + 0.4096292512606949, + 0.14470451686707775, + 0.037924149943026654, + 0.03318643862621501, + 0.0309753705719922, + 0.009521138154423054, + 0.006241523954531868, + 0.0029031246542821207, + 0.0011386692688553485, + 0.00034971694395251074, + 9.61354269119513e-05, + 2.8282973689546486e-05, + 2.1812398512299017e-05, + 1.3126124460867203e-05, + 1.8649283651826377e-06, + 1.2311257508628009e-06, + 3.347580781382122e-07, + 1.2618232169781826e-07, + 4.559959967070747e-08, + 2.6792042301462414e-08, + 1.0116685803841352e-08, + 4.030260886087777e-09, + 4.4384615049115285e-10, + 1.1986449819122424e-09, + 9.262535679122138e-10, + 1.3587503737795905e-09, + 1.2675854524070093e-09, + 1.547374384708962e-09, + 1.6527138515073712e-09, + 1.6699816488016163e-09, + 1.7549764527285359e-09, + 1.6874433521006656e-09 ], - "scf_time": 90.637994931 + "scf_time": 78.107713213 }, "task": 0, - "threads_per_rank": 16 + "threads_per_rank": 4 } \ No newline at end of file diff --git a/verification/test24/sirius.json b/verification/test24/sirius.json index aae8a761b..588bcacb8 100644 --- a/verification/test24/sirius.json +++ b/verification/test24/sirius.json @@ -5,7 +5,6 @@ "verbosity": 1 }, "hubbard": { - "full_orthogonalization": false, "local": [ { "atom_type": "Ni", diff --git a/verification/test25/output_ref.json b/verification/test25/output_ref.json index dd195b37b..5fefaa7f0 100644 --- a/verification/test25/output_ref.json +++ b/verification/test25/output_ref.json @@ -5,35 +5,38 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 32, - "fft_mode": "serial", + "fft_mode": "parallel", "gen_evp_solver_name": "lapack", - "memory_usage": "high", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": true, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": false, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 0.0001, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, "verbosity": 2, "verification": 0 }, "hubbard": { - "full_orthogonalization": true, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { "J": 0.0, @@ -47,9 +50,8 @@ "total_initial_occupancy": 8.0 } ], + "local_constraint": [], "nonlocal": [], - "normalize": false, - "orthogonalize": false, "simplified": false }, "iterative_solver": { @@ -71,7 +73,7 @@ }, "locked": true, "mixer": { - "beta": 0.7, + "beta": 0.5, "beta0": 0.15, "beta_scaling_factor": 1.0, "linear_mix_rms_tol": 1000000.0, @@ -83,6 +85,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -99,8 +102,8 @@ "gk_cutoff": 8.0, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 4, @@ -214,6 +217,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -229,54 +242,66 @@ "omega": 244.65193599999998 }, "counters": { - "band_evp_work_count": 6117.245700183189, - "local_operator_num_applied": 44814 + "band_evp_work_count": 6769.204355790763, + "local_operator_num_applied": 58771 }, - "git_hash": "d7ce09f9ac54bdd09dc9291ee8ce9c01f1d15409", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.11802673561426846, + "band_gap": 0.11802688817839746, "converged": true, - "core_leakage": 0.0, - "efermi": 0.5438705272027462, + "efermi": 0.5433353639238891, "energy": { - "bxc": -0.21859447584759642, - "core_eval_sum": 0.0, - "entropy_sum": -4.200731650660978e-16, - "enuc": 0.0, - "eval_sum": -26.803877648570584, - "ewald": -239.32629513032276, - "exc": -42.97446450188511, - "kin": 115.09052147993134, - "scf_correction": 6.813148274886771e-06, - "total": -375.40350474684914, - "veff": -141.67580465265434, - "vha": 245.08051282721632, - "vloc": -333.0637124041647, - "vxc": -53.69260507567651 + "bxc": -0.21859449955159016, + "entropy_sum": -2.4255683113949476e-16, + "eval_sum": -26.80387290654917, + "ewald": -239.326295173162, + "exc": -42.97446413308436, + "kin": 115.09052586559267, + "scf_correction": 9.11734332476044e-09, + "total": -375.4035050739261, + "veff": -141.67580427259026, + "vha": 245.08050938458223, + "vloc": -333.0637090622103, + "vxc": -53.692604594986456 }, "etot_history": [ - -359.4828282088488, - -371.2850943395904, - -373.7369694681939, - -375.1289643650721, - -375.1758735921571, - -374.9133582906594, - -375.2786549987677, - -375.3894463790578, - -375.39816028542475, - -375.402050325746, - -375.4046990084537, - -375.4034887537392, - -375.4038858399482, - -375.4034927452544, - -375.40351214097376, - -375.40350951600726, - -375.4034849314651, - -375.4035051373547, - -375.4035105730276, - -375.4035038930112, - -375.40350544771877, - -375.40350474684914 + -363.01882295940175, + -372.6209083877901, + -374.1974706358735, + -375.2167041663613, + -375.22582404563695, + -374.81068657546, + -375.3582464265453, + -375.41126521092764, + -375.41516339173774, + -375.40470669561296, + -375.4021733310791, + -375.40546736967826, + -375.40361207008027, + -375.4035418057181, + -375.4035491118828, + -375.40357354524826, + -375.4034761581918, + -375.40345661730794, + -375.40349304842283, + -375.40350645913486, + -375.40350944572043, + -375.40350524502406, + -375.4035049016866, + -375.403505084502, + -375.4035051163303, + -375.4035050844166, + -375.4035050542828, + -375.4035050072227, + -375.40350502166757, + -375.403505114621, + -375.40350508756666, + -375.4035050783742, + -375.40350507656706, + -375.4035050756796, + -375.40350507090795, + -375.40350507376155, + -375.4035050739261 ], "forces": [ [ @@ -290,43 +315,59 @@ 0.0 ], [ - -0.003147380200048457, - -0.003147380200048471, - -0.003147380200048471 + -0.0031472582171360656, + -0.0031472582171361073, + -0.0031472582171360795 ], [ - 0.0031473802000484847, - 0.003147380200048471, - 0.003147380200048471 + 0.0031472582171360795, + 0.0031472582171360795, + 0.0031472582171360934 ] ], - "num_scf_iterations": 21, + "num_scf_iterations": 36, + "rho_min": 0.011475481668429172, "rms_history": [ - 0.2608353227548882, - 0.40858053508916237, - 0.14421172485360406, - 0.041156411707732835, - 0.036559392706819197, - 0.036728104126820066, - 0.022348364211221914, - 0.008346834084517194, - 0.006787574390022183, - 0.003059261310011073, - 0.0017782021845775772, - 0.00036227811437645476, - 0.00015023509806226333, - 4.8187868205314456e-05, - 2.622905749106282e-05, - 2.2417964105640664e-05, - 1.5211917520931938e-05, - 7.513976811385638e-06, - 2.418616766186595e-06, - 1.4374599664458488e-06, - 6.507210784613721e-07, - 1.8600699115531217e-07 + 0.26083542472792376, + 0.2957980492491547, + 0.08752557935095763, + 0.04860013029519488, + 0.0440468309977496, + 0.042179371739919154, + 0.013616341571010718, + 0.0049305478463861786, + 0.004068627173199184, + 0.0016711848358539495, + 0.0007486507956986471, + 0.0001573180192939945, + 5.7420419825483055e-05, + 2.904546933463338e-05, + 1.9950335757937397e-05, + 1.3346691842352391e-05, + 5.905733262715128e-06, + 4.1115962797466895e-06, + 1.003734746140182e-06, + 5.579930430637191e-07, + 2.472257996237909e-07, + 8.509055224221016e-08, + 5.0891242948599986e-08, + 3.515914890796067e-08, + 4.492496161720844e-08, + 3.006155291758761e-08, + 3.2032644460567474e-08, + 1.8071026715077872e-08, + 1.3006767527641743e-08, + 8.174931961367517e-09, + 5.847816933936446e-09, + 4.827506276379923e-09, + 4.305504611000628e-09, + 3.2185057222469003e-09, + 2.2807992840266675e-08, + 3.422334332627641e-09, + 3.81031714969496e-09 ], - "scf_time": 136.89833212 + "scf_time": 83.969306889 }, "task": 0, - "threads_per_rank": 16 + "threads_per_rank": 4 } \ No newline at end of file diff --git a/verification/test25/sirius.json b/verification/test25/sirius.json index 458d5fd12..8be0feb4d 100644 --- a/verification/test25/sirius.json +++ b/verification/test25/sirius.json @@ -1,13 +1,12 @@ { "control": { "gen_evp_solver_name": "lapack", - "print_checksum": false, "print_forces": true, "processing_unit": "cpu", "verbosity": 2 }, "hubbard": { - "full_orthogonalization": true, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { "atom_type": "Ni", diff --git a/verification/test26/output_ref.json b/verification/test26/output_ref.json index 3c93eb3fe..64fe9a5aa 100644 --- a/verification/test26/output_ref.json +++ b/verification/test26/output_ref.json @@ -5,35 +5,38 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 32, - "fft_mode": "serial", + "fft_mode": "parallel", "gen_evp_solver_name": "lapack", - "memory_usage": "high", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": true, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": true, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 0.0001, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, "verbosity": 2, "verification": 0 }, "hubbard": { - "full_orthogonalization": true, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { "J": 0.0, @@ -45,9 +48,8 @@ "total_initial_occupancy": 8 } ], + "local_constraint": [], "nonlocal": [], - "normalize": false, - "orthogonalize": false, "simplified": false }, "iterative_solver": { @@ -81,6 +83,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -97,8 +100,8 @@ "gk_cutoff": 6.325, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 4, @@ -212,6 +215,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -224,61 +237,69 @@ 1 ], "num_atoms": 4, - "omega": 249.33862849999997 + "omega": 249.3386285 }, "counters": { - "band_evp_work_count": 6238.23570120089, - "local_operator_num_applied": 48595 + "band_evp_work_count": 6688.102076124586, + "local_operator_num_applied": 58607 }, - "git_hash": "fc0597cef459d4d40fc311c62ff91198b238460a", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.11290281496797305, + "band_gap": 0.11290281924384205, "converged": true, - "core_leakage": 0.0, - "efermi": 0.524603195877114, + "efermi": 0.5246031969631006, "energy": { - "bxc": -0.21860314932509944, - "core_eval_sum": 0.0, - "entropy_sum": -2.01531863354457e-16, - "enuc": 0.0, - "eval_sum": -27.43459627125252, - "ewald": -237.8173020943241, - "exc": -42.94622991112447, - "kin": 115.0079742325329, - "scf_correction": -1.6308047179336427e-07, - "total": -375.40235130515407, - "veff": -142.2239673544603, - "vha": 246.81645701452487, - "vloc": -335.38603447083693, - "vxc": -53.65438989814585 + "bxc": -0.21860314224858918, + "entropy_sum": -2.015320078459703e-16, + "eval_sum": -27.43459641965039, + "ewald": -237.81730213845265, + "exc": -42.94622990705068, + "kin": 115.00797407028195, + "scf_correction": 3.447553353908006e-10, + "total": -375.4023513291656, + "veff": -142.22396734768375, + "vha": 246.81645700234358, + "vloc": -335.3860344486933, + "vxc": -53.65438990132177 }, "etot_history": [ - -358.58998270371427, - -370.79393902555955, - -373.7906021863131, - -375.1115764871039, - -375.203971634001, - -374.88592419968893, - -375.3308642423175, - -375.3157682502206, - -375.4073287908804, - -375.4032151520017, - -375.4029281648019, - -375.40122377446545, - -375.4029513914566, - -375.4026845681374, - -375.40243526835786, - -375.4023511737986, - -375.4023608856301, - -375.40234860932867, - -375.4023519878328, - -375.4023504612926, - -375.4023513150114, - -375.4023513034058, - -375.40235127063613, - -375.40235128845586, - -375.4023512996062, - -375.40235130515407 + -358.5899968925114, + -370.79393973413397, + -373.7906019813531, + -375.1115769850013, + -375.20397095196427, + -374.8859215174888, + -375.3308708612543, + -375.31576423623073, + -375.40733183222983, + -375.40321197484093, + -375.4029229657313, + -375.40122543519806, + -375.40295219331165, + -375.40268444148114, + -375.4024354525759, + -375.40235111699127, + -375.4023609322153, + -375.4023487100072, + -375.40235196497724, + -375.40235048663135, + -375.4023513223687, + -375.4023513171191, + -375.402351294988, + -375.40235131151667, + -375.4023513225519, + -375.40235132839825, + -375.40235132976545, + -375.40235133094984, + -375.4023513290324, + -375.4023513291886, + -375.4023513291537, + -375.4023513291813, + -375.40235132915893, + -375.40235132919213, + -375.4023513291424, + -375.4023513291519, + -375.4023513291656 ], "forces": [ [ @@ -292,64 +313,76 @@ 0.0 ], [ - -0.0030170646753711994, - -0.0030170646753712132, - -0.0030170646753711994 + -0.0030171290616558795, + -0.003017129061655935, + -0.003017129061655935 ], [ - 0.003017064675371227, - 0.0030170646753712132, - 0.0030170646753711994 + 0.0030171290616559073, + 0.003017129061655935, + 0.003017129061655921 ] ], - "num_scf_iterations": 25, + "num_scf_iterations": 36, + "rho_min": 0.010971688340902341, "rms_history": [ - 0.2596323555656473, - 0.42859956970267526, - 0.15280128548289743, - 0.038128435751016564, - 0.034210107574337185, - 0.034582142623590086, - 0.015425932918096345, - 0.010612438898731306, - 0.004445454599905798, - 0.0028702053216027234, - 0.0015076472412236034, - 0.0007036422492589357, - 0.00021286033266881558, - 9.939433744277564e-05, - 1.5022529442259261e-05, - 1.2530740899969452e-05, - 6.019154238500895e-06, - 4.1962061574964316e-06, - 2.561482286375246e-06, - 1.0944261409073491e-06, - 4.315794742419462e-07, - 8.357532884394047e-08, - 3.695955756487451e-08, - 1.2515790076208557e-08, - 7.98273260659032e-09, - 5.983601741132654e-09 + 0.2596322879810105, + 0.42859941763018483, + 0.15280120531665745, + 0.03812836362285234, + 0.03420996705676229, + 0.0345820400580156, + 0.015425330938137109, + 0.01061124636683604, + 0.004444653698349462, + 0.0028707636220287346, + 0.001507345368321651, + 0.0007035969132018145, + 0.00021271573943074738, + 9.953328765977966e-05, + 1.515750972477029e-05, + 1.2613273373095966e-05, + 6.025079405305266e-06, + 4.1968887281709924e-06, + 2.558385108384778e-06, + 1.0724038042276352e-06, + 4.2694413600937465e-07, + 8.002399724684633e-08, + 3.283893566896286e-08, + 1.1904845779773785e-08, + 7.699665802767538e-09, + 5.794307245634845e-09, + 2.9605929129422524e-09, + 1.291136514214949e-09, + 2.0662142732013067e-10, + 1.0034045099485089e-10, + 7.752706983962928e-11, + 8.071382712068242e-11, + 6.683115843733248e-11, + 5.3416643795689526e-11, + 3.840764712243318e-11, + 1.931539096430012e-11, + 1.1920474807826677e-11 ], - "scf_time": 130.905326636, + "scf_time": 67.42900069, "stress": [ [ - -0.00026776264852931483, - 6.6095924659749335e-06, - 6.609592465974934e-06 + -0.000267761870508431, + 6.609976010479542e-06, + 6.6099760104795556e-06 ], [ - 6.6095924659749335e-06, - -0.00026776264852932524, - 6.609592465974954e-06 + 6.609976010479542e-06, + -0.0002677618705084466, + 6.609976010479549e-06 ], [ - 6.609592465974934e-06, - 6.609592465974954e-06, - -0.00026776264852931483 + 6.6099760104795556e-06, + 6.609976010479549e-06, + -0.00026776187050842927 ] ] }, "task": 0, - "threads_per_rank": 16 + "threads_per_rank": 4 } \ No newline at end of file diff --git a/verification/test26/sirius.json b/verification/test26/sirius.json index 843439b18..db5308c32 100644 --- a/verification/test26/sirius.json +++ b/verification/test26/sirius.json @@ -66,7 +66,7 @@ } }, "hubbard" : { - "full_orthogonalization": true, + "hubbard_subspace_method" :"full_orthogonalization", "local" : [ { "atom_type" : "Ni", diff --git a/verification/test27/output_ref.json b/verification/test27/output_ref.json index 23d1e6c83..6851bf086 100644 --- a/verification/test27/output_ref.json +++ b/verification/test27/output_ref.json @@ -5,43 +5,48 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 16, "fft_mode": "parallel", "gen_evp_solver_name": "lapack", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": false, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": false, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 9.999999747378752e-05, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, "verbosity": 1, "verification": 0 }, "hubbard": { - "full_orthogonalization": true, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { - "U": 3.0, + "U": 3, "atom_type": "Co", "l": 2, "n": 3, "total_initial_occupancy": 7 } ], + "local_constraint": [], "nonlocal": [ { "T": [ @@ -49,7 +54,7 @@ 0, 0 ], - "V": 3.0, + "V": 3, "atom_pair": [ 0, 1 @@ -69,7 +74,7 @@ -1, -1 ], - "V": 3.0, + "V": 3, "atom_pair": [ 0, 2 @@ -89,7 +94,7 @@ 0, 0 ], - "V": 3.0, + "V": 3, "atom_pair": [ 1, 0 @@ -109,7 +114,7 @@ 1, 1 ], - "V": 3.0, + "V": 3, "atom_pair": [ 2, 0 @@ -124,8 +129,6 @@ ] } ], - "normalize": false, - "orthogonalize": false, "simplified": false }, "iterative_solver": { @@ -159,6 +162,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -175,8 +179,8 @@ "gk_cutoff": 7.0710678118654755, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 2, @@ -184,7 +188,7 @@ 2 ], "nn_radius": -1, - "num_bands": 16, + "num_bands": 26, "num_dft_iter": 100, "num_fv_states": -1, "num_mag_dims": 0, @@ -199,7 +203,7 @@ 0 ], "smearing": "gaussian", - "smearing_width": 0.0, + "smearing_width": 0.001, "so_correction": false, "use_ibz": true, "use_scf_correction": true, @@ -225,7 +229,7 @@ "itsol_tol_ratio": 0, "itsol_tol_scale": [ 0.1, - 0.95 + 0.5 ], "min_occupancy": 1e-14, "mixer_rms_min": 1e-16, @@ -294,6 +298,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -309,67 +323,59 @@ "omega": 217.1091205794796 }, "counters": { - "band_evp_work_count": 1254.09814453125, - "local_operator_num_applied": 3397 + "band_evp_work_count": 971.2717910787438, + "local_operator_num_applied": 3939 }, - "git_hash": "bf4edaeb348e5c1ec100a483cdcd69bbdb6922fa", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.0, + "band_gap": 0.10200634273685188, "converged": true, - "core_leakage": 0.0, - "efermi": 0.35922018008006246, + "efermi": 0.4227405371387467, "energy": { "bxc": 0.0, - "core_eval_sum": 0.0, "entropy_sum": 0.0, - "enuc": 0.0, - "eval_sum": -15.646703899037812, - "ewald": -105.53094657161853, - "exc": -25.694799963926116, - "kin": 86.26169958063443, - "scf_correction": 5.7916726206030944e-05, - "total": -186.62521977052222, - "veff": -101.90840347967224, - "vha": 142.46691422493356, - "vloc": -213.24885217230926, - "vxc": -31.126465532292674 + "eval_sum": -15.64661292379704, + "ewald": -105.53094658632205, + "exc": -25.694796054071354, + "kin": 86.26174485026812, + "scf_correction": -1.047416969868209e-05, + "total": -186.62521992784016, + "veff": -101.90835777406515, + "vha": 142.4669587658097, + "vloc": -213.24885581004523, + "vxc": -31.126460729822387 }, "etot_history": [ - -186.40283268384871, - -186.30916036790634, - -186.59954993948128, - -186.60189907179915, - -186.62327640918676, - -186.62514448352022, - -186.6254013009683, - -186.6253704057805, - -186.62525510873434, - -186.62521862166471, - -186.62521056738794, - -186.62522635156648, - -186.62522149936405, - -186.6252191219425, - -186.62521977052222 + -186.42476288969, + -186.3269432574451, + -186.59911899715348, + -186.60277456077702, + -186.62472124280728, + -186.6257980339608, + -186.62511038626326, + -186.62526920382368, + -186.6252319914857, + -186.62522882928232, + -186.62521967182573, + -186.62521992784016 ], - "num_scf_iterations": 14, + "num_scf_iterations": 11, + "rho_min": 0.0073406007328672696, "rms_history": [ - 0.7023311236700704, - 1.8367212337168943, - 0.5834878296320052, - 0.18895410123718964, - 0.02615569567139331, - 0.027664242846246516, - 0.006700400931364096, - 0.0018512280841747257, - 0.0018023573548706694, - 0.0006571050369575481, - 0.0005114184857082701, - 0.0004837075098500889, - 0.0003680307864470827, - 4.617215876804416e-05, - 7.44582892306861e-05 + 0.6673461067440825, + 1.7642154852195302, + 0.5750295244788726, + 0.16901405988286164, + 0.011155789281530923, + 0.00860984918260355, + 0.006184017083801563, + 0.0009912645614000408, + 0.0005936242037190072, + 0.00019961154077962316, + 7.905000407536102e-05, + 3.415174617889253e-06 ], - "scf_time": 7.99412842 + "scf_time": 3.587723599 }, "task": 0, "threads_per_rank": 4 diff --git a/verification/test27/sirius.json b/verification/test27/sirius.json index 0df5d85b4..eea47dab1 100644 --- a/verification/test27/sirius.json +++ b/verification/test27/sirius.json @@ -4,7 +4,7 @@ "verbosity": 1 }, "hubbard": { - "full_orthogonalization": true, + "hubbard_subspace_method" : "full_orthogonalization", "local": [ { "atom_type": "Co", @@ -96,8 +96,6 @@ ] } ], - "normalize": false, - "orthogonalize": false, "simplified": false }, "iterative_solver": { diff --git a/verification/test28/output_ref.json b/verification/test28/output_ref.json index b927f3911..ca5de3578 100644 --- a/verification/test28/output_ref.json +++ b/verification/test28/output_ref.json @@ -5,43 +5,48 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 16, "fft_mode": "parallel", "gen_evp_solver_name": "lapack", + "gvec_chunk_size": 500000, "mpi_grid_dims": [ 1, 1 ], "num_bands_to_print": 10, "ortho_rf": false, - "print_checksum": false, + "output": "stdout:", "print_forces": false, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": false, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, - "spglib_tolerance": 9.999999747378752e-05, + "spglib_tolerance": 1e-06, "std_evp_solver_name": "lapack", "use_second_variation": true, "verbosity": 1, "verification": 0 }, "hubbard": { - "full_orthogonalization": true, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { - "U": 3.0, + "U": 3, "atom_type": "Co", "l": 2, "n": 3, "total_initial_occupancy": 7 } ], + "local_constraint": [], "nonlocal": [ { "T": [ @@ -49,7 +54,7 @@ 0, 0 ], - "V": 3.0, + "V": 3, "atom_pair": [ 0, 1 @@ -69,7 +74,7 @@ -1, -1 ], - "V": 3.0, + "V": 3, "atom_pair": [ 0, 2 @@ -89,7 +94,7 @@ 0, 0 ], - "V": 3.0, + "V": 3, "atom_pair": [ 1, 0 @@ -109,7 +114,7 @@ 1, 1 ], - "V": 3.0, + "V": 3, "atom_pair": [ 2, 0 @@ -124,8 +129,6 @@ ] } ], - "normalize": false, - "orthogonalize": false, "simplified": true }, "iterative_solver": { @@ -149,8 +152,8 @@ "mixer": { "beta": 0.7, "beta0": 0.15, - "beta_scaling_factor": 1.0, - "linear_mix_rms_tol": 1000000.0, + "beta_scaling_factor": 1, + "linear_mix_rms_tol": 1000000, "max_history": 8, "type": "anderson", "use_hartree": true @@ -159,13 +162,14 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 }, "parameters": { "auto_rmt": 1, - "aw_cutoff": 0.0, + "aw_cutoff": 0, "core_relativity": "dirac", "density_tol": 1e-06, "electronic_structure_method": "pseudopotential", @@ -175,8 +179,8 @@ "gk_cutoff": 7.0710678118654755, "hubbard_correction": true, "lmax_apw": -1, - "lmax_pot": 4, - "lmax_rho": 4, + "lmax_pot": -1, + "lmax_rho": -1, "molecule": false, "ngridk": [ 2, @@ -199,7 +203,7 @@ 0 ], "smearing": "gaussian", - "smearing_width": 0.0, + "smearing_width": 0.02, "so_correction": false, "use_ibz": true, "use_scf_correction": true, @@ -225,7 +229,7 @@ "itsol_tol_ratio": 0, "itsol_tol_scale": [ 0.1, - 0.95 + 0.5 ], "min_occupancy": 1e-14, "mixer_rms_min": 1e-16, @@ -294,6 +298,16 @@ ] ], "lattice_vectors_scale": 1.0 + }, + "vcsqnm": { + "alpha0": 0.01, + "eps_subsp": 0.001, + "forces_tol": 0.0001, + "initial_step_size": -0.1, + "lattice_weight": 2.0, + "nhist_max": 10, + "num_steps": 300, + "stress_tol": 1e-05 } }, "fft_coarse_grid": [ @@ -309,67 +323,73 @@ "omega": 217.1091205794796 }, "counters": { - "band_evp_work_count": 1258.150390625, - "local_operator_num_applied": 3395 + "band_evp_work_count": 1478.228759765625, + "local_operator_num_applied": 3938 }, - "git_hash": "bf4edaeb348e5c1ec100a483cdcd69bbdb6922fa", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { "band_gap": 0.0, "converged": true, - "core_leakage": 0.0, - "efermi": 0.3592202055924963, + "efermi": 0.3592245453968311, "energy": { "bxc": 0.0, - "core_eval_sum": 0.0, "entropy_sum": 0.0, - "enuc": 0.0, - "eval_sum": -15.646703354437992, - "ewald": -105.53094657161853, - "exc": -25.694799911294854, - "kin": 86.26170063007129, - "scf_correction": 5.640581177601689e-05, - "total": -186.62521976539978, - "veff": -101.90840398450928, - "vha": 142.46691226818425, - "vloc": -213.24885078922588, - "vxc": -31.126465463472474 + "eval_sum": -15.64661501520122, + "ewald": -105.53094658632205, + "exc": -25.69479859714379, + "kin": 86.26175560754398, + "scf_correction": 1.7510428591549498e-06, + "total": -186.62522001738586, + "veff": -101.9083706227452, + "vha": 142.46698065527866, + "vloc": -213.24888733768975, + "vxc": -31.126463940325255 }, "etot_history": [ - -186.40283268384866, - -186.30916036790902, - -186.5995499394766, - -186.60189907177755, - -186.6232764091957, - -186.62514448357103, - -186.62540130084318, - -186.62537040578843, - -186.6252551087727, - -186.62521862152693, - -186.62521056710267, - -186.62522635036322, - -186.62522149696065, - -186.62521912180057, - -186.62521976539978 + -186.40283269141548, + -186.3091603753087, + -186.59916177879998, + -186.60214846958814, + -186.62377408669892, + -186.6253139461548, + -186.6253185749159, + -186.62525085281067, + -186.62523234160233, + -186.62526561445486, + -186.62521914784747, + -186.6252212804474, + -186.62522275532052, + -186.62521908812818, + -186.62522294113725, + -186.62522127400723, + -186.625220425796, + -186.62522015192525, + -186.62522001738586 ], - "num_scf_iterations": 14, + "num_scf_iterations": 18, + "rho_min": 0.007340611277249304, "rms_history": [ - 0.70233112367007, - 1.8367212337036574, - 0.5834878296591198, - 0.18895410115160108, - 0.026155695825946103, - 0.027664245334338332, - 0.0067004040356106135, - 0.0018512374073139971, - 0.0018023554887558566, - 0.0006571010736001246, - 0.0005114342960084569, - 0.000483379926429494, - 0.0003679067867061991, - 4.603142628713548e-05, - 7.296273754324421e-05 + 0.7023311238785491, + 1.8367212348493887, + 0.5911365749601826, + 0.18320544245004566, + 0.030519533225464877, + 0.020426934604253974, + 0.011501967795010944, + 0.007098234467059208, + 0.0014284055239945485, + 0.0009690334435640115, + 0.0008900784339559431, + 0.00022658109556912665, + 0.0002987076809125731, + 0.0002520625820480188, + 0.00022380068677147174, + 6.0659990188407976e-05, + 2.028241067782736e-05, + 1.8338237272787528e-05, + 4.097633730265502e-06 ], - "scf_time": 8.06268651 + "scf_time": 4.334212042 }, "task": 0, "threads_per_rank": 4 diff --git a/verification/test28/sirius.json b/verification/test28/sirius.json index ca2b1a16d..9698c5e24 100644 --- a/verification/test28/sirius.json +++ b/verification/test28/sirius.json @@ -4,7 +4,7 @@ "verbosity": 1 }, "hubbard": { - "full_orthogonalization": true, + "hubbard_subspace_method" : "full_orthogonalization", "local": [ { "atom_type": "Co", @@ -96,8 +96,6 @@ ] } ], - "normalize": false, - "orthogonalize": false, "simplified": true }, "iterative_solver": { diff --git a/verification/test29/output_ref.json b/verification/test29/output_ref.json index 4ed1204b6..029d8bc48 100644 --- a/verification/test29/output_ref.json +++ b/verification/test29/output_ref.json @@ -5,6 +5,7 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 16, "fft_mode": "parallel", "gen_evp_solver_name": "lapack", @@ -16,14 +17,9 @@ "num_bands_to_print": 10, "ortho_rf": false, "output": "stdout:", - "print_checksum": false, "print_forces": false, - "print_hash": false, - "print_memory_usage": false, "print_neighbors": false, - "print_performance": false, "print_stress": false, - "print_timers": true, "processing_unit": "cpu", "reduce_gvec": true, "rmt_max": 2.2, @@ -34,7 +30,13 @@ "verification": 0 }, "hubbard": { - "full_orthogonalization": false, + "constrained_calculation": false, + "constraint_beta_mixing": 0.4, + "constraint_error": 1e-06, + "constraint_max_iteration": 10, + "constraint_method": "energy", + "constraint_strength": 1.0, + "hubbard_subspace_method": "orthogonalize", "local": [ { "J": 0, @@ -59,6 +61,7 @@ "total_initial_occupancy": 4 } ], + "local_constraint": [], "nonlocal": [ { "T": [ @@ -541,8 +544,6 @@ ] } ], - "normalize": false, - "orthogonalize": true, "simplified": false }, "iterative_solver": { @@ -576,7 +577,7 @@ "T": 300.0, "kappa": 0.3, "maxiter": 300, - "procssing_unit": "", + "processing_unit": "", "restart": 10, "tau": 0.1, "tol": 1e-09 @@ -733,78 +734,110 @@ "omega": 244.65193599999998 }, "counters": { - "band_evp_work_count": 1707.5898970847516, - "local_operator_num_applied": 11014 + "band_evp_work_count": 1995.1128377547236, + "local_operator_num_applied": 15169 }, - "git_hash": "b43f014d839469298791a703c04024ce8b8804ad", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.10831686988362743, + "band_gap": 0.10831696407606972, "converged": true, - "efermi": 0.5654695481695882, + "efermi": 0.5654694676089546, "energy": { - "bxc": -0.17592121507268188, + "bxc": -0.1759211664726569, "entropy_sum": 0.0, - "eval_sum": -26.322314950488817, - "ewald": -239.3315545473698, - "exc": -42.62111575242271, - "kin": 117.51716138475523, - "scf_correction": -2.697037018606352e-06, - "total": -384.05720271434456, - "veff": -143.66355512017137, - "vha": 245.26506781301723, - "vloc": -335.53890170480713, - "vxc": -53.389721228361275 + "eval_sum": -26.322321767332603, + "ewald": -239.33155454736254, + "exc": -42.6211148885389, + "kin": 117.51715610143485, + "scf_correction": -3.284128524683183e-10, + "total": -384.0572019570718, + "veff": -143.66355670229478, + "vha": 245.26505633608738, + "vloc": -335.53889286108245, + "vxc": -53.389720177293945 }, "etot_history": [ - -370.84636910368613, - -381.293408860447, - -382.7350482260448, - -383.89919581877064, - -383.6367159887511, - -383.87964462204116, - -384.0815041864553, - -384.0509005976106, - -384.0568930513748, - -384.05823823823016, - -384.0581143953874, - -384.0572044060465, - -384.05817440819817, - -384.057201931464, - -384.0568767696513, - -384.05720246826195, - -384.0572091180028, - -384.0571960548035, - -384.05719204254126, - -384.05720225658115, - -384.05720271434456 + -370.84636910367806, + -381.7102512431116, + -382.49131935082016, + -383.9005758399244, + -383.83610156390694, + -383.67943651832616, + -384.0373111367454, + -384.0559128752392, + -384.06473749093504, + -384.05819063680707, + -384.0569014035825, + -384.0583166623031, + -384.0579783222521, + -384.05667861426093, + -384.0572513199831, + -384.05718099317835, + -384.05714902272393, + -384.05718902564536, + -384.0571940549512, + -384.0571984752277, + -384.05720118489234, + -384.0572018570018, + -384.0572020233478, + -384.0572019587227, + -384.05720195719937, + -384.057201958645, + -384.057201957056, + -384.0572019579521, + -384.05720195722705, + -384.0572019572711, + -384.0572019572086, + -384.05720195699513, + -384.05720195721904, + -384.05720195700405, + -384.0572019570344, + -384.05720195703674, + -384.0572019570718 ], - "num_scf_iterations": 20, - "rho_min": 0.011093302812648323, + "num_scf_iterations": 36, + "rho_min": 0.011093315570817774, "rms_history": [ - 0.2658420713090595, - 0.3025780899946948, - 0.09773658817218377, - 0.04800278414827337, - 0.039713113493557446, - 0.0199896202216404, - 0.01109132279816199, - 0.003690512854972515, - 0.002581533353730986, - 0.000957543398683697, - 0.0004174278594734864, - 0.00019428175524000883, - 6.11032150243503e-05, - 3.642202578465541e-05, - 2.2433453009127172e-05, - 1.2377609044597995e-05, - 3.790634592163714e-06, - 1.8554365156682989e-06, - 6.015357081172674e-07, - 1.8701361479789777e-07, - 7.748960424952386e-08 + 0.8878513341252612, + 1.6854043316871283, + 0.463727545139178, + 0.36269439189638075, + 0.25899714599009904, + 0.22451006101873788, + 0.09462725898941218, + 0.026511061613232207, + 0.029976981914179652, + 0.0056148038297765355, + 0.0019577987214029146, + 0.002688843842542426, + 0.0004121492535916677, + 0.0006881771911103997, + 0.00010520139275278407, + 0.0001828453475168806, + 0.00011454647019288473, + 3.513566946671778e-05, + 1.30749446482842e-05, + 2.746930736415016e-06, + 4.7217844024385744e-07, + 2.5217229149245803e-07, + 8.047571742301756e-08, + 2.753111165308474e-08, + 1.962716415510771e-08, + 1.360415139799002e-08, + 7.960803480673156e-09, + 3.9393209755884405e-09, + 1.8035447475066665e-09, + 1.0178271750374853e-09, + 1.1082329081729166e-09, + 1.3485184978531457e-09, + 2.18527485033782e-09, + 1.5255487194296239e-09, + 1.7744616544733363e-09, + 1.9677400605524027e-09, + 2.1393162856281476e-09 ], - "scf_time": 51.888197398 + "scf_time": 64.497130815 }, "task": 0, - "threads_per_rank": 16 + "threads_per_rank": 4 } \ No newline at end of file diff --git a/verification/test29/sirius.json b/verification/test29/sirius.json index 5fd61765e..9ae852b1d 100644 --- a/verification/test29/sirius.json +++ b/verification/test29/sirius.json @@ -1,10 +1,10 @@ { "control": { "verbosity": 1, - "print_neighbors" : false + "print_neighbors": false }, "hubbard": { - "orthogonalize": true, + "hubbard_subspace_method": "orthogonalize", "local": [ { "J": 0, @@ -31,182 +31,489 @@ ], "nonlocal": [ { - "T": [ -1, -1, 0], + "T": [ + -1, + -1, + 0 + ], "V": 0.3653, - "atom_pair": [ 0, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ -1, 0, -1 ], + "T": [ + -1, + 0, + -1 + ], "V": 0.3653, - "atom_pair": [ 0, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, -1, -1 ], + "T": [ + 0, + -1, + -1 + ], "V": 0.3653, - "atom_pair": [ 0, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ -1, 0, 0], + "T": [ + -1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 0, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, -1, 0 ], + "T": [ + 0, + -1, + 0 + ], "V": 0.3653, - "atom_pair": [ 0, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, 0, -1 ], + "T": [ + 0, + 0, + -1 + ], "V": 0.3653, - "atom_pair": [ 0, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 0, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, - { - "T": [ -1, 0, 0 ], + "T": [ + -1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 1, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, -1, 0 ], + "T": [ + 0, + -1, + 0 + ], "V": 0.3653, - "atom_pair": [ 1, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, 0, -1 ], + "T": [ + 0, + 0, + -1 + ], "V": 0.3653, - "atom_pair": [ 1, 2 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 2 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, 0, 1 ], + "T": [ + 0, + 0, + 1 + ], "V": 0.3653, - "atom_pair": [ 1, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 0, 1, 0 ], + "T": [ + 0, + 1, + 0 + ], "V": 0.3653, - "atom_pair": [ 1, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, { - "T": [ 1, 0, 0 ], + "T": [ + 1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 1, 3 ], - "l": [ 2, 1 ], - "n": [ 3, 2 ] + "atom_pair": [ + 1, + 3 + ], + "l": [ + 2, + 1 + ], + "n": [ + 3, + 2 + ] }, - { - "T": [ 0, 1, 1 ], + "T": [ + 0, + 1, + 1 + ], "V": 0.3653, - "atom_pair": [ 2, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 1, 0, 1 ], + "T": [ + 1, + 0, + 1 + ], "V": 0.3653, - "atom_pair": [ 2, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 1, 1, 0 ], + "T": [ + 1, + 1, + 0 + ], "V": 0.3653, - "atom_pair": [ 2, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, 0, 1 ], + "T": [ + 0, + 0, + 1 + ], "V": 0.3653, - "atom_pair": [ 2, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, 1, 0 ], + "T": [ + 0, + 1, + 0 + ], "V": 0.3653, - "atom_pair": [ 2, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 1, 0, 0 ], + "T": [ + 1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 2, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 2, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, - { - "T": [ -1, 0, 0 ], + "T": [ + -1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 3, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, -1, 0 ], + "T": [ + 0, + -1, + 0 + ], "V": 0.3653, - "atom_pair": [ 3, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, 0, -1 ], + "T": [ + 0, + 0, + -1 + ], "V": 0.3653, - "atom_pair": [ 3, 1 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 1 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, 0, 1 ], + "T": [ + 0, + 0, + 1 + ], "V": 0.3653, - "atom_pair": [ 3, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 0, 1, 0 ], + "T": [ + 0, + 1, + 0 + ], "V": 0.3653, - "atom_pair": [ 3, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] }, { - "T": [ 1, 0, 0 ], + "T": [ + 1, + 0, + 0 + ], "V": 0.3653, - "atom_pair": [ 3, 0 ], - "l": [ 1, 2 ], - "n": [ 2, 3 ] + "atom_pair": [ + 3, + 0 + ], + "l": [ + 1, + 2 + ], + "n": [ + 2, + 3 + ] } - ], - "normalize": false, - "simplified": false + ] }, "iterative_solver": { - "empty_states_tolerance": 1e-05, + "empty_states_tolerance": 0.00001, "energy_tolerance": 0.01, "num_steps": 20, "type": "davidson" @@ -218,14 +525,18 @@ "use_hartree": false }, "parameters": { - "density_tol": 1e-06, + "density_tol": 0.000001, "electronic_structure_method": "pseudopotential", - "energy_tol": 1e-06, + "energy_tol": 0.000001, "extra_charge": 0, "gamma_point": false, "gk_cutoff": 8.94427190999916, "hubbard_correction": true, - "ngridk": [ 2, 2, 2 ], + "ngridk": [ + 2, + 2, + 2 + ], "num_bands": 29, "num_dft_iter": 100, "num_mag_dims": 1, @@ -234,7 +545,7 @@ "smearing_width": 0.0005, "use_scf_correction": true, "use_symmetry": true, - "use_ibz" : true, + "use_ibz": true, "xc_functionals": [ "XC_GGA_X_PBE_SOL", "XC_GGA_C_PBE_SOL" @@ -253,20 +564,32 @@ "atoms": { "Ni": [ [ - 0, 0, 0, - 0, 0, 2 + 0, + 0, + 0, + 0, + 0, + 2 ], [ - 0.5, 0.5, 0.5, - 0, 0, -2 + 0.5, + 0.5, + 0.5, + 0, + 0, + -2 ] ], "O": [ [ - 0.75, 0.75, 0.75 + 0.75, + 0.75, + 0.75 ], [ - 0.25, 0.25, 0.25 + 0.25, + 0.25, + 0.25 ] ] }, diff --git a/verification/test30/output_ref.json b/verification/test30/output_ref.json index edb6f6fcd..c0f67e5c7 100644 --- a/verification/test30/output_ref.json +++ b/verification/test30/output_ref.json @@ -5,6 +5,7 @@ "config": { "control": { "beta_chunk_size": 256, + "beta_on_device": false, "cyclic_block_size": 16, "fft_mode": "parallel", "gen_evp_solver_name": "lapack", @@ -35,7 +36,7 @@ "constraint_max_iteration": 100, "constraint_method": "energy", "constraint_strength": 1.0, - "full_orthogonalization": true, + "hubbard_subspace_method": "full_orthogonalization", "local": [ { "U": 6.0, @@ -136,8 +137,6 @@ } ], "nonlocal": [], - "normalize": false, - "orthogonalize": true, "simplified": true }, "iterative_solver": { @@ -318,97 +317,97 @@ "omega": 122.9505312592426 }, "counters": { - "band_evp_work_count": 1986.430908203125, - "local_operator_num_applied": 6950 + "band_evp_work_count": 1986.6552734375, + "local_operator_num_applied": 6951 }, - "git_hash": "a65000f94e2393e2de179d7f1e4eb6bce9a0ff35", + "git_hash": "bd14a5684ad99f193820ddeaa5247058e7cc21f4", "ground_state": { - "band_gap": 0.11203006295945506, + "band_gap": 0.11203006296078155, "converged": true, - "efermi": 0.5549791568495448, + "efermi": 0.5549791567856392, "energy": { - "bxc": -0.12447705572429485, - "entropy_sum": -9.844834615155195e-21, - "eval_sum": -13.86374657260652, - "ewald": -119.46280741195775, - "exc": -21.23338087993594, - "kin": 57.35621374832839, - "scf_correction": -5.045546487281172e-07, - "total": -186.25683765535825, - "veff": -71.09548326521062, - "vha": 121.7311113560253, - "vloc": -166.1834101987942, - "vxc": -26.643184422439194 + "bxc": -0.12447705574231376, + "entropy_sum": -9.844834879902791e-21, + "eval_sum": -13.863746575595504, + "ewald": -119.4628074119577, + "exc": -21.233380879713025, + "kin": 57.3562137461151, + "scf_correction": -5.032980823216349e-07, + "total": -186.25683765545736, + "veff": -71.0954832659683, + "vha": 121.73111135246394, + "vloc": -166.1834101963062, + "vxc": -26.643184422139285 }, "etot_history": [ - -182.67608832534268, - -184.1048843392013, - -187.3315944054374, - -187.63283759509335, - -187.7037582995705, - -187.51106042073934, - -187.12809685085557, - -187.2041636719016, - -187.35592744184783, - -187.32690065981808, - -187.34040886426237, - -186.79514719179906, - -185.90475682322074, - -186.46141426312036, - -187.0145154270773, - -186.74056157525547, - -186.16728869593447, - -186.3002773464611, - -186.29336685990557, - -186.22741246957054, - -186.25438499927145, - -186.2551965994622, - -186.25770240665815, - -186.25703334896863, - -186.25681715053372, - -186.25684816893084, - -186.2568431264663, - -186.2568359060681, - -186.25683885664824, - -186.25683775994833, - -186.25683765535825 + -182.67608832534273, + -184.1048843392009, + -187.33159440543773, + -187.63283759509295, + -187.70375829957055, + -187.51106042074238, + -187.1280968508077, + -187.20416367193826, + -187.35592744184822, + -187.32690065982774, + -187.34040886362243, + -186.79514719184323, + -185.90475682230365, + -186.4614142604728, + -187.0145154271243, + -186.74056158281195, + -186.16728870331505, + -186.30027734676156, + -186.29336686132353, + -186.22741246909533, + -186.2543849996042, + -186.25519659945337, + -186.2577024066303, + -186.2570333489714, + -186.2568171505239, + -186.25684816892863, + -186.25684312646422, + -186.25683590606914, + -186.2568388569496, + -186.25683775952257, + -186.25683765545736 ], "num_scf_iterations": 30, - "rho_min": 0.0104700409482558, + "rho_min": 0.010470040945449836, "rms_history": [ - 5.380742776103609, - 4.7251384270720145, - 1.2599789569125501, - 0.27445462062613274, - 0.8838445008341516, - 0.9536910148226954, - 0.6510362580897728, - 0.3487866685891929, - 0.44790626933856403, - 0.48155373522662404, - 0.4354340110276377, - 0.6781177991834277, - 0.6969266502182917, - 0.2745446837096553, - 0.32576927252568894, - 0.577701486475463, - 0.6217206749921902, - 0.07181658239389685, - 0.03207138682899551, - 0.029337060856090526, - 0.005652204371439874, - 0.001587375105217872, - 0.0007398503523044155, - 0.00024274114056605734, - 0.00012872964994351503, - 2.2172919006590185e-05, - 1.0230747503741877e-05, - 6.196902749245677e-06, - 1.5249100898375833e-06, - 4.0991005405545914e-07, - 1.2389845821912608e-07 + 5.3807427761036015, + 4.725138427072016, + 1.2599789569125142, + 0.2744546206261272, + 0.8838445008341115, + 0.9536910148232228, + 0.6510362580936788, + 0.34878666856046014, + 0.44790626935044525, + 0.48155373521775374, + 0.43543401102108586, + 0.6781177993937733, + 0.6969266500816029, + 0.2745446838080662, + 0.3257692720609406, + 0.5777014869906554, + 0.6217206825973615, + 0.07181658308957811, + 0.03207138726835158, + 0.02933706181643675, + 0.005652204648551259, + 0.0015873750384169391, + 0.0007398503468742045, + 0.00024274114273227268, + 0.0001287296525682561, + 2.2172916520888254e-05, + 1.0230745730060152e-05, + 6.196901285249176e-06, + 1.5250930129294447e-06, + 4.0993058809414875e-07, + 1.2380236606581567e-07 ], - "scf_time": 5.926917684 + "scf_time": 6.094843018 }, "task": 0, "threads_per_rank": 4 diff --git a/verification/test30/sirius.json b/verification/test30/sirius.json index 7de7b1e9e..47162de34 100644 --- a/verification/test30/sirius.json +++ b/verification/test30/sirius.json @@ -31,7 +31,7 @@ "constraint_max_iteration": 100, "constraint_method": "energy", "constraint_strength": 1.0, - "full_orthogonalization": true, + "hubbard_subspace_method" : "full_orthogonalization", "local": [ { "atom_type": "Ni", @@ -132,8 +132,6 @@ } ], "nonlocal": [], - "normalize": false, - "orthogonalize": true, "simplified": true }, "iterative_solver": {