[cig-commits] [commit] inversion, master, validate_MT_params: Added compositional array construction (c2a30cf)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri Dec 12 18:25:52 PST 2014


Repository : https://github.com/geodynamics/burnman

On branches: inversion,master,validate_MT_params
Link       : https://github.com/geodynamics/burnman/compare/80c2a295c42dfdb38f83f6c1334bf7d8f97a8463...409647ff05dfad6a686198cac1481bd46b5e2e62

>---------------------------------------------------------------

commit c2a30cf0f94bbaa3e4a74b46fa85c8347fcf5c87
Author: Bob Myhill <myhill.bob at gmail.com>
Date:   Wed Sep 3 02:18:17 2014 +0200

    Added compositional array construction


>---------------------------------------------------------------

c2a30cf0f94bbaa3e4a74b46fa85c8347fcf5c87
 burnman/processchemistry.py | 49 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/burnman/processchemistry.py b/burnman/processchemistry.py
index 00d9545..b52d7fe 100644
--- a/burnman/processchemistry.py
+++ b/burnman/processchemistry.py
@@ -218,3 +218,52 @@ def ProcessSolidSolutionChemistry(formulae):
 
     return solution_formulae, n_sites, sites, n_occupancies, endmember_occupancies, site_multiplicities
 
+
+def compositional_array(formulae):
+    """
+        Parameters
+        ----------
+        formulae : list of dictionaries
+            List of chemical formulae
+
+        Returns
+        -------
+        formula_array : 2D array of floats
+            Array of endmember formulae
+
+        elements : List of strings
+            List of elements
+    """
+    elements=[]
+    for formula in formulae:
+        for element in formula:
+            if element not in elements:
+                elements.append(element)
+
+    formula_array=ordered_compositional_array(formulae, elements)
+
+    return formula_array, elements
+
+
+def ordered_compositional_array(formulae, elements):
+    """
+        Parameters
+        ----------
+        formulae : list of dictionaries
+            List of chemical formulae
+
+        elements : List of strings
+            List of elements
+
+        Returns
+        -------
+        formula_array : 2D array of floats
+            Array of endmember formulae
+    """
+    formula_array=np.zeros(shape=(len(formulae), len(elements)))
+    for idx, formula in enumerate(formulae):
+        for element in formula:
+            assert(element in elements)
+            formula_array[idx][elements.index(element)]=formula[element]
+
+    return formula_array



More information about the CIG-COMMITS mailing list