# Initial Conditions

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

| Description | Type | Default
--- | --- | --- | ---
regions | Regions used to define initial conditions. | String | None
allow_regions_overlap | Flag for allowing the user to decide whether particles will be generated/initialized more than once on the areas where the IC regions have an intersection | Bool | 1 (yes)
ranking_type | IC regions are sorted during initialization. This input lets the user decide the ranking criterion, which can be one of the following: inputs – the order in the inputs file volume – the volume of each IC region priority – the priority value provided by the user in the inputs | String | Inputs

## Fluid settings

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

| 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 `ic.[region]` compound prefix.

| 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 `ic.[region].[solid]` compound prefix.

| 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. Available options include: ‘constant’ – specified constant ‘uniform’ – uniform distribution ‘normal’ – normal distribution ‘custom’ – user defined distribution | String | None
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. Available options include: ‘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 `mfix`:

| Description | Type | Default
--- | --- | --- | ---
particle_init_type | How do we initialize the particles? “Auto” vs AsciiFile | String | AsciiFile

The following inputs must be preceded by `particles`:

| Description | Type | Default
--- | --- | --- | ---
removeOutOfRange | Flag to 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 = constant
    ic.bed1.solid0.diameter.constant =  110.0e-6

    ic.bed1.solid0.density  = constant
    ic.bed1.solid0.density.constant  = 900.0