1. configuration parameters

uDeviceX is configured via runtime parameters. These parameters are passed by the program via three mechanisms:

  • default parameters (priority 0)

  • file parameters conf.cfg(optional) (priority 1)

  • arguments args (optional) (priority 2)

The program can be run as follows (for one node):

udx [conf.cfg] [args]

When reading parameters, the program will select the one with highest priority. This makes it easy to overwrite the default parameters.

A file named conf.history.cfg is dumped once the program has read all parameters. The file contains all parameters which have beed read by udx.

1.1. Default parameters

We describe here the default parameters, contained in the file ${HOME}/.udx/default.cfg.

1.1.1. glb: global parameters

Global parameters

glb = {
    restart    = false     (1)
    kBT        = 0.0444302 (2)
    numdensity = 10        (3)
    L = [8, 8, 8]
}
1 create initial conditions from restart files
2 temperature of the system (supposed uniform)
3 number density of solvent particles

1.1.2. time

Time related parameters.

time = {
     wall      = 0.0   (1)
     screenlog = false (2)
     mbr_bb    = 0.0

     type = "const"
     dt = 1e-4
     end = 1.0
}
1 time of freezing step
2 dump the time step informations to the console

1.1.3. flu

Describe the solvent parameters

flu = {
    mass         = 1.0         (1)
    colors       = false       (2)
    ids          = false       (3)
    stresses     = false       (4)
    recolor_freq = 0           (5)
    push         = true        (6)
    self         = "pair_flu"  (7)
}
1 mass of one particle
2 each particle has a different color if set to true
3 each particle has unique global index if set to true
4 compute solvent stresses if set to true
5 re-color the solvent according to membranes every x iterations; 0: deactivated; membranes must be active if set to non 0.
6 apply body forces on solvent if set to true
7 self interaction parameters (see below)

The interaction parameters are described in a separate namespace. In the flu.self case, the default is given by:

The pair interaction parameters have all the same structure, allowing to share namespaces for common interactions.

pair_flu = {
    dpd          = true  (1)
    adhesion     = false (2)
    lj           = false (3)
    a = [2.6666667, 2.6666667, 2.6666667] (4)
    g = [8.0, 8.0, 8.0]  (5)
    spow = 0.25  (6)
}
1 activate DPD interactions
2 no repulsive Lennard-Jones potential
3 no adhesion interactions
4 repulsion parameters
5 dissipative parameters
6 envelope parameter for the random kernel

Note that the parameters form an array. These correspond to different color interactions. In this case, a maximum of 2 colors is possible. The parameters correspond to blue-blue, blue-red,red-red.

1.1.4. debug parameters

We list here default debug parameters

dflu = {
    debug = false (1)
}

dbg = {
    verbose  = true  (2)
    dump     = true  (3)
    pos      = false (4)
    pos_soft = false (5)
    vel      = false (6)
    forces   = false (7)
    colors   = false (8)
    clist    = false (9)
}
1 activate debug mode for solvent distribution
2 activate verbose for debug informations
3 activate dump informations for debug modes
4 check positions of solvent
5 check positions of solvent and objects
6 check velocities
7 check forces
8 check colors of solvent
9 check cell lists

1.2. examples

We here list simple run cases of uDeviceX.

1.2.1. equilibration

A simple solvent at rest equilibrating at given temperature. We can already see non default parameters appearing:

glb = {
    L          = [8, 8, 8] (1)
    numdensity = 10
    kBT        = 0.1
}

time = {
    type = "const" (2)
    dt  = 1e-3     (3)
    end = 5.0      (4)
}
1 domain size
2 timestep mode: constant in this case
3 step size (in dpd time units)
4 simulation time (in dpd time units)

The dpd parameters are set as follows:

flu = {
    self = "flu_pair"
    mass = 1.0
}

flu_pair = {
    dpd = true   (1)
    lj = false   (2)
    a = [ 20.0 ] (3)
    g = [ 8.0  ] (4)
    spow = 0.25  (5)
    adhesion = false
}
1 activate dpd interaction
2 no lj interactions (same as default)
3 repulsion parameter
4 dissipation parameter
5 "envelope" power for the random kernel

Note that the parameters are inside an array. This is useful when we set different colors.

The temperature quickly equilibrates to the required value:

equilibration.T

1.2.2. double_poiseuille

Reverse poiseuille flow in a periodic box. The setup looks really like the previous case equilibration, but we now add body forces:

bforce = {
    type = "double_poiseuille" (1)
    a    = 1.0                 (2)
}
1 type of body force
2 magnitude of the body force

Note that we also need to activate the push option for solvent:

flu = {
    mass = 1.0
    self = "flu_pair"
    push = true (1)
}

flu_pair = {
    dpd = true
    lj = false
    adhesion = false
    a = [ 20.0 ]
    g = [ 8.0  ]
    spow = 0.25
}
1 activate body force for solvent

In order to visualize the flow, we choose here to dump field data. The data is sampled via the sampling module, activated when the field dump is active.

sampler = {
    n_per_dump = 1000      (1)
    grid_ref   = [1, 1, 1] (2)
}

dump = {
    freq_diag  = 1.0  (3)
    field      = true (4)
    freq_field = 2.0  (5)
}
1 number of samples per dump
2 refinement of the grid to sample in each direction (default is 1)
3 frequency of diagnosis (in dpd time units)
4 activeate the field dumps
5 frequency of field dumps (in dpd time units)

The velocity profile is shown below:

double poiseuille.U