28 std::ostringstream section_name;
29 section_name <<
"He, transform orbitals to grid: " << (transform ?
"T" :
"F");
31 SECTION(section_name.str())
36 auto elec_ptr = std::make_unique<ParticleSet>(simulation_cell);
37 auto& elec(*elec_ptr);
38 std::vector<int> agroup(2);
49 tspecies(massIdx, upIdx) = 1.0;
50 tspecies(massIdx, downIdx) = 1.0;
52 auto ions_ptr = std::make_unique<ParticleSet>(simulation_cell);
53 auto& ions(*ions_ptr);
58 int heIdx =
ispecies.addSpecies(
"He");
70 particle_set_map.emplace(elec_ptr->getName(), std::move(elec_ptr));
71 particle_set_map.emplace(ions_ptr->getName(), std::move(ions_ptr));
89 auto sposet = bb.createSPOSet(slater_base[0]);
102 elec.makeMove(0, newpos);
104 sposet->evaluateValue(elec, 0, values);
107 CHECK(values[0] == Approx(0.9996037001));
109 sposet->evaluateVGL(elec, 0, values, dpsi, d2psi);
112 CHECK(values[0] == Approx(0.9996037001));
113 CHECK(dpsi[0][0] == Approx(-0.0006678035459));
114 CHECK(dpsi[0][1] == Approx(0));
115 CHECK(dpsi[0][2] == Approx(0));
116 CHECK(d2psi[0] == Approx(-20.03410564));
120 elec.makeMove(0, disp);
122 sposet->evaluateVGL(elec, 0, values, dpsi, d2psi);
124 CHECK(values[0] == Approx(0.2315567641));
125 CHECK(dpsi[0][0] == Approx(-0.3805431885));
126 CHECK(dpsi[0][1] == Approx(0));
127 CHECK(dpsi[0][2] == Approx(0));
128 CHECK(d2psi[0] == Approx(-0.2618497452));
142 auto elec_ptr = std::make_unique<ParticleSet>(simulation_cell);
143 auto& elec(*elec_ptr);
144 std::vector<int> agroup(2);
155 tspecies(massIdx, upIdx) = 1.0;
156 tspecies(massIdx, downIdx) = 1.0;
158 auto ions_ptr = std::make_unique<ParticleSet>(simulation_cell);
159 auto& ions(*ions_ptr);
160 ions.setName(
"ion0");
164 int heIdx =
ispecies.addSpecies(
"He");
176 particle_set_map.emplace(elec_ptr->getName(), std::move(elec_ptr));
177 particle_set_map.emplace(ions_ptr->getName(), std::move(ions_ptr));
195 auto sposet = bb.createSPOSet(slater_base[0]);
208 elec.makeMove(0, newpos);
212 sposet->evaluateVGL(elec, 0, psi, dpsi, d2psi);
222 spo_list.push_back(*sposet);
225 P_list.push_back(elec);
236 psi_list.push_back(psi_1);
237 dpsi_list.push_back(dpsi_1);
238 d2psi_list.push_back(d2psi_1);
244 elec_2.
R[0] = elec.R[1];
245 elec_2.
R[1] = elec.R[0];
249 std::unique_ptr<SPOSet> sposet_2(sposet->makeClone());
253 spo_list.push_back(*sposet_2);
254 P_list.push_back(elec_2);
255 psi_list.push_back(psi_2);
256 dpsi_list.push_back(dpsi_2);
257 d2psi_list.push_back(d2psi_2);
262 elec.createResource(pset_res);
263 sposet->createResource(spo_res);
268 sposet->mw_evaluateVGL(spo_list, P_list, 0, psi_list, dpsi_list, d2psi_list);
296 auto ions_ptr = std::make_unique<ParticleSet>(simulation_cell);
297 auto& ions(*ions_ptr);
300 REQUIRE(particleset_ion.size() == 1);
301 parse_ions.
readXML(particleset_ion[0]);
307 auto elec_ptr = std::make_unique<ParticleSet>(simulation_cell);
308 auto& elec(*elec_ptr);
311 REQUIRE(particleset_elec.size() == 1);
312 parse_elec.
readXML(particleset_elec[0]);
325 xmlNodePtr root2 = doc2.
getRoot();
328 particle_set_map.emplace(elec_ptr->getName(), std::move(elec_ptr));
329 particle_set_map.emplace(ions_ptr->getName(), std::move(ions_ptr));
349 auto sposet = bb.createSPOSet(slater_base[0]);
353 size_t n_mo = sposet->getOrbitalSetSize();
361 elec.R[0] = {0.0001, 0.0, 0.0};
365 sposet->evaluateVGL(elec, 0, psiref_0, dpsiref_0, d2psiref_0);
380 elec.R[1] = {0.0, 0.04, 0.02};
385 sposet->evaluateVGL(elec, 1, psiref_1, dpsiref_1, d2psiref_1);
401 std::unique_ptr<SPOSet> sposet_2(sposet->makeClone());
402 spo_list.push_back(*sposet_2);
403 spo_list.push_back(*sposet);
407 elec_2.
R[0] = elec.R[1];
408 elec_2.
R[1] = elec.R[0];
411 P_list.push_back(elec);
412 P_list.push_back(elec_2);
424 size_t nw = psi_list.size();
432 elec.createResource(pset_res);
433 sposet->createResource(spo_res);
438 sposet->mw_evaluateVGL(spo_list, P_list, 0, psi_list, dpsi_list, d2psi_list);
439 sposet->mw_evaluateValue(spo_list, P_list, 0, psi_v_list);
441 for (
size_t iorb = 0; iorb < n_mo; iorb++)
443 for (
size_t iw = 0; iw < nw; iw++)
446 CHECK(
std::real(psi_v_list[iw].
get()[iorb]) == Approx(psi_list[iw].
get()[iorb]));
448 CHECK(
std::real(psi_v_list[0].
get()[iorb]) == Approx(psiref_0[iorb]));
449 CHECK(
std::real(psi_v_list[1].
get()[iorb]) == Approx(psiref_1[iorb]));
450 CHECK(
std::real(psi_list[0].
get()[iorb]) == Approx(psiref_0[iorb]));
451 CHECK(
std::real(psi_list[1].
get()[iorb]) == Approx(psiref_1[iorb]));
452 CHECK(
std::real(d2psi_list[0].
get()[iorb]) == Approx(d2psiref_0[iorb]));
453 CHECK(
std::real(d2psi_list[1].
get()[iorb]) == Approx(d2psiref_1[iorb]));
456 CHECK(
std::real(dpsi_list[0].
get()[iorb][idim]) == Approx(dpsiref_0[iorb][idim]));
457 CHECK(
std::real(dpsi_list[1].
get()[iorb][idim]) == Approx(dpsiref_1[iorb][idim]));
467 std::ostringstream section_name;
468 section_name <<
"Neon, transform orbitals to grid: " << (transform ?
"T" :
"F");
470 SECTION(section_name.str())
475 auto elec_ptr = std::make_unique<ParticleSet>(simulation_cell);
476 auto& elec(*elec_ptr);
478 std::vector<int> agroup(2);
489 tspecies(massIdx, upIdx) = 1.0;
490 tspecies(massIdx, downIdx) = 1.0;
492 auto ions_ptr = std::make_unique<ParticleSet>(simulation_cell);
493 auto& ions(*ions_ptr);
494 ions.setName(
"ion0");
496 ions.R[0] = {0.0, 0.0, 0.0};
498 int heIdx =
ispecies.addSpecies(
"Ne");
511 particle_set_map.emplace(elec_ptr->getName(), std::move(elec_ptr));
512 particle_set_map.emplace(ions_ptr->getName(), std::move(ions_ptr));
531 auto sposet = bb.createSPOSet(slater_base[0]);
539 values.resize(norbs);
544 elec.makeMove(0, newpos);
546 sposet->evaluateValue(elec, 0, values);
549 CHECK(values[0] == Approx(-16.11819042));
551 sposet->evaluateVGL(elec, 0, values, dpsi, d2psi);
553 CHECK(values[0] == Approx(-16.11819042));
554 CHECK(dpsi[0][0] == Approx(0.1747261458));
555 CHECK(dpsi[0][1] == Approx(0));
556 CHECK(dpsi[0][2] == Approx(0));
560 elec.makeMove(0, disp);
561 sposet->evaluateValue(elec, 0, values);
563 CHECK(values[0] == Approx(-0.005041631374));
566 sposet->evaluateVGL(elec, 0, values, dpsi, d2psi);
568 CHECK(values[0] == Approx(-0.005041631374));
569 CHECK(dpsi[0][0] == Approx(0.01862216578));
570 CHECK(dpsi[0][1] == Approx(0));
571 CHECK(dpsi[0][2] == Approx(0));
572 CHECK(d2psi[0] == Approx(-0.01551755818));
578 std::vector<ParticleSet::SingleParticlePos> newpos2(2);
579 std::vector<SPOSet::ValueType> ratios2(2);
583 sposet->evaluateDetRatios(VP, phi, phiinv, ratios2);
584 CHECK(ratios2[0] == Approx(-0.504163137));
585 CHECK(ratios2[1] == Approx(-0.504163137));
593 TEST_CASE(
"ReadMolecularOrbital HCN",
"[wavefunction]") {}
597 std::ostringstream section_name;
598 section_name <<
"HCN, transform orbitals to grid: " << (transform ?
"T" :
"F");
600 SECTION(section_name.str())
610 auto ions_ptr = std::make_unique<ParticleSet>(simulation_cell);
611 auto& ions(*ions_ptr);
614 REQUIRE(particleset_ion.size() == 1);
615 parse_ions.
readXML(particleset_ion[0]);
621 auto elec_ptr = std::make_unique<ParticleSet>(simulation_cell);
622 auto& elec(*elec_ptr);
625 REQUIRE(particleset_elec.size() == 1);
626 parse_elec.
readXML(particleset_elec[0]);
639 xmlNodePtr root2 = doc2.
getRoot();
642 particle_set_map.emplace(elec_ptr->getName(), std::move(elec_ptr));
643 particle_set_map.emplace(ions_ptr->getName(), std::move(ions_ptr));
662 auto sposet = bb.createSPOSet(slater_base[0]);
673 elec.makeMove(0, newpos);
675 sposet->evaluateValue(elec, 0, values);
677 CHECK(values[0] == Approx(0.009452265234));
678 CHECK(values[1] == Approx(0.02008357407));
679 CHECK(values[2] == Approx(0.4163749594));
680 CHECK(values[3] == Approx(-0.08854428343));
681 CHECK(values[4] == Approx(0.273158705));
682 CHECK(values[5] == Approx(0));
683 CHECK(values[6] == Approx(0));
685 sposet->evaluateVGL(elec, 0, values, dpsi, d2psi);
689 CHECK(values[0] == Approx(0.009452265234));
690 CHECK(dpsi[0][0] == Approx(-0.05400764372));
691 CHECK(dpsi[0][1] == Approx(0));
692 CHECK(dpsi[0][2] == Approx(0));
693 CHECK(d2psi[0] == Approx(0.2532157143));
695 CHECK(values[1] == Approx(0.02008357407));
696 CHECK(dpsi[1][0] == Approx(0.1009262252));
697 CHECK(dpsi[1][1] == Approx(0));
698 CHECK(dpsi[1][2] == Approx(0));
699 CHECK(d2psi[1] == Approx(0.3423520138));
701 CHECK(values[2] == Approx(0.4163749594));
702 CHECK(dpsi[2][0] == Approx(-0.1202256419));
703 CHECK(dpsi[2][1] == Approx(0));
704 CHECK(dpsi[2][2] == Approx(0));
705 CHECK(d2psi[2] == Approx(-1.178149899));
707 CHECK(values[3] == Approx(-0.08854428343));
708 CHECK(dpsi[3][0] == Approx(-0.004505552544));
709 CHECK(dpsi[3][1] == Approx(0));
710 CHECK(dpsi[3][2] == Approx(0));
711 CHECK(d2psi[3] == Approx(0.2838238091));
713 CHECK(values[4] == Approx(0.273158705));
714 CHECK(dpsi[4][0] == Approx(-0.01125044248));
715 CHECK(dpsi[4][1] == Approx(0));
716 CHECK(dpsi[4][2] == Approx(0));
717 CHECK(d2psi[4] == Approx(-0.9173261582));
719 CHECK(values[5] == Approx(0));
720 CHECK(dpsi[5][0] == Approx(0));
721 CHECK(dpsi[5][1] == Approx(0.4221165864));
722 CHECK(dpsi[5][2] == Approx(-0.08191634629));
723 CHECK(d2psi[5] == Approx(0));
725 CHECK(values[6] == Approx(0));
726 CHECK(dpsi[6][0] == Approx(0));
727 CHECK(dpsi[6][1] == Approx(0.08191634629));
728 CHECK(dpsi[6][2] == Approx(0.4221165864));
729 CHECK(d2psi[6] == Approx(0));
735 sposet->evaluateVGH(elec, 0, values, dpsi, dhpsi);
738 CHECK(values[0] == Approx(0.009452265234));
739 CHECK(dpsi[0][0] == Approx(-0.05400764372));
740 CHECK(dpsi[0][1] == Approx(0));
741 CHECK(dpsi[0][2] == Approx(0));
743 CHECK(dhpsi[0](0, 0) == Approx(0.3523924743));
744 CHECK(dhpsi[0](0, 1) == Approx(0));
745 CHECK(dhpsi[0](0, 2) == Approx(0));
746 CHECK(dhpsi[0](1, 1) == Approx(-0.04958838002));
747 CHECK(dhpsi[0](1, 2) == Approx(0));
748 CHECK(dhpsi[0](2, 2) == Approx(-0.04958838002));
758 sposet->evaluate_notranspose(elec, 0, elec.R.size(), psiM, dpsiM, hesspsiV, d3psiV);
762 CHECK(psiM[0][0] == Approx(0.009452265234));
763 CHECK(dpsiM[0][0][0] == Approx(-0.05400764372));
764 CHECK(dpsiM[0][0][1] == Approx(0));
765 CHECK(dpsiM[0][0][2] == Approx(0));
767 CHECK(hesspsiV[0][0](0, 0) == Approx(0.3523924743));
768 CHECK(hesspsiV[0][0](0, 1) == Approx(0));
769 CHECK(hesspsiV[0][0](0, 2) == Approx(0));
770 CHECK(hesspsiV[0][0](1, 1) == Approx(-0.04958838002));
771 CHECK(hesspsiV[0][0](1, 2) == Approx(0));
772 CHECK(hesspsiV[0][0](2, 2) == Approx(-0.04958838002));
775 CHECK(d3psiV[0][0][0](0, 0) == Approx(-2.241965465));
776 CHECK(d3psiV[0][0][0](0, 1) == Approx(0));
777 CHECK(d3psiV[0][0][0](0, 2) == Approx(0));
778 CHECK(d3psiV[0][0][0](1, 1) == Approx(0.3714481861));
779 CHECK(d3psiV[0][0][0](1, 2) == Approx(0));
780 CHECK(d3psiV[0][0][0](2, 2) == Approx(0.3714481861));
781 CHECK(d3psiV[0][0][1](1, 1) == Approx(0));
782 CHECK(d3psiV[0][0][1](1, 2) == Approx(0));
783 CHECK(d3psiV[0][0][1](2, 2) == Approx(0));
784 CHECK(d3psiV[0][0][2](2, 2) == Approx(0));
787 CHECK(psiM[0][1] == Approx(0.02008357407));
788 CHECK(dpsiM[0][1][0] == Approx(0.1009262252));
789 CHECK(dpsiM[0][1][1] == Approx(0));
790 CHECK(dpsiM[0][1][2] == Approx(0));
792 CHECK(hesspsiV[0][1](0, 0) == Approx(0.5298289497));
793 CHECK(hesspsiV[0][1](0, 1) == Approx(0));
794 CHECK(hesspsiV[0][1](0, 2) == Approx(0));
795 CHECK(hesspsiV[0][1](1, 1) == Approx(-0.09373846794));
796 CHECK(hesspsiV[0][1](1, 2) == Approx(0));
797 CHECK(hesspsiV[0][1](2, 2) == Approx(-0.09373846794));
800 CHECK(d3psiV[0][1][0](0, 0) == Approx(2.594787656));
801 CHECK(d3psiV[0][1][0](0, 1) == Approx(0));
802 CHECK(d3psiV[0][1][0](0, 2) == Approx(0));
803 CHECK(d3psiV[0][1][0](1, 1) == Approx(-0.5720485625));
804 CHECK(d3psiV[0][1][0](1, 2) == Approx(0));
805 CHECK(d3psiV[0][1][0](2, 2) == Approx(-0.5720485625));
806 CHECK(d3psiV[0][1][1](1, 1) == Approx(0));
807 CHECK(d3psiV[0][1][1](1, 2) == Approx(0));
808 CHECK(d3psiV[0][1][1](2, 2) == Approx(0));
809 CHECK(d3psiV[0][1][2](2, 2) == Approx(0));
811 CHECK(psiM[0][2] == Approx(0.4163749594));
812 CHECK(dpsiM[0][2][0] == Approx(-0.1202256419));
813 CHECK(dpsiM[0][2][1] == Approx(0));
814 CHECK(dpsiM[0][2][2] == Approx(0));
816 CHECK(hesspsiV[0][2](0, 0) == Approx(-0.02607695984));
817 CHECK(hesspsiV[0][2](0, 1) == Approx(0));
818 CHECK(hesspsiV[0][2](0, 2) == Approx(0));
819 CHECK(hesspsiV[0][2](1, 1) == Approx(-0.5760364698));
820 CHECK(hesspsiV[0][2](1, 2) == Approx(0));
821 CHECK(hesspsiV[0][2](2, 2) == Approx(-0.5760364698));
823 CHECK(d3psiV[0][2][0](0, 0) == Approx(-0.227147312));
824 CHECK(d3psiV[0][2][0](0, 1) == Approx(0));
825 CHECK(d3psiV[0][2][0](0, 2) == Approx(0));
826 CHECK(d3psiV[0][2][0](1, 1) == Approx(0.2992015499));
827 CHECK(d3psiV[0][2][0](1, 2) == Approx(0));
828 CHECK(d3psiV[0][2][0](2, 2) == Approx(0.2992015499));
829 CHECK(d3psiV[0][2][1](1, 1) == Approx(0));
830 CHECK(d3psiV[0][2][1](1, 2) == Approx(0));
831 CHECK(d3psiV[0][2][1](2, 2) == Approx(0));
832 CHECK(d3psiV[0][2][2](2, 2) == Approx(0));
837 elec.makeMove(0, disp);
844 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 0, dionpsi, diongradpsi, dionlaplpsi);
847 CHECK(dionpsi[0][0][0] == Approx(0.0453112082));
848 CHECK(diongradpsi[0][0](0, 0) == Approx(-0.2943513994));
849 CHECK(diongradpsi[0][0](0, 1) == Approx(0.030468047));
850 CHECK(diongradpsi[0][0](0, 2) == Approx(-0.0152340235));
851 CHECK(dionlaplpsi[0][0][0] == Approx(1.333755581));
852 CHECK(dionpsi[0][1][0] == Approx(-0.0006473819623));
853 CHECK(diongradpsi[0][1](0, 0) == Approx(0.0004713407512));
854 CHECK(diongradpsi[0][1](0, 1) == Approx(-0.0001254975603));
855 CHECK(diongradpsi[0][1](0, 2) == Approx(6.274878013
e-05));
856 CHECK(dionlaplpsi[0][1][0] == Approx(0.001057940846));
857 CHECK(dionpsi[0][2][0] == Approx(0.265578336));
858 CHECK(diongradpsi[0][2](0, 0) == Approx(-0.08685804115));
859 CHECK(diongradpsi[0][2](0, 1) == Approx(0.05438178417));
860 CHECK(diongradpsi[0][2](0, 2) == Approx(-0.02719089209));
861 CHECK(dionlaplpsi[0][2][0] == Approx(-1.882489819));
862 CHECK(dionpsi[0][3][0] == Approx(-0.06444305979));
863 CHECK(diongradpsi[0][3](0, 0) == Approx(-0.002013151923));
864 CHECK(diongradpsi[0][3](0, 1) == Approx(-0.002535923431));
865 CHECK(diongradpsi[0][3](0, 2) == Approx(0.001267961716));
866 CHECK(dionlaplpsi[0][3][0] == Approx(0.4547401581));
867 CHECK(dionpsi[0][4][0] == Approx(0.1454357726));
868 CHECK(diongradpsi[0][4](0, 0) == Approx(-0.2330499431));
869 CHECK(diongradpsi[0][4](0, 1) == Approx(0.09667641762));
870 CHECK(diongradpsi[0][4](0, 2) == Approx(-0.04833820881));
871 CHECK(dionlaplpsi[0][4][0] == Approx(-0.9197558839));
872 CHECK(dionpsi[0][5][0] == Approx(-0.04329985085));
873 CHECK(diongradpsi[0][5](0, 0) == Approx(0.09051993304));
874 CHECK(diongradpsi[0][5](0, 1) == Approx(0.382375474));
875 CHECK(diongradpsi[0][5](0, 2) == Approx(-0.07043361927));
876 CHECK(dionlaplpsi[0][5][0] == Approx(0.2201672051));
877 CHECK(dionpsi[0][6][0] == Approx(0.01207541177));
878 CHECK(diongradpsi[0][6](0, 0) == Approx(-0.02524405435));
879 CHECK(diongradpsi[0][6](0, 1) == Approx(0.0800332842));
880 CHECK(diongradpsi[0][6](0, 2) == Approx(0.3929818664));
881 CHECK(dionlaplpsi[0][6][0] == Approx(-0.0614000824));
884 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 1, dionpsi, diongradpsi, dionlaplpsi);
887 CHECK(dionpsi[0][0][1] == Approx(0.0001412373768));
888 CHECK(diongradpsi[0][0](1, 0) == Approx(0.0001124265646));
889 CHECK(diongradpsi[0][0](1, 1) == Approx(-0.001383378615));
890 CHECK(diongradpsi[0][0](1, 2) == Approx(-1.449757545
e-05));
891 CHECK(dionlaplpsi[0][0][1] == Approx(-0.001252043663));
892 CHECK(dionpsi[0][1][1] == Approx(-0.01029290716));
893 CHECK(diongradpsi[0][1](1, 0) == Approx(-0.06178485148));
894 CHECK(diongradpsi[0][1](1, 1) == Approx(0.0971577216));
895 CHECK(diongradpsi[0][1](1, 2) == Approx(0.002885675005));
896 CHECK(dionlaplpsi[0][1][1] == Approx(-0.1403103458));
897 CHECK(dionpsi[0][2][1] == Approx(-0.0230872583));
898 CHECK(diongradpsi[0][2](1, 0) == Approx(-0.02537847709));
899 CHECK(diongradpsi[0][2](1, 1) == Approx(0.2268946564));
900 CHECK(diongradpsi[0][2](1, 2) == Approx(0.001988963201));
901 CHECK(dionlaplpsi[0][2][1] == Approx(0.2028851421));
902 CHECK(dionpsi[0][3][1] == Approx(0.01850231814));
903 CHECK(diongradpsi[0][3](1, 0) == Approx(0.05709948475));
904 CHECK(diongradpsi[0][3](1, 1) == Approx(-0.1776515965));
905 CHECK(diongradpsi[0][3](1, 2) == Approx(-0.003685792479));
906 CHECK(dionlaplpsi[0][3][1] == Approx(-0.1280699725));
907 CHECK(dionpsi[0][4][1] == Approx(-0.02136209962));
908 CHECK(diongradpsi[0][4](1, 0) == Approx(-0.03836586276));
909 CHECK(diongradpsi[0][4](1, 1) == Approx(0.2084578148));
910 CHECK(diongradpsi[0][4](1, 2) == Approx(0.002581590766));
911 CHECK(dionlaplpsi[0][4][1] == Approx(0.1792683544));
912 CHECK(dionpsi[0][5][1] == Approx(-0.1942343714));
913 CHECK(diongradpsi[0][5](1, 0) == Approx(-0.3037357197));
914 CHECK(diongradpsi[0][5](1, 1) == Approx(-0.09561978734));
915 CHECK(diongradpsi[0][5](1, 2) == Approx(0.02118492506));
916 CHECK(dionlaplpsi[0][5][1] == Approx(0.6410434658));
917 CHECK(dionpsi[0][6][1] == Approx(-0.03930992259));
918 CHECK(diongradpsi[0][6](1, 0) == Approx(-0.06331544695));
919 CHECK(diongradpsi[0][6](1, 1) == Approx(-0.002807368817));
920 CHECK(diongradpsi[0][6](1, 2) == Approx(-0.02801340823));
921 CHECK(dionlaplpsi[0][6][1] == Approx(0.1369061053));
923 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 2, dionpsi, diongradpsi, dionlaplpsi);
926 CHECK(dionpsi[0][0][2] == Approx(1.302648961
e-06));
927 CHECK(diongradpsi[0][0](2, 0) == Approx(1.865129579
e-06));
928 CHECK(diongradpsi[0][0](2, 1) == Approx(6.142092043
e-08));
929 CHECK(diongradpsi[0][0](2, 2) == Approx(2.602225618
e-05));
930 CHECK(dionlaplpsi[0][0][2] == Approx(1.234692903
e-06));
931 CHECK(dionpsi[0][1][2] == Approx(3.248738084
e-07));
932 CHECK(diongradpsi[0][1](2, 0) == Approx(-2.044420189
e-06));
933 CHECK(diongradpsi[0][1](2, 1) == Approx(-7.011145137
e-08));
934 CHECK(diongradpsi[0][1](2, 2) == Approx(6.532522353
e-06));
935 CHECK(dionlaplpsi[0][1][2] == Approx(-6.10958506
e-06));
936 CHECK(dionpsi[0][2][2] == Approx(3.264249981
e-06));
937 CHECK(diongradpsi[0][2](2, 0) == Approx(2.820971234
e-05));
938 CHECK(diongradpsi[0][2](2, 1) == Approx(9.405184964
e-07));
939 CHECK(diongradpsi[0][2](2, 2) == Approx(6.481420782
e-05));
940 CHECK(dionlaplpsi[0][2][2] == Approx(5.73961989
e-05));
941 CHECK(dionpsi[0][3][2] == Approx(0.0001288974413));
942 CHECK(diongradpsi[0][3](2, 0) == Approx(0.0002840756879));
943 CHECK(diongradpsi[0][3](2, 1) == Approx(9.281700408
e-06));
944 CHECK(diongradpsi[0][3](2, 2) == Approx(0.002573308008));
945 CHECK(dionlaplpsi[0][3][2] == Approx(0.0003025314443));
946 CHECK(dionpsi[0][4][2] == Approx(-7.300043903
e-05));
947 CHECK(diongradpsi[0][4](2, 0) == Approx(-0.0001000016834));
948 CHECK(diongradpsi[0][4](2, 1) == Approx(-3.233243534
e-06));
949 CHECK(diongradpsi[0][4](2, 2) == Approx(-0.001458391774));
950 CHECK(dionlaplpsi[0][4][2] == Approx(-3.546690719
e-05));
951 CHECK(dionpsi[0][5][2] == Approx(2.910525987
e-06));
952 CHECK(diongradpsi[0][5](2, 0) == Approx(1.307065133
e-05));
953 CHECK(diongradpsi[0][5](2, 1) == Approx(1.560390706
e-06));
954 CHECK(diongradpsi[0][5](2, 2) == Approx(-2.92731811
e-06));
955 CHECK(dionlaplpsi[0][5][2] == Approx(3.797816228
e-05));
956 CHECK(dionpsi[0][6][2] == Approx(-1.56074936
e-05));
957 CHECK(diongradpsi[0][6](2, 0) == Approx(-7.009049656
e-05));
958 CHECK(diongradpsi[0][6](2, 1) == Approx(-2.048666792
e-06));
959 CHECK(diongradpsi[0][6](2, 2) == Approx(2.967709412
e-06));
960 CHECK(dionlaplpsi[0][6][2] == Approx(-0.0002018111858));
964 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 0, dionpsi);
966 CHECK(dionpsi[0][0][0] == Approx(0.0453112082));
967 CHECK(dionpsi[0][1][0] == Approx(-0.0006473819623));
968 CHECK(dionpsi[0][2][0] == Approx(0.265578336));
969 CHECK(dionpsi[0][3][0] == Approx(-0.06444305979));
970 CHECK(dionpsi[0][4][0] == Approx(0.1454357726));
971 CHECK(dionpsi[0][5][0] == Approx(-0.04329985085));
972 CHECK(dionpsi[0][6][0] == Approx(0.01207541177));
974 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 1, dionpsi);
976 CHECK(dionpsi[0][0][1] == Approx(0.0001412373768));
977 CHECK(dionpsi[0][1][1] == Approx(-0.01029290716));
978 CHECK(dionpsi[0][2][1] == Approx(-0.0230872583));
979 CHECK(dionpsi[0][3][1] == Approx(0.01850231814));
980 CHECK(dionpsi[0][4][1] == Approx(-0.02136209962));
981 CHECK(dionpsi[0][5][1] == Approx(-0.1942343714));
982 CHECK(dionpsi[0][6][1] == Approx(-0.03930992259));
984 sposet->evaluateGradSource(elec, 0, elec.R.size(), ions, 2, dionpsi);
986 CHECK(dionpsi[0][0][2] == Approx(1.302648961
e-06));
987 CHECK(dionpsi[0][1][2] == Approx(3.248738084
e-07));
988 CHECK(dionpsi[0][2][2] == Approx(3.264249981
e-06));
989 CHECK(dionpsi[0][3][2] == Approx(0.0001288974413));
990 CHECK(dionpsi[0][4][2] == Approx(-7.300043903
e-05));
991 CHECK(dionpsi[0][5][2] == Approx(2.910525987
e-06));
992 CHECK(dionpsi[0][6][2] == Approx(-1.56074936
e-05));
998 dionpsivec.resize(7);
1000 sposet->evaluateGradSourceRow(elec, 0, ions, 0, dionpsivec);
1002 CHECK(dionpsivec[0][0] == Approx(0.0453112082));
1003 CHECK(dionpsivec[1][0] == Approx(-0.0006473819623));
1004 CHECK(dionpsivec[2][0] == Approx(0.265578336));
1005 CHECK(dionpsivec[3][0] == Approx(-0.06444305979));
1006 CHECK(dionpsivec[4][0] == Approx(0.1454357726));
1007 CHECK(dionpsivec[5][0] == Approx(-0.04329985085));
1008 CHECK(dionpsivec[6][0] == Approx(0.01207541177));
1010 sposet->evaluateGradSourceRow(elec, 0, ions, 1, dionpsivec);
1012 CHECK(dionpsivec[0][1] == Approx(0.0001412373768));
1013 CHECK(dionpsivec[1][1] == Approx(-0.01029290716));
1014 CHECK(dionpsivec[2][1] == Approx(-0.0230872583));
1015 CHECK(dionpsivec[3][1] == Approx(0.01850231814));
1016 CHECK(dionpsivec[4][1] == Approx(-0.02136209962));
1017 CHECK(dionpsivec[5][1] == Approx(-0.1942343714));
1018 CHECK(dionpsivec[6][1] == Approx(-0.03930992259));
1020 sposet->evaluateGradSourceRow(elec, 0, ions, 2, dionpsivec);
1022 CHECK(dionpsivec[0][2] == Approx(1.302648961
e-06));
1023 CHECK(dionpsivec[1][2] == Approx(3.248738084
e-07));
1024 CHECK(dionpsivec[2][2] == Approx(3.264249981
e-06));
1025 CHECK(dionpsivec[3][2] == Approx(0.0001288974413));
1026 CHECK(dionpsivec[4][2] == Approx(-7.300043903
e-05));
1027 CHECK(dionpsivec[5][2] == Approx(2.910525987
e-06));
1028 CHECK(dionpsivec[6][2] == Approx(-1.56074936
e-05));
OrbitalSetTraits< ValueType >::HessVector HessVector
void test_HCN(bool transform)
class that handles xmlDoc
int addSpecies(const std::string &aname)
When a name species does not exist, add a new species.
helper functions for EinsplineSetBuilder
xmlXPathContextPtr getXPathContext()
TEST_CASE("complex_helper", "[type_traits]")
A ParticleSet that handles virtual moves of a selected particle of a given physical ParticleSet Virtu...
void makeMoves(const ParticleSet &refp, int jel, const std::vector< PosType > &deltaV, bool sphere=false, int iat=-1)
move virtual particles to new postions and update distance tables
OrbitalSetTraits< ValueType >::ValueMatrix ValueMatrix
void test_EtOH_mw(bool transform)
void update(bool skipSK=false)
update the internal data
Communicate * Controller
Global Communicator for a process.
int addAttribute(const std::string &aname)
for a new attribute, allocate the data, !More often used to get the index of a species ...
std::map< std::string, const std::unique_ptr< ParticleSet > > PSetMap
class to handle xmlXPathObject
OrbitalSetTraits< ValueType >::GradMatrix GradMatrix
Wrapping information on parallelism.
Decalaration of One-Dimesional grids.
Specialized paritlce class for atomistic simulations.
REQUIRE(std::filesystem::exists(filename))
OrbitalSetTraits< ValueType >::ValueVector ValueVector
bool readXML(xmlNodePtr cur)
process xmlnode <particleset/> which contains everything about the particle set to initialize ...
void test_He_mw(bool transform)
void test_Ne(bool transform)
std::vector< std::reference_wrapper< T > > RefVector
OrbitalSetTraits< ValueType >::GradVector GradVector
void makeMove(Index_t iat, const SingleParticlePos &displ, bool maybe_accept=true)
move the iat-th particle to active_pos_
void test_He(bool transform)
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))
bool parse(const std::string &fname)
handles acquire/release resource by the consumer (RefVectorWithLeader type).
std::unique_ptr< SPOSetBuilder > createSPOSetBuilder(xmlNodePtr rootNode)
Custom container for set of attributes for a set of species.
OrbitalSetTraits< ValueType >::GradHessMatrix GGGMatrix
xmlChar * castCharToXMLChar(char *c)
unsafe char* to xmlChar* cast
OrbitalSetTraits< ValueType >::HessMatrix HessMatrix