GPUE  v1.0
GPU Gross-Pitaevskii Equation numerical solver for Bose-Einstein condensates
Tracker Namespace Reference

Functions

int findVortex (int *marker, const double2 *wfc, double radius, int xDim, const double *x, int timestep)
 Find vortex locations in the condensate. More...
 
void vortPos (const int *marker, std::vector< std::shared_ptr< Vtx::Vortex > > &vLocation, int xDim, const double2 *wfc)
 Accepts matrix of vortex locations as argument, returns array of x,y coordinates of locations and winding. More...
 
void olPos (int *marker, int2 *vLocation, int xDim)
 Accepts matrix of vortex locations as argument, returns array of x,y coordinates of locations and winding. More...
 
std::shared_ptr< Vtx::VortexvortPosDelta (int *cMarker, int2 *pMarker, double *x, double tolerance, int xDim)
 Changes in vortex positions. Not implemented. See vort.py for current tracking. More...
 
std::shared_ptr< Vtx::VortexvortCentre (const std::vector< std::shared_ptr< Vtx::Vortex > > &cArray, int xDim)
 Determines the most central vortex in the condensate. More...
 
double vortAngle (const std::vector< std::shared_ptr< Vtx::Vortex >> &vortCoords, const std::shared_ptr< Vtx::Vortex > central)
 Determines the rotation angle of the vortex lattice. More...
 
double vortSepAvg (const std::vector< std::shared_ptr< Vtx::Vortex > > &vArray, const std::shared_ptr< Vtx::Vortex > centre)
 Determines average inter-vortex separation about the condensate centre. More...
 
double sigVOL (const std::vector< std::shared_ptr< Vtx::Vortex > > &vArr, const int2 *opLatt, const double *x)
 
int findOLMaxima (int *marker, double *V, double radius, int xDim, double *x)
 Finds optical lattice maxima locations. Deprecated. More...
 
void vortArrange (std::vector< std::shared_ptr< Vtx::Vortex > > &vCoordsC, const std::vector< std::shared_ptr< Vtx::Vortex >> &vCoordsP)
 Ensures the vortices are tracked and arranged in the right order based on minimum distance between previous and current positions. More...
 
int phaseTest (int2 vLoc, double2 *wfc, int xDim)
 Checks given coordinate for phase singularity of +ve winding. More...
 
void lsFit (std::vector< std::shared_ptr< Vtx::Vortex >> &vortCoords, const double2 *wfc, int xDim)
 Least-squares vortex code estimation. Loosely based on c42f's vortutils code. More...
 

Detailed Description

See the source file for more info on functions.

Function Documentation

◆ findOLMaxima()

int Tracker::findOLMaxima ( int *  marker,
double *  V,
double  radius,
int  xDim,
double *  x 
)

Finds optical lattice maxima locations. Deprecated.

Parameters
markerMatrix of lattice maxima locations
VOptical lattice potential
radiusSearch radius for maxima
xX grid

◆ findVortex()

int Tracker::findVortex ( int *  marker,
const double2 *  wfc,
double  radius,
int  xDim,
const double *  x,
int  timestep 
)

Find vortex locations in the condensate.

Parameters
markerMatrix for vortex locations to nearest grid point
wfcWavefunction
radiusVortex search radius in condensate
xDimLength of X dimension
xX grid
timestepTimestep in simulation
Returns
Number of found vortices of either rotation direction

◆ lsFit()

void Tracker::lsFit ( std::vector< std::shared_ptr< Vtx::Vortex >> &  vortCoords,
const double2 *  wfc,
int  xDim 
)

Least-squares vortex code estimation. Loosely based on c42f's vortutils code.

Parameters
vortCoordsArray of vortices. Result returned in struct double coordinates
wfcWavefunction
xDimLength of X dimension

◆ olPos()

void Tracker::olPos ( int *  marker,
int2 *  vLocation,
int  xDim 
)

Accepts matrix of vortex locations as argument, returns array of x,y coordinates of locations and winding.

Parameters
markerMatrix containing vortex grid locations
vLocationArray to store vortex data
xDimLength of X dimension
wfcWavefunction

◆ phaseTest()

int Tracker::phaseTest ( int2  vLoc,
double2 *  wfc,
int  xDim 
)

Checks given coordinate for phase singularity of +ve winding.

Parameters
vLocVortex location
wfcWavefunction
xDimLength of X dimension
Returns
1 for singularity. 0 otherwise

◆ sigVOL()

double Tracker::sigVOL ( const std::vector< std::shared_ptr< Vtx::Vortex > > &  vArr,
const int2 *  opLatt,
const double *  x 
)

◆ vortAngle()

double Tracker::vortAngle ( const std::vector< std::shared_ptr< Vtx::Vortex >> &  vortCoords,
const std::shared_ptr< Vtx::Vortex central 
)

Determines the rotation angle of the vortex lattice.

Parameters
vortCoordsArray of vortices
centralCentral vortex in lattice
Returns
$0 2$, though between $0 \3$ is sufficient.

◆ vortArrange()

void Tracker::vortArrange ( std::vector< std::shared_ptr< Vtx::Vortex > > &  vCoordsC,
const std::vector< std::shared_ptr< Vtx::Vortex >> &  vCoordsP 
)

Ensures the vortices are tracked and arranged in the right order based on minimum distance between previous and current positions.

Parameters
vCoordsCCurrent vortex locations
vCoordsPPrevious vortex locations

◆ vortCentre()

std::shared_ptr<Vtx::Vortex> Tracker::vortCentre ( const std::vector< std::shared_ptr< Vtx::Vortex > > &  cArray,
int  xDim 
)

Determines the most central vortex in the condensate.

Parameters
cArrayArray of vortices
xDimLength of X dimension
Returns
Central vortex struct

◆ vortPos()

void Tracker::vortPos ( const int *  marker,
std::vector< std::shared_ptr< Vtx::Vortex > > &  vLocation,
int  xDim,
const double2 *  wfc 
)

Accepts matrix of vortex locations as argument, returns array of x,y coordinates of locations and winding.

Parameters
markerMatrix containing vortex grid locations
vLocationArray to store vortex data
xDimLength of X dimension
wfcWavefunction

◆ vortPosDelta()

std::shared_ptr<Vtx::Vortex> Tracker::vortPosDelta ( int *  cMarker,
int2 *  pMarker,
double *  x,
double  tolerance,
int  xDim 
)

Changes in vortex positions. Not implemented. See vort.py for current tracking.

Parameters
cMarkerCurrent vortex location matrix
pMarkerPrevious vortex location matrix
xX grid
toleranceMaximum change acceptable for a vortex to have moved
xDimLength of X dimension
Returns
Vortex struct pointer.

◆ vortSepAvg()

double Tracker::vortSepAvg ( const std::vector< std::shared_ptr< Vtx::Vortex > > &  vArray,
const std::shared_ptr< Vtx::Vortex centre 
)

Determines average inter-vortex separation about the condensate centre.

Parameters
vArrayVortices
centreCentral vortex in lattice
Returns
Separation distance