Standard Phases structure

http://www.meeussen.nl/orchestra/ORCHESTRA_standard_phase_structure.txt

Although in ORCHESTRA the phase hierarchy in chemical systems is user-definable, we provide here a “default” set of phases and interconnections that includes dissolution, precipitation, and adsorption to different types of particles.

//**************************************************************************************************************
// Standard ORCHESTRA phase hierarchy
//
// This files contains a "standard" phase structure definition for ORCHESTRA chemistry files
// It uses given density, porosity and water saturation as input.
// The graphical overview is followed by the actual ORCHESTRA input code.
//
// Hans Meeussen, Updated November 2019
//**************************************************************************************************************

//**************************************************************************************************************
// Graphical representation of the ORCHESTRA "standard" phase hierarchy
//**************************************************************************************************************
//
//   tot
//    |
//    +---(watervolume)-- liter
//                        |
//                        +---(1)--- solution 
//                                     | 
//                                     +---(1)--- diss
//                                     |
//                                     |
//                                     +---(1)--- colloid 
//                                     |             |
//                                     |             +---(1)--- DHA_part 
//                                     |             |           |
//                                     |             |           +---(DHA_kgl)--- HA_part 
//                                     |             |
//                                     |             +---(1)--- DHA_part 
//                                     |                         |
//                                     |                         +---(DFA_kgl)--- FA_part 
//                                     |
//                                     +---(1)--- solid
//                                     |             |
//                                     |             +---(1)--- min
//                                     |             |
//                                     |             |
//                                     |             |
//                                     |             +---(1)--- ads
//                                     |                         +---(1)--- CLAY_part_l
//                                     |                         |           |
//                                     |                         |           +---(CLAY_kgkg*SL)------- CLAY_part
//                                     |                         |
//                                     |                         +---(1)--- HFO_part_l
//                                     |                         |           |
//                                     |                         |           +---(HFO_kgkg*SL)-------- HFO_part
//                                     |                         |
//                                     |                         |
//                                     |                         +---(1)--- Goethite_part_l
//                                     |                         |           |
//                                     |                         |           +---(Goethite_kgkg*SL)--- Goethite_part
//                                     |                         |
//                                     |                         |
//                                     |                         +---(1)--- SHA_part_l
//                                     |                         |           |
//                                     |                         |           +---(SHA_kgkg*SL)-------- HA_part
//                                     |                         |
//                                     |                         |
//                                     |                         +---(1)--- FHA_part_l
//                                     |                                     |
//                                     |                                     +---(FHA_kgkg*SL)-------- HA_part
//                                     |
//                                     +---(1)--- gas_l
//                                                   |
//                                                   +--- (gasvolume/molar gasvolume) --- gas
//
//**************************************************************************************************************

@Var: porosity      1  // total porosity (volume fraction)
@Var: density       1  // particle density of solid phase (kg/liter), (so without porosity)
@Var: totvolume     1  // total volume of cell (liter)
@Var: saturation    1  // fraction of pores saturated with water (rest is gas filled)  
@Var: watervolume   1  // water volume per cell (liter)
@Var: SL            1  // Solid - Liquid mass ratio
@Var: gasvolume     1  // gas filled volume (Liter gas/Liter pore solution
@Var: CLAY_kgkg     0  // fraction clay of clay particle
@Var: HFO_kgkg      0  // fraction hfo of hfo particle
@Var: Goethite_kgkg 0  // fraction goethite of goethite particle
@Var: HA_kgkg       0  // fraction HA of HA particle
@Var: DHA_kgl       0  // concentration of DHA
@Var: FA_kgkg       0  // fraction FA of FA particle  
@Var: DFA_kgl       0  // concentration of DFA

// Calculate the different volumes and SL from density, porosity and water saturation 
// (We use SL instead of the more common LS to avoid an infinite value for a system without solid phase)
@Calc: (1,  "watervolume = porosity * totvolume * saturation")     // is total water volume per cell
@Calc: (1,  "gasvolume   = porosity * (1-saturation)")             // is tot gas volume per liter water
@Calc: (1,  "SL = ((1-porosity)*density) / (porosity*saturation)")
@phase(tot)
@phase(liter, tot, watervolume)
@phase(solution, liter, 1)
@phase(diss, solution, 1)
@phase(colloid, solution, 1)
@phase(DHA_part,  colloid, "1")
@phase(HA_part,  DHA_part, "DHA_kgl")
@phase(DFA_part,  colloid, "1")
@phase(FA_part,  DFA_part, "DFA_kgl")
@phase(solid, liter, 1)
@phase(min, solid, 1)
@phase(ads, solid, 1)
// Introduce a number of particles that can be used to attach adsorption models.
@phase(CLAY_part_l, ads, "1")
@phase(CLAY_part, CLAY_part_l, "CLAY_kgkg*SL")
@phase(HFO_part_l,  ads, "1")
@phase(HFO_part,  HFO_part_l, "HFO_kgkg*SL")
@phase(Goethite_part_l,  ads, "1")
@phase(Goethite_part,  Goethite_part_l, "Goethite_kgkg*SL")
@phase(SHA_part_l,  ads, "1")
// The HA particle already exists, so just link it to a second phase
@link_phase(HA_part,  SHA_part_l, "HA_kgkg*SL")
@phase(SFA_part_l,  ads, "1")
// The FA particle already exists, so just link it to a second phase
@link_phase(FA_part,  SFA_part_l, "FA_kgkg*SL")
@phase(gas_l, liter, 1 )
@phase(gas, gas_l, "(gasvolume/22.4)") // concentrations in the gas phase are in fractions
//***
// By adding this line, all component concentrations are also calculated in mol/kg solid material (<name>.kg)
// This can be useful for initializing column or transport systems with given solid compositions
@phase(kg)
@link_phase(liter, kg, "1/SL")