Hello Burnman Community,
I had a question regarding the transformation of a complete set of independent endmembers defined in speciation space (using site fractions) to a set of compositional endmembers (defined by bulk paramters, total apfu without designation to an site) and a set of Q ordering vectors that partitions the bulk paramters as defined in atoms per formula unit between different sites. I have seen the example given in MyHill & Connolly (2021). Unfortunately, when I was looking in the Burnman files I saw that Table 9 which deals with this problem is not reproduced in the Burnman files associated with the paper. I therefore tried it myself in Mathematica using the text of the paper.
- I first make a stochiometry matrix using bulk parameters in atoms per formula units (apfu) (Sind)
(* 13 bulk components: {na, ca, vac, fe, mg, al, fef, Ti, Si, B, OH, F, O} *) (stochiometry matrix)
shrlB = {1, 0, 0, 3, 0, 6, 0, 0, 6, 3, 4, 0, 0};
dravB = {1, 0, 0, 0, 3, 6, 0, 0, 6, 3, 4, 0, 0};
uvitB = {0, 1, 0, 0, 4, 5, 0, 0, 6, 3, 4, 0, 0};
fuvitB = {0, 1, 0, 4, 0, 5, 0, 0, 6, 3, 4, 0, 0};
ffoitB = {0, 0, 1, 2, 0, 7, 0, 0, 6, 3, 4, 0, 0};
olenB = {1, 0, 0, 0, 0, 9, 0 , 0, 6, 3, 1, 0, 3};
dravdisB = {1, 0, 0, 0, 3, 6, 0, 0, 6, 3, 4, 0, 0}; (same bulk as drav)
oxydravB = {1, 0, 0, 0, 2, 7, 0, 0, 6, 3, 3, 0, 1};
FuvitB = {0, 1, 0, 0, 4, 5, 0, 0, 6, 3, 3, 1, 0};
FbuergB = {1, 0, 0, 0, 0, 6, 3, 0, 6, 3, 0, 1, 3};
Tidravite = {1, 0, 0, 0, 1, 6, 0, 2, 6, 3, 0, 0, 4};
BolenB = {1, 0, 0, 0, 0, 9, 0 , 0, 3, 6, 4, 0, 0};
AORB = {0, 0, 1, 0, 0, 10, 0 , 0, 5, 3, 3, 0, 1};
PovB = {1, 0, 0, 0, 2, 0, 7, 0, 6, 3, 3, 0, 1};
sind = {shrlB, dravB, uvitB, fuvitB, ffoitB, olenB, dravdisB,
oxydravB, FuvitB, FbuergB, Tidravite, BolenB, AORB, PovB};
sindT = Transpose[sind];
- I take the Nullspace of this matrix to obtain the reactions between independent endmembers (in speciation space) which in composition space defined by bulk parameters become linear dependent. in my case, this gives me 4 reaction factors
R1 = NullSpace[sindT]((isochemical reactions with indep endmembers))
{{0, -2, -7, 0, 0, 6, 0, 0, 7, -7, 0, 0, 0, 3}, {0, -2, 0, 0, 0, -1,
0, 3, 0, 0, 0, 0, 0, 0}, {0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0}, {-4, 4, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
{-2 “drav” - 7 “Fbuergerite” + 7 “Fuvit” + 6 “olen” + 3 “Pov” - 7 uvit",
-2 “drav” - “olen” + 3 “oxydrav”,
-“drav” + “dravdis”,
4 “drav” + 3 “fuvit” - 4 “shrl” - 3 “uvit”}
- I take the dot product between these reaction vectors in terms of endmembers with the stoichiometry matrix in terms of site fractions. This gives me 4 reaction vectors in terms of site fractions, e.g. my Q ordering vectors.
(* 20 old components: {xnax, xcax, xvx, xfey, xmgy, xaly, xfefy, xTiy, xalz, xmgz, xfez, xfefz, xsit, xalt, xbt, xOHv, xOv, xOHw, xOw, xFw} *)
shrl = {1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0};
drav = {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0};
uvit = {0, 1, 0, 0, 1, 0, 0, 0, (5/6), (1/6), 0, 0, 1, 0, 0, 1, 0, 1, 0, 0};
fuvit = {0, 1, 0, 1, 0, 0, 0, 0, (5/6), 0, (1/6), 0, 1, 0, 0, 1, 0, 1, 0, 0};
ffoit = {0, 0, 1, (2/3), 0, (1/3), 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0};
olen = {1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0};
dravdis = {1, 0, 0, 0, (2/3), (1/3), 0, 0, (5/6), (1/6), 0, 0, 1, 0, 0, 1, 0, 1, 0, 0};
oxydrav = {1, 0, 0, 0, (1/3), (2/3), 0, 0, (5/6), (1/6), 0, 0, 1, 0, 0, 1, 0, 0, 1, 0};
Fuvit = {0, 1, 0, 0, 1, 0, 0, 0, (5/6), (1/6), 0, 0, 1, 0, 0, 1, 0, 0,0, 1};
Fbuergerite = {1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1};
Tidravite = {1, 0, 0, 0, (1/3), 0, 0, (2/3), 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0};
Bolen = {1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, (1/2), 0, (1/2), 1, 0, 1, 0, 0};
AOR = {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, (5/6), (1/6), 0, 1, 0, 0, 1, 0};
Pov = {1, 0, 0, 0, 0, 0, 1, 0, 0, (2/6), 0, (4/6), 1, 0, 0, 1, 0, 0, 1, 0};
Reaction = Dot[R1, c] (crystallographic reaction)
{{0, 0, 0, 0, -2, 6, -4, 0, -3, 1, 0, 2, 0, 0, 0, 1, -1, -3, 3,
0}, {0, 0, 0, 0, -1, 1, 0, 0, -(1/2), 1/2, 0, 0, 0, 0, 0, 1, -1, -3,
3, 0}, {0, 0, 0, 0, -(1/3), 1/3, 0, 0, -(1/6), 1/6, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0}, {0, 0, 0, -1, 1, 0, 0, 0, 0, -(1/2), 1/2, 0, 0, 0,
0, 0, 0, 0, 0, 0}}
The Q vectors seem legitimate to me in the sense that they describe the partitioning of bulk parameters among the sites to reproduce the respective independent endmembers (which are dependent when expressed in bulk parameters). However as the endmember reaction show above some isochemical reaction are between 2 endmembers only, like -“drav” + “dravdis” (rxn 3), and some are between multiple endmembers, e.g. 4 “drav” + 3 “fuvit” - 4 “shrl” - 3 “uvit” (rxn 4).
{6 “xaly” - 3 “xalz” - 4 “xfefy” + 2 “xfefz” - 2 “xmgy” + “xmgz” +
“xOHv” - 3 “xOHw” - “xOv” + 3 “xOw”,
“xaly” - (“xalz”)/2 - “xmgy” + (“xmgz”)/2 + “xOHv” - 3 “xOHw” -
“xOv” + 3 “xOw”,
(“xaly”)/3 - (“xalz”)/6 - (“xmgy”)/3 + (“xmgz”)/6,
-“xfey” + (“xfez”)/2 + “xmgy” - (“xmgz”)/2}
however when I use the Q vectors and the set of composition-independent endmembers to describe a natural mineral formula I obtain relative random numbers sometimes outside the range of [-1 (anti-ordered) and 1 (ordered)]
|Q1|Q2|Q3|Q4|
-4.683868333 -1.020224167 -0.075691389 0.022023333
My question is if this is correct or if the ordering vectors should give values between [-1 and 1]? Do i need to normalize it somewhere? should I only use relationship betwene two endmembers, e.g. like -“drav” + “dravdis”?