[cig-commits] [commit] add_thermodynamic_potentials: Added set_method to solid solution initialisation, added partial gibbs function (d1d528f)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Dec 9 09:57:36 PST 2014


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

On branch  : add_thermodynamic_potentials
Link       : https://github.com/geodynamics/burnman/compare/2e5646d93cedbbf8eae54cc37cffc14e0aa85180...d5ddad03ff9f30f5a4efaddb4e3ec585ea1a7c51

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

commit d1d528fb26e2ab1dfd5ea846490b7d36c9368d7e
Author: Bob Myhill <myhill.bob at gmail.com>
Date:   Sun Oct 5 23:13:11 2014 +0200

    Added set_method to solid solution initialisation, added partial gibbs function


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

d1d528fb26e2ab1dfd5ea846490b7d36c9368d7e
 burnman/solidsolution.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/burnman/solidsolution.py b/burnman/solidsolution.py
index 0c0f19c..5508b06 100644
--- a/burnman/solidsolution.py
+++ b/burnman/solidsolution.py
@@ -36,6 +36,9 @@ class SolidSolution(Mineral):
         # Number of endmembers in the solid solution
         self.n_endmembers=len(base_material)
 
+        for i in range(self.n_endmembers):
+            self.base_material[i][0].set_method(self.base_material[i][0].params['equation_of_state'])
+
     def set_composition( self, molar_fraction ):
         assert(len(self.base_material) == len(molar_fraction))
         assert(sum(molar_fraction) > 0.9999)
@@ -69,3 +72,9 @@ class SolidSolution(Mineral):
 
     def calcgibbs(self, pressure, temperature, molar_fractions): 
         return sum([ self.base_material[i][0].calcgibbs(pressure, temperature) * molar_fractions[i] for i in range(self.n_endmembers) ]) + self.solution_model.excess_gibbs_free_energy( pressure, temperature, molar_fractions)
+
+    def calcpartialgibbsexcesses(self, pressure, temperature, molar_fractions):
+        Hint, Sint, Vint = self.solution_model.non_ideal_interactions(molar_fractions)
+        partialgibbsexcesses=np.empty(len(molar_fractions))
+        partialgibbsexcesses = np.array([0.+R*temperature*self.solution_model.ln_ideal_activities(molar_fractions)[i] + Hint[i] - temperature*Sint[i] + pressure*Vint[i] for i in range(self.n_endmembers)])
+        return partialgibbsexcesses



More information about the CIG-COMMITS mailing list