MCPcopy Create free account
hub / github.com/SZAILAB/MaterialDFT-Demo / build_spin_potentials

Function build_spin_potentials

cpp_core/src/scf.cpp:1257–1280  ·  view source on GitHub ↗

Formula: v_eff_up(r) = v_ext(r) + v_h(r) + v_xc_up(r) v_eff_dn(r) = v_ext(r) + v_h(r) + v_xc_dn(r) v_eff_avg(r) = 0.5 * (v_eff_up(r) + v_eff_dn(r)) Example input: v_ext=1.0 eV, v_h=0.2 eV, v_xc_up=-2.7211652 eV, v_xc_dn=-8.1634956 eV Example output: v_eff_up=-1.5211652 eV, v_eff_dn=-6.9634956 eV, v_eff_avg=-4.2423304 eV

Source from the content-addressed store, hash-verified

1255// Example input: v_ext=1.0 eV, v_h=0.2 eV, v_xc_up=-2.7211652 eV, v_xc_dn=-8.1634956 eV
1256// Example output: v_eff_up=-1.5211652 eV, v_eff_dn=-6.9634956 eV, v_eff_avg=-4.2423304 eV
1257SpinPotentialFields build_spin_potentials(
1258 const std::vector<double>& v_ext_r_ev,
1259 const std::vector<double>& v_h_r_ev,
1260 const std::vector<double>& v_xc_up_r_ev,
1261 const std::vector<double>& v_xc_dn_r_ev
1262) {
1263 if (v_ext_r_ev.size() != v_h_r_ev.size()
1264 || v_ext_r_ev.size() != v_xc_up_r_ev.size()
1265 || v_ext_r_ev.size() != v_xc_dn_r_ev.size()) {
1266 throw std::invalid_argument("build_spin_potentials: size mismatch");
1267 }
1268 SpinPotentialFields out;
1269 out.v_eff_up_r.resize(v_ext_r_ev.size(), 0.0);
1270 out.v_eff_dn_r.resize(v_ext_r_ev.size(), 0.0);
1271 out.v_eff_avg_r.resize(v_ext_r_ev.size(), 0.0);
1272 out.v_smooth_electro_r.resize(v_ext_r_ev.size(), 0.0);
1273 for (std::size_t i = 0; i < v_ext_r_ev.size(); ++i) {
1274 out.v_eff_up_r[i] = sum_three_terms(v_ext_r_ev[i], v_h_r_ev[i], v_xc_up_r_ev[i]);
1275 out.v_eff_dn_r[i] = sum_three_terms(v_ext_r_ev[i], v_h_r_ev[i], v_xc_dn_r_ev[i]);
1276 out.v_eff_avg_r[i] = average_pair(out.v_eff_up_r[i], out.v_eff_dn_r[i]);
1277 out.v_smooth_electro_r[i] = v_ext_r_ev[i] + v_h_r_ev[i];
1278 }
1279 return out;
1280}
1281
1282// Formula:
1283// rho_total(r) = rho_up_tilde(r) + rho_dn_tilde(r) + rho_aug(r)

Callers 1

run_scf_kpoints_hartreeFunction · 0.85

Calls 3

sum_three_termsFunction · 0.85
average_pairFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected