[cig-commits] [commit] add_thermodynamic_potentials: Comments added to test_process_solidsolution.py (899eb1e)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Tue Dec 9 09:54:23 PST 2014


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

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

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

commit 899eb1ef21f9a5f4e9bda099ecb1ee397ee3cac7
Author: Bob Myhill <myhill.bob at gmail.com>
Date:   Fri Aug 29 22:28:39 2014 +0200

    Comments added to test_process_solidsolution.py


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

899eb1ef21f9a5f4e9bda099ecb1ee397ee3cac7
 burnman/test_process_solidsolution.py | 42 ++++++++++++++++++++++++++++-------
 1 file changed, 34 insertions(+), 8 deletions(-)

diff --git a/burnman/test_process_solidsolution.py b/burnman/test_process_solidsolution.py
index 38c8ad7..ce78a34 100644
--- a/burnman/test_process_solidsolution.py
+++ b/burnman/test_process_solidsolution.py
@@ -1,9 +1,34 @@
 # BurnMan - a lower mantle toolkit
-# Copyright (C) 2012, 2013, Myhill, R., Heister, T., Unterborn, C., Rose, I. and Cottaar, S.
+# Copyright (C) 2012-2014, Myhill, R., Heister, T., Unterborn, C., Rose, I. and Cottaar, S.
 # Released under GPL v2 or later.
 
 # This is a test script which is the precursor to implementing a solid solution BaseClass.
 
+
+'''
+# Inputs
+Solid solution model
+Endmember proportions
+P,T
+
+# Things we can initialise without endmember proportions
+n_sites
+n_elements
+n_endmembers
+alpha
+Wh, Ws, Wv
+array_occupancies
+array_multiplicities
+
+# Endmember proportions needed
+phi
+ideal activities
+occupancies
+
+# P, T needed
+Wtotal / nonideal contribution to gibbs
+'''
+
 import re
 import numpy as np
 from fractions import Fraction
@@ -32,18 +57,18 @@ endmember_proportions = np.array([ 0.5, 0.2, 0.1, 0.2 ])
 # "sites" is a 2D list of sites and the elements which reside on them 
 # "site_occupancies" is a 3D list describing the elemental site occupancies of each endmember 
 # "array_occupancies" is a 2D np.array of site_occupancies, concatenating the 2nd and 3rd dimension
-nsites=base_material[0][1].count('[')
-print 'Number of sites:', nsites
+n_sites=base_material[0][1].count('[')
+print 'Number of sites:', n_sites
 print ''
 
-sites=[[] for i in range(nsites)]
+sites=[[] for i in range(n_sites)]
 site_occupancies=[]
-site_multiplicity=np.empty(shape=(nsites))
+site_multiplicity=np.empty(shape=(n_sites))
 n_elements=0
 for endmember in range(n_endmembers):
-    site_occupancies.append([[0]*len(sites[site]) for site in range(nsites)])
+    site_occupancies.append([[0]*len(sites[site]) for site in range(n_sites)])
     s=re.split(r'\[', base_material[endmember][1])[1:]
-    for site in range(nsites):
+    for site in range(n_sites):
         site_occupancy=re.split(r'\]', s[site])[0]
         mult=re.split('[A-Z][^A-Z]*',re.split(r'\]', s[site])[1])[0]
         if mult == '':
@@ -75,7 +100,7 @@ array_occupancies=np.empty(shape=(n_endmembers,n_elements))
 array_multiplicities=np.empty(shape=(n_elements))
 for endmember in range(n_endmembers):
     n_element=0
-    for site in range(nsites):
+    for site in range(n_sites):
         for element in range(len(site_occupancies[endmember][site])):
             array_occupancies[endmember][n_element]=site_occupancies[endmember][site][element]
             array_multiplicities[n_element]=site_multiplicity[site]
@@ -126,3 +151,4 @@ for i in range(n_endmembers):
 print ''
 print 'Nonideal contribution to gibbs'
 print np.dot(alpha.T,endmember_proportions)*np.dot(phi.T,np.dot(Wh,phi))
+



More information about the CIG-COMMITS mailing list