Skip to content

Commit fce6aff

Browse files
committed
fixed complex magnetizability
1 parent 424eb54 commit fce6aff

File tree

5 files changed

+795
-136
lines changed

5 files changed

+795
-136
lines changed

external/upstream/fetch_mrcpp.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ else()
3939
GIT_REPOSITORY
4040
https://github.com/MRChemSoft/mrcpp.git
4141
GIT_TAG
42-
bf417fb0b45d2d14b90780320207dcce8a904f7d
42+
0e9dc7e6a490a0f304e54190c695217b10e31c64
4343
)
4444

4545
FetchContent_GetProperties(mrcpp_sources)

src/scf_solver/LinearResponseSolver.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ json LinearResponseSolver::optimize(double omega, Molecule &mol, FockBuilder &F_
7676
ComplexMatrix F_mat_y = F_mat_0 - omega * ComplexMatrix::Identity(Phi_0.size(), Phi_0.size());
7777

7878
RankZeroOperator V_0 = F_0.potential();
79-
RankZeroOperator V_1 = F_1.potential() + F_1.perturbation();
79+
RankZeroOperator V_1 = F_1.perturbation() + F_1.potential();
8080

8181
double err_o = 1.0;
8282
double err_t = 1.0;
@@ -161,7 +161,7 @@ json LinearResponseSolver::optimize(double omega, Molecule &mol, FockBuilder &F_
161161
kain_x.accelerate(orb_prec, X_n, dX_n);
162162

163163
// Prepare for next iteration
164-
X_n = orbital::add(1.0, X_n, 1.0, dX_n);
164+
X_n = orbital::add(1.0, dX_n, 1.0, X_n); // The result inherits parameters from dX_n
165165

166166
// Save checkpoint file
167167
if (this->checkpoint) orbital::save_orbitals(X_n, this->chkFileX);
@@ -212,7 +212,7 @@ json LinearResponseSolver::optimize(double omega, Molecule &mol, FockBuilder &F_
212212
kain_y.accelerate(orb_prec, Y_n, dY_n);
213213

214214
// Prepare for next iteration
215-
Y_n = orbital::add(1.0, Y_n, 1.0, dY_n);
215+
Y_n = orbital::add(1.0, dY_n, 1.0, Y_n);
216216

217217
// Save checkpoint file
218218
if (this->checkpoint) orbital::save_orbitals(Y_n, this->chkFileY);

tests/h2_mag_lda/reference/h2.json

+66-47
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
11
{
22
"input": {
33
"constants": {
4+
"N_a": 6.02214076e+23,
45
"angstrom2bohrs": 1.8897261246257702,
6+
"boltzmann_constant": 1.380649e-23,
57
"dipmom_au2debye": 2.5417464739297717,
8+
"e0": 8.8541878128e-12,
69
"electron_g_factor": -2.00231930436256,
10+
"elementary_charge": 1.602176634e-19,
711
"fine_structure_constant": 0.0072973525693,
812
"hartree2ev": 27.211386245988,
913
"hartree2kcalmol": 627.5094740630558,
1014
"hartree2kjmol": 2625.4996394798254,
1115
"hartree2simagnetizability": 78.9451185,
1216
"hartree2wavenumbers": 219474.6313632,
13-
"light_speed": 137.035999084
17+
"light_speed": 137.035999084,
18+
"meter2bohr": 18897261246.2577
19+
},
20+
"geom_opt": {
21+
"init_step_size": -0.5,
22+
"max_force_component": 0.005,
23+
"max_history_length": 10,
24+
"max_iter": 100,
25+
"minimal_step_size": 0.01,
26+
"run": false,
27+
"subspace_tolerance": 0.001,
28+
"use_previous_guess": false
1429
},
1530
"molecule": {
1631
"charge": 0,
@@ -37,9 +52,12 @@
3752
"multiplicity": 1
3853
},
3954
"mpi": {
55+
"bank_per_node": -1,
4056
"bank_size": -1,
4157
"numerically_exact": true,
42-
"shared_memory_size": 10000
58+
"omp_threads": -1,
59+
"shared_memory_size": 10000,
60+
"use_omp_num_threads": false
4361
},
4462
"mra": {
4563
"basis_order": 5,
@@ -60,7 +78,7 @@
6078
"printer": {
6179
"file_name": "h2",
6280
"print_constants": false,
63-
"print_level": 0,
81+
"print_level": 3,
6482
"print_mpi": false,
6583
"print_prec": 6,
6684
"print_width": 75
@@ -302,6 +320,7 @@
302320
"prec": 0.001,
303321
"relativity": "None",
304322
"restricted": false,
323+
"rotate": true,
305324
"screen": 12.0,
306325
"type": "gto",
307326
"zeta": 0
@@ -328,12 +347,12 @@
328347
"center_of_mass": [
329348
0.0,
330349
0.0,
331-
0.0
350+
2.544077373851441e-17
332351
],
333352
"charge": 0,
334353
"dipole_moment": {
335354
"dip-1": {
336-
"magnitude": 2.3125524128433424e-05,
355+
"magnitude": 2.3125524059541666e-05,
337356
"r_O": [
338357
0.0,
339358
0.0,
@@ -342,12 +361,12 @@
342361
"vector": [
343362
0.0,
344363
0.0,
345-
2.312552412843342e-05
364+
2.3125524059541666e-05
346365
],
347366
"vector_el": [
348367
0.0,
349368
0.0,
350-
2.3125524068259332e-05
369+
2.312552406986674e-05
351370
],
352371
"vector_nuc": [
353372
0.0,
@@ -384,7 +403,7 @@
384403
0.0
385404
],
386405
"tensor": [
387-
-0.8858098671165622,
406+
-0.8853652898096424,
388407
0.0,
389408
0.0,
390409
null,
@@ -395,18 +414,18 @@
395414
null
396415
],
397416
"tensor_dia": [
398-
-0.913111252055222,
417+
-0.9131112520552285,
399418
0.0,
400419
0.0,
401420
0.0,
402-
-0.9131112520552314,
421+
-0.9131112520552256,
403422
0.0,
404423
0.0,
405424
0.0,
406-
-0.7722102648042788
425+
-0.7722102648042813
407426
],
408427
"tensor_para": [
409-
0.0273013849386598,
428+
0.02774596224558616,
410429
0.0,
411430
0.0,
412431
null,
@@ -439,9 +458,9 @@
439458
0.0
440459
],
441460
"tensor": [
442-
26.07747616835781,
461+
26.07177129827233,
443462
0.0,
444-
1.3677196201292798e-12,
463+
-2.176802989165496e-12,
445464
null,
446465
null,
447466
null,
@@ -450,20 +469,20 @@
450469
null
451470
],
452471
"tensor_dia": [
453-
25.527087632399677,
472+
25.527087632399784,
454473
0.0,
455474
0.0,
456475
0.0,
457-
25.52708763239979,
476+
25.527087632399873,
458477
0.0,
459478
0.0,
460479
0.0,
461-
26.74753488502477
480+
26.747534885024933
462481
],
463482
"tensor_para": [
464-
0.5503885359581321,
483+
0.5446836658725474,
465484
0.0,
466-
1.418610741934619e-12,
485+
-2.1599154820087435e-12,
467486
null,
468487
null,
469488
null,
@@ -475,8 +494,8 @@
475494
},
476495
"orbital_energies": {
477496
"energy": [
478-
-0.3452839682920535,
479-
-0.34528396829205393
497+
-0.34528396829204916,
498+
-0.34528396829204916
480499
],
481500
"occupation": [
482501
1.0,
@@ -486,20 +505,20 @@
486505
"a",
487506
"b"
488507
],
489-
"sum_occupied": -0.6905679365841074
508+
"sum_occupied": -0.6905679365840983
490509
},
491510
"scf_energy": {
492-
"E_ee": 1.328363917977608,
511+
"E_ee": 1.328363917977612,
493512
"E_eext": 0.0,
494-
"E_el": -1.8186520280662704,
495-
"E_en": -3.5666315558595887,
496-
"E_kin": 1.0734860652323053,
513+
"E_el": -1.8186520280675076,
514+
"E_en": -3.566631555859595,
515+
"E_kin": 1.0734860652323075,
497516
"E_next": 0.0,
498517
"E_nn": 0.7141392859689609,
499518
"E_nuc": 0.7141392859689609,
500-
"E_tot": -1.1045127420973095,
519+
"E_tot": -1.1045127420985468,
501520
"E_x": 0.0,
502-
"E_xc": -0.6538704554165949,
521+
"E_xc": -0.6538704554178323,
503522
"Er_el": 0.0,
504523
"Er_nuc": 0.0,
505524
"Er_tot": 0.0
@@ -521,25 +540,25 @@
521540
"converged": true,
522541
"cycles": [
523542
{
524-
"mo_residual": 0.08780898201504643,
525-
"property_update": -0.020433596780801602,
526-
"symmetric_property": -0.020433596780801602,
527-
"wall_time": 1.80950626
543+
"mo_residual": 0.08780898201504735,
544+
"property_update": -0.020433596780802,
545+
"symmetric_property": -0.020433596780802,
546+
"wall_time": 2.6607969
528547
},
529548
{
530-
"mo_residual": 0.02040507065870614,
531-
"property_update": -0.006635248970956756,
532-
"symmetric_property": -0.027068845751758358,
533-
"wall_time": 2.602521863
549+
"mo_residual": 0.02238388037118895,
550+
"property_update": -0.007206813758708675,
551+
"symmetric_property": -0.027640410539510676,
552+
"wall_time": 2.883167341
534553
},
535554
{
536-
"mo_residual": 0.0006574223357317515,
537-
"property_update": -0.0002325391869014426,
538-
"symmetric_property": -0.0273013849386598,
539-
"wall_time": 2.454146546
555+
"mo_residual": 0.0003591406835642252,
556+
"property_update": -0.00010555170607548514,
557+
"symmetric_property": -0.02774596224558616,
558+
"wall_time": 2.795603449
540559
}
541560
],
542-
"wall_time": 6.866252376
561+
"wall_time": 8.339723138
543562
}
544563
},
545564
null,
@@ -552,17 +571,17 @@
552571
},
553572
"scf_calculation": {
554573
"initial_energy": {
555-
"E_ee": 1.328363917977608,
574+
"E_ee": 1.328363917977612,
556575
"E_eext": 0.0,
557-
"E_el": -1.8186520280662704,
558-
"E_en": -3.5666315558595887,
559-
"E_kin": 1.0734860652323053,
576+
"E_el": -1.8186520280675076,
577+
"E_en": -3.566631555859595,
578+
"E_kin": 1.0734860652323075,
560579
"E_next": 0.0,
561580
"E_nn": 0.7141392859689609,
562581
"E_nuc": 0.7141392859689609,
563-
"E_tot": -1.1045127420973095,
582+
"E_tot": -1.1045127420985468,
564583
"E_x": 0.0,
565-
"E_xc": -0.6538704554165949,
584+
"E_xc": -0.6538704554178323,
566585
"Er_el": 0.0,
567586
"Er_nuc": 0.0,
568587
"Er_tot": 0.0

0 commit comments

Comments
 (0)