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));
454 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
455 const Atom& atom=
ncf->molecule.get_atom(i);
458 result*=
ncf->S(r,atom.
q);
460 if (
exponent==-1)
return 1.0/result;
461 else if (
exponent==2)
return result*result;
462 else if (
exponent==1)
return result;
464 return std::pow(result,
double(
exponent));
469 return ncf->molecule.get_all_coords_vec();
490 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
491 const Atom& atom=
ncf->molecule.get_atom(i);
494 const double&
Z=atom.
q;
501 return ncf->molecule.get_all_coords_vec();
526 const double&
Z=atom.
q;
531 std::vector< madness::Vector<double,3> >
c(1);
556 std::vector<double>
Sr_div_S(
ncf->molecule.natom());
557 std::vector<coord_3d>
unitvec(
ncf->molecule.natom());
558 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
559 const Atom& atom=
ncf->molecule.get_atom(i);
567 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
568 for (
size_t j=0; j<
ncf->molecule.natom(); ++j) {
579 return ncf->molecule.get_all_coords_vec();
592 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
593 const Atom& atom=
ncf->molecule.get_atom(i);
596 result+=
ncf->Spp_div_S(r,atom.
q);
601 return ncf->molecule.get_all_coords_vec();
613 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
614 const Atom& atom=
ncf->molecule.get_atom(i);
622 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
623 for (
size_t j=0; j<i; ++j) {
633 return ncf->molecule.get_all_coords_vec();
652 return ncf->Spp_div_S(r,atom.
q);
656 std::vector< madness::Vector<double,3> >
c(1);
685 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
686 if (i==
iatom)
continue;
701 std::vector< madness::Vector<double,3> >
c(1);
722 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
723 const Atom& atom=
ncf->molecule.get_atom(i);
726 result*=
ncf->S(r,atom.
q);
730 return result*result*
V;
734 return ncf->molecule.get_all_coords_vec();
752 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
753 const Atom& atom=
ncf->molecule.get_atom(i);
756 result*=
ncf->S(r,atom.
q);
760 return result*result*
Vprime;
764 return ncf->molecule.get_all_coords_vec();
795 for (
size_t i=0; i<
ncf->molecule.natom(); ++i) {
796 const Atom& atom=
ncf->molecule.get_atom(i);
799 result*=
ncf->S(r,atom.
q);
801 if (
exponent==2) result=result*result;
809 const double S1=-
ncf->Sr_div_S(r,
Z)
817 return ncf->molecule.get_all_coords_vec();
851 const double S1=
ncf->Sr_div_S(r,
Z);
852 const double S2=
ncf->Srr_div_S(r,
Z);
862 std::vector< madness::Vector<double,3> >
c(1);
881 double lo=1.0/atom.
q;
890 const double&
Z=atom.
q;
900 std::vector< madness::Vector<double,3> >
c(1);
962 for (
int i=0; i<3; ++i) {
974 return ncf->molecule.get_all_coords_vec();
997 print(
"constructed nuclear correlation factor of the form");
998 print(
" R = Prod_A S_A");
999 print(
" S_A = exp(-Z_A r_{1A}) + (1 - exp(-Z_A^2*r_{1A}^2))");
1001 print(
"which is of Gaussian-Slater type\n");
1011 double S(
const double& r,
const double&
Z)
const {
1012 const double rho=r*
Z;
1013 return exp(-rho)+(1.0-
exp(-(rho*rho)));
1022 const double eA=
exp(-
Z*r);
1023 const double gA=
exp(-
Z*
Z*r*r);
1032 const double rho=
Z*r;
1034 return Z*
Z*(-3.5 - 4.0*rho + 6.0*rho*rho + 12.0*rho*rho*rho);
1036 const double e=
exp(-rho);
1037 const double g=
exp(-rho*rho);
1038 const double term1=-
Z/r*(1.0-
g);
1040 const double S_inv=
exp(-rho)+(1.0-
exp(-(rho*rho)));
1046 const double Zr=r*
Z;
1055 const double Zr=r*
Z;
1064 const double Zr=r*
Z;
1089 const double ZZ=
Z*
Z;
1092 const double r0=-4.0*
ZZZ;
1093 const double r1=12.0*
Z4;
1094 const double r2=36*
Z4*
Z;
1095 const double r3=-67.0/6.0*
Z4*
ZZ;
1096 result=(r0 + r*
r1 + r*r*
r2 + r*r*r*
r3);
1129 print(
"constructed nuclear correlation factor of the form");
1130 print(
" R = Prod_A S_A");
1131 print(
" S_A = 1/sqrt{Z} exp(-Z_A r_{1A}) + (1 - exp(-a^2*Z_A^2*r_{1A}^2))");
1134 print(
"which is of Gradiental Gaussian-Slater type\n");
1146 double S(
const double& r,
const double&
Z)
const {
1147 const double rho=r*
Z;
1157 const double rho=
Z*r;
1167 const double rho=
Z*r;
1171 const double a2=
a*
a;
1172 const double a4=
a2*
a2;
1178 + 3. *a4 *rho*rho*
Z*
Z*
Z
1181 +7. *a4 *rho*rho*rho*
Z*
Z*
Z;
1183 const double e=
exp(-rho);
1184 const double g=
exp(-
a*
a*rho*rho);
1185 const double poly=(2.0-6.0*
a*
a*rho + 4.0*
a*
a*
a*
a*rho*rho*rho);
1193 const double rZ=r*
Z;
1203 const double rZ=r*
Z;
1213 const double rZ=r*
Z;
1228 const double Z2=
Z*
Z;
1230 const double Z5=
Z4*
Z;
1231 const double Z6=
Z5*
Z;
1232 const double Z7=
Z6*
Z;
1233 const double a2=
a*
a;
1234 const double a4=
a2*
a2;
1241 result=(r0 +
r1 +
r2 +
r3);
1275 print(
"constructed nuclear correlation factor of the form");
1276 print(
" S_A = -Z_A r_{1A} exp(-Z_A r_{1A}) + 1");
1279 print(
"which is of linear Slater type\n");
1293 double S(
const double& r,
const double&
Z)
const {
1294 const double rho=r*
Z;
1295 const double b=a_param();
1296 return (-rho)*
exp(-
b*rho)+1.0;
1302 const double b=a_param();
1316 const double b=a_param();
1317 const double rho=
Z*r;
1319 const double O0=1.0- 3.0*
b;
1320 const double O1=
Z - 4.0*
b*
Z + 3.0*
b*
b*
Z;
1326 const double num=
Z* (
ebrz - 1.0 + 0.5*
ebrz*rho* (2.0 +
b*(
b*rho-4.0)));
1333 const double&
a=a_param();
1339 const double&
a=a_param();
1345 const double&
a=a_param();
1367 print(
"\nconstructed nuclear correlation factor of the form");
1368 print(
" S_A = 1/(a-1) exp(-a Z_A r_{1A}) + 1");
1370 print(
"with eprec ",eprec_);
1371 print(
"which is of Slater type\n");
1392 const double&
a=a_param();
1393 return -
a*
Z/(1.0+(
a-1.0)*
exp(
a*r*
Z));
1402 const double&
a=a_param();
1403 const double aZ=
a*
Z;
1413 const double&
a=a_param();
1414 const double aZ=
a*
Z;
1419 double S(
const double& r,
const double&
Z)
const {
1420 const double a=a_param();
1422 return 1.0+1.0/(
a-1.0) *
exp(-
a*
Z*r);
1431 const double a=a_param();
1432 const double r=
vr1A.normf();
1438 const double a=a_param();
1441 const double O0=1.0-(1.5*
a);
1442 const double O1=(
a-1.0)*(
a-1.0)*
Z;
1443 const double O2=(1.0/12.0 * (
a-1.0)*(12.0+
a*(5*
a-18.0)))*
Z*
Z;
1468 const double a=a_param();
1472 const double ZZ=
Z*
Z;
1474 const double a2=
a*
a;
1475 const double a4=
a2*
a2;
1476 const double r0=
ZZZ*(1. - 2.*
a +
a2);
1477 const double r1=
ZZ*
ZZ/6.* (12.0 - 30.*
a + 23. *
a2 - 5.*
a*
a2);
1478 const double r2=1./8.*
ZZ*
ZZZ* (24. - 72.*
a + 74.*
a2 - 29.*
a2*
a + 3.*a4);
1479 const double r3=1./60.*
ZZZ*
ZZZ* (240. - 840.*
a + 1080.*
a2 - 610.*
a2*
a
1480 + 137.*
a2*
a2 - 7.*a4*
a);
1481 result=(r0 + r*
r1 + r*r*
r2 + r*r*r*
r3);
1511 print(
"\nconstructed nuclear correlation factor of the form");
1512 print(
" S_A = 1 + (a0 + a1 arZ + a2 (arZ)^2 + a3 (arZ)^3 + a4 (arZ)^4) erfc(arZ)");
1514 print(
"with eprec ",eprec_);
1515 print(
"which is of poly4erfc type\n");
1522 a0=0.5083397721116242769;
1523 a1=-2.4430795355664112811;
1524 a2=3.569312300653802680;
1525 a3=-1.9812471972342746507;
1526 a4=0.3641705622093696564;
1527 }
else if (
a==1.0) {
1528 a0=0.20265985404508529127;
1529 a1=-0.9739826967339938056;
1530 a2=1.4229779953809877198;
1531 a3=-0.7898639647077711196;
1532 a4=0.14518390461225107425;
1535 print(
"invalid parameter a for poly4erfc: only 0.5 and 1.0 implemented");
1563 result=(-17.97663543396820624361586474 + x*(32.78290319470982346841067868 +
1564 x*(-18.158574783628271659713638233 +
1565 x*(2.472138984374094343735335913 +
1566 x*(0.5516975358315341628276502285 +
1567 x*(-0.008573693952875097234391220137 +
1568 x*(-0.05596791202351071993748992739 +
1569 (0.002673799219133696315436690424 +
1570 0.0013386538660557369902632289083*x)*x)))))))/
1571 (17.976635433967702922140233083 + x*
1572 (-13.062204300852085089323266568 +
1573 x*(16.397871971437618641239835027 + x*(-5.383337491559214163188757918 + 1.*x))));
1575 result=(-16.53370050883888159389958126 + x*(30.04151304875517461538549269 +
1576 x*(-16.692529697855029750948871179 +
1577 x*(2.50341008323651011875249567 +
1578 x*(0.3106921665634860719234742532 +
1579 x*(0.08721948207311506458903445571 +
1580 x*(-0.10041387133168708232852057948 +
1581 (0.02000987266876476192949541524 - 0.0012508983745483161308604975792*x)*
1583 (16.532205048243702951212522516 + x*
1584 (-11.89273747187279634240347945 +
1585 x*(15.157537549656745468895369276 + x*(-4.9102960292797655978798640519 + 1.*x))));
1587 result=(-2352.191894900273554810118278 + x*(5782.846962269399174183661793 +
1588 x*(-5653.246084369776756298278851 +
1589 x*(2948.18046377483570925427449 +
1590 x*(-913.4583247839311453090142452 +
1591 x*(174.39391722588915386106331206 +
1592 x*(-20.22035127074332315930567933 +
1593 (1.3107321165711966663791114988 - 0.03655666729452579098523876463*x)*x))
1595 (886.4859678528423041797649741 + x*(269.17746130370931387996124706 +
1596 x*(-130.21383548057958115685397713 + x*(37.644499985765056273193347388 + 1.*x))));
1598 result=(2.2759176275121988686860433041 + x*(-1.8014283464827425541637211503 +
1599 x*(0.60570955276433317373251991152 +
1600 x*(-0.11235368819003308411943926239 +
1601 x*(0.01243211635244600976892077538 +
1602 x*(-0.0008211800260491381826149891865 +
1603 x*(0.000029973534470203049782417744015 +
1604 (-4.6423722605763162431293872646e-7 -
1605 1.3224615425412157194986675329e-10*x)*x)))))))/
1606 (1039.800013929971888016478838 + x*(-702.5378531848183775210948787 +
1607 x*(183.17476380259879599459789974 + x*(-21.74106003575315304073197254 + 1.*x))));
1611 }
else if (
a==1.0) {
1613 result=(-1.6046958001953006847027538457 + x*(5.948945186367159977879486279 +
1614 x*(-6.884321742840291285733040882 +
1615 x*(2.296896506418919905405783368 +
1616 x*(0.616939354810622973212914089 +
1617 x*(-0.13679830198890803519235207564 +
1618 x*(-0.3356576872066501398893403439 +
1619 (0.14876798925798674488426727928 - 0.016049886728185297028755535226*x)*x
1621 (1.6046957999975126909719683196 + x*
1622 (-0.8234878506688316215458988304 +
1623 x*(3.4607641859010551501639903314 + x*(-1.8955210085531557309609670978 + 1.*x))));
1625 result=(-7.143856421301985019580778813 + x*(33.35568129248075086686087865 +
1626 x*(-60.0412343766569246898209957 +
1627 x*(55.46407913315151830247939138 +
1628 x*(-28.7874770749840240158264326 +
1629 x*(8.379317837934083469035061852 +
1630 x*(-1.2103278392957399092107317741 +
1631 (0.04275186003977071121074860478 + 0.005247730112126140726731063205*x)*x
1633 (5.4509691924562038998044993827 + x*
1634 (-2.2732931206867811068721699796 +
1635 x*(4.1530634219989859344450742259 + x*(-2.0183662125874366044951391259 + 1.*x))));
1637 result=(-0.4869290414611847276899694883 + x*(1.0513417728218375522016338562 +
1638 x*(-0.9694851629317255156038942437 +
1639 x*(0.5007460889402078102011673774 +
1640 x*(-0.15897436623286639052954575417 +
1641 x*(0.03185042477631079356985872518 +
1642 x*(-0.003940899912654543218183049969 +
1643 (0.0002757919409481032696079686825 -
1644 8.369138363906178282041501561e-6*x)*x)))))))/
1645 (30.81121613134246115634780413 + x*(-49.989974505724725146933397436 +
1646 x*(31.455643953462635691568128729 + x*(-8.992097794824270871044305786 + 1.*x))));
1675 double S(
const double& r,
const double&
Z)
const {
1676 const double arZ=
a*r*
Z;
1694 result=(-37.75186842343823465059 + x*(21.3476988467348903615 +
1695 x*(0.014608707333424946750026 +
1696 x*(-3.704945314726273312722 +
1697 x*(0.08808104845382944292252 +
1698 x*(0.3362428305409206967066 +
1699 x*(-0.02288039625102549092766 +
1700 (-0.017240056622850307571001 + 0.002412740490618117536527*x)*x)))))))/
1701 (17.595611361287293183447 + x*(-12.421065066789808273295 +
1702 x*(15.957564552156320207938 + x*(-5.0239100389132464317907 + 1.*x))));
1704 result=(-35.46082798344982189328 + x*(20.3565414350879797493 +
1705 x*(-0.3046488975234456455871 +
1706 x*(-3.298067641731523613442 +
1707 x*(-0.10712268902574947466554 +
1708 x*(0.4829111116912435121877 +
1709 x*(-0.10089023589818206760275 +
1710 (0.0013899828749998182176948 + 0.0008305150868988335610678*x)*x)))))))/
1711 (16.526499668833810286111 + x*(-11.79820182874024593006 +
1712 x*(15.115407083582433322342 + x*(-4.8449266197426825174319 + 1.*x))));
1714 result=(-414.5311559516023264104 + x*(615.8720414166440747539 +
1715 x*(-422.5938440932793094888 + x*
1716 (159.72497494584873155352 +
1717 x*(-35.6790348104188081907 +
1718 x*(4.658777521872728594702 +
1719 x*(-0.328305094433759490678 +
1720 (0.009162754689309596905172 + 0.00005047926659010755662873*x)*x)))))))/
1721 (112.7044543272820830484 + x*(-56.072518762714727894479 +
1722 x*(28.188843903409059322224 + x*(-6.519554545057610040741 + 1.*x))));
1723 }
else if (x<10.0) {
1724 result=(-146.68256559112012287314 + x*(188.52807059353309478385 +
1725 x*(-82.07176992590032524431 + x*
1726 (18.107697718347802322776 +
1727 x*(-2.3221393933622638466979 +
1728 x*(0.18681223946803275939642 +
1729 x*(-0.009601011427143648072501 +
1730 (0.00028623295732553770894583 - 3.77364531155112782235e-6*x)*x)))))))/
1731 (633.1319105785227043552 + x*(-574.29230199331494406798 +
1732 x*(171.872612865808639376 + x*(-21.906495121260483674385 + 1.*x))));
1736 }
else if (
a==1.0) {
1738 result=(-8.85288955131414420808 + x*(11.359434597010419928515 +
1739 x*(-2.982094072176256165405 + x*
1740 (-4.924201512880445076103 +
1741 x*(0.6773928043289287907009 +
1742 x*(2.061680233090141287213 +
1743 x*(-0.5528612000728412913713 +
1744 (-0.3024276764350212595121 + 0.10765958646570631264003*x)*x)))))))/
1745 (1.6731803922436094206275 + x*(-0.8242052614481793487834 +
1746 x*(3.5912910648514747558597 + x*(-1.9146644266104277222142 + 1.*x))));
1748 result=(-8.538839434207355205544 + x*(-37.85611260277589742674 +
1749 x*(155.08466711228234382211 + x*
1750 (-241.1247881821171613212 +
1751 x*(199.33293375918859716585 +
1752 x*(-96.80750216221383928113 +
1753 x*(27.71704080319043943288 +
1754 (-4.354251431065185902435 + 0.2906781051124817624589*x)*x)))))))/
1755 (2.2233877901091612794108 + x*(3.2084406367698851844258 +
1756 x*(1.021615116328133792993 + x*(-0.9819667717342250528772 + 1.*x))));
1758 result=(-7.338671998425412491091 + x*(18.593867285988629508481 +
1759 x*(-19.15344657249203844577 + x*
1760 (10.072359942912659732126 +
1761 x*(-2.99771628023376895151 +
1762 x*(0.5324416109232007541639 +
1763 x*(-0.05993976172902101376555 +
1764 (0.003887110757665478374745 - 0.00011079212872583089652945*x)*x)))))))/
1765 (13.273604111590967002999 + x*(-28.012330064250556933961 +
1766 x*(22.161347591665727407914 + x*(-7.617582259533338164664 + 1.*x))));
1768 result=(132.78397650676876308801 + x*(-78.01898251977413923271 +
1769 x*(15.292039515801252996504 + x*
1770 (-1.000000154745351328125 +
1771 x*(1.950300262619412492847e-8 +
1772 x*(-1.6337541591423364318692e-9 +
1773 x*(8.771557330523968791519e-11 +
1774 (-2.7388800346031121159372e-12 + 3.7894572289998844980568e-14*x)*x))))))
1775 )/(-4.724326520908917985827e-6 + x*
1776 (-132.78397108375581258096 + x*(78.01897976124964688489 +
1777 x*(-15.292038699709498552356 + 1.*x))));
1811template<std::
size_t N>
1822 a_=(2. + (-2. +
sqrt(-1. +
N))*
N)/(-2. +
N);
1827 print(
"constructed nuclear correlation factor of the form");
1828 print(
" R = Prod_A S_A");
1829 print(
" S_A = 1 + a (r/b -1)^N if r<b, with b= (N*a)/((1+a) Z)");
1830 print(
" = 1 else ");
1832 print(
"which is of polynomial type with exponent N = ",
N);
1849 double S(
const double& r,
const double&
Z)
const {
1851 const double rho=r*
Z;
1856 const double arg=-1.0 + rho/
b;
1868 const double rho=r*
Z;
1883 const double rho=r*
Z;
1888 const double ap1=1.0+
a;
1889 const double c0=((3. *(1. +
a) - (3. +
a) *
N))/(2.*
a*
N);
1893 return Z*
Z*(c0 + c1*r + c2*r*r);
1898 * (-2 *
a*
N*
N + (1 +
a) *
N* (1 +
a *(-3 +
N) +
N)* rho +
1910 const double rho=r*
Z;
1926 const double rho=r*
Z;
1940 const double rho=r*
Z;
1954 const double a=a_param();
1955 const double aopt=(2. + (-2. +
sqrt(-1. +
N))*
N)/(-2. +
N);
1963 const double r0=0.0;
1966 const double r2=((-4*(17 + 9*
rn) +
N*(92 + 80*
rn +
1969 result=(r0 + r*
r1 + r*r*
r2);
1993 const std::shared_ptr<PotentialManager> pot,
const double fac)
1995 eprec(mol.get_eprec()), fac(fac) {
1997 if (world.
rank()==0) {
1998 print(
"constructed nuclear correlation factor of the form");
2001 print(
"which means it's (nearly) a conventional calculation\n");
2018 return potentialmanager->vnuclear();
2038 double Sr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2040 double Srr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2042 double Srrr_div_S(
const double& r,
const double&
Z)
const {
return 0.0;}
2045 double S(
const double& r,
const double&
Z)
const {
2077 const std::vector<real_function_3d>& U1)
2083 if (world.
rank()==0) {
2084 print(
"constructed ad hoc nuclear correlation factor");
2108 double S(
const double& r,
const double&
Z)
const {
2127std::shared_ptr<NuclearCorrelationFactor>
2130 const std::shared_ptr<PotentialManager>
pm,
2133std::shared_ptr<NuclearCorrelationFactor>
2136 const std::shared_ptr<PotentialManager>
pm,
2137 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:2069
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:2120
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2092
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:2114
corrfactype type() const
Definition correlationfactor.h:2088
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2097
AdhocNuclearCorrelationFactor(World &world, const real_function_3d U2, const std::vector< real_function_3d > &U1)
ctor
Definition correlationfactor.h:2076
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:2108
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2102
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:987
GaussSlater(World &world, const Molecule &mol)
ctor
Definition correlationfactor.h:993
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1054
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1011
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:1085
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1063
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1031
corrfactype type() const
Definition correlationfactor.h:1006
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1017
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1045
A nuclear correlation factor class.
Definition correlationfactor.h:1119
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1202
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1146
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1152
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:1223
const double a
Definition correlationfactor.h:1143
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1212
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1166
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1192
GradientalGaussSlater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1125
corrfactype type() const
Definition correlationfactor.h:1139
A nuclear correlation factor class.
Definition correlationfactor.h:1263
LinearSlater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1269
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1338
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1300
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1293
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1332
double a_param() const
Definition correlationfactor.h:1290
double a_
the length scale parameter a
Definition correlationfactor.h:1288
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1344
corrfactype type() const
Definition correlationfactor.h:1283
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1314
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:495
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:769
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:790
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:816
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:770
const Atom & thisatom
Definition correlationfactor.h:771
const int derivativeaxis
Definition correlationfactor.h:772
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:776
const int exponent
direction of the derivative operator
Definition correlationfactor.h:773
RX_functor(const NuclearCorrelationFactor *ncf, const int iatom, const int daxis, const int exponent)
Definition correlationfactor.h:782
Definition correlationfactor.h:443
R_functor(const NuclearCorrelationFactor *ncf, const int e=1)
Definition correlationfactor.h:447
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:452
int exponent
Definition correlationfactor.h:445
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:444
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:468
compute the derivative of U1 wrt the displacement of atom A, coord axis
Definition correlationfactor.h:824
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:825
const int U1axis
Definition correlationfactor.h:827
U1X_functor(const NuclearCorrelationFactor *ncf, const int iatom, const int U1axis, const int daxis)
Definition correlationfactor.h:837
U1X_functor(const NuclearCorrelationFactor *ncf, const Atom &atom1, const int U1axis, const int daxis)
direction of the derivative operator
Definition correlationfactor.h:830
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:847
const Atom & thisatom
Definition correlationfactor.h:826
const int derivativeaxis
U1x/U1y/U1z potential?
Definition correlationfactor.h:828
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:861
U1 functor for a specific atom.
Definition correlationfactor.h:512
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:522
const size_t iatom
Definition correlationfactor.h:515
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:530
U1_atomic_functor(const NuclearCorrelationFactor *ncf, const size_t atom, const int axis)
Definition correlationfactor.h:519
const int axis
Definition correlationfactor.h:516
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:514
functor for a local U1 dot U1 potential
Definition correlationfactor.h:547
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:555
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:578
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:549
U1_dot_U1_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:552
functor for the local part of the U1 potential – NOTE THE SIGN
Definition correlationfactor.h:476
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:500
const int axis
Definition correlationfactor.h:479
U1_functor(const NuclearCorrelationFactor *ncf, const int axis)
Definition correlationfactor.h:482
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:488
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:478
compute the derivative of U2 wrt the displacement of atom A
Definition correlationfactor.h:873
const int iatom
Definition correlationfactor.h:875
const int axis
Definition correlationfactor.h:876
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:899
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:874
U2X_functor(const NuclearCorrelationFactor *ncf, const int &atom1, const int axis)
Definition correlationfactor.h:878
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:886
U2 functor for a specific atom.
Definition correlationfactor.h:638
const size_t iatom
Definition correlationfactor.h:641
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:648
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:655
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:640
U2_atomic_functor(const NuclearCorrelationFactor *ncf, const size_t atom)
Definition correlationfactor.h:644
Definition correlationfactor.h:584
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:590
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:585
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:600
U2_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:587
compute the derivative of U3 wrt the displacement of atom A, coord axis
Definition correlationfactor.h:922
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:973
U3X_functor(const NuclearCorrelationFactor *ncf, const size_t iatom, const int axis)
Definition correlationfactor.h:927
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:923
const int axis
Definition correlationfactor.h:925
const size_t iatom
Definition correlationfactor.h:924
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:931
U3 functor for a specific atom.
Definition correlationfactor.h:666
const size_t iatom
Definition correlationfactor.h:669
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:668
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:676
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:700
U3_atomic_functor(const NuclearCorrelationFactor *ncf, const int atom)
Definition correlationfactor.h:672
Definition correlationfactor.h:605
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:606
U3_functor(const NuclearCorrelationFactor *ncf)
Definition correlationfactor.h:608
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:611
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:632
Definition correlationfactor.h:739
const int axis
Definition correlationfactor.h:743
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:763
const Molecule & molecule
Definition correlationfactor.h:741
const size_t iatom
Definition correlationfactor.h:742
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:740
square_times_V_derivative_functor(const NuclearCorrelationFactor *ncf, const Molecule &molecule1, const size_t atom1, const int axis1)
Definition correlationfactor.h:745
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:750
Definition correlationfactor.h:710
const size_t iatom
Definition correlationfactor.h:713
const NuclearCorrelationFactor * ncf
Definition correlationfactor.h:711
square_times_V_functor(const NuclearCorrelationFactor *ncf, const Molecule &mol, const size_t iatom1)
Definition correlationfactor.h:715
double operator()(const coord_3d &xyz) const override
Definition correlationfactor.h:720
std::vector< coord_3d > special_points() const override
Override this to return list of special points to be refined more deeply.
Definition correlationfactor.h:733
const Molecule & molecule
Definition correlationfactor.h:712
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:1812
double a_
length scale parameter a, default chosen that linear terms in U2 vanish
Definition correlationfactor.h:1841
Polynomial(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1818
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1865
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1881
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1849
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1939
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:1953
corrfactype type() const
Definition correlationfactor.h:1836
double a_param() const
Definition correlationfactor.h:1843
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1925
static double b_param(const double &a)
the cutoff
Definition correlationfactor.h:1846
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:1909
Definition correlationfactor.h:1985
double Srrr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2042
double eprec
Definition correlationfactor.h:2033
corrfactype type() const
Definition correlationfactor.h:2007
std::shared_ptr< PotentialManager > potentialmanager
underlying potential (=molecule)
Definition correlationfactor.h:2032
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:2024
double Srr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2040
const double fac
the factor of the correlation factor: R=fac;
Definition correlationfactor.h:2036
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:2060
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:2045
double Sr_div_S(const double &r, const double &Z) const
Definition correlationfactor.h:2038
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:2050
PseudoNuclearCorrelationFactor(World &world, const Molecule &mol, const std::shared_ptr< PotentialManager > pot, const double fac)
ctor
Definition correlationfactor.h:1992
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:2055
const real_function_3d U2() const
return the U2 term of the correlation function
Definition correlationfactor.h:2013
A nuclear correlation factor class.
Definition correlationfactor.h:1354
double eprec_param() const
Definition correlationfactor.h:1384
corrfactype type() const
Definition correlationfactor.h:1375
double a_param() const
Definition correlationfactor.h:1383
double Srr_div_S(const double &r, const double &Z) const
second derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1401
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1430
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1437
Slater(World &world, const Molecule &mol, const double a)
ctor
Definition correlationfactor.h:1360
double eprec_
Definition correlationfactor.h:1381
double Sr_div_S(const double &r, const double &Z) const
first derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1391
double Srrr_div_S(const double &r, const double &Z) const
third derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1412
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:1467
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1419
double a_
the length scale parameter
Definition correlationfactor.h:1380
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:1498
double Srrr_div_S(const double &r, const double &Z) const
third derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1669
double a
the length scale parameter
Definition correlationfactor.h:1545
double Spp_div_S(const double &r, const double &Z) const
second derivative of the nuclear correlation factor
Definition correlationfactor.h:1689
poly4erfc(World &world, const Molecule &mol, const double aa)
ctor
Definition correlationfactor.h:1504
double a0
Definition correlationfactor.h:1546
double eprec_
Definition correlationfactor.h:1547
coord_3d Sp(const coord_3d &vr1A, const double &Z) const
radial part first derivative of the nuclear correlation factor
Definition correlationfactor.h:1683
corrfactype type() const
Definition correlationfactor.h:1540
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:1798
double a_param() const
Definition correlationfactor.h:1549
double eprec_param() const
Definition correlationfactor.h:1550
double Srr_div_S(const double &r, const double &Z) const
second derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1659
double Sr_div_S(const double &r, const double &Z) const
first derivative of the correlation factor wrt (r-R_A)
Definition correlationfactor.h:1557
double S(const double &r, const double &Z) const
the nuclear correlation factor
Definition correlationfactor.h:1675
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
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)
Multiplies and sums two vectors of functions r = \sum_i a[i] * b[i]; see dot_sparse for screening.
Definition vmra.h:1809
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:336
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:2620
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