72#ifndef MADNESS_CHEM_NUCLEARCORRELATIONFACTOR_H_
73#define MADNESS_CHEM_NUCLEARCORRELATIONFACTOR_H_
87 typedef std::shared_ptr< FunctionFunctorInterface<double,3> >
functorT;
120 .functor(
U1f).truncate_on_project());
127 .functor(
U2f).truncate_on_project();
133 .functor(
U3f).truncate_on_project();
163 .functor(
Rf).truncate_on_project();
171 .functor(r).truncate_on_project();
182 .functor(
func).truncate_on_project();
190 .functor(r).truncate_on_project();
200 std::vector<real_function_3d>
U1vec()
const {
201 std::vector<real_function_3d>
uvec(3);
238 virtual double S(
const double& r,
const double&
Z)
const = 0;
256 virtual double Spp_div_S(
const double& r,
const double&
Z)
const = 0;
268 virtual double Sr_div_S(
const double& r,
const double&
Z)
const = 0;
278 virtual double Srr_div_S(
const double& r,
const double&
Z)
const = 0;
288 virtual double Srrr_div_S(
const double& r,
const double&
Z)
const = 0;
305 print(
"you can't compute the Hessian matrix");
306 print(
"U2X_spherical is not implemented for the nuclear correlation factor");
333 const double r=
xyz.normf();
352 const double r=
xyz.normf();
357 const double xi=r/cutoff;
363 const double kk=2.*
nu22-1.0;
424 + 175.*
s2*
s2))/(16.*
s7));
451 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
452 const Atom& atom=
ncf->molecule.get_atom(i);
455 result*=
ncf->S(r,atom.
q);
457 if (
exponent==-1)
return 1.0/result;
458 else if (
exponent==2)
return result*result;
459 else if (
exponent==1)
return result;
461 return std::pow(result,
double(
exponent));
466 return ncf->molecule.get_all_coords_vec();
484 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
485 const Atom& atom=
ncf->molecule.get_atom(i);
488 const double&
Z=atom.
q;
495 return ncf->molecule.get_all_coords_vec();
520 const double&
Z=atom.
q;
525 std::vector< madness::Vector<double,3> >
c(1);
549 std::vector<double>
Sr_div_S(
ncf->molecule.natom());
550 std::vector<coord_3d>
unitvec(
ncf->molecule.natom());
551 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
552 const Atom& atom=
ncf->molecule.get_atom(i);
560 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
561 for (
size_t j=0; j<
ncf->molecule.natom(); ++j) {
572 return ncf->molecule.get_all_coords_vec();
583 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
584 const Atom& atom=
ncf->molecule.get_atom(i);
587 result+=
ncf->Spp_div_S(r,atom.
q);
592 return ncf->molecule.get_all_coords_vec();
602 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
603 const Atom& atom=
ncf->molecule.get_atom(i);
611 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
612 for (
size_t j=0; j<i; ++j) {
622 return ncf->molecule.get_all_coords_vec();
640 return ncf->Spp_div_S(r,atom.
q);
644 std::vector< madness::Vector<double,3> >
c(1);
672 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
673 if (i==
iatom)
continue;
688 std::vector< madness::Vector<double,3> >
c(1);
707 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
708 const Atom& atom=
ncf->molecule.get_atom(i);
711 result*=
ncf->S(r,atom.
q);
715 return result*result*
V;
719 return ncf->molecule.get_all_coords_vec();
735 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
736 const Atom& atom=
ncf->molecule.get_atom(i);
739 result*=
ncf->S(r,atom.
q);
743 return result*result*
Vprime;
747 return ncf->molecule.get_all_coords_vec();
777 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
778 const Atom& atom=
ncf->molecule.get_atom(i);
781 result*=
ncf->S(r,atom.
q);
783 if (
exponent==2) result=result*result;
791 const double S1=-
ncf->Sr_div_S(r,
Z)
799 return ncf->molecule.get_all_coords_vec();
831 const double S1=
ncf->Sr_div_S(r,
Z);
832 const double S2=
ncf->Srr_div_S(r,
Z);
842 std::vector< madness::Vector<double,3> >
c(1);
861 double lo=1.0/atom.
q;
869 const double&
Z=atom.
q;
879 std::vector< madness::Vector<double,3> >
c(1);
940 for (
int i=0; i<3; ++i) {
952 return ncf->molecule.get_all_coords_vec();
975 print(
"constructed nuclear correlation factor of the form");
976 print(
" R = Prod_A S_A");
977 print(
" S_A = exp(-Z_A r_{1A}) + (1 - exp(-Z_A^2*r_{1A}^2))");
979 print(
"which is of Gaussian-Slater type\n");
989 double S(
const double& r,
const double&
Z)
const {
990 const double rho=r*
Z;
991 return exp(-rho)+(1.0-
exp(-(rho*rho)));
1000 const double eA=
exp(-
Z*r);
1001 const double gA=
exp(-
Z*
Z*r*r);
1010 const double rho=
Z*r;
1012 return Z*
Z*(-3.5 - 4.0*rho + 6.0*rho*rho + 12.0*rho*rho*rho);
1014 const double e=
exp(-rho);
1015 const double g=
exp(-rho*rho);
1016 const double term1=-
Z/r*(1.0-
g);
1018 const double S_inv=
exp(-rho)+(1.0-
exp(-(rho*rho)));
1024 const double Zr=r*
Z;
1033 const double Zr=r*
Z;
1042 const double Zr=r*
Z;
1067 const double ZZ=
Z*
Z;
1070 const double r0=-4.0*
ZZZ;
1071 const double r1=12.0*
Z4;
1072 const double r2=36*
Z4*
Z;
1073 const double r3=-67.0/6.0*
Z4*
ZZ;
1074 result=(r0 + r*
r1 + r*r*
r2 + r*r*r*
r3);
1107 print(
"constructed nuclear correlation factor of the form");
1108 print(
" R = Prod_A S_A");
1109 print(
" S_A = 1/sqrt{Z} exp(-Z_A r_{1A}) + (1 - exp(-a^2*Z_A^2*r_{1A}^2))");
1112 print(
"which is of Gradiental Gaussian-Slater type\n");
1124 double S(
const double& r,
const double&
Z)
const {
1125 const double rho=r*
Z;
1135 const double rho=
Z*r;
1145 const double rho=
Z*r;
1149 const double a2=
a*
a;
1150 const double a4=
a2*
a2;
1156 + 3. *a4 *rho*rho*
Z*
Z*
Z
1159 +7. *a4 *rho*rho*rho*
Z*
Z*
Z;
1161 const double e=
exp(-rho);
1162 const double g=
exp(-
a*
a*rho*rho);
1163 const double poly=(2.0-6.0*
a*
a*rho + 4.0*
a*
a*
a*
a*rho*rho*rho);
1171 const double rZ=r*
Z;
1181 const double rZ=r*
Z;
1191 const double rZ=r*
Z;
1206 const double Z2=
Z*
Z;
1208 const double Z5=
Z4*
Z;
1209 const double Z6=
Z5*
Z;
1210 const double Z7=
Z6*
Z;
1211 const double a2=
a*
a;
1212 const double a4=
a2*
a2;
1219 result=(r0 +
r1 +
r2 +
r3);
1253 print(
"constructed nuclear correlation factor of the form");
1254 print(
" S_A = -Z_A r_{1A} exp(-Z_A r_{1A}) + 1");
1257 print(
"which is of linear Slater type\n");
1271 double S(
const double& r,
const double&
Z)
const {
1272 const double rho=r*
Z;
1273 const double b=a_param();
1274 return (-rho)*
exp(-
b*rho)+1.0;
1280 const double b=a_param();
1294 const double b=a_param();
1295 const double rho=
Z*r;
1297 const double O0=1.0- 3.0*
b;
1298 const double O1=
Z - 4.0*
b*
Z + 3.0*
b*
b*
Z;
1304 const double num=
Z* (
ebrz - 1.0 + 0.5*
ebrz*rho* (2.0 +
b*(
b*rho-4.0)));
1311 const double&
a=a_param();
1317 const double&
a=a_param();
1323 const double&
a=a_param();
1345 print(
"\nconstructed nuclear correlation factor of the form");
1346 print(
" S_A = 1/(a-1) exp(-a Z_A r_{1A}) + 1");
1348 print(
"with eprec ",eprec_);
1349 print(
"which is of Slater type\n");
1370 const double&
a=a_param();
1371 return -
a*
Z/(1.0+(
a-1.0)*
exp(
a*r*
Z));
1380 const double&
a=a_param();
1381 const double aZ=
a*
Z;
1391 const double&
a=a_param();
1392 const double aZ=
a*
Z;
1397 double S(
const double& r,
const double&
Z)
const {
1398 const double a=a_param();
1400 return 1.0+1.0/(
a-1.0) *
exp(-
a*
Z*r);
1409 const double a=a_param();
1410 const double r=
vr1A.normf();
1416 const double a=a_param();
1419 const double O0=1.0-(1.5*
a);
1420 const double O1=(
a-1.0)*(
a-1.0)*
Z;
1421 const double O2=(1.0/12.0 * (
a-1.0)*(12.0+
a*(5*
a-18.0)))*
Z*
Z;
1446 const double a=a_param();
1450 const double ZZ=
Z*
Z;
1452 const double a2=
a*
a;
1453 const double a4=
a2*
a2;
1454 const double r0=
ZZZ*(1. - 2.*
a +
a2);
1455 const double r1=
ZZ*
ZZ/6.* (12.0 - 30.*
a + 23. *
a2 - 5.*
a*
a2);
1456 const double r2=1./8.*
ZZ*
ZZZ* (24. - 72.*
a + 74.*
a2 - 29.*
a2*
a + 3.*a4);
1457 const double r3=1./60.*
ZZZ*
ZZZ* (240. - 840.*
a + 1080.*
a2 - 610.*
a2*
a
1458 + 137.*
a2*
a2 - 7.*a4*
a);
1459 result=(r0 + r*
r1 + r*r*
r2 + r*r*r*
r3);
1489 print(
"\nconstructed nuclear correlation factor of the form");
1490 print(
" S_A = 1 + (a0 + a1 arZ + a2 (arZ)^2 + a3 (arZ)^3 + a4 (arZ)^4) erfc(arZ)");
1492 print(
"with eprec ",eprec_);
1493 print(
"which is of poly4erfc type\n");
1500 a0=0.5083397721116242769;
1501 a1=-2.4430795355664112811;
1502 a2=3.569312300653802680;
1503 a3=-1.9812471972342746507;
1504 a4=0.3641705622093696564;
1505 }
else if (
a==1.0) {
1506 a0=0.20265985404508529127;
1507 a1=-0.9739826967339938056;
1508 a2=1.4229779953809877198;
1509 a3=-0.7898639647077711196;
1510 a4=0.14518390461225107425;
1513 print(
"invalid parameter a for poly4erfc: only 0.5 and 1.0 implemented");
1541 result=(-17.97663543396820624361586474 + x*(32.78290319470982346841067868 +
1542 x*(-18.158574783628271659713638233 +
1543 x*(2.472138984374094343735335913 +
1544 x*(0.5516975358315341628276502285 +
1545 x*(-0.008573693952875097234391220137 +
1546 x*(-0.05596791202351071993748992739 +
1547 (0.002673799219133696315436690424 +
1548 0.0013386538660557369902632289083*x)*x)))))))/
1549 (17.976635433967702922140233083 + x*
1550 (-13.062204300852085089323266568 +
1551 x*(16.397871971437618641239835027 + x*(-5.383337491559214163188757918 + 1.*x))));
1553 result=(-16.53370050883888159389958126 + x*(30.04151304875517461538549269 +
1554 x*(-16.692529697855029750948871179 +
1555 x*(2.50341008323651011875249567 +
1556 x*(0.3106921665634860719234742532 +
1557 x*(0.08721948207311506458903445571 +
1558 x*(-0.10041387133168708232852057948 +
1559 (0.02000987266876476192949541524 - 0.0012508983745483161308604975792*x)*
1561 (16.532205048243702951212522516 + x*
1562 (-11.89273747187279634240347945 +
1563 x*(15.157537549656745468895369276 + x*(-4.9102960292797655978798640519 + 1.*x))));
1565 result=(-2352.191894900273554810118278 + x*(5782.846962269399174183661793 +
1566 x*(-5653.246084369776756298278851 +
1567 x*(2948.18046377483570925427449 +
1568 x*(-913.4583247839311453090142452 +
1569 x*(174.39391722588915386106331206 +
1570 x*(-20.22035127074332315930567933 +
1571 (1.3107321165711966663791114988 - 0.03655666729452579098523876463*x)*x))
1573 (886.4859678528423041797649741 + x*(269.17746130370931387996124706 +
1574 x*(-130.21383548057958115685397713 + x*(37.644499985765056273193347388 + 1.*x))));
1576 result=(2.2759176275121988686860433041 + x*(-1.8014283464827425541637211503 +
1577 x*(0.60570955276433317373251991152 +
1578 x*(-0.11235368819003308411943926239 +
1579 x*(0.01243211635244600976892077538 +
1580 x*(-0.0008211800260491381826149891865 +
1581 x*(0.000029973534470203049782417744015 +
1582 (-4.6423722605763162431293872646e-7 -
1583 1.3224615425412157194986675329e-10*x)*x)))))))/
1584 (1039.800013929971888016478838 + x*(-702.5378531848183775210948787 +
1585 x*(183.17476380259879599459789974 + x*(-21.74106003575315304073197254 + 1.*x))));
1589 }
else if (
a==1.0) {
1591 result=(-1.6046958001953006847027538457 + x*(5.948945186367159977879486279 +
1592 x*(-6.884321742840291285733040882 +
1593 x*(2.296896506418919905405783368 +
1594 x*(0.616939354810622973212914089 +
1595 x*(-0.13679830198890803519235207564 +
1596 x*(-0.3356576872066501398893403439 +
1597 (0.14876798925798674488426727928 - 0.016049886728185297028755535226*x)*x
1599 (1.6046957999975126909719683196 + x*
1600 (-0.8234878506688316215458988304 +
1601 x*(3.4607641859010551501639903314 + x*(-1.8955210085531557309609670978 + 1.*x))));
1603 result=(-7.143856421301985019580778813 + x*(33.35568129248075086686087865 +
1604 x*(-60.0412343766569246898209957 +
1605 x*(55.46407913315151830247939138 +
1606 x*(-28.7874770749840240158264326 +
1607 x*(8.379317837934083469035061852 +
1608 x*(-1.2103278392957399092107317741 +
1609 (0.04275186003977071121074860478 + 0.005247730112126140726731063205*x)*x
1611 (5.4509691924562038998044993827 + x*
1612 (-2.2732931206867811068721699796 +
1613 x*(4.1530634219989859344450742259 + x*(-2.0183662125874366044951391259 + 1.*x))));
1615 result=(-0.4869290414611847276899694883 + x*(1.0513417728218375522016338562 +
1616 x*(-0.9694851629317255156038942437 +
1617 x*(0.5007460889402078102011673774 +
1618 x*(-0.15897436623286639052954575417 +
1619 x*(0.03185042477631079356985872518 +
1620 x*(-0.003940899912654543218183049969 +
1621 (0.0002757919409481032696079686825 -
1622 8.369138363906178282041501561e-6*x)*x)))))))/
1623 (30.81121613134246115634780413 + x*(-49.989974505724725146933397436 +
1624 x*(31.455643953462635691568128729 + x*(-8.992097794824270871044305786 + 1.*x))));
1653 double S(
const double& r,
const double&
Z)
const {
1654 const double arZ=
a*r*
Z;
1672 result=(-37.75186842343823465059 + x*(21.3476988467348903615 +
1673 x*(0.014608707333424946750026 +
1674 x*(-3.704945314726273312722 +
1675 x*(0.08808104845382944292252 +
1676 x*(0.3362428305409206967066 +
1677 x*(-0.02288039625102549092766 +
1678 (-0.017240056622850307571001 + 0.002412740490618117536527*x)*x)))))))/
1679 (17.595611361287293183447 + x*(-12.421065066789808273295 +
1680 x*(15.957564552156320207938 + x*(-5.0239100389132464317907 + 1.*x))));
1682 result=(-35.46082798344982189328 + x*(20.3565414350879797493 +
1683 x*(-0.3046488975234456455871 +
1684 x*(-3.298067641731523613442 +
1685 x*(-0.10712268902574947466554 +
1686 x*(0.4829111116912435121877 +
1687 x*(-0.10089023589818206760275 +
1688 (0.0013899828749998182176948 + 0.0008305150868988335610678*x)*x)))))))/
1689 (16.526499668833810286111 + x*(-11.79820182874024593006 +
1690 x*(15.115407083582433322342 + x*(-4.8449266197426825174319 + 1.*x))));
1692 result=(-414.5311559516023264104 + x*(615.8720414166440747539 +
1693 x*(-422.5938440932793094888 + x*
1694 (159.72497494584873155352 +
1695 x*(-35.6790348104188081907 +
1696 x*(4.658777521872728594702 +
1697 x*(-0.328305094433759490678 +
1698 (0.009162754689309596905172 + 0.00005047926659010755662873*x)*x)))))))/
1699 (112.7044543272820830484 + x*(-56.072518762714727894479 +
1700 x*(28.188843903409059322224 + x*(-6.519554545057610040741 + 1.*x))));
1701 }
else if (x<10.0) {
1702 result=(-146.68256559112012287314 + x*(188.52807059353309478385 +
1703 x*(-82.07176992590032524431 + x*
1704 (18.107697718347802322776 +
1705 x*(-2.3221393933622638466979 +
1706 x*(0.18681223946803275939642 +
1707 x*(-0.009601011427143648072501 +
1708 (0.00028623295732553770894583 - 3.77364531155112782235e-6*x)*x)))))))/
1709 (633.1319105785227043552 + x*(-574.29230199331494406798 +
1710 x*(171.872612865808639376 + x*(-21.906495121260483674385 + 1.*x))));
1714 }
else if (
a==1.0) {
1716 result=(-8.85288955131414420808 + x*(11.359434597010419928515 +
1717 x*(-2.982094072176256165405 + x*
1718 (-4.924201512880445076103 +
1719 x*(0.6773928043289287907009 +
1720 x*(2.061680233090141287213 +
1721 x*(-0.5528612000728412913713 +
1722 (-0.3024276764350212595121 + 0.10765958646570631264003*x)*x)))))))/
1723 (1.6731803922436094206275 + x*(-0.8242052614481793487834 +
1724 x*(3.5912910648514747558597 + x*(-1.9146644266104277222142 + 1.*x))));
1726 result=(-8.538839434207355205544 + x*(-37.85611260277589742674 +
1727 x*(155.08466711228234382211 + x*
1728 (-241.1247881821171613212 +
1729 x*(199.33293375918859716585 +
1730 x*(-96.80750216221383928113 +
1731 x*(27.71704080319043943288 +
1732 (-4.354251431065185902435 + 0.2906781051124817624589*x)*x)))))))/
1733 (2.2233877901091612794108 + x*(3.2084406367698851844258 +
1734 x*(1.021615116328133792993 + x*(-0.9819667717342250528772 + 1.*x))));
1736 result=(-7.338671998425412491091 + x*(18.593867285988629508481 +
1737 x*(-19.15344657249203844577 + x*
1738 (10.072359942912659732126 +
1739 x*(-2.99771628023376895151 +
1740 x*(0.5324416109232007541639 +
1741 x*(-0.05993976172902101376555 +
1742 (0.003887110757665478374745 - 0.00011079212872583089652945*x)*x)))))))/
1743 (13.273604111590967002999 + x*(-28.012330064250556933961 +
1744 x*(22.161347591665727407914 + x*(-7.617582259533338164664 + 1.*x))));
1746 result=(132.78397650676876308801 + x*(-78.01898251977413923271 +
1747 x*(15.292039515801252996504 + x*
1748 (-1.000000154745351328125 +
1749 x*(1.950300262619412492847e-8 +
1750 x*(-1.6337541591423364318692e-9 +
1751 x*(8.771557330523968791519e-11 +
1752 (-2.7388800346031121159372e-12 + 3.7894572289998844980568e-14*x)*x))))))
1753 )/(-4.724326520908917985827e-6 + x*
1754 (-132.78397108375581258096 + x*(78.01897976124964688489 +
1755 x*(-15.292038699709498552356 + 1.*x))));
1789template<std::
size_t N>
1800 a_=(2. + (-2. +
sqrt(-1. +
N))*
N)/(-2. +
N);
1805 print(
"constructed nuclear correlation factor of the form");
1806 print(
" R = Prod_A S_A");
1807 print(
" S_A = 1 + a (r/b -1)^N if r<b, with b= (N*a)/((1+a) Z)");
1808 print(
" = 1 else ");
1810 print(
"which is of polynomial type with exponent N = ",
N);
1827 double S(
const double& r,
const double&
Z)
const {
1829 const double rho=r*
Z;
1834 const double arg=-1.0 + rho/
b;
1846 const double rho=r*
Z;
1861 const double rho=r*
Z;
1866 const double ap1=1.0+
a;
1867 const double c0=((3. *(1. +
a) - (3. +
a) *
N))/(2.*
a*
N);
1871 return Z*
Z*(c0 + c1*r + c2*r*r);
1876 * (-2 *
a*
N*
N + (1 +
a) *
N* (1 +
a *(-3 +
N) +
N)* rho +
1888 const double rho=r*
Z;
1904 const double rho=r*
Z;
1918 const double rho=r*
Z;
1932 const double a=a_param();
1933 const double aopt=(2. + (-2. +
sqrt(-1. +
N))*
N)/(-2. +
N);
1941 const double r0=0.0;
1944 const double r2=((-4*(17 + 9*
rn) +
N*(92 + 80*
rn +
1947 result=(r0 + r*
r1 + r*r*
r2);
1971 const std::shared_ptr<PotentialManager> pot,
const double fac)
1973 eprec(mol.get_eprec()), fac(fac) {
1975 if (world.
rank()==0) {
1976 print(
"constructed nuclear correlation factor of the form");
1979 print(
"which means it's (nearly) a conventional calculation\n");
1996 return potentialmanager->vnuclear();
2016 double Sr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2018 double Srr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2020 double Srrr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2023 double S(
const double& r,
const double&
Z)
const {
2055 const std::vector<real_function_3d>& U1)
2061 if (world.
rank()==0) {
2062 print(
"constructed ad hoc nuclear correlation factor");
2086 double S(
const double& r,
const double&
Z)
const {
2105std::shared_ptr<NuclearCorrelationFactor>
2108 const std::shared_ptr<PotentialManager>
pm,
2111std::shared_ptr<NuclearCorrelationFactor>
2114 const std::shared_ptr<PotentialManager>
pm,
2115 const std::pair<std::string,double>&
ncf);
Declaration of utility class and functions for atom.
this ncf has no information about itself, only U2 and U1 assigned
Definition correlationfactor.h:2047
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:2098
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2070
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:2092
corrfactype type() const
Definition correlationfactor.h:2066
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2075
AdhocNuclearCorrelationFactor(World &world, const real_function_3d U2, const std::vector< real_function_3d > &U1)
ctor
Definition correlationfactor.h:2054
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:2086
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2080
double y
Definition molecule.h:62
double x
Definition molecule.h:62
double z
Definition molecule.h:62
madness::Vector< double, 3 > get_coords() const
Definition molecule.h:106
double q
Coordinates and charge in atomic units.
Definition molecule.h:62
Implements derivatives operators with variety of boundary conditions on simulation domain.
Definition derivative.h:329
FunctionDefaults holds default paramaters as static class members.
Definition funcdefaults.h:100
Abstract base class interface required for functors used as input to Functions.
Definition function_interface.h:68
void set_length_scale(double lo)
adapt the special level to resolve the smallest length scale
Definition function_interface.h:80
double thresh() const
Returns value of truncation threshold. No communication.
Definition mra.h:677
void set_thresh(double value, bool fence=true)
Sets the value of the truncation threshold. Optional global fence.
Definition mra.h:687
Function< T, NDIM > & truncate(double tol=0.0, bool fence=true)
Truncate the function with optional fence. Compresses with fence if not compressed.
Definition mra.h:712
const Function< T, NDIM > & compress(bool fence=true) const
Compresses the function, transforming into wavelet basis. Possible non-blocking comm.
Definition mra.h:858
A nuclear correlation factor class.
Definition correlationfactor.h:965
GaussSlater(World &world, const Molecule &mol)
ctor
Definition correlationfactor.h:971
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1032
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:989
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt X (scalar part)
Definition correlationfactor.h:1063
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1041
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1009
corrfactype type() const
Definition correlationfactor.h:984
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:995
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1023
A nuclear correlation factor class.
Definition correlationfactor.h:1097
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1180
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1124
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1130
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt nuclear coordinate X (spherical part)
Definition correlationfactor.h:1201
const double a
Definition correlationfactor.h:1121
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1190
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1144
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1170
GradientalGaussSlater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1103
corrfactype type() const
Definition correlationfactor.h:1117
A nuclear correlation factor class.
Definition correlationfactor.h:1241
LinearSlater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1247
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1316
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1278
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1271
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1310
double a_param() const
Definition correlationfactor.h:1268
double a_
the length scale parameter a
Definition correlationfactor.h:1266
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1322
corrfactype type() const
Definition correlationfactor.h:1261
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1292
Definition molecule.h:129
double atomic_attraction_potential(int iatom, double x, double y, double z) const
nuclear attraction potential for a specific atom in the molecule
Definition molecule.cc:1112
double get_eprec() const
Definition molecule.h:489
double nuclear_attraction_potential_derivative(int atom, int axis, double x, double y, double z) const
Definition molecule.cc:1125
compute the derivative of R wrt the displacement of atom A, coord axis
Definition correlationfactor.h:752
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:753
const Atom & thisatom
Definition correlationfactor.h:754
const int derivativeaxis
Definition correlationfactor.h:755
RX_functor(const NuclearCorrelationFactor *ncf, const Atom &atom1, const int daxis, const int exponent)
1 or 2 -> R^X or R^X R
Definition correlationfactor.h:759
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:798
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:772
const int exponent
direction of the derivative operator
Definition correlationfactor.h:756
RX_functor(const NuclearCorrelationFactor *ncf, const int iatom, const int daxis, const int exponent)
Definition correlationfactor.h:765
Definition correlationfactor.h:443
R_functor(const NuclearCorrelationFactor *ncf, const int e=1)
Definition correlationfactor.h:447
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:465
int exponent
Definition correlationfactor.h:445
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:444
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:449
compute the derivative of U1 wrt the displacement of atom A, coord axis
Definition correlationfactor.h:806
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:807
const int U1axis
Definition correlationfactor.h:809
U1X_functor(const NuclearCorrelationFactor *ncf, const int iatom, const int U1axis, const int daxis)
Definition correlationfactor.h:819
U1X_functor(const NuclearCorrelationFactor *ncf, const Atom &atom1, const int U1axis, const int daxis)
direction of the derivative operator
Definition correlationfactor.h:812
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:827
const Atom & thisatom
Definition correlationfactor.h:808
const int derivativeaxis
U1x/U1y/U1z potential?
Definition correlationfactor.h:810
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:841
U1 functor for a specific atom.
Definition correlationfactor.h:506
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:516
const size_t iatom
Definition correlationfactor.h:509
U1_atomic_functor(const NuclearCorrelationFactor *ncf, const size_t atom, const int axis)
Definition correlationfactor.h:513
const int axis
Definition correlationfactor.h:510
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:524
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:508
functor for a local U1 dot U1 potential
Definition correlationfactor.h:541
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:571
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:543
U1_dot_U1_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:546
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:548
functor for the local part of the U1 potential – NOTE THE SIGN
Definition correlationfactor.h:473
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:482
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:494
const int axis
Definition correlationfactor.h:476
U1_functor(const NuclearCorrelationFactor *ncf, const int axis)
Definition correlationfactor.h:479
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:475
compute the derivative of U2 wrt the displacement of atom A
Definition correlationfactor.h:853
const int iatom
Definition correlationfactor.h:855
const int axis
Definition correlationfactor.h:856
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:878
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:854
U2X_functor(const NuclearCorrelationFactor *ncf, const int &atom1, const int axis)
Definition correlationfactor.h:858
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:865
U2 functor for a specific atom.
Definition correlationfactor.h:627
const size_t iatom
Definition correlationfactor.h:630
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:636
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:643
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:629
U2_atomic_functor(const NuclearCorrelationFactor *ncf, const size_t atom)
Definition correlationfactor.h:633
Definition correlationfactor.h:577
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:591
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:581
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:578
U2_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:580
compute the derivative of U3 wrt the displacement of atom A, coord axis
Definition correlationfactor.h:901
U3X_functor(const NuclearCorrelationFactor *ncf, const size_t iatom, const int axis)
Definition correlationfactor.h:906
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:902
const int axis
Definition correlationfactor.h:904
const size_t iatom
Definition correlationfactor.h:903
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:909
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:951
U3 functor for a specific atom.
Definition correlationfactor.h:654
const size_t iatom
Definition correlationfactor.h:657
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:656
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:663
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:687
U3_atomic_functor(const NuclearCorrelationFactor *ncf, const int atom)
Definition correlationfactor.h:660
Definition correlationfactor.h:596
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:621
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:600
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:597
U3_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:599
Definition correlationfactor.h:724
const int axis
Definition correlationfactor.h:728
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:733
const Molecule & molecule
Definition correlationfactor.h:726
const size_t iatom
Definition correlationfactor.h:727
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:746
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:725
square_times_V_derivative_functor(const NuclearCorrelationFactor *ncf, const Molecule &molecule1, const size_t atom1, const int axis1)
Definition correlationfactor.h:730
Definition correlationfactor.h:697
std::vector< coord_3d > special_points() const
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:718
const size_t iatom
Definition correlationfactor.h:700
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:698
square_times_V_functor(const NuclearCorrelationFactor *ncf, const Molecule &mol, const size_t iatom1)
Definition correlationfactor.h:702
const Molecule & molecule
Definition correlationfactor.h:699
double operator()(const coord_3d &xyz) const
Definition correlationfactor.h:705
ABC for the nuclear correlation factors.
Definition correlationfactor.h:83
double eprec
smoothing of the potential/step function
Definition correlationfactor.h:220
std::shared_ptr< FunctionFunctorInterface< double, 3 > > functorT
Definition correlationfactor.h:87
virtual const real_function_3d U2() const
return the U2 term of the correlation function
Definition correlationfactor.h:209
virtual real_function_3d square() const
return the square of the nuclear correlation factor
Definition correlationfactor.h:168
double vtol
the threshold for initial projection
Definition correlationfactor.h:217
virtual double Srrr_div_S(const double &r, const double &Z) const =0
virtual real_function_3d function() const
return the nuclear correlation factor
Definition correlationfactor.h:160
coord_3d smoothed_unitvec(const coord_3d &xyz, double smoothing=0.0) const
smoothed unit vector for the computation of the U1 potential
Definition correlationfactor.h:325
const Molecule & molecule
the molecule
Definition correlationfactor.h:223
virtual real_function_3d apply_U(const real_function_3d &rhs) const
apply the regularized potential U_nuc on a given function rhs
Definition correlationfactor.h:142
virtual real_function_3d inverse() const
return the inverse nuclear correlation factor
Definition correlationfactor.h:187
virtual double Spp_div_S(const double &r, const double &Z) const =0
the regularized potential wrt a given atom wrt the cartesian coordinate
World & world
the world
Definition correlationfactor.h:214
real_function_3d U2_function
the purely local U2 potential, having absorbed the nuclear pot V_nuc
Definition correlationfactor.h:230
virtual ~NuclearCorrelationFactor()
virtual destructor
Definition correlationfactor.h:98
virtual double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt nuclear coordinate X (spherical part)
Definition correlationfactor.h:303
virtual double S(const double &r, const double &Z) const =0
the correlation factor S wrt a given atom
virtual real_function_3d square_times_V_derivative(const int iatom, const int axis) const
Definition correlationfactor.h:179
void initialize(const double vtol1)
initialize the regularized potentials U1 and U2
Definition correlationfactor.h:101
virtual coord_3d Sp(const coord_3d &vr1A, const double &Z) const =0
the partial derivative of correlation factor S' wrt the cartesian coordinates
virtual const real_function_3d U1(const int axis) const
return the U1 term of the correlation function
Definition correlationfactor.h:195
NuclearCorrelationFactor(World &world, const Molecule &mol)
ctor
Definition correlationfactor.h:93
std::vector< real_function_3d > U1_function
the three components of the U1 potential
Definition correlationfactor.h:227
virtual corrfactype type() const =0
std::vector< real_function_3d > U1vec() const
return the U1 functions in a vector
Definition correlationfactor.h:200
coord_3d dsmoothed_unitvec(const coord_3d &xyz, const int axis, double smoothing=0.0) const
derivative of smoothed unit vector wrt the electronic coordinate
Definition correlationfactor.h:386
virtual double Srr_div_S(const double &r, const double &Z) const =0
corrfactype
Definition correlationfactor.h:85
@ Two
Definition correlationfactor.h:86
@ LinearSlater
Definition correlationfactor.h:85
@ GradientalGaussSlater
Definition correlationfactor.h:85
@ poly4erfc
Definition correlationfactor.h:86
@ Slater
Definition correlationfactor.h:86
@ Adhoc
Definition correlationfactor.h:86
@ GaussSlater
Definition correlationfactor.h:85
@ None
Definition correlationfactor.h:85
@ Polynomial
Definition correlationfactor.h:86
virtual double Sr_div_S(const double &r, const double &Z) const =0
A nuclear correlation factor class.
Definition correlationfactor.h:1790
double a_
length scale parameter a, default chosen that linear terms in U2 vanish
Definition correlationfactor.h:1819
Polynomial(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1796
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1843
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1859
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1827
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1917
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt nuclear coordinate X (spherical part)
Definition correlationfactor.h:1931
corrfactype type() const
Definition correlationfactor.h:1814
double a_param() const
Definition correlationfactor.h:1821
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1903
static double b_param(const double &a)
the cutoff
Definition correlationfactor.h:1824
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1887
Definition correlationfactor.h:1963
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2020
double eprec
Definition correlationfactor.h:2011
corrfactype type() const
Definition correlationfactor.h:1985
std::shared_ptr< PotentialManager > potentialmanager
underlying potential (=molecule)
Definition correlationfactor.h:2010
real_function_3d apply_U(const real_function_3d &rhs) const
apply the regularized potential U_nuc on a given function rhs
Definition correlationfactor.h:2002
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2018
const double fac
the factor of the correlation factor: R=fac;
Definition correlationfactor.h:2014
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt nuclear coordinate X (spherical part)
Definition correlationfactor.h:2038
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:2023
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2016
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:2028
PseudoNuclearCorrelationFactor(World &world, const Molecule &mol, const std::shared_ptr< PotentialManager > pot, const double fac)
ctor
Definition correlationfactor.h:1970
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:2033
const real_function_3d U2() const
return the U2 term of the correlation function
Definition correlationfactor.h:1991
A nuclear correlation factor class.
Definition correlationfactor.h:1332
double eprec_param() const
Definition correlationfactor.h:1362
corrfactype type() const
Definition correlationfactor.h:1353
double a_param() const
Definition correlationfactor.h:1361
double Srr_div_S(const double &r, const double &Z) const
second derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1379
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1408
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1415
Slater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1338
double eprec_
Definition correlationfactor.h:1359
double Sr_div_S(const double &r, const double &Z) const
first derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1369
double Srrr_div_S(const double &r, const double &Z) const
third derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1390
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt X (scalar part)
Definition correlationfactor.h:1445
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1397
double a_
the length scale parameter
Definition correlationfactor.h:1358
constexpr T normf() const
Calculate the 2-norm of the vector elements.
Definition vector.h:421
A parallel world class.
Definition world.h:134
ProcessID rank() const
Returns the process rank in this World (same as MPI_Comm_rank()).
Definition world.h:344
Definition correlationfactor.h:1476
double Srrr_div_S(const double &r, const double &Z) const
third derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1647
double a
the length scale parameter
Definition correlationfactor.h:1523
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1667
poly4erfc(World &world, const Molecule &mol, const double aa)
ctor
Definition correlationfactor.h:1482
double a0
Definition correlationfactor.h:1524
double eprec_
Definition correlationfactor.h:1525
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1661
corrfactype type() const
Definition correlationfactor.h:1518
double U2X_spherical(const double &r, const double &Z, const double &rcut) const
derivative of the U2 potential wrt X (scalar part)
Definition correlationfactor.h:1776
double a_param() const
Definition correlationfactor.h:1527
double eprec_param() const
Definition correlationfactor.h:1528
double Srr_div_S(const double &r, const double &Z) const
second derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1637
double Sr_div_S(const double &r, const double &Z) const
first derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1535
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1653
char * p(char *buf, const char *name, int k, int initial_level, double thresh, int order)
Definition derivatives.cc:72
static double lo
Definition dirac-hatom.cc:23
Tensor< typename Tensor< T >::scalar_type > arg(const Tensor< T > &t)
Return a new tensor holding the argument of each element of t (complex types only)
Definition tensor.h:2643
static const double rcut
Definition hatom_sf_dirac.cc:19
static const double eprec
Definition hatom_sf_dirac.cc:18
static double Z2(const coord_3d &r)
Definition helium_mp2.cc:124
#define MADNESS_EXCEPTION(msg, value)
Macro for throwing a MADNESS exception.
Definition madness_exception.h:119
#define MADNESS_ASSERT(condition)
Assert a condition that should be free of side-effects since in release builds this might be a no-op.
Definition madness_exception.h:134
void print(const tensorT &t)
Definition mcpfit.cc:140
static double dsmoothed_potential(double r)
Derivative of the regularized 1/r potential.
Definition mentity.cc:223
static double smoothed_potential(double r)
Regularized 1/r potential.
Definition mentity.cc:206
static double smoothing_parameter(double Z, double eprec)
Returns radius for smoothing nuclear potential with energy precision eprec.
Definition mentity.cc:192
Main include file for MADNESS and defines Function interface.
constexpr double pi
Mathematical constant .
Definition constants.h:48
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
std::shared_ptr< NuclearCorrelationFactor > create_nuclear_correlation_factor(World &world, const Molecule &molecule, const std::shared_ptr< PotentialManager > potentialmanager, const std::string inputline)
create and return a new nuclear correlation factor
Definition correlationfactor.cc:45
int power< 4 >(int base)
Definition power.h:68
static double r2(const coord_3d &x)
Definition smooth.h:45
void truncate(World &world, std::vector< Function< T, NDIM > > &v, double tol=0.0, bool fence=true)
Truncates a vector of functions.
Definition vmra.h:335
Function< TENSOR_RESULT_TYPE(T, R), NDIM > dot(World &world, const std::vector< Function< T, NDIM > > &a, const std::vector< Function< R, NDIM > > &b, bool fence=true, bool do_make_redundant=true, double tol=0.0)
Multiplies and sums two vectors of functions r = \sum_i a[i] * b[i].
Definition vmra.h:1645
int power< 5 >(int base)
Definition power.h:73
std::shared_ptr< FunctionFunctorInterface< double, 3 > > func(new opT(g))
constexpr Vector< T, N > unitvec(const Vector< T, N > &r, const double eps=1.e-6)
Construct a unit-Vector that has the same direction as r.
Definition vector.h:768
FunctionFactory< double, 3 > real_factory_3d
Definition functypedefs.h:108
void print(const T &t, const Ts &... ts)
Print items to std::cout (items separated by spaces) and terminate with a new line.
Definition print.h:227
NDIM const Function< R, NDIM > & g
Definition mra.h:2622
int power< 2 >(int base)
Definition power.h:58
int power< 3 >(int base)
Definition power.h:63
Function< T, CCPairFunction< T, NDIM >::LDIM > inner(const CCPairFunction< T, NDIM > &c, const Function< T, CCPairFunction< T, NDIM >::LDIM > &f, const std::tuple< int, int, int > v1, const std::tuple< int, int, int > v2)
Definition ccpairfunction.h:993
Vector< double, 3 > coord_3d
Definition funcplot.h:1042
static XNonlinearSolver< std::vector< Function< T, NDIM > >, T, vector_function_allocator< T, NDIM > > nonlinear_vector_solver(World &world, const long nvec)
Definition nonlinsol.h:371
int power< 6 >(int base)
Definition power.h:78
static const double b
Definition nonlinschro.cc:119
static const double a
Definition nonlinschro.cc:118
Declaration of molecule-related classes and functions.
static const double c
Definition relops.cc:10
static double Z
Definition rk.cc:35
static const double thresh
Definition rk.cc:45
const double xi
Exponent for delta function approx.
Definition siam_example.cc:60
Definition test_ar.cc:204
Definition dirac-hatom.cc:112
static double V(const coordT &r)
Definition tdse.cc:288
void e()
Definition test_sig.cc:75
double aa
Definition testbsh.cc:68
#define N
Definition testconv.cc:37
std::size_t axis
Definition testpdiff.cc:59
const double a2
Definition vnucso.cc:86
const double R2
Definition vnucso.cc:84
const double a1
Definition vnucso.cc:85