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

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri Dec 12 18:27:13 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 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