# Density profile

As a second example of the dwa QMC code, we will study the density profile of an optical lattice in an harmonic trap which resembles the experiment

## Mimicking the Bloch's experiment

### Preparing and running the simulation from the command line

The parameter file parm1a sets up Monte Carlo simulations of the quantum Bose Hubbard model on a square lattice with 4x4 sites for a couple of hopping parameters (t=0.01, 0.02, ..., 0.1) using the dwa code.

```LATTICE="inhomogeneous simple cubic lattice"
L=100

MODEL='boson Hubbard"
Nmax=20

t=1.
U=8.11
mu="4.05 - (0.0073752*(x-(L-1)/2.)*(x-(L-1)/2.) + 0.0036849*(y-(L-1)/2.)*(y-(L-1)/2.) + 0.0039068155*(z-(L-1)/2.)*(z-(L-1)/2.))"

THERMALIZATION=50000
SWEEPS=200000
SKIP=100

{ T=1. }
```

Using the standard sequence of commands you can run the simulation using the quantum dwa code

```parameter2xml parm2a
dwa --Tmin 5 --write-xml parm2a.in.xml
```

### Preparing and running the simulation from Python

```import pyalps;
import pyalps.dwa;
```

Step 2: Preparing the parameter file

```tof_phase = pyalps.dwa.tofPhase(time_of_flight=15.5, wavelength=[843,765,765], mass=86.99)

params=[]
params.append(

{ 'LATTICE'         : 'inhomogeneous simple cubic lattice'   # Refer to <lattice.xml> from ALPS Lattice Library
, 'MODEL'           : 'boson Hubbard'                        # Refer to <model.xml>   from ALPS Model Library

, 'L'               : 100                # Length aspect of lattice
, 'Nmax'            : 20                 # Maximum number of bosons on each site

, 't'               : 1.                 # Hopping
, 'U'               : 8.11               # Onsite Interaction
, 'T'               : 1.                 # Temperature
, 'mu_homogeneous'  : 4.05               # Chemical potential (homogeneous)
, 'mu'              : 'mu_homogeneous - (0.0073752*(x-(L-1)/2.)*(x-(L-1)/2.) + 0.0036849*(y-(L-1)/2.)*(y-(L-1)/2.) + 0.0039068155*(z-(L-1)/2.)*(z-(L-1)/2.))'

, 'tof_phase'       :  str(tof_phase)

, 'SWEEPS'          : 100000             # Total number of sweeps
, 'SKIP'            : 100                # Number of sweeps before measurement (You don't need to measure too often!)
}

)
```
```h5_infiles = pyalps.writeInputH5Files("parm9f",params);
```

or simply if existent,

```h5_infiles = pyalps.getInputH5Files(prefix='parm9f');
```

Have a preliminary taste:

```pyalps.runApplication('dwa', h5_infiles[0]);
```

Detailed step by step instruction for running this example is illustrated here.