#include <qcevolve.h>
Public Member Functions | |
Constructors | |
QCEvolve (void) | |
Standard Constructor. | |
~QCEvolve (void) | |
Standard Destructor. | |
Evolving Methods | |
void | evolveForwards (bool forwards) |
Sets whether the evolution is done forwards or backwards in time. | |
bool | isForward () |
Returns whether the evolution is being done forwards or backwards in time. | |
void | usingTDGP (QCComplexField< 2 > ¤tField, parameterType xOffset, parameterType yOffset, parameterType &h_x, parameterType &h_y, QCParameter &tdgpParameters) |
Evolves the Field according to the Time-Dependent Gross-Pitaevskii (TDGP) Equation (this is the 2D version). | |
void | usingTDGPLz (QCComplexField< 2 > ¤tField, parameterType xOffset, parameterType yOffset, parameterType &h_x, parameterType &h_y, QCParameter &tdgpParameters) |
Same as "usingTDGP" but involves the Angular Momentum of a rotating trap. | |
void | usingTDGP2Component (QCComplexField< 2 > &component1, QCComplexField< 2 > &component2, parameterType xOffset, parameterType yOffset, parameterType &h_x, parameterType &h_y, QCParameter &tdgpParameters) |
Applies the evolution of to "usingTDGP" a 2-component BEC. | |
void | usingTDGP3D (QCComplexField< 3 > ¤tField, parameterType xOffset, parameterType yOffset, parameterType zOffset, parameterType &h_x, parameterType &h_y, parameterType &h_z, QCParameter &tdgpParameters) |
Same as "usingTDGP" but implemented in 3-Dimensions. | |
Evolver Characteristic Operations | |
void | setBoundaryGradZero (QCComplexField< 2 > &field, Array< complexType, 2 > &old) |
Sets the boundary value so the gradient at the boundary is zero. | |
void | setBoundaryFree (QCComplexField< 2 > &field) |
Sets the boundary value so the boundary is free valued. | |
void | setBoundaryVanish (QCComplexField< 2 > &field) |
Sets the boundary value so the wavefunction vanishes. | |
void | setBoundaryVanish (QCComplexField< 3 > &field) |
Sets the boundary value so the wavefunction vanishes in 3-D. | |
void | setTimeStep (parameterType &value) |
Sets the time step at which the evolving is done. | |
parameterType | getTimeStep () |
Returns the time step at which the evolving is done. |
Definition at line 39 of file qcevolve.h.
|
Evolves the Field according to the Time-Dependent Gross-Pitaevskii (TDGP) Equation (this is the 2D version). The Gross-Pitaevskii Equation in the following form is used
where
This is approximately factorized to give the first fractional timestep as
and the second fractional timestep is
where each of the are tridiagonals to be solved It is assumed that Small Omega Squared is 1st Parameter, mu is the 2nd, g is 3rd Parameter and hbar the 4th Parameter, m the 5th, Big Omega the 6th and the Winding number of the vortex has the 7th in the QCParameter Class. All index referencing should be made C style.
Definition at line 54 of file qcevolve.cpp. References QCField< complexType, rank >::accessArray(), QCParameter::getParameter(), QCField< complexType, rank >::noOfColumns(), QCField< complexType, rank >::noOfRows(), and QCField< complexType, rank >::retrieveElement(). Referenced by QCBEC< rank >::evolve(). |
|
Applies the evolution of to "usingTDGP" a 2-component BEC. It is assumed that Small Omega Squared is 1st Parameter, mu is the 2nd, g is 3rd Parameter and hbar the 4th Parameter, m the 5th, Big Omega the 6th and the Winding number of the vortex has the 7th in the QCParameter Class. All index referencing should be made C style. In this case, the 3rd parameter g is ignored and it is assumed there are g11, g12, g22 and g21 parameters at 8th, 9th, 10th and 11th respectively. Definition at line 211 of file qcevolve.cpp. References QCField< complexType, rank >::accessArray(), QCParameter::getParameter(), QCField< complexType, rank >::noOfColumns(), QCField< complexType, rank >::noOfRows(), and QCField< complexType, rank >::retrieveElement(). Referenced by QC2ComponentBEC< rank >::evolve(). |
|
Same as "usingTDGP" but implemented in 3-Dimensions. It is assumed that Small Omega Squared is 1st Parameter, mu is the 2nd, g is 3rd Parameter and hbar the 4th Parameter, m the 5th, Big Omega the 6th and the Winding number of the vortex has the 7th in the QCParameter Class. All index referencing should be made C style. Definition at line 319 of file qcevolve.cpp. References QCField< complexType, rank >::accessArray(), QCParameter::getParameter(), QCField< complexType, rank >::height(), QCField< complexType, rank >::noOfColumns(), QCField< complexType, rank >::noOfRows(), and QCField< complexType, rank >::retrieveElement(). |
|
Same as "usingTDGP" but involves the Angular Momentum of a rotating trap. Same as "usingTDGP" but implements the equation with the
angular momentum term in . It is assumed that Small Omega Squared is 1st Parameter, mu is the 2nd, g is 3rd Parameter and hbar the 4th Parameter, m the 5th, Big Omega the 6th and the Winding number of the vortex has the 7th in the QCParameter Class. All index referencing should be made C style. Definition at line 136 of file qcevolve.cpp. References QCField< complexType, rank >::accessArray(), QCParameter::getParameter(), QCField< complexType, rank >::noOfColumns(), QCField< complexType, rank >::noOfRows(), and QCField< complexType, rank >::retrieveElement(). |