Path Integral Quantum Monte Carlo
Public Member Functions
Delta1DPotential Class Reference

Computes the effective potential from the exact two-body density matrix for delta interactions in 1D. More...

#include <potential.h>

+ Inheritance diagram for Delta1DPotential:
+ Collaboration diagram for Delta1DPotential:

Public Member Functions

 Delta1DPotential (double)
 Constructor. More...
 
 ~Delta1DPotential ()
 Destructor.
 
virtual double V (const dVec &r)
 The classical potential.
 
double V (const dVec &, const dVec &)
 The effective potential. More...
 
double dVdlambda (const dVec &, const dVec &)
 The derivative of the effective potential with respect to lambda. More...
 
double dVdtau (const dVec &, const dVec &)
 The derivative of the effective potential with respect to tau. More...
 
- Public Member Functions inherited from PotentialBase
 PotentialBase ()
 Constructor.
 
virtual ~PotentialBase ()
 Destructor.
 
virtual dVec gradV (const dVec &)
 The gradient of the potential.
 
virtual double grad2V (const dVec &)
 Grad^2 of the potential.
 
virtual Array< dVec, 1 > initialConfig (const Container *, MTRand &, const int)
 Default Initial configuration of particles. More...
 
void output (const double)
 A debug method that output's the potential to a supplied separation. More...
 
virtual Array< double, 1 > getExcLen ()
 Array to hold data elements. More...
 

Additional Inherited Members

- Data Fields inherited from PotentialBase
double tailV
 Tail correction factor.
 
- Protected Member Functions inherited from PotentialBase
double deltaSeparation (double sep1, double sep2) const
 Return the minimum image difference for 1D separations.
 

Detailed Description

Computes the effective potential from the exact two-body density matrix for delta interactions in 1D.

Definition at line 1060 of file potential.h.

Constructor & Destructor Documentation

◆ Delta1DPotential()

Delta1DPotential::Delta1DPotential ( double  _g)

Constructor.

Parameters
gThe strength of delta interaction

Definition at line 2170 of file potential.cpp.

2170  :
2171  PotentialBase(),
2172  g(_g)
2173 {
2174 
2175  erfCO = 7.0;
2176  l0 = 2.0*sqrt(constants()->lambda()*constants()->tau());
2177  li = 4.0*constants()->lambda()/g;
2178  xi = l0/li;
2179 
2180  xiSqOver2 = (0.5)*xi*xi;
2181  xiSqrtPIOver2 = sqrt(M_PI/2.0)*xi;
2182 }
double lambda() const
Get lambda = hbar^2/(2mk_B)
Definition: constants.h:46
PotentialBase()
Constructor.
Definition: potential.cpp:25
ConstantParameters * constants()
Global public access to the constants.
Definition: constants.h:201
+ Here is the call graph for this function:

Member Function Documentation

◆ dVdlambda()

double Delta1DPotential::dVdlambda ( const dVec sep1,
const dVec sep2 
)
virtual

The derivative of the effective potential with respect to lambda.

Computes the non-local two-body effective pair potential.

Parameters
sep1the first separation
sep2the second separation
Returns
the derivative of the effective potential with respect to lambda

Reimplemented from PotentialBase.

Definition at line 2319 of file potential.cpp.

2320 {
2321 
2322  double dxt = deltaSeparation(sep1[0], sep2[0])/l0;
2323  double yt = (abs(sep1[0])+abs(sep2[0]))/l0;
2324 
2325  double W = Wint(yt,dxt);
2326  double dWdy = dWdyt(yt,dxt);
2327  double dWddx = dWddxt(yt,dxt);
2328  double dWdx = dWdxi(yt,dxt);
2329 
2330  double dWdl = ((-1.0)/(2.0*constants()->lambda()))*(yt*dWdy + dxt*dWddx+ xi*dWdx );
2331 
2332  return ((-1.0)/W)*dWdl;
2333 }
double deltaSeparation(double sep1, double sep2) const
Return the minimum image difference for 1D separations.
Definition: potential.cpp:119
+ Here is the call graph for this function:

◆ dVdtau()

double Delta1DPotential::dVdtau ( const dVec sep1,
const dVec sep2 
)
virtual

The derivative of the effective potential with respect to tau.

Computes the non-local two-body effective pair potential.

Parameters
sep1the first separation
sep2the second separation
Returns
the derivative of the effective potential with respect to lambda

Reimplemented from PotentialBase.

Definition at line 2344 of file potential.cpp.

2345 {
2346 
2347  double dxt = deltaSeparation(sep1[0], sep2[0])/l0;
2348  double yt = (abs(sep1[0])+abs(sep2[0]))/l0;
2349 
2350  double W = Wint(yt,dxt);
2351  double dWdt = ((1.0)/(2.0*constants()->tau()))
2352  * ( (-1.0)*yt*dWdyt(yt,dxt) - dxt*dWddxt(yt,dxt) + xi*dWdxi(yt,dxt) );
2353 
2354  return ((-1.0)/W)*dWdt;
2355 }
double tau() const
Get imaginary time step.
Definition: constants.h:44
+ Here is the call graph for this function:

◆ V()

double Delta1DPotential::V ( const dVec sep1,
const dVec sep2 
)
virtual

The effective potential.

Computes the non-local two-body effective pair potential.

Parameters
sep1The first separation
sep2The second separation
Returns
the two-body effective pair potential

Reimplemented from PotentialBase.

Definition at line 2299 of file potential.cpp.

2300 {
2301 
2302  double dxt = deltaSeparation(sep1[0], sep2[0])/l0;
2303  double yt = (abs(sep1[0])+abs(sep2[0]))/l0;
2304 
2305  double W = Wint(yt,dxt);
2306 
2307  return (-1.0)*log(W);
2308 }
+ Here is the call graph for this function:

The documentation for this class was generated from the following files: