Example #1
0
hbar = hbar.to_base_units().magnitude
charT = 1 / gamma_C
charL = 1 * np.sqrt(hbar / (2 * m * me * gamma_C))

ringParams = Simulator.ParameterContainer(g_C=g_C,
                                          g_R=g_R,
                                          gamma_C=gamma_C,
                                          gamma_R=gamma_R,
                                          R=R,
                                          m=m,
                                          charL=charL,
                                          charT=charT)
params = ringParams.getGPEParams()

P0 = 4.0 * params['Pth']
pump = UtilityFunctions.AnnularPump(r, P0, sigma)
pumpFunction = pump.scaledFunction(ringParams.charL)
# Make Grid
grid = Simulator.Grid(ringParams.charL, max_XY=max_XY_unscaled, N=N)

x, y = grid.getSpatialGrid()
x_us, y_us = grid.getSpatialGrid(scaled=False)
solver = Simulator.GPESolver(
    params,
    dt,
    grid.getSpatialGrid(),
    grid.getKSquaredGrid(),
    pumpFunction,
    psiInitial=(lambda x, y: 0.1 * pumpFunction(x, y) / P0),
    N_THREADS=5,
    gpu=False)
Example #2
0
# Simulation parameters
N = 1 * 1024
max_XY_unscaled = (25 * ureg.micrometer).to_base_units().magnitude
T_MAX = 100

# GPE Parameters from Billiard paper
hbar = ureg.hbar.to_base_units()
g_C = (2e-3 * ureg.millielectron_volt * ureg.micrometer * ureg.micrometer)
g_C = g_C.to_base_units().magnitude
g_R = 2.0 * g_C
gamma_C = (0.1 / ureg.picosecond)
gamma_C = gamma_C.to_base_units().magnitude
gamma_R = 10 * gamma_C
R = (6e-4 * ureg.millielectron_volt * ureg.micrometer * ureg.micrometer) / hbar
R = R.to_base_units().magnitude
# Wouters does not provide m. Let us assume it is 10e-4 m_e
m = 5e-5

billiardParams = Simulator.ParameterContainer(g_C=g_C, g_R=g_R, gamma_C=gamma_C,
                                              gamma_R=gamma_R, R=R, m=m)
params = billiardParams.getGPEParams()


# Make pumps
annularPump = UtilityFunctions.AnnularPump(10e-6, 5e-6, 1.1 * params['Pth'], 3)
annularPumpFunction = annularPump.scaledFunction(billiardParams.charL)
# Make Grid
grid = Simulator.Grid(billiardParams.charL, max_XY=max_XY_unscaled, N=N)
solver = Simulator.GPESolver(grid.getSpatialGrid(), grid.getkGrid(),
                             N_THREADS=3)