//************************************************************************************************************** // Standard ORCHESTRA phase hierarchy // // Although the hierarchical "phase" structure in ORCHESTRA chemistry files is user definable, // often it is convenient to simply use a pre-defined default structure. // // This files contains a "standard" phase definition for ORCHESTRA chemistry files. // // It uses given density, porosity and water saturation as input, and // can be used for systems with, and without a solid fraction present. // (indicated by a porosity fraction of 1) // In case of a porosity between 0-1, the saturation indicates which fraction of the pores is water-filled. // // The graphical overview is followed by the actual ORCHESTRA input code. // // Hans Meeussen, Updated 13 August 2020 //************************************************************************************************************** //************************************************************************************************************** // 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)-------- FA_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: SHA_kgkg 0 // fraction HA of HA particle @Var: DHA_kgl 0 // concentration of DHA @Var: SFA_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, "SHA_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, "SFA_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 (.kg) // This can be useful for initializing column or transport systems with given solid compositions @phase(kg) @link_phase(liter, kg, "1/SL")