#include <SilicateLiq.h>
Public Member Functions | |
SilicateLiq () | |
blank constructor | |
virtual | ~SilicateLiq () |
destructor | |
virtual double | getMW (int i) |
Returns molecular weight of component i. | |
virtual const char * | getCompName (int i) |
Returns pointer to name of component i. | |
virtual const char * | getCompFormula (int i) |
Returns pointer to formula of component i. | |
virtual int | getGenericNcomp (void) |
get number of generic components | |
virtual char * | getGenericCompFormula (int i) |
Get string formula for generic component i. | |
virtual void | setTk (double ltk) |
set temperature in Kelvins | |
virtual void | setPa (double lpa) |
set pressure in Pascals | |
virtual void | setMoles (double m) throw (PhaseError *) |
set moles of liquid | |
virtual void | setMass (double grams) |
set mass in grams | |
virtual void | setComps (double *rawcomps) |
set component mole fractions | |
virtual void | setGenericCompWts (double *wt) throw (PhaseError *) |
sets generic component weights in gram | |
virtual double | getMass () |
returns total mass in grams | |
virtual void | getGenericCompWts (double *wt) |
returns grams generic components in caller-allocated space. | |
virtual double | getMu0 (int ispec) |
returns standard state chemical potential for component | |
virtual double | getMu (int i) |
returns chemical potential for component | |
virtual double | getdMudX (int m, int p) |
derivative of chemical potential wrt. mole fraction dMu[m]/dX[p] | |
virtual double | getGibbs () |
returns Gibbs free energy at T and P relative to elements at STP | |
virtual double | getGmix () |
Gibbs energy of mixing. | |
virtual double | getEnthalpy () |
returns Enthalpy at T and P | |
virtual double | getHmix () |
enthalpy of mixing | |
virtual double | getEntropy () |
returns Entropy at T and P | |
virtual double | getSmix () |
entropy of mixing | |
virtual double | getCp () |
returns heat capacity | |
virtual double | getCpmix () |
heat capacity of mixing | |
virtual double | getdCpdT () |
derivative of Cp with respect to temperature | |
virtual double | getVolume () |
returns volume in m^3/mole | |
virtual double | getVmix () |
volume of mixing | |
virtual double | getdVdT () |
dV/dT in M^3/Kelvin | |
virtual double | getdVdP () |
dV/dP in M^3/Pascal | |
virtual double | getd2VdT2 () |
d2V/dT2 in M^3/Kelvin^2 | |
virtual double | getd2VdTdP () |
d2V/dTdP in M^3/KelvinPascal | |
virtual double | getd2VdP2 () |
d2V/dP2 in M^3/Pascal^2 | |
virtual void | setlogfo2 (double f) |
set log10(fo2) value | |
virtual void | setlogfo2 () |
without argument, function turns off imposed fo2 | |
virtual double | getlogfo2 () |
return log10(fo2) | |
virtual void | setWtOx (double *oxides) |
sets class component list from oxides in weight percent | |
virtual void | getWtOx (double *oxides) |
gets oxide weight percents (does not allocate space) | |
virtual void | oxWtToMol (double *oxides) |
converts weight percent oxides to oxide mole fractions | |
virtual void | oxMolToWt (double *oxides) |
converts oxide mole fraction to oxide weight percent | |
virtual void | compsToOxides (double *oxides) |
converts components to oxides (does not allocate space) | |
virtual void | oxidesToComps (double *oxides) |
converts oxides to components (does not allocate space) | |
Protected Member Functions | |
void | setComps () |
converts to silmin coordinates etc. | |
void | init () |
initialize class | |
Protected Attributes | |
ThermoData * | liquidFus |
structure to hold current component fusion data | |
ThermoData * | liquidCur |
structure to hold current component ss data | |
double | totalMoles |
stores total moles for liquid | |
Private Member Functions | |
void | setRedox () |
adjusts ferric/ferrous redox state | |
void | calcMu () |
updates mu arrays | |
Private Attributes | |
int | updateMu |
flag to indicate whether mu and dmu arrays neet to be updated | |
int | imposeRedox |
indicates whether logfo2 is imposed | |
double * | mu |
vector of muxs | |
double ** | dmudx |
arrray of dmu[m]/dx[p] | |
double ** | dmudr |
array of dmu[m]/dr[p] | |
double | pb |
pressure in bars | |
double | logfo2 |
log10(fO2) | |
double * | rx |
reduced composition vector for Ghiorso routines | |
double ** | rxJ |
dX[i]/dr[j] | |
Static Private Attributes | |
static int | structInitialize |
class flag. If set, MELTS structures have been initialized. |
silicate liquid class. C++ class wrapper for liquid.c and associated routines used in MELTS 3.0.x Ghiorso and Sack (1995).
Ghiorso components are in order 0=SiO2, 1=TiO2, 2=Al2O3, 3=Fe2O3, 4=MgCr2O4, 5=Fe2SiO4, 6=MnSi0.5O2, 7=Mg2SiO4, 8=NiSi0.5O2, 9=CoSi0.5O2, 10=CaSiO3, 11=Na2SiO3, 12=KAlSiO4, 13=Ca3(PO4)2, 14=CO2, 15=S, 16=Cl, 17=F, 18=H2O.
Oxide components are in order 0=SiO2, 1=TiO2, 2=Al2O3, 3=Fe2O3, 4=Cr2O3, 5=FeO, 6=MnO, 7=MgO, 8=NiO, 9=CoO, 10=CaO, 11=Na2O, 12=K2O, 13=P2O5, 14=H2O, 15=CO2, 16=S, 17=Cl, 18=F.
Tested against MELTS supplemental calculator 3/20/2000
Definition at line 234 of file SilicateLiq.h.