[cig-commits] [commit] master: add molar_mass (515aa0f)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Jan 6 09:14:56 PST 2015


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

On branch  : master
Link       : https://github.com/geodynamics/burnman/compare/9ee39c020bb9cdc3bd25572f699d836555914622...13c3b5da6e033552984fd69e2bcd574f84b3ab46

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

commit 515aa0f46050b5c29150066e8e784831957b5b3e
Author: sannecottaar <sanne.cottaar at gmail.com>
Date:   Tue Jan 6 13:34:30 2015 +0100

    add molar_mass


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

515aa0f46050b5c29150066e8e784831957b5b3e
 burnman/solidsolution.py    | 7 +++++++
 tests/test_solidsolution.py | 9 +++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/burnman/solidsolution.py b/burnman/solidsolution.py
index 86a08c9..13ed288 100644
--- a/burnman/solidsolution.py
+++ b/burnman/solidsolution.py
@@ -71,6 +71,13 @@ class SolidSolution(Mineral):
             self.base_material[i][0].set_method(method)
         self.method = self.base_material[0][0].method
 
+    def molar_mass(self):
+        """
+        Returns molar mass of the mineral [kg/mol]
+        """
+        molar_mass = sum([ self.base_material[i][0].molar_mass()*self.molar_fraction[i] for i in range(self.n_endmembers) ])
+        return molar_mass
+
     def set_state(self, pressure, temperature):
         self.pressure=pressure
         self.temperature=temperature
diff --git a/tests/test_solidsolution.py b/tests/test_solidsolution.py
index dc9f024..d3dd647 100644
--- a/tests/test_solidsolution.py
+++ b/tests/test_solidsolution.py
@@ -202,8 +202,13 @@ class test_solidsolution(BurnManTest):
         self.assertArraysAlmostEqual(site_fill, ones)
 
     def test_set_method(self):
-       ss = olivine_ss()
-       ss.set_method('hp_tmt')
+        ss = olivine_ss()
+        ss.set_method('hp_tmt')
+
+    def test_molar_mass(self):
+        ss = olivine_ss()
+        ss.set_composition( np.array([0.5, 0.5]) )
+        self.assertArraysAlmostEqual([ss.molar_mass()], [0.5*forsterite().params['molar_mass']+0.5*fayalite().params['molar_mass']])    
 
 if __name__ == '__main__':
     unittest.main()



More information about the CIG-COMMITS mailing list