# Initialising MPS for qudit systems

**URL:** <https://itensor.discourse.group/t/initialising-mps-for-qudit-systems/2302>\
**Category:** ITensor Julia Questions\
**Tags:** mps\
**Created:** [March 13, 2025, 11:02am UTC](https://itensor.discourse.group/t/initialising-mps-for-qudit-systems/2302 "2025-03-13T11:02:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![simonwilliams](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@simonwilliams](https://itensor.discourse.group/u/simonwilliams)\
**Post date:** [March 13, 2025, 11:02am UTC](https://itensor.discourse.group/t/initialising-mps-for-qudit-systems/2302/1 "2025-03-13T11:02:28Z")

</div>

Hello,

I am new to using iTensor and I am looking to perform the Trotterised time-evolution for a system of qudits which I currently initialise in the following way

```auto
N = 10
sites = siteinds("Qudit",N; conserve_number = true )
Psi = MPS(sites)

```

I wish to have a lattice of qudits which are connected to each other by a nearest neighbour hopping term. To do so, I want to start the lattice off in some initial state and then time evolve the system. I have been looking at the tutorials for time evolution of an MPS, however they are only for spin 1/2 particles, and the initial state prep seems straightforward.

Is there a way that I can initialise the MPS such that each qudit has some vector of amplitudes defining its Fock amplitudes? Once I have done that, is it then straightforward to apply nearest neighbour interactions?

Thank you for your help!

Simon

---

<div class="post-metadata">

**Author:** ![VinceNeede](https://yyz2.discourse-cdn.com/free1/user_avatar/itensor.discourse.group/vinceneede/32/731_2.png) [@VinceNeede](https://itensor.discourse.group/u/VinceNeede)\
**Post date:** [March 13, 2025, 12:17pm UTC](https://itensor.discourse.group/t/initialising-mps-for-qudit-systems/2302/2 "2025-03-13T12:17:46Z")

</div>

Hi @simonwilliams,  
since this is your fist post, welcome in the community.

I’m gonna talk about bosons since we are talking about Fock space, but it is actually equivalent to qudits, this is because for computational reasons when working with bosons you must limit the local hilbert space (that can be infinite in principle), at that point there is a one to one correspondence between a `d` dimension qudit and a boson with maximum occupation number `d-1`.

The syntax to create a bosonic initial state with a maximum of 3 bosons per sit, we can create a state with that has 0 bosons on odd sites, and 2 bosons on even sites like this:

```julia
chain_length=10
sites = siteinds("Boson",chain_length;dim=4)
psi=MPS(sites,i->isodd(i) ? "0" : "2")

```

let me know if this answers your question
