示例#1
0
######  construct user_basis
# define maps dict
maps = dict(
    T_block=(translation, N, 0, T_args),
    P_block=(parity, 2, 0, P_args),
)
# define particle conservation and op dicts
op_dict = dict(op=op, op_args=op_args)
# define pre_check_state
pre_check_state = (pre_check_state, pre_check_state_args
                   )  # None gives a null pinter to args
# create user basis
basis = user_basis(np.uint32,
                   N,
                   op_dict,
                   allowed_ops=set("xyz"),
                   sps=2,
                   pre_check_state=pre_check_state,
                   Ns_block_est=300000,
                   **maps)
# print basis
print(basis)
#
###### construct Hamiltonian
# site-coupling lists
h_list = [[1.0, i] for i in range(N)]
# operator string lists
static = [
    ["x", h_list],
]
# compute Hamiltonian, no checks have been implemented
no_checks = dict(check_symm=False, check_pcon=False, check_herm=False)
)
# define particle conservation and op dicts
pcon_dict = dict(Np=Np,
                 next_state=next_state,
                 next_state_args=next_state_args,
                 get_Ns_pcon=get_Ns_pcon,
                 get_s0_pcon=get_s0_pcon,
                 count_particles=count_particles,
                 count_particles_args=count_particles_args,
                 n_sectors=n_sectors)
op_dict = dict(op=op, op_args=op_args)
# create user basiss
basis = user_basis(np.uint32,
                   N,
                   op_dict,
                   allowed_ops=set("+-nI"),
                   sps=2,
                   pcon_dict=pcon_dict,
                   **maps)
#
#
#
############   create same spinless fermion basis_1d object   #############
basis_1d = spinless_fermion_basis_1d(N, Nf=Np, kblock=0, pblock=1)  #
#
#
print(basis)
print(basis_1d)
#
############   create Hamiltonians   #############
#
示例#3
0
# define maps dict
maps = dict()
# define particle conservation and op dicts
FW = function_wrapper(external_basis)
noncommuting_bits = [(np.arange(N_half), -1)]
pcon_dict = dict(Np=Np,
                 next_state=next_state,
                 next_state_args=next_state_args,
                 get_Ns_pcon=FW.get_Ns_pcon,
                 get_s0_pcon=FW.get_s0_pcon)
op_dict = dict(op=op, op_args=op_args)
# create user basis
basis = user_basis(np.uint32,
                   N,
                   op_dict,
                   allowed_ops=set("n+-"),
                   sps=2,
                   pcon_dict=pcon_dict,
                   noncommuting_bits=noncommuting_bits,
                   **maps)
# create basis for subsystem
noncommuting_bits = [(np.arange(3), -1)]
subsys_basis = user_basis(np.uint32,
                          6,
                          op_dict,
                          allowed_ops=set("n+-"),
                          sps=2,
                          noncommuting_bits=noncommuting_bits)

# pure state in full basis
psi = np.random.normal(0, 1, size=(basis.Ns, ))
psi /= np.linalg.norm(psi)
)
# define particle conservation and op dicts
pcon_dict = dict(Np=Np,
                 next_state=next_state,
                 next_state_args=next_state_args,
                 get_Ns_pcon=get_Ns_pcon,
                 get_s0_pcon=get_s0_pcon,
                 count_particles=count_particles,
                 count_particles_args=count_particles_args,
                 n_sectors=n_sectors)
op_dict = dict(op=op, op_args=op_args)
# create user basiss
basis = user_basis(np.uint32,
                   N,
                   op_dict,
                   allowed_ops=set("+-nI"),
                   sps=2,
                   pcon_dict=pcon_dict,
                   noncommuting_bits=noncommuting_bits,
                   **maps)
#
#
#
############   create same spinless fermion basis_1d object   #############
basis_1d = spinless_fermion_basis_1d(N, Nf=Np, kblock=0, pblock=1)  #
#
#
print(basis)
print(basis_1d)
#
############   create Hamiltonians   #############
#
示例#5
0
P_args = np.array([N - 1], dtype=np.uint32)
#
######  construct user_basis
# define maps dict
maps = dict(
    T_block=(translation, N, 0, T_args),
    P_block=(parity, 2, 0, P_args),
)
#maps = dict(P_block=(parity,2,0,P_args), )
#maps = dict(T_block=(translation,N,0,T_args) )
op_dict = dict(op=op, op_args=op_args)
# create user basiss
basis = user_basis(np.uint32,
                   N,
                   op_dict,
                   allowed_ops=set("xy+-nI"),
                   sps=2,
                   **maps)
#
#
print(basis)
#
############   create and compare Hamiltonians   #############
#
##### Hamiltonian in using Majoranas
#
J = -np.sqrt(2.0)  # hoppping
U = +1.0  # nn interaction
#
hop_term_p = [[+0.5j * J, j, (j + 1) % N] for j in range(N)]
hop_term_m = [[-0.5j * J, j, (j + 1) % N] for j in range(N)]