[cig-commits] [commit] add_gibbs_energy: Added correct forms of derived properties to solid solution (5bb74c6)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Thu Dec 11 17:15:50 PST 2014


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

On branch  : add_gibbs_energy
Link       : https://github.com/geodynamics/burnman/compare/2148b324d3e8aa7b527f831eb397590942563008...5bb74c6f3b8b22ee1a37fbace4661641a25541b3

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

commit 5bb74c6f3b8b22ee1a37fbace4661641a25541b3
Author: Bob Myhill <myhill.bob at gmail.com>
Date:   Thu Dec 11 17:14:28 2014 -0800

    Added correct forms of derived properties to solid solution


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

5bb74c6f3b8b22ee1a37fbace4661641a25541b3
 burnman/solidsolution.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/burnman/solidsolution.py b/burnman/solidsolution.py
index cfd46e4..35d9823 100644
--- a/burnman/solidsolution.py
+++ b/burnman/solidsolution.py
@@ -65,14 +65,14 @@ class SolidSolution(Mineral):
         self.S = sum([ self.base_material[i][0].S * self.molar_fraction[i] for i in range(self.n_endmembers) ]) + self.excess_entropy
         self.V = sum([ self.base_material[i][0].V * self.molar_fraction[i] for i in range(self.n_endmembers) ]) + self.excess_volume
         self.C_p = sum([ self.base_material[i][0].C_p * self.molar_fraction[i] for i in range(self.n_endmembers) ])
+        self.alpha = (1./self.V) * sum([ self.base_material[i][0].alpha * self.base_material[i][0].V * self.molar_fraction[i] for i in range(self.n_endmembers) ])
+        self.K_T = self.V * 1./(sum([ (0.0-self.base_material[i][0].V) / (self.base_material[i][0].K_T)  * self.molar_fraction[i] for i in range(self.n_endmembers) ]))
+
+        # Derived properties
+        self.C_v = self.C_p - self.V*temperature*np.power(self.alpha, 2.)*self.K_T
+        self.K_S = self.K_T*self.C_p/self.C_v
+        self.gr = self.alpha*self.K_T*self.V/self.C_v
 
-        # The following are currently just simple molar sums ...
-        # ... when they are corrected, they will be moved up ...
-        self.gr = sum([ self.base_material[i][0].gr * self.molar_fraction[i] for i in range(self.n_endmembers) ])
-        self.K_T = sum([ self.base_material[i][0].K_T * self.molar_fraction[i] for i in range(self.n_endmembers) ])
-        self.K_S = sum([ self.base_material[i][0].K_S * self.molar_fraction[i] for i in range(self.n_endmembers) ])
-        self.C_v = sum([ self.base_material[i][0].C_v * self.molar_fraction[i] for i in range(self.n_endmembers) ])
-        self.alpha = sum([ self.base_material[i][0].alpha * self.molar_fraction[i] for i in range(self.n_endmembers) ])
 
 
     def calcgibbs(self, pressure, temperature, molar_fractions): 



More information about the CIG-COMMITS mailing list