[cig-commits] [commit] update_examples: Bugfix allowing for creation of ideal solutions (5cf9ec9)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Dec 31 13:36:55 PST 2014


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

On branch  : update_examples
Link       : https://github.com/geodynamics/burnman/compare/c7f47cd1cc4dc701d316527d9171bd0fae46e399...5cf9ec929c1478d029b5392fdcb1af28dc6beedc

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

commit 5cf9ec929c1478d029b5392fdcb1af28dc6beedc
Author: Bob Myhill <myhill.bob at gmail.com>
Date:   Wed Dec 31 21:36:36 2014 +0000

    Bugfix allowing for creation of ideal solutions


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

5cf9ec929c1478d029b5392fdcb1af28dc6beedc
 burnman/solidsolution.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/burnman/solidsolution.py b/burnman/solidsolution.py
index 1b785c7..ff90993 100644
--- a/burnman/solidsolution.py
+++ b/burnman/solidsolution.py
@@ -81,9 +81,14 @@ class SolidSolution(Mineral):
         self.partial_gibbs = np.array([self.base_material[i][0].gibbs for i in range(self.n_endmembers)]) + self.excess_partial_gibbs
         self.gibbs= sum([ self.base_material[i][0].gibbs * self.molar_fraction[i] for i in range(self.n_endmembers) ]) + self.excess_gibbs
 
-        self.excess_enthalpy = self.solution_model.excess_enthalpy( pressure, temperature, self.molar_fraction)
-        self.excess_entropy = self.solution_model.excess_entropy( pressure, temperature, self.molar_fraction)
-        self.excess_volume = self.solution_model.excess_volume( pressure, temperature, self.molar_fraction)
+        if self.solution_model.__class__.__name__ == 'IdealSolution':
+            self.excess_enthalpy = 0.
+            self.excess_entropy = 0.
+            self.excess_volume = 0.
+        else:
+            self.excess_enthalpy = self.solution_model.excess_enthalpy( pressure, temperature, self.molar_fraction)
+            self.excess_entropy = self.solution_model.excess_entropy( pressure, temperature, self.molar_fraction)
+            self.excess_volume = self.solution_model.excess_volume( pressure, temperature, self.molar_fraction)
 
         self.H = sum([ self.base_material[i][0].H * self.molar_fraction[i] for i in range(self.n_endmembers) ]) + self.excess_enthalpy
         self.S = sum([ self.base_material[i][0].S * self.molar_fraction[i] for i in range(self.n_endmembers) ]) + self.excess_entropy



More information about the CIG-COMMITS mailing list