[cig-commits] [commit] add_gibbs_energy: Added set_method to solid solution initialisation, added partial gibbs function (00b57f4)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Thu Dec 11 17:12:47 PST 2014
Repository : https://github.com/geodynamics/burnman
On branch : add_gibbs_energy
Link : https://github.com/geodynamics/burnman/compare/0000000000000000000000000000000000000000...2148b324d3e8aa7b527f831eb397590942563008
>---------------------------------------------------------------
commit 00b57f47fc5a9bb30c783843c0a6ebab33d05e7e
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
>---------------------------------------------------------------
00b57f47fc5a9bb30c783843c0a6ebab33d05e7e
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