[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