```python
import numpy as np
import sympy as sym
from sympy.abc import x,y,z,a,b,c
```

# Toy Problem


```python
expression = a*(2*x*y*z + 3*x*y*b + x*y*b*c + 5*x*y*c + x*z + x*z*b*c + x*z*b + x*z*c + x*y*z + x*y*z*b*c + x*y*z*c)/(x*y*z*b*c)
print(sym.count_ops(expression))
expression
```

    42





    a*(b*c*x*y*z + b*c*x*y + b*c*x*z + 3*b*x*y + b*x*z + c*x*y*z + 5*c*x*y + c*x*z + 3*x*y*z + x*z)/(b*c*x*y*z)




```python
exp_expand = sym.expand(expression)
print(sym.count_ops(exp_expand))
expression = exp_expand
exp_expand
```

    46





    a*b*c*x*y*z + a*b*c*x*y + a*b*c*x*z + 3*a*b*x*y + a*b*x*z + a*c*x*y*z + 5*a*c*x*y + a*c*x*z + 3*a*x*y*z + a*x*z




```python
exp_handsimp = a*x*(y*(c*(b + 5) + 3*b) + z*(c*(b*y + b + y + 1) + b + 3*y + 1))
# exp_handsimp = a*x*(y*(2*z + b*(3 + c) + 5*c) + z + z*b*c + z*b + z*c)
sym.count_ops(exp_handsimp)
```




    18




```python
exp_simp = sym.simplify(expression)
print(sym.count_ops(exp_simp))
exp_simp
```

    28





    a*x*(b*c*y*z + b*c*y + b*c*z + 3*b*y + b*z + c*y*z + 5*c*y + c*z + 3*y*z + z)




```python
exp_col = sym.collect(expression, x)
print(sym.count_ops(exp_col))
exp_col
```

    37





    x*(a*b*c*y*z + a*b*c*y + a*b*c*z + 3*a*b*y + a*b*z + a*c*y*z + 5*a*c*y + a*c*z + 3*a*y*z + a*z)




```python
def collect_by_list(expr_in, sort_list):
    expr = sym.expand(expr_in)
    res = expr
    for s in sort_list:
        res = sym.rcollect(res, s)
    return res

def get_symbol_list(expr_in, return_counts=False):
    expr = sym.expand(expr_in)
    syms = {}
    for a in expr.atoms():
        if type(a) is sym.Symbol:
            syms[a] = expr.count(a)
    symlist = list(sorted(syms, key=syms.__getitem__, reverse=True))
    if return_counts:
        countlist = list(sorted(syms.values(), reverse=True))
        return symlist, countlist
    else:
        return symlist

def collect_auto(expr_in, print_ops=False, syms_to_prioritize=[]):
    slist = get_symbol_list(expr_in)
    sort_list = syms_to_prioritize
    for s in slist:
        if s not in syms_to_prioritize:
            sort_list.append(s)
    res = collect_by_list(expr_in, sort_list)
    if print_ops:
        print(sym.count_ops(res))
    return res

def collect_terms_in_fraction(expr_in, terms_to_prioritize=[]):
    numerator, denominator = sym.fraction(expr_in)
    num_simp = collect_auto(numerator, syms_to_prioritize=terms_to_prioritize)
    den_simp = collect_auto(denominator, syms_to_prioritize=terms_to_prioritize)
    return num_simp/den_simp
```


```python
terms_to_prioritize = [z,b,c,y]
full_simp = collect_terms_in_fraction(expression, terms_to_prioritize=terms_to_prioritize)
full_simp
```




    a*(y*(b*(c + 3) + 5*c) + z*(b*(c*(y + 1) + 1) + c*(y + 1) + 3*y + 1))/(b*c*y*z)




```python
e2 = b*c*y + b*c + b + c*y + c + 3*y + 1
collect_auto(e2)
```

    9





    b + c*(b + y*(b + 1) + 1) + 3*y + 1




```python
slist, clist = get_symbol_list(expression, return_counts=True)
print(slist, clist)
expr_srcol = collect_by_list(expression, slist)
print(sym.count_ops(expr_srcol))
expr_srcol
```

    [a, x, z, c, y, b] [10, 10, 7, 6, 6, 5]
    18





    a*x*(y*(3*b + c*(b + 5)) + z*(b + c*(b + y*(b + 1) + 1) + 3*y + 1))



# Real Problem


```python
dKMgO_KMgO = sym.Symbol('dKMgO_KMgO')
dKFeO_KFeO = sym.Symbol('dKFeO_KFeO')
dKSiO2_KSiO2 = sym.Symbol('dKSiO2_KSiO2')
dKMgSiO3_KMgSiO3 = sym.Symbol('dKMgSiO3_KMgSiO3')
dKFeSiO3_KFeSiO3 = sym.Symbol('dKFeSiO3_KFeSiO3')

dM_Mg = sym.Symbol('dM_Mg')
dM_Fe = sym.Symbol('dM_Fe')
dM_Si = sym.Symbol('dM_Si')
dM_O = sym.Symbol('dM_O')
dM_c = sym.Symbol('dM_c')

dM_MgO = sym.Symbol('dM_MgO')
dM_FeO = sym.Symbol('dM_FeO')
dM_SiO2 = sym.Symbol('dM_SiO2')
dM_MgSiO3 = sym.Symbol('dM_MgSiO3')
dM_FeSiO3 = sym.Symbol('dM_FeSiO3')
dM_m = sym.Symbol('dM_m')

M_Mg = sym.Symbol('M_Mg')
M_Fe = sym.Symbol('M_Fe')
M_Si = sym.Symbol('M_Si')
M_O = sym.Symbol('M_O')
M_c = sym.Symbol('M_c')

M_MgO = sym.Symbol('M_MgO')
M_FeO = sym.Symbol('M_FeO')
M_SiO2 = sym.Symbol('M_SiO2')
M_MgSiO3 = sym.Symbol('M_MgSiO3')
M_FeSiO3 = sym.Symbol('M_FeSiO3')
M_m = sym.Symbol('M_m')

terms_to_collect = [dKMgO_KMgO, dKFeO_KFeO, dKSiO2_KSiO2, dKFeSiO3_KFeSiO3, 
                    M_Mg, M_Fe, M_Si, M_O, M_c, 
                    M_MgO, M_FeO, M_SiO2, M_MgSiO3, M_FeSiO3, M_m]
```


```python
sol_dM_c = M_c*(-M_Fe*dKFeO_KFeO*(2*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_m + 3*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si - 2*M_FeO*M_Mg*M_MgSiO3*M_O*M_m + M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2 - 3*M_FeO*M_Mg*M_MgSiO3*M_Si*M_m + M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 2*M_FeO*M_Mg*M_O*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_SiO2*M_m - 2*M_FeO*M_Mg*M_Si*M_SiO2*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_m - M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_MgO*M_O*M_SiO2*M_m + 2*M_FeO*M_MgO*M_Si*M_SiO2*M_m - M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_m - 3*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si + 2*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeSiO3*M_Mg*M_O*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 2*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgO*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_m) + M_FeSiO3*dKFeSiO3_KFeSiO3*(3*M_Fe*M_FeO*M_Mg*M_O*M_Si - 2*M_Fe*M_FeO*M_Mg*M_O*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_m - 3*M_Fe*M_FeO*M_MgO*M_O*M_Si + 2*M_Fe*M_FeO*M_MgO*M_O*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_m - 3*M_Fe*M_FeO*M_MgSiO3*M_O*M_Si + 2*M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_m + 3*M_Fe*M_Mg*M_MgO*M_O*M_Si - 2*M_Fe*M_Mg*M_MgO*M_O*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_Si*M_SiO2 - 5*M_Fe*M_Mg*M_O*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_SiO2*M_m + 2*M_Fe*M_Mg*M_Si*M_SiO2*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgO*M_O*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_SiO2*M_m - 2*M_Fe*M_MgO*M_Si*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgSiO3*M_O*M_Si*M_m - 2*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_Si*M_SiO2*M_m - 3*M_FeO*M_Mg*M_MgO*M_O*M_Si + 2*M_FeO*M_Mg*M_MgO*M_O*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_m - 3*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si + 2*M_FeO*M_Mg*M_MgSiO3*M_O*M_m - M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2 + 3*M_FeO*M_Mg*M_MgSiO3*M_Si*M_m - 3*M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 3*M_FeO*M_Mg*M_O*M_Si*M_m + 3*M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgO*M_O*M_Si*M_m + 3*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgSiO3*M_O*M_Si*M_m) - M_Mg*dKMgO_KMgO*(-3*M_Fe*M_FeO*M_MgSiO3*M_O*M_Si + 2*M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_m + 3*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si - 2*M_Fe*M_FeSiO3*M_MgO*M_O*M_m + M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2 - 3*M_Fe*M_FeSiO3*M_MgO*M_Si*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_m + M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 2*M_Fe*M_MgO*M_O*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_SiO2*M_m - 2*M_Fe*M_MgO*M_Si*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgSiO3*M_O*M_Si*M_m - 2*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_Si*M_SiO2*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_m - M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_MgO*M_O*M_SiO2*M_m + 2*M_FeO*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeO*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_m - M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeSiO3*M_MgO*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_m) + M_MgSiO3*dKMgSiO3_KMgSiO3*(3*M_Fe*M_FeO*M_Mg*M_O*M_Si - 2*M_Fe*M_FeO*M_Mg*M_O*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_m - 3*M_Fe*M_FeO*M_MgO*M_O*M_Si + 2*M_Fe*M_FeO*M_MgO*M_O*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_m - 3*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si + 2*M_Fe*M_FeSiO3*M_MgO*M_O*M_m - M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 3*M_Fe*M_FeSiO3*M_MgO*M_Si*M_m + 3*M_Fe*M_Mg*M_MgO*M_O*M_Si - 2*M_Fe*M_Mg*M_MgO*M_O*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_Si*M_SiO2 - 5*M_Fe*M_Mg*M_O*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_SiO2*M_m + 2*M_Fe*M_Mg*M_Si*M_SiO2*M_m - 3*M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 3*M_Fe*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_m - 3*M_FeO*M_Mg*M_MgO*M_O*M_Si + 2*M_FeO*M_Mg*M_MgO*M_O*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeO*M_Mg*M_O*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_SiO2*M_m - 2*M_FeO*M_Mg*M_Si*M_SiO2*M_m + 3*M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgO*M_O*M_Si*M_m - 3*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si + 2*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeSiO3*M_Mg*M_O*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 2*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_m + 3*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeSiO3*M_MgO*M_O*M_Si*M_m) - M_Si*dKSiO2_KSiO2*(-3*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O - M_Fe*M_FeO*M_FeSiO3*M_Mg*M_SiO2 + M_Fe*M_FeO*M_FeSiO3*M_Mg*M_m + 3*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O + M_Fe*M_FeO*M_FeSiO3*M_MgO*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgO*M_m + 3*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O + M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_m - 3*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O - M_Fe*M_FeO*M_Mg*M_MgSiO3*M_SiO2 + M_Fe*M_FeO*M_Mg*M_MgSiO3*M_m - M_Fe*M_FeO*M_Mg*M_O*M_SiO2 + M_Fe*M_FeO*M_Mg*M_SiO2*M_m + 3*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O + M_Fe*M_FeO*M_MgO*M_MgSiO3*M_SiO2 - M_Fe*M_FeO*M_MgO*M_MgSiO3*M_m + M_Fe*M_FeO*M_MgO*M_O*M_SiO2 - M_Fe*M_FeO*M_MgO*M_SiO2*M_m + M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 - M_Fe*M_FeO*M_MgSiO3*M_SiO2*M_m - 3*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O - M_Fe*M_FeSiO3*M_Mg*M_MgO*M_SiO2 + M_Fe*M_FeSiO3*M_Mg*M_MgO*M_m + 5*M_Fe*M_FeSiO3*M_Mg*M_O*M_m + M_Fe*M_FeSiO3*M_Mg*M_SiO2*M_m + 3*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O + M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_SiO2 - M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_m - 5*M_Fe*M_FeSiO3*M_MgO*M_O*M_m - M_Fe*M_FeSiO3*M_MgO*M_SiO2*M_m - 5*M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_m - M_Fe*M_FeSiO3*M_MgSiO3*M_SiO2*M_m - 3*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O - M_Fe*M_Mg*M_MgO*M_MgSiO3*M_SiO2 + M_Fe*M_Mg*M_MgO*M_MgSiO3*M_m - M_Fe*M_Mg*M_MgO*M_O*M_SiO2 + M_Fe*M_Mg*M_MgO*M_SiO2*M_m + 5*M_Fe*M_Mg*M_MgSiO3*M_O*M_m + M_Fe*M_Mg*M_MgSiO3*M_SiO2*M_m + 3*M_Fe*M_Mg*M_O*M_SiO2*M_m + 3*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 3*M_Fe*M_MgO*M_MgSiO3*M_O*M_m - 3*M_Fe*M_MgO*M_O*M_SiO2*M_m - 3*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O + M_FeO*M_FeSiO3*M_Mg*M_MgO*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgO*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O + M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 3*M_FeO*M_FeSiO3*M_Mg*M_O*M_m - 3*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 3*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 3*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 3*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m + 3*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O + M_FeO*M_Mg*M_MgO*M_MgSiO3*M_SiO2 - M_FeO*M_Mg*M_MgO*M_MgSiO3*M_m + M_FeO*M_Mg*M_MgO*M_O*M_SiO2 - M_FeO*M_Mg*M_MgO*M_SiO2*M_m - 5*M_FeO*M_Mg*M_MgSiO3*M_O*M_m - M_FeO*M_Mg*M_MgSiO3*M_SiO2*M_m - 3*M_FeO*M_Mg*M_O*M_SiO2*M_m - 3*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 3*M_FeO*M_MgO*M_MgSiO3*M_O*M_m + 3*M_FeO*M_MgO*M_O*M_SiO2*M_m + 3*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 3*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O + M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_SiO2 - M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_m + M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 - M_FeSiO3*M_Mg*M_MgO*M_SiO2*M_m - 5*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_m - M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2*M_m - 3*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 3*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 3*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m + 3*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 3*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m))/(-9*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O*M_Si + 4*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 + M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O*M_c - 4*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O*M_m + M_Fe*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2 + 4*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_Si*M_c - M_Fe*M_FeO*M_FeSiO3*M_Mg*M_Si*M_m - M_Fe*M_FeO*M_FeSiO3*M_Mg*M_SiO2*M_c + M_Fe*M_FeO*M_FeSiO3*M_Mg*M_c*M_m + 9*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O*M_Si - 4*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O*M_c + 4*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - M_Fe*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2 - 4*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_Si*M_c + M_Fe*M_FeO*M_FeSiO3*M_MgO*M_Si*M_m + M_Fe*M_FeO*M_FeSiO3*M_MgO*M_SiO2*M_c - M_Fe*M_FeO*M_FeSiO3*M_MgO*M_c*M_m + 9*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_Si - 4*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_c + 4*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m - M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2 - 4*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_c + M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_m + M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_SiO2*M_c - M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_c*M_m - 9*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si + 4*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O*M_c - 4*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O*M_m + M_Fe*M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2 + 4*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_Si*M_c - M_Fe*M_FeO*M_Mg*M_MgSiO3*M_Si*M_m - M_Fe*M_FeO*M_Mg*M_MgSiO3*M_SiO2*M_c + M_Fe*M_FeO*M_Mg*M_MgSiO3*M_c*M_m - M_Fe*M_FeO*M_Mg*M_O*M_Si*M_SiO2 - M_Fe*M_FeO*M_Mg*M_O*M_Si*M_c + 4*M_Fe*M_FeO*M_Mg*M_O*M_Si*M_m + M_Fe*M_FeO*M_Mg*M_O*M_SiO2*M_c - 4*M_Fe*M_FeO*M_Mg*M_O*M_SiO2*M_m + M_Fe*M_FeO*M_Mg*M_Si*M_SiO2*M_c - M_Fe*M_FeO*M_Mg*M_Si*M_SiO2*M_m - M_Fe*M_FeO*M_Mg*M_Si*M_c*M_m + M_Fe*M_FeO*M_Mg*M_SiO2*M_c*M_m + 9*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O*M_Si - 4*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 - M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O*M_c + 4*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O*M_m - M_Fe*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 4*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_Si*M_c + M_Fe*M_FeO*M_MgO*M_MgSiO3*M_Si*M_m + M_Fe*M_FeO*M_MgO*M_MgSiO3*M_SiO2*M_c - M_Fe*M_FeO*M_MgO*M_MgSiO3*M_c*M_m + M_Fe*M_FeO*M_MgO*M_O*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgO*M_O*M_Si*M_c - 4*M_Fe*M_FeO*M_MgO*M_O*M_Si*M_m - M_Fe*M_FeO*M_MgO*M_O*M_SiO2*M_c + 4*M_Fe*M_FeO*M_MgO*M_O*M_SiO2*M_m - M_Fe*M_FeO*M_MgO*M_Si*M_SiO2*M_c + M_Fe*M_FeO*M_MgO*M_Si*M_SiO2*M_m + M_Fe*M_FeO*M_MgO*M_Si*M_c*M_m - M_Fe*M_FeO*M_MgO*M_SiO2*M_c*M_m + M_Fe*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_O*M_Si*M_c - 4*M_Fe*M_FeO*M_MgSiO3*M_O*M_Si*M_m - M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2*M_c + 4*M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m - M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_c + M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_m + M_Fe*M_FeO*M_MgSiO3*M_Si*M_c*M_m - M_Fe*M_FeO*M_MgSiO3*M_SiO2*M_c*M_m - 9*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si + 4*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 + M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O*M_c - 4*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O*M_m + M_Fe*M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 + 4*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_Si*M_c - M_Fe*M_FeSiO3*M_Mg*M_MgO*M_Si*M_m - M_Fe*M_FeSiO3*M_Mg*M_MgO*M_SiO2*M_c + M_Fe*M_FeSiO3*M_Mg*M_MgO*M_c*M_m - 4*M_Fe*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 - M_Fe*M_FeSiO3*M_Mg*M_O*M_Si*M_c + 25*M_Fe*M_FeSiO3*M_Mg*M_O*M_Si*M_m - 4*M_Fe*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - M_Fe*M_FeSiO3*M_Mg*M_O*M_c*M_m + M_Fe*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_c - M_Fe*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_m - 9*M_Fe*M_FeSiO3*M_Mg*M_Si*M_c*M_m + M_Fe*M_FeSiO3*M_Mg*M_SiO2*M_c*M_m + 9*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_Si - 4*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 - M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_c + 4*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m - M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 4*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_c + M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_m + M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_SiO2*M_c - M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_c*M_m + 4*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 + M_Fe*M_FeSiO3*M_MgO*M_O*M_Si*M_c - 25*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si*M_m + 4*M_Fe*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + M_Fe*M_FeSiO3*M_MgO*M_O*M_c*M_m - M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_c + M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_m + 9*M_Fe*M_FeSiO3*M_MgO*M_Si*M_c*M_m - M_Fe*M_FeSiO3*M_MgO*M_SiO2*M_c*M_m + 4*M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 + M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_c - 25*M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + 4*M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m + M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_c*M_m - M_Fe*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_c + M_Fe*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_m + 9*M_Fe*M_FeSiO3*M_MgSiO3*M_Si*M_c*M_m - M_Fe*M_FeSiO3*M_MgSiO3*M_SiO2*M_c*M_m - 9*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O*M_Si + 4*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O*M_c - 4*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O*M_m + M_Fe*M_Mg*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 4*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_Si*M_c - M_Fe*M_Mg*M_MgO*M_MgSiO3*M_Si*M_m - M_Fe*M_Mg*M_MgO*M_MgSiO3*M_SiO2*M_c + M_Fe*M_Mg*M_MgO*M_MgSiO3*M_c*M_m - M_Fe*M_Mg*M_MgO*M_O*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgO*M_O*M_Si*M_c + 4*M_Fe*M_Mg*M_MgO*M_O*M_Si*M_m + M_Fe*M_Mg*M_MgO*M_O*M_SiO2*M_c - 4*M_Fe*M_Mg*M_MgO*M_O*M_SiO2*M_m + M_Fe*M_Mg*M_MgO*M_Si*M_SiO2*M_c - M_Fe*M_Mg*M_MgO*M_Si*M_SiO2*M_m - M_Fe*M_Mg*M_MgO*M_Si*M_c*M_m + M_Fe*M_Mg*M_MgO*M_SiO2*M_c*M_m - 4*M_Fe*M_Mg*M_MgSiO3*M_O*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgSiO3*M_O*M_Si*M_c + 25*M_Fe*M_Mg*M_MgSiO3*M_O*M_Si*M_m - 4*M_Fe*M_Mg*M_MgSiO3*M_O*M_SiO2*M_m - M_Fe*M_Mg*M_MgSiO3*M_O*M_c*M_m + M_Fe*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_c - M_Fe*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_m - 9*M_Fe*M_Mg*M_MgSiO3*M_Si*M_c*M_m + M_Fe*M_Mg*M_MgSiO3*M_SiO2*M_c*M_m - M_Fe*M_Mg*M_O*M_Si*M_SiO2*M_c + 9*M_Fe*M_Mg*M_O*M_Si*M_SiO2*M_m + M_Fe*M_Mg*M_O*M_Si*M_c*M_m - M_Fe*M_Mg*M_O*M_SiO2*M_c*M_m - 4*M_Fe*M_Mg*M_Si*M_SiO2*M_c*M_m + 9*M_Fe*M_MgO*M_MgSiO3*M_O*M_Si*M_SiO2 - 9*M_Fe*M_MgO*M_MgSiO3*M_O*M_Si*M_m - M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2*M_c + M_Fe*M_MgO*M_MgSiO3*M_O*M_c*M_m - 4*M_Fe*M_MgO*M_MgSiO3*M_Si*M_SiO2*M_c + 4*M_Fe*M_MgO*M_MgSiO3*M_Si*M_c*M_m + M_Fe*M_MgO*M_O*M_Si*M_SiO2*M_c - 9*M_Fe*M_MgO*M_O*M_Si*M_SiO2*M_m - M_Fe*M_MgO*M_O*M_Si*M_c*M_m + M_Fe*M_MgO*M_O*M_SiO2*M_c*M_m + 4*M_Fe*M_MgO*M_Si*M_SiO2*M_c*M_m + M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2*M_c - 9*M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2*M_m - M_Fe*M_MgSiO3*M_O*M_Si*M_c*M_m + M_Fe*M_MgSiO3*M_O*M_SiO2*M_c*M_m + 4*M_Fe*M_MgSiO3*M_Si*M_SiO2*M_c*M_m + 9*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si - 4*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O*M_c + 4*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O*M_m - M_FeO*M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 - 4*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_Si*M_c + M_FeO*M_FeSiO3*M_Mg*M_MgO*M_Si*M_m + M_FeO*M_FeSiO3*M_Mg*M_MgO*M_SiO2*M_c - M_FeO*M_FeSiO3*M_Mg*M_MgO*M_c*M_m + 9*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_Si - 4*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_c + 4*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_m - M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_SiO2 - 4*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_c + M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_m + M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2*M_c - M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_c*M_m + 9*M_FeO*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 - 9*M_FeO*M_FeSiO3*M_Mg*M_O*M_Si*M_m - M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2*M_c + M_FeO*M_FeSiO3*M_Mg*M_O*M_c*M_m - 4*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_c + 4*M_FeO*M_FeSiO3*M_Mg*M_Si*M_c*M_m - 9*M_FeO*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 + 9*M_FeO*M_FeSiO3*M_MgO*M_O*M_Si*M_m + M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2*M_c - M_FeO*M_FeSiO3*M_MgO*M_O*M_c*M_m + 4*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_c - 4*M_FeO*M_FeSiO3*M_MgO*M_Si*M_c*M_m - 9*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 + 9*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_c - M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_c*M_m + 4*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_c - 4*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_c*M_m + 9*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O*M_Si - 4*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O*M_SiO2 - M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O*M_c + 4*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O*M_m - M_FeO*M_Mg*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 4*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_Si*M_c + M_FeO*M_Mg*M_MgO*M_MgSiO3*M_Si*M_m + M_FeO*M_Mg*M_MgO*M_MgSiO3*M_SiO2*M_c - M_FeO*M_Mg*M_MgO*M_MgSiO3*M_c*M_m + M_FeO*M_Mg*M_MgO*M_O*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgO*M_O*M_Si*M_c - 4*M_FeO*M_Mg*M_MgO*M_O*M_Si*M_m - M_FeO*M_Mg*M_MgO*M_O*M_SiO2*M_c + 4*M_FeO*M_Mg*M_MgO*M_O*M_SiO2*M_m - M_FeO*M_Mg*M_MgO*M_Si*M_SiO2*M_c + M_FeO*M_Mg*M_MgO*M_Si*M_SiO2*M_m + M_FeO*M_Mg*M_MgO*M_Si*M_c*M_m - M_FeO*M_Mg*M_MgO*M_SiO2*M_c*M_m + 4*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgSiO3*M_O*M_Si*M_c - 25*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si*M_m + 4*M_FeO*M_Mg*M_MgSiO3*M_O*M_SiO2*M_m + M_FeO*M_Mg*M_MgSiO3*M_O*M_c*M_m - M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_c + M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_m + 9*M_FeO*M_Mg*M_MgSiO3*M_Si*M_c*M_m - M_FeO*M_Mg*M_MgSiO3*M_SiO2*M_c*M_m + M_FeO*M_Mg*M_O*M_Si*M_SiO2*M_c - 9*M_FeO*M_Mg*M_O*M_Si*M_SiO2*M_m - M_FeO*M_Mg*M_O*M_Si*M_c*M_m + M_FeO*M_Mg*M_O*M_SiO2*M_c*M_m + 4*M_FeO*M_Mg*M_Si*M_SiO2*M_c*M_m - 9*M_FeO*M_MgO*M_MgSiO3*M_O*M_Si*M_SiO2 + 9*M_FeO*M_MgO*M_MgSiO3*M_O*M_Si*M_m + M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2*M_c - M_FeO*M_MgO*M_MgSiO3*M_O*M_c*M_m + 4*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2*M_c - 4*M_FeO*M_MgO*M_MgSiO3*M_Si*M_c*M_m - M_FeO*M_MgO*M_O*M_Si*M_SiO2*M_c + 9*M_FeO*M_MgO*M_O*M_Si*M_SiO2*M_m + M_FeO*M_MgO*M_O*M_Si*M_c*M_m - M_FeO*M_MgO*M_O*M_SiO2*M_c*M_m - 4*M_FeO*M_MgO*M_Si*M_SiO2*M_c*M_m - M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2*M_c + 9*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2*M_m + M_FeO*M_MgSiO3*M_O*M_Si*M_c*M_m - M_FeO*M_MgSiO3*M_O*M_SiO2*M_c*M_m - 4*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_c*M_m + 9*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O*M_Si - 4*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O*M_SiO2 - M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O*M_c + 4*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O*M_m - M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 4*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_Si*M_c + M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_Si*M_m + M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_SiO2*M_c - M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_c*M_m + M_FeSiO3*M_Mg*M_MgO*M_O*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_O*M_Si*M_c - 4*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si*M_m - M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2*M_c + 4*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2*M_m - M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2*M_c + M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2*M_m + M_FeSiO3*M_Mg*M_MgO*M_Si*M_c*M_m - M_FeSiO3*M_Mg*M_MgO*M_SiO2*M_c*M_m + 4*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_Si*M_c - 25*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_Si*M_m + 4*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_SiO2*M_m + M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_c*M_m - M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_c + M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_SiO2*M_m + 9*M_FeSiO3*M_Mg*M_MgSiO3*M_Si*M_c*M_m - M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2*M_c*M_m + M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2*M_c - 9*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2*M_m - M_FeSiO3*M_Mg*M_O*M_Si*M_c*M_m + M_FeSiO3*M_Mg*M_O*M_SiO2*M_c*M_m + 4*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_c*M_m - 9*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_Si*M_SiO2 + 9*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_Si*M_m + M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2*M_c - M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_c*M_m + 4*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2*M_c - 4*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_c*M_m - M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2*M_c + 9*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2*M_m + M_FeSiO3*M_MgO*M_O*M_Si*M_c*M_m - M_FeSiO3*M_MgO*M_O*M_SiO2*M_c*M_m - 4*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_c*M_m - M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2*M_c + 9*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2*M_m + M_FeSiO3*M_MgSiO3*M_O*M_Si*M_c*M_m - M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_c*M_m - 4*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_c*M_m)
sol_dM_c_numerator = M_c*(-M_Fe*dKFeO_KFeO*(2*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_m + 3*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si - 2*M_FeO*M_Mg*M_MgSiO3*M_O*M_m + M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2 - 3*M_FeO*M_Mg*M_MgSiO3*M_Si*M_m + M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 2*M_FeO*M_Mg*M_O*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_SiO2*M_m - 2*M_FeO*M_Mg*M_Si*M_SiO2*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_m - M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_MgO*M_O*M_SiO2*M_m + 2*M_FeO*M_MgO*M_Si*M_SiO2*M_m - M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_m - 3*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si + 2*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeSiO3*M_Mg*M_O*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 2*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgO*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_m) + M_FeSiO3*dKFeSiO3_KFeSiO3*(3*M_Fe*M_FeO*M_Mg*M_O*M_Si - 2*M_Fe*M_FeO*M_Mg*M_O*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_m - 3*M_Fe*M_FeO*M_MgO*M_O*M_Si + 2*M_Fe*M_FeO*M_MgO*M_O*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_m - 3*M_Fe*M_FeO*M_MgSiO3*M_O*M_Si + 2*M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_m + 3*M_Fe*M_Mg*M_MgO*M_O*M_Si - 2*M_Fe*M_Mg*M_MgO*M_O*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_Si*M_SiO2 - 5*M_Fe*M_Mg*M_O*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_SiO2*M_m + 2*M_Fe*M_Mg*M_Si*M_SiO2*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgO*M_O*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_SiO2*M_m - 2*M_Fe*M_MgO*M_Si*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgSiO3*M_O*M_Si*M_m - 2*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_Si*M_SiO2*M_m - 3*M_FeO*M_Mg*M_MgO*M_O*M_Si + 2*M_FeO*M_Mg*M_MgO*M_O*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_m - 3*M_FeO*M_Mg*M_MgSiO3*M_O*M_Si + 2*M_FeO*M_Mg*M_MgSiO3*M_O*M_m - M_FeO*M_Mg*M_MgSiO3*M_Si*M_SiO2 + 3*M_FeO*M_Mg*M_MgSiO3*M_Si*M_m - 3*M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 3*M_FeO*M_Mg*M_O*M_Si*M_m + 3*M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgO*M_O*M_Si*M_m + 3*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgSiO3*M_O*M_Si*M_m) - M_Mg*dKMgO_KMgO*(-3*M_Fe*M_FeO*M_MgSiO3*M_O*M_Si + 2*M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgSiO3*M_Si*M_m + 3*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si - 2*M_Fe*M_FeSiO3*M_MgO*M_O*M_m + M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2 - 3*M_Fe*M_FeSiO3*M_MgO*M_Si*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_O*M_m + 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_SiO2 - 2*M_Fe*M_MgO*M_MgSiO3*M_Si*M_m + M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 2*M_Fe*M_MgO*M_O*M_Si*M_m - 2*M_Fe*M_MgO*M_O*M_SiO2*M_m - 2*M_Fe*M_MgO*M_Si*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_O*M_Si*M_SiO2 + 5*M_Fe*M_MgSiO3*M_O*M_Si*M_m - 2*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m - 2*M_Fe*M_MgSiO3*M_Si*M_SiO2*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgO*M_Si*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m - 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_FeSiO3*M_MgSiO3*M_Si*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeO*M_MgO*M_MgSiO3*M_Si*M_m - M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeO*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_MgO*M_O*M_SiO2*M_m + 2*M_FeO*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeO*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeO*M_MgSiO3*M_Si*M_SiO2*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m - 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_SiO2 + 2*M_FeSiO3*M_MgO*M_MgSiO3*M_Si*M_m - M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 2*M_FeSiO3*M_MgO*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgO*M_Si*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_SiO2 - 5*M_FeSiO3*M_MgSiO3*M_O*M_Si*M_m + 2*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m + 2*M_FeSiO3*M_MgSiO3*M_Si*M_SiO2*M_m) + M_MgSiO3*dKMgSiO3_KMgSiO3*(3*M_Fe*M_FeO*M_Mg*M_O*M_Si - 2*M_Fe*M_FeO*M_Mg*M_O*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_SiO2 - M_Fe*M_FeO*M_Mg*M_Si*M_m - 3*M_Fe*M_FeO*M_MgO*M_O*M_Si + 2*M_Fe*M_FeO*M_MgO*M_O*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_SiO2 + M_Fe*M_FeO*M_MgO*M_Si*M_m - 3*M_Fe*M_FeSiO3*M_MgO*M_O*M_Si + 2*M_Fe*M_FeSiO3*M_MgO*M_O*M_m - M_Fe*M_FeSiO3*M_MgO*M_Si*M_SiO2 + 3*M_Fe*M_FeSiO3*M_MgO*M_Si*M_m + 3*M_Fe*M_Mg*M_MgO*M_O*M_Si - 2*M_Fe*M_Mg*M_MgO*M_O*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_SiO2 - M_Fe*M_Mg*M_MgO*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_Si*M_SiO2 - 5*M_Fe*M_Mg*M_O*M_Si*M_m + 2*M_Fe*M_Mg*M_O*M_SiO2*M_m + 2*M_Fe*M_Mg*M_Si*M_SiO2*M_m - 3*M_Fe*M_MgO*M_O*M_Si*M_SiO2 + 3*M_Fe*M_MgO*M_O*M_Si*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_O*M_m + 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_SiO2 - 2*M_FeO*M_FeSiO3*M_Mg*M_Si*M_m - 3*M_FeO*M_Mg*M_MgO*M_O*M_Si + 2*M_FeO*M_Mg*M_MgO*M_O*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeO*M_Mg*M_MgO*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeO*M_Mg*M_O*M_Si*M_m - 2*M_FeO*M_Mg*M_O*M_SiO2*M_m - 2*M_FeO*M_Mg*M_Si*M_SiO2*M_m + 3*M_FeO*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeO*M_MgO*M_O*M_Si*M_m - 3*M_FeSiO3*M_Mg*M_MgO*M_O*M_Si + 2*M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_SiO2 + M_FeSiO3*M_Mg*M_MgO*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_Si*M_SiO2 + 5*M_FeSiO3*M_Mg*M_O*M_Si*M_m - 2*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 2*M_FeSiO3*M_Mg*M_Si*M_SiO2*M_m + 3*M_FeSiO3*M_MgO*M_O*M_Si*M_SiO2 - 3*M_FeSiO3*M_MgO*M_O*M_Si*M_m) - M_Si*dKSiO2_KSiO2*(-3*M_Fe*M_FeO*M_FeSiO3*M_Mg*M_O - M_Fe*M_FeO*M_FeSiO3*M_Mg*M_SiO2 + M_Fe*M_FeO*M_FeSiO3*M_Mg*M_m + 3*M_Fe*M_FeO*M_FeSiO3*M_MgO*M_O + M_Fe*M_FeO*M_FeSiO3*M_MgO*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgO*M_m + 3*M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_O + M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_SiO2 - M_Fe*M_FeO*M_FeSiO3*M_MgSiO3*M_m - 3*M_Fe*M_FeO*M_Mg*M_MgSiO3*M_O - M_Fe*M_FeO*M_Mg*M_MgSiO3*M_SiO2 + M_Fe*M_FeO*M_Mg*M_MgSiO3*M_m - M_Fe*M_FeO*M_Mg*M_O*M_SiO2 + M_Fe*M_FeO*M_Mg*M_SiO2*M_m + 3*M_Fe*M_FeO*M_MgO*M_MgSiO3*M_O + M_Fe*M_FeO*M_MgO*M_MgSiO3*M_SiO2 - M_Fe*M_FeO*M_MgO*M_MgSiO3*M_m + M_Fe*M_FeO*M_MgO*M_O*M_SiO2 - M_Fe*M_FeO*M_MgO*M_SiO2*M_m + M_Fe*M_FeO*M_MgSiO3*M_O*M_SiO2 - M_Fe*M_FeO*M_MgSiO3*M_SiO2*M_m - 3*M_Fe*M_FeSiO3*M_Mg*M_MgO*M_O - M_Fe*M_FeSiO3*M_Mg*M_MgO*M_SiO2 + M_Fe*M_FeSiO3*M_Mg*M_MgO*M_m + 5*M_Fe*M_FeSiO3*M_Mg*M_O*M_m + M_Fe*M_FeSiO3*M_Mg*M_SiO2*M_m + 3*M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_O + M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_SiO2 - M_Fe*M_FeSiO3*M_MgO*M_MgSiO3*M_m - 5*M_Fe*M_FeSiO3*M_MgO*M_O*M_m - M_Fe*M_FeSiO3*M_MgO*M_SiO2*M_m - 5*M_Fe*M_FeSiO3*M_MgSiO3*M_O*M_m - M_Fe*M_FeSiO3*M_MgSiO3*M_SiO2*M_m - 3*M_Fe*M_Mg*M_MgO*M_MgSiO3*M_O - M_Fe*M_Mg*M_MgO*M_MgSiO3*M_SiO2 + M_Fe*M_Mg*M_MgO*M_MgSiO3*M_m - M_Fe*M_Mg*M_MgO*M_O*M_SiO2 + M_Fe*M_Mg*M_MgO*M_SiO2*M_m + 5*M_Fe*M_Mg*M_MgSiO3*M_O*M_m + M_Fe*M_Mg*M_MgSiO3*M_SiO2*M_m + 3*M_Fe*M_Mg*M_O*M_SiO2*M_m + 3*M_Fe*M_MgO*M_MgSiO3*M_O*M_SiO2 - 3*M_Fe*M_MgO*M_MgSiO3*M_O*M_m - 3*M_Fe*M_MgO*M_O*M_SiO2*M_m - 3*M_Fe*M_MgSiO3*M_O*M_SiO2*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_MgO*M_O + M_FeO*M_FeSiO3*M_Mg*M_MgO*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgO*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_O + M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2 - M_FeO*M_FeSiO3*M_Mg*M_MgSiO3*M_m + 3*M_FeO*M_FeSiO3*M_Mg*M_O*M_SiO2 - 3*M_FeO*M_FeSiO3*M_Mg*M_O*M_m - 3*M_FeO*M_FeSiO3*M_MgO*M_O*M_SiO2 + 3*M_FeO*M_FeSiO3*M_MgO*M_O*M_m - 3*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_SiO2 + 3*M_FeO*M_FeSiO3*M_MgSiO3*M_O*M_m + 3*M_FeO*M_Mg*M_MgO*M_MgSiO3*M_O + M_FeO*M_Mg*M_MgO*M_MgSiO3*M_SiO2 - M_FeO*M_Mg*M_MgO*M_MgSiO3*M_m + M_FeO*M_Mg*M_MgO*M_O*M_SiO2 - M_FeO*M_Mg*M_MgO*M_SiO2*M_m - 5*M_FeO*M_Mg*M_MgSiO3*M_O*M_m - M_FeO*M_Mg*M_MgSiO3*M_SiO2*M_m - 3*M_FeO*M_Mg*M_O*M_SiO2*M_m - 3*M_FeO*M_MgO*M_MgSiO3*M_O*M_SiO2 + 3*M_FeO*M_MgO*M_MgSiO3*M_O*M_m + 3*M_FeO*M_MgO*M_O*M_SiO2*M_m + 3*M_FeO*M_MgSiO3*M_O*M_SiO2*M_m + 3*M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_O + M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_SiO2 - M_FeSiO3*M_Mg*M_MgO*M_MgSiO3*M_m + M_FeSiO3*M_Mg*M_MgO*M_O*M_SiO2 - M_FeSiO3*M_Mg*M_MgO*M_SiO2*M_m - 5*M_FeSiO3*M_Mg*M_MgSiO3*M_O*M_m - M_FeSiO3*M_Mg*M_MgSiO3*M_SiO2*M_m - 3*M_FeSiO3*M_Mg*M_O*M_SiO2*M_m - 3*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_SiO2 + 3*M_FeSiO3*M_MgO*M_MgSiO3*M_O*M_m + 3*M_FeSiO3*M_MgO*M_O*M_SiO2*M_m + 3*M_FeSiO3*M_MgSiO3*M_O*M_SiO2*M_m))
```


```python
sol_scol = collect_auto(sol_dM_c_numerator)
```

    752



```python
sol_scol
```




    M_c*(M_O*(M_Fe*(M_FeO*(-2*M_MgO*M_SiO2*M_m*dKFeO_KFeO + M_MgSiO3*(-2*M_MgO*M_m*dKFeO_KFeO + M_SiO2*(M_MgO*(2*dKFeO_KFeO + 2*dKMgSiO3_KMgSiO3) - 2*M_m*dKFeO_KFeO))) + M_FeSiO3*(M_MgO*(-2*M_FeO*M_m*dKFeO_KFeO + M_SiO2*(M_FeO*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3) + M_m*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3))) + M_MgSiO3*(M_SiO2*(M_FeO*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3) + M_MgO*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3) + M_m*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3)) + M_m*(-2*M_FeO*dKFeO_KFeO + M_MgO*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3 + 2*dKMgSiO3_KMgSiO3)))) + M_Mg*(M_FeSiO3*(M_SiO2*(M_FeO*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3) + M_MgO*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3) + M_m*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3)) + M_m*(2*M_FeO*dKFeO_KFeO + 2*M_MgO*dKMgO_KMgO)) + M_MgSiO3*(M_SiO2*(M_FeO*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3) + M_MgO*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3) + M_m*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3)) + M_m*(2*M_FeO*dKFeO_KFeO + 2*M_MgO*dKMgO_KMgO)) + M_SiO2*M_m*(2*M_FeO*dKFeO_KFeO + 2*M_MgO*dKMgO_KMgO))) + M_Mg*(M_FeO*(-2*M_MgO*M_SiO2*M_m*dKMgO_KMgO + M_MgSiO3*(-2*M_MgO*M_m*dKMgO_KMgO + M_SiO2*(M_MgO*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3) + M_m*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3)))) + M_FeSiO3*(M_MgO*(-2*M_FeO*M_m*dKMgO_KMgO + M_SiO2*(M_FeO*(2*dKFeSiO3_KFeSiO3 + 2*dKMgO_KMgO) - 2*M_m*dKMgO_KMgO)) + M_MgSiO3*(M_SiO2*(M_FeO*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3) + M_MgO*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3) + M_m*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3)) + M_m*(M_FeO*(2*dKFeSiO3_KFeSiO3 - 2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3) - 2*M_MgO*dKMgO_KMgO))))) + M_Si*(M_Fe*(M_FeO*(M_MgO*M_SiO2*M_m*(-2*dKFeO_KFeO + dKSiO2_KSiO2) + M_MgSiO3*(M_MgO*M_m*(-2*dKFeO_KFeO + dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2) + M_SiO2*(M_MgO*(2*dKFeO_KFeO + dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_m*(-2*dKFeO_KFeO + dKSiO2_KSiO2)))) + M_FeSiO3*(M_MgO*(M_FeO*M_m*(-2*dKFeO_KFeO + dKFeSiO3_KFeSiO3 + dKSiO2_KSiO2) + M_SiO2*(M_FeO*(2*dKFeO_KFeO + dKFeSiO3_KFeSiO3 - dKSiO2_KSiO2) + M_m*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3 + dKSiO2_KSiO2))) + M_MgSiO3*(M_SiO2*(M_FeO*(2*dKFeO_KFeO + dKFeSiO3_KFeSiO3 - dKSiO2_KSiO2) + M_MgO*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3 - dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_m*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3 + dKSiO2_KSiO2)) + M_m*(M_FeO*(-2*dKFeO_KFeO + dKFeSiO3_KFeSiO3 + dKSiO2_KSiO2) + M_MgO*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3 + 3*dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2)))) + M_Mg*(M_FeSiO3*(M_SiO2*(M_FeO*(-2*dKFeO_KFeO - dKFeSiO3_KFeSiO3 + dKSiO2_KSiO2) + M_MgO*(-dKFeO_KFeO - dKFeSiO3_KFeSiO3 - dKMgO_KMgO + dKSiO2_KSiO2) + M_m*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3 - dKSiO2_KSiO2)) + M_m*(M_FeO*(2*dKFeO_KFeO - dKFeSiO3_KFeSiO3 - dKSiO2_KSiO2) + M_MgO*(-dKFeO_KFeO - dKFeSiO3_KFeSiO3 + 3*dKMgO_KMgO - dKSiO2_KSiO2))) + M_MgSiO3*(M_SiO2*(M_FeO*(-dKFeO_KFeO - dKMgO_KMgO - dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2) + M_MgO*(-2*dKMgO_KMgO - dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2) + M_m*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2)) + M_m*(M_FeO*(3*dKFeO_KFeO - dKMgO_KMgO - dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_MgO*(2*dKMgO_KMgO - dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2))) + M_O*(M_FeSiO3*(M_FeO*(3*dKFeSiO3_KFeSiO3 + 3*dKSiO2_KSiO2) + M_MgO*(3*dKFeO_KFeO + 3*dKFeSiO3_KFeSiO3 - 3*dKMgO_KMgO + 3*dKSiO2_KSiO2) + M_SiO2*(2*dKFeO_KFeO + 2*dKFeSiO3_KFeSiO3) + M_m*(-5*dKFeO_KFeO - 5*dKFeSiO3_KFeSiO3 - 5*dKSiO2_KSiO2)) + M_MgSiO3*(M_FeO*(-3*dKFeO_KFeO + 3*dKMgO_KMgO + 3*dKMgSiO3_KMgSiO3 + 3*dKSiO2_KSiO2) + M_MgO*(3*dKMgSiO3_KMgSiO3 + 3*dKSiO2_KSiO2) + M_SiO2*(2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3) + M_m*(-5*dKMgO_KMgO - 5*dKMgSiO3_KMgSiO3 - 5*dKSiO2_KSiO2)) + M_SiO2*(M_FeO*(-dKFeO_KFeO + dKSiO2_KSiO2) + M_MgO*(-dKMgO_KMgO + dKSiO2_KSiO2) - 3*M_m*dKSiO2_KSiO2) + M_m*(-2*M_FeO*dKFeO_KFeO - 2*M_MgO*dKMgO_KMgO)) + M_SiO2*M_m*(M_FeO*(2*dKFeO_KFeO - dKSiO2_KSiO2) + M_MgO*(2*dKMgO_KMgO - dKSiO2_KSiO2))) + M_O*(M_FeSiO3*(M_MgO*(M_FeO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3) + M_m*(5*dKFeO_KFeO + 5*dKFeSiO3_KFeSiO3 + 5*dKSiO2_KSiO2)) + M_MgSiO3*(M_FeO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(-2*dKFeO_KFeO - 2*dKFeSiO3_KFeSiO3) + M_m*(5*dKFeO_KFeO + 5*dKFeSiO3_KFeSiO3 + 5*dKSiO2_KSiO2))) + M_MgO*(2*M_FeO*M_m*dKFeO_KFeO + M_SiO2*(M_FeO*(dKFeO_KFeO - dKSiO2_KSiO2) + 3*M_m*dKSiO2_KSiO2)) + M_MgSiO3*(M_FeO*(M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + 2*M_m*dKFeO_KFeO) + M_MgO*M_m*(3*dKMgSiO3_KMgSiO3 + 3*dKSiO2_KSiO2) + M_SiO2*(M_FeO*(dKFeO_KFeO - dKSiO2_KSiO2) + M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + 3*M_m*dKSiO2_KSiO2)))) + M_Mg*(M_FeO*(M_MgO*M_SiO2*M_m*(-2*dKMgO_KMgO + dKSiO2_KSiO2) + M_MgSiO3*(M_MgO*M_m*(-2*dKMgO_KMgO + dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2) + M_SiO2*(M_MgO*(2*dKMgO_KMgO + dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_m*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2)))) + M_FeSiO3*(M_MgO*(M_FeO*M_m*(dKFeSiO3_KFeSiO3 - 2*dKMgO_KMgO + dKSiO2_KSiO2) + M_SiO2*(M_FeO*(dKFeSiO3_KFeSiO3 + 2*dKMgO_KMgO - dKSiO2_KSiO2) + M_m*(-2*dKMgO_KMgO + dKSiO2_KSiO2))) + M_MgSiO3*(M_SiO2*(M_FeO*(-dKFeSiO3_KFeSiO3 + 2*dKMgO_KMgO + 2*dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_MgO*(2*dKMgO_KMgO + dKMgSiO3_KMgSiO3 - dKSiO2_KSiO2) + M_m*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2)) + M_m*(M_FeO*(3*dKFeSiO3_KFeSiO3 - 2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2) + M_MgO*(-2*dKMgO_KMgO + dKMgSiO3_KMgSiO3 + dKSiO2_KSiO2)))) + M_O*(M_FeO*(2*M_MgO*M_m*dKMgO_KMgO + M_MgSiO3*(M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3) + M_m*(5*dKMgO_KMgO + 5*dKMgSiO3_KMgSiO3 + 5*dKSiO2_KSiO2)) + M_SiO2*(M_MgO*(dKMgO_KMgO - dKSiO2_KSiO2) + 3*M_m*dKSiO2_KSiO2)) + M_FeSiO3*(M_FeO*(M_MgO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_m*(3*dKFeSiO3_KFeSiO3 + 3*dKSiO2_KSiO2)) + 2*M_MgO*M_m*dKMgO_KMgO + M_MgSiO3*(M_FeO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(-2*dKMgO_KMgO - 2*dKMgSiO3_KMgSiO3) + M_m*(5*dKMgO_KMgO + 5*dKMgSiO3_KMgSiO3 + 5*dKSiO2_KSiO2)) + M_SiO2*(M_FeO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_MgO*(dKMgO_KMgO - dKSiO2_KSiO2) + 3*M_m*dKSiO2_KSiO2)))) + M_O*(M_FeO*(-3*M_MgO*M_SiO2*M_m*dKSiO2_KSiO2 + M_MgSiO3*(M_MgO*M_m*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(M_MgO*(3*dKMgSiO3_KMgSiO3 + 3*dKSiO2_KSiO2) - 3*M_m*dKSiO2_KSiO2))) + M_FeSiO3*(M_MgO*(M_FeO*M_m*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_SiO2*(M_FeO*(3*dKFeSiO3_KFeSiO3 + 3*dKSiO2_KSiO2) - 3*M_m*dKSiO2_KSiO2)) + M_MgSiO3*(M_SiO2*(M_FeO*(3*dKFeSiO3_KFeSiO3 + 3*dKSiO2_KSiO2) + M_MgO*(3*dKMgSiO3_KMgSiO3 + 3*dKSiO2_KSiO2) - 3*M_m*dKSiO2_KSiO2) + M_m*(M_FeO*(-3*dKFeSiO3_KFeSiO3 - 3*dKSiO2_KSiO2) + M_MgO*(-3*dKMgSiO3_KMgSiO3 - 3*dKSiO2_KSiO2)))))))




```python

```

18382c645e04c41ad0dc7ab1147dcc0437587dc7
ipynb
Jupyter Notebook
MgSiSystemOfEquations/Test Sympy Simplify.ipynb
nknezek/MgSi-Exsolution
925d3e2f47256a4618fd77c39f23e233d3e9bdcd
MIT
MgSiSystemOfEquations/Test Sympy Simplify.ipynb
nknezek/MgSi-Exsolution
925d3e2f47256a4618fd77c39f23e233d3e9bdcd
MIT
MgSiSystemOfEquations/Test Sympy Simplify.ipynb
nknezek/MgSi-Exsolution
925d3e2f47256a4618fd77c39f23e233d3e9bdcd
MIT
Qwen/Qwen-72B
1. YES
2. YES