# Initial conditions

The following inputs are defined using the prefix `ic`:

| Description | Type | Default
--- | --- | --- | ---
regions | Regions used to define initial conditions. | String | None
allow_regions_overlap | If enabled, particles will be generated/initialized more than once on areas where the IC regions intersect. | Int | 1
ranking_type | Specifies the order in which IC regions are sorted during initialization. Options: `Inputs` - preserve order in inputs file `Volume` - sort by volume of each IC region `Priority` - sort by specified priority value | String | Inputs

## Fluid settings

For each initial condition region, the fluid inputs are defined using the compound prefix `ic.[region].[fluid]`:

| Description | Type | Default
--- | --- | --- | ---
volfrac | Volume fraction [required] | Real | 0
density | Fluid density | Real | 0
temperature | Fluid temperature | Real | 0
velocity | Velocity components | Reals | 0 0 0
species.[species0] | Mass fraction of ‘species0’ | Reals | 0 0 0

## Solids settings

For each initial condition region, general solids inputs are defined using the compound prefix `ic.[region]`:

| Description | Type | Default
--- | --- | --- | ---
solids | Name of solid type in IC region – only one solid is allowed in an IC region. | String | None
packing | Specifies how auto-generated particles are placed in the IC region: `hcp` - hex-centered packing `pseudo_random` – random packing using a fixed random seed `random` – random packing (not repeatable) `oneper` – one particle per cell `eightper` – eight particles per cell `n-cube` – n^3 particles per cell where n is an integer (NOTE: `oneper` is equivalent to `1-cube` and `eightper` to `2-cube`) | String | None
priority | Priority value for IC regions ranking as described above | Int | Max

For each initial condition region, the solid inputs are defined using the compound prefix `ic.[region].[solid]`: Note that diameter distributions must define a weighting type, please refer to ReferenceParticleDistributions.

| Description | Type | Default
--- | --- | --- | ---
volfrac | Volume fraction | Real | 0
temperature | temperature | Real | 0
species.[species0] | Mass fraction of ‘species0’ | Real | 0
velocity | Velocity components | Reals | 0 0 0
diameter | Method to specify particle diameter in the IC region. This is only used for auto-generated particles. Options: `constant` - specified constant `uniform` - uniform distribution `normal` - normal distribution `custom` - user-defined distribution | String | None
type | Distribution weighting. Options: `number-weighted` `volume-weighted` | String | N/A
bins | Number of bins used when discretizing the distribution to approximate the number of particles within an initial condition region. | Int | 64
diameter.constant | Monodisperse (single valued) particle diameter. Required for `constant` distributions. | Real | 0
diameter.mean | Distribution mean. Required for `normal` distributions. | Real | 0
diameter.std | Distribution standard deviation. Required for `normal` distributions. | Real | 0
diameter.min | Minimum diameter to clip distribution. Required for `normal` distributions and `uniform` distributions. | Real | 0
diameter.max | Maximum diameter to clip distribution. Required for `normal` distributions and `uniform` distributions. | Real | 0
diameter.custom | File name that specifies either the cumulative or probability distribution. Required for `custom` distributions. | String | None
density | Method to specify particle density in the IC region. This is only used for auto-generated particles. Options: `constant` - specified constant `uniform` - uniform distribution `normal` - normal distribution `custom` - user-defined distribution | String | None
density.constant | Monodisperse (single valued) particle density. Required for `constant` distributions. | Real | 0
density.mean | Distribution mean. Required for `normal` distributions. | Real | 0
density.std | Distribution standard deviation. Required for `normal` distributions. | Real | 0
density.min | Minimum diameter to clip distribution. Required for `normal` distributions and `uniform` distributions. | Real | 0
density.max | Maximum diameter to clip distribution. Required for `normal` distributions and `uniform` distributions. | Real | 0
density.custom | File name that specifies either the cumulative or probability distribution. Required for `custom` distributions. | String | None

The following inputs must be preceded by the prefix `mfix`:

| Description | Type | Default
--- | --- | --- | ---
particle_init_type | Particle initialization method. Options: `Auto` - automatic particle generation `AsciiFile` - read particle data from file `particle_input.dat` | String | AsciiFile

The following input must be preceded by the prefix `particles`:

| Description | Type | Default
--- | --- | --- | ---
removeOutOfRange | Remove particles at initialization that are touching a wall. | Int | 1

Below is an example for specifying an initial condition for a fluid (`fluid`) and one solid (`solid0`).

    mfix.particle_init_type = Auto

    particles.removeOutOfRange = 1

    ic.regions  = bed0  bed1

    ic.bed0.fluid.volfrac   =  0.725
    ic.bed0.fluid.density   =  1.0
    ic.bed0.fluid.velocity  =  0.015  0.00  0.00
    ic.bed0.fluid.temperature =  383.0
    ic.bed0.fluid.species.CO  =  0.3
    ic.bed0.fluid.species.CO2 =  0.2
    ic.bed0.fluid.species.O2  =  0.5

    ic.bed0.solids  = my_solid0

    ic.bed0.packing = pseudo_random

    ic.bed0.my_solid0.volfrac  =  0.275
    ic.bed0.my_solid0.temperature  =  400.0
    ic.bed0.my_solid0.species.Fe2O3 =  0.4
    ic.bed0.my_solid0.species.FeO   =  0.6

    ic.bed0.my_solid0.velocity =  0.00  0.00  0.00

    ic.bed0.my_solid0.diameter = constant
    ic.bed0.my_solid0.diameter.constant =  100.0e-6

    ic.bed0.my_solid0.density  = constant
    ic.bed0.my_solid0.density.constant  = 1000.0

    ic.bed1.fluid.volfrac   =  0.925
    ic.bed1.fluid.density   =  1.0
    ic.bed1.fluid.velocity  =  0.015  0.00  0.00
    ic.bed1.fluid.temperature =  383.0
    ic.bed1.fluid.species.CO  =  0.5
    ic.bed1.fluid.species.CO2 =  0.5
    ic.bed1.fluid.species.O2  =  0.0

    ic.bed1.solids  = solid0
    ic.bed1.packing = pseudo_random

    ic.bed1.solid0.volfrac  =  0.075
    ic.bed1.solid0.temperature  =  450.0
    ic.bed1.solid0.species.Fe2O3 =  0.0
    ic.bed1.solid0.species.FeO   =  1.0

    ic.bed1.solid0.velocity =  0.10  0.00  0.00

    ic.bed1.solid0.diameter = uniform
    ic.bed1.solid0.diameter.type = number-weighted
    ic.bed1.solid0.diameter.bins = 20
    ic.bed1.solid0.diameter.min =   90.0e-6
    ic.bed1.solid0.diameter.max =  110.0e-6

    ic.bed1.solid0.density  = normal
    ic.bed1.solid0.density.mean  = 900.0
    ic.bed1.solid0.density.std  =   30.0
    ic.bed1.solid0.density.min  =  800.0
    ic.bed1.solid0.density.max  = 1000.0