pygcc.clay_thermocalc ===================== .. py:module:: pygcc.clay_thermocalc .. autoapi-nested-parse:: Created on Wed Mar 17 16:02:22 2021 @author: Adedapo Awolayo and Ben Tutolo, University of Calgary Copyright (c) 2020 - 2021, Adedapo Awolayo and Ben Tutolo, University of Calgary This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Attributes ---------- .. autoapisummary:: pygcc.clay_thermocalc.MW pygcc.clay_thermocalc.J_to_cal Functions --------- .. autoapisummary:: pygcc.clay_thermocalc.roundup_tenth pygcc.clay_thermocalc.Molecularweight pygcc.clay_thermocalc.generate_structural_formula pygcc.clay_thermocalc.calclogKclays Module Contents --------------- .. py:function:: roundup_tenth(x) .. py:function:: Molecularweight() This function stores the Molecular weight of all elements .. py:data:: MW .. py:data:: J_to_cal :value: 4.184 .. py:function:: generate_structural_formula(Rxn, Interlayer, Octahedral, Tetrahedral, Oxy, OH, MW, charge) .. py:function:: calclogKclays(TC, P, *elem, dbaccessdic=None, group=None, cation_order=None, export_struct_formula=None, Dielec_method=None, ClayMintype=None, Int_Mg_fract=None, Int_Li_fract=None, heatcap_approx=None, ThermoInUnit='cal', **rhoEG) This function calculates logK values and reaction parameters of clay reactions using below references: :param TC: Temperature [°C] :type TC: float, vector :param P: Pressure [bar] :type P: float, vector :param elem: list containing nine or ten parameters with clay names and elements compositions with the following format ['Montmorillonite_Lc_MgK', 'Si', 'Al', 'FeIII', 'FeII', 'Mg', 'K', 'Na', 'Ca', 'Li', 'H3O'] :type elem: list :param dbacessdic: dictionary of species from direct-access database, optional, default is speq23 :type dbacessdic: dict :param group: specify the structural layering of the phyllosilicate, for layers composed of ``1 tetrahedral + 1 octahedral sheet (1:1 layer)`` - specify '7A', ``2 tetrahedral + 1 octahedral sheet (2:1 layer)`` - specify '10A', or the latter with a ``brucitic sheet in the interlayer (2:1:1 layer)`` - specify '14A' (optional), if not specified, default is based on charge balance on the cations and anions :type group: string :param cation_order: specify ordering of Si and Al ions either 'Eastonite', 'Ordered', 'Random', or 'HDC' (optional), if not specified, default is based on guidelines by Vinograd (1995) :type cation_order: string :param Dielec_method: specify either 'FGL97' or 'JN91' or 'DEW' as the method to calculate dielectric constant (optional), if not specified, default - 'JN91' :type Dielec_method: string :param ClayMintype: specify either 'Smectite' or 'Chlorite' or 'Mica' as the clay type, if not specified default - 'Smectites' :type ClayMintype: string :param Int_Mg_fract: specify the fraction of Mg to partition into Interlayer sheet and the remainder will be partitioned into Octahedral sheet, if not specified, default is 1 :type Int_Mg_fract: string :param Int_Li_fract: specify the fraction of Li to partition into Interlayer sheet and the remainder will be partitioned into Octahedral sheet, if not specified, default is 1 :type Int_Li_fract: string :param heatcap_approx: specify either 'Maier-Kelley' or 'constant' as the approximation method for clay minerals' specific heat capacity calculation, default is 'constant', based on ClayTherm's definition for specific cations (Octahedral sites: Li+, Mn2+, Cr3+, Ni2+, Co2+, Zn2+; Interlayer sites: Cs+, Rb+, Li+, Ba2+, Sr2+, Mg2+, Cu2+, Co2+, Zn2+, H3O+) :type heatcap_approx: string :param ThermoInUnit: specify either 'cal' or 'KJ' as the input units for species properties (optional), particularly used to covert KJ data to cal by supcrtaq function if not specified default - 'cal' :type ThermoInUnit: string :param rhoEG: dictionary of water properties like density (rho), dielectric factor (E) and Gibbs Energy (optional) :type rhoEG: dict :returns: * **logK_clay** (*float, vector*) -- logarithmic K values * **Rxn** (*dict*) -- dictionary of reaction thermodynamic properties Usage ------- The general usage of calclogKclays is as follows: (1) Without the optional arguments, not on steam saturation curve: [logK, Rxn] = calclogKclays(TC, P, *elem), where T is temperature in celsius and P is pressure in bar; (2) Without the optional arguments, on steam saturation curve: [logK, Rxn] = calclogKclays(TC, 'T', *elem), where T is temperature in celsius, followed with a quoted char 'T' [logK, Rxn] = calclogKclays(P, 'P', *elem), where P is pressure in bar, followed with a quoted char 'P'. (3) Meanwhile, usage with any specific dielectric constant method ('FGL97') for condition not on steam saturation curve is as follows. Default method is 'JN91' [logK, Rxn] = calclogKclays(TC, P, *elem, dbacessdic = dbacessdic, group = '10A', cation_order = 'HDC', Dielec_method = 'FGL97') .. rubric:: Examples >>> logK, Rxn = calclogKclays(50, 'T', *['Clinochlore', '3', '2', '0', '0', '5', '0', '0', '0', '0', '0'], group = '14A') >>> logK 57.29239957 .. rubric:: References (1) Blanc, P., Vieillard, P., Gailhanou, H., Gaboreau, S., Gaucher, É., Fialips, C. I., Madé, B & Giffaut, E. (2015). A generalized model for predicting the thermodynamic properties of clay minerals. American journal of science, 315(8), 734-780. (2) Blanc, P., Gherardi, F., Vieillard, P., Marty, N. C. M., Gailhanou, H., Gaboreau, S., Letat, B., Geloni, C., Gaucher, E.C. and Madé, B. (2021). Thermodynamics for clay minerals: calculation tools and application to the case of illite/smectite interstratified minerals. Applied Geochemistry, 104986. (3) Vinograd, V.L., 1995. Substitution of [4]Al in layer silicates: Calculation of the Al-Si configurational entropy according to 29Si NMR Spectra. Physics and Chemistry of Minerals 22, 87-98. ( saponite-H-Li Li0.165H0.165)(Mg3)(Si3.67Al0.33)O10(OH)2 saponite-Mg-Li(VI) (Mg0.17)(Li0.33Mg2.835)(Si3.66Al0.34)O10(OH)2 ['Name', 'Si', 'Al', 'FeIII', 'FeII', 'Mg', 'K', 'Na', 'Ca', 'Li', 'H3O']