Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes

SilicateLiq Class Reference

#include <SilicateLiq.h>

Inheritance diagram for SilicateLiq:
Solution Phase

List of all members.

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

ThermoDataliquidFus
 structure to hold current component fusion data
ThermoDataliquidCur
 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.

Detailed Description

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

Id:
SilicateLiq.h,v 1.10 2007/08/05 04:43:17 ghiorso Exp
Author:
Victor Kress
Version:
Revision:
1.10

Definition at line 234 of file SilicateLiq.h.


The documentation for this class was generated from the following file: