Example #1
0
 def computeFOMIdeal(func):
     modelTmp = cspin.ControlledSpin(func,
                                     setup,
                                     state_init,
                                     state_target,
                                     noise=None)
     resTmp = modelTmp.Simulate(T,
                                time_step=dt,
                                method='PWCH',
                                fom=['last:f2t2'],
                                store=False)
     return resTmp
Example #2
0
fT = 1
setup = '1Q1'
state_init = 'zero'
state_target = 'minus'
nb_parameters = 6
nb_trials = 1

#------------------------------------------------------------------------------
#                   Parameters simulation / optim
#------------------------------------------------------------------------------
ilib.reload(cspin)
ilib.reload(pfun)
funToTest = pfun.LinearFunc([fT / (T - dt), 0])
model = cspin.ControlledSpin(controlFun=funToTest,
                             setup=setup,
                             state_init=state_init,
                             state_target=state_target,
                             T=T,
                             dt=dt)
res_constant = model.Simulate(T,
                              time_step=dt,
                              method='testing',
                              fom='lstf2t',
                              store=True)

## Some plots
st_tgt = model.state_tgt
st = model.state_PWCH
st_ad = model.state_ADIAB
en_ad = model.energies_ADIAB
adiabaticity = model.fidelity_distance_t(st, st_ad)
Example #3
0
    if fomNew < fomBest:
        bestRes = optimNM.best
        fomBest = fomNew
        cfBestNM = copy.copy(optimNM.simulator.controlFun)
        print(bestRes)

cfBestNM.PlotFunction(x)

noise_testing = {
    'fom': 'normal_0_0.00',
    'Ex': 'normal_0_0.00',
    'Ez': 'normal_0_0.00'
}
modelTestNM = cspin.ControlledSpin(cfBestNM,
                                   setup,
                                   state_init,
                                   state_target,
                                   noise=noise_testing)
res_optimNM = modelTestNM.Simulate(
    T,
    time_step=dt,
    method='testing',
    fom=['last:f2t2:rdmtime', 'fluence', 'fluenceNorm', 'smooth'],
    store=True)

modelTestNM.PrintPopulation()

#------------------------------------------------------------------------------
#                   StepFunc - BangBang - DE
#------------------------------------------------------------------------------
ilib.reload(ut)
Example #4
0
for i in np.arange(nb_trials):
    print(i)
    optimBO = cspinopt.ToyModelOptim(paramsSim, paramsOptim, None)
    optimBO.Run(writeLogs=True)

    fomNew = optimBO.best['fom']
    if fomNew < fomBest:
        bestRes = optimBO.best
        fomBest = fomNew
        cfBestBO = copy.copy(optimBO.simulator.controlFun)
        print(bestRes)

cfBestBO.PlotFunction(x)


modelTestBO = cspin.ControlledSpin(cfBestBO, setup, state_init, state_target)
res_optimBO = modelTestBO.Simulate(T, time_step = dt, method = 'PWCH', fom = ['last:f2t2:neg', 'fluence', 'fluenceNorm'], store = True)




#------------------------------------------------------------------------------
#                   NM - 
#------------------------------------------------------------------------------
ilib.reload(ut)
ilib.reload(pfun)
ilib.reload(cspin)
ilib.reload(cspinopt)


overall = {'bounds': [0,1], 'constraints':[[0,0]], 'constraints_type':'shift'}
Example #5
0
x = np.arange(0, T, dt)
gp_iter = 150


#------------------------------------------------------------------------------
#                   Linear driving
#------------------------------------------------------------------------------
ilib.reload(ut)
ilib.reload(pfun)
ilib.reload(cspin)
ilib.reload(cspinopt)
fDummy = pfun.SquareExponential({'sigma':0.9, 'mu':2.4*T/5, 'l':T/6})
fDummy2 = pfun.SquareExponential({'sigma':0.9, 'mu':2.6*T/5 , 'l':T/6})
fDummy.PlotFunction(x)
fDummy2.PlotFunction(x)
model = cspin.ControlledSpin(controlFun = [fDummy, fDummy2], setup = setup, state_init = state_init, state_target = state_target, T=T, dt=dt)
res_constant = model.Simulate(T, time_step = dt, method = 'testing', fom = 'last:f2t2', store = True)

## Some plots
st_tgt = model.state_tgt
st = model.state_PWCH
st_ad = model.state_ADIAB
en_ad = model.energies_ADIAB
adiabaticity = model.fidelity2(st, st_ad)

model.PrintPopulation()
model.PrintPopulation(st_ad)

#plt.plot(adiabaticity)
# Fidelity over time (to ensure that the last point is the max)
fidelity_t = [model.fidelity(st_tgt, s) for s in st]
Example #6
0
nb_parameters = 30
nb_trials = 1
x = np.arange(0, T, dt)
gp_iter = 100

#------------------------------------------------------------------------------
#                   Linear driving
#------------------------------------------------------------------------------
ilib.reload(ut)
ilib.reload(pfun)
ilib.reload(cspin)
ilib.reload(cspinopt)
fLinear = pfun.LinearFunc([fT / (T - dt), 0])
model = cspin.ControlledSpin(controlFun=fLinear,
                             setup=setup,
                             state_init=state_init,
                             state_target=state_target,
                             T=T,
                             dt=dt)
res_constant = model.Simulate(T,
                              time_step=dt,
                              method='testing',
                              fom='last:f2t2',
                              store=True)

## Some plots
st_tgt = model.state_tgt
st = model.state_PWCH
st_ad = model.state_ADIAB
en_ad = model.energies_ADIAB
adiabaticity = model.fidelity2(st, st_ad)
state_target = 'x0'  # 1st evector of X operator
nb_parameters = 20
nb_trials = 1
x = np.arange(0, T, dt)

#------------------------------------------------------------------------------
#                   Linear driving
#------------------------------------------------------------------------------
ilib.reload(ut)
ilib.reload(pfun)
ilib.reload(cspin)
ilib.reload(cspinopt)
fLinear = pfun.LinearFunc([fT / (T - dt), 0])
model = cspin.ControlledSpin(controlFun=fLinear,
                             setup=setup,
                             state_init=state_init,
                             state_target=state_target,
                             T=T,
                             dt=dt)
res_constant = model.Simulate(T,
                              time_step=dt,
                              method='testing',
                              fom='last:f2t2',
                              store=True)

## Some plots
st_tgt = model.state_tgt
st = model.state_PWCH
st_ad = model.state_ADIAB
en_ad = model.energies_ADIAB
adiabaticity = model.fidelity2(st, st_ad)