Public Member Functions | 
| 
  | Rock (void) | 
|   | blank constructor. STP assumed. 
  | 
| 
virtual  | ~Rock (void) | 
|   | destructor 
  | 
| 
virtual void  | setTk (double ltk) | 
|   | set T in Kelvins 
  | 
| 
virtual void  | setPa (double lpa) | 
|   | set P in Pascals 
  | 
| 
virtual void  | setlogfo2 (int mode, double delta) | 
|   | set logfo2 mode and delNNO (default none) 
  | 
| 
virtual void  | supressPhase (int iphase) | 
|   | supress phase number iphase. All suppressed by default. 
  | 
| 
virtual void  | enablePhase (int iphase) | 
|   | enable phase number iphase. All supressed by default. 
  | 
| 
virtual void  | setIsenthalpic (int i) | 
|   | put rock in isenthalpic mode (default 0); 
  | 
| 
virtual void  | setIsentropic (int i) | 
|   | put rock in isentropic mode (default 0); 
  | 
| 
virtual void  | setIsochoric (int i) | 
|   | put rock in isochoric mode (default 0); 
  | 
| 
virtual void  | setBulkCompM (double *bc) | 
|   | set bulk composition in mole fraction. Values copied to internal array. 
  | 
| 
virtual void  | setBulkCompW (double *bc) | 
|   | set bulk composition in weight%. Values copied to internal array. 
  | 
| 
virtual void  | fractionateSolids (double scale) | 
|   | fractionate solids (scale = fraction removed) from system 
  | 
| 
virtual void  | setVolume (double v) | 
|   | set system volume in J/Pa 
  | 
| 
virtual void  | setEnthalpy (double h) | 
|   | set system enthalpy in J 
  | 
| 
virtual void  | setEntropy (double s) | 
|   | set system entropy in J/K 
  | 
| 
virtual double  | getTk () | 
|   | returns T in Kelvins 
  | 
| 
virtual double  | getPa () | 
|   | returns P in Pascals 
  | 
| 
virtual int  | getNcomp () | 
|   | returns number of rock components 
  | 
| 
virtual int  | getNLiqComp () | 
|   | returns number of liquid components 
  | 
| 
virtual int  | getNSolPhases () | 
|   | returns number of potential solid phases (suppressed and enabled) 
  | 
| 
virtual const char *  | getSolPhaseName (int iphase) | 
|   | returns name of solid phase i 
  | 
| virtual const char *  | getSolPhaseFormula (int iphase, int instance) | 
| virtual const char *  | getSolPhaseFormula (int iphase) | 
| 
virtual int  | getNSolComp (int i) | 
|   | returns number of components for phase i 
  | 
| virtual const char *  | getSolPhaseCompName (int iphase, int icomp) | 
| virtual const char *  | getSolPhaseCompFormula (int iphase, int icomp) | 
| 
virtual const char *  | getCompName (int i) | 
|   | returns pointer to name of bulk component (oxide) 
  | 
| 
virtual const char *  | getLiqCompName (int i) | 
|   | returns pointer to name of liquid component 
  | 
| 
virtual void  | getLiqComp (double *lx) | 
|   | returns liquid composition 
  | 
| 
virtual void  | getLiqCompWt (double *lx) | 
|   | returns liquid composition in wt% oxides 
  | 
| 
virtual void  | getLiqMu (double *lmu) | 
|   | returns liquid mu 
  | 
| 
virtual void  | getLiqActivity (double *lact) | 
|   | returns liquid activities 
  | 
| 
int  | getNSatSolid () | 
|   | Returns number of saturated solid phases. 
  | 
| 
void  | getSatSolidList (int *ilist) | 
|   | Returns list of indices for currently saturated solids. 
  | 
| virtual int  | getSolComp (int iphase, int instance, double *sx) | 
| virtual int  | getSolComp (int iphase, double *sx) | 
| virtual int  | getSolCompWt (int iphase, int instance, double *sx) | 
| virtual int  | getSolCompWt (int iphase, double *sx) | 
| virtual int  | getSolMu (int iphase, int instance, double *smu) | 
| virtual int  | getSolMu (int iphase, double *smu) | 
| virtual double  | getAffinity (int iphase, double *x) | 
| virtual int  | getSolVbar (int iphase, int instance, double *svbar) | 
| virtual int  | getSolVbar (int iphase, double *svbar) | 
| 
virtual double  | getlogfo2 () | 
|   | get current log10fo2 
  | 
| 
virtual double  | getlogfo2 (int mode) | 
|   | get current log10fo2 relative to buffer specified in mode 
  | 
| 
virtual void  | getBulkCompM (double *bc) | 
|   | get bulk composition in moles 
  | 
| 
virtual void  | getBulkCompW (double *bc) | 
|   | get bulk composition in grams 
  | 
| 
virtual double  | getLiquidMass () | 
|   | get liquid mass in gm 
  | 
| 
virtual double  | getSolidMass () | 
|   | get solid mass in gm 
  | 
| virtual double  | getSolPhaseMass (int iphase, int instance) | 
| virtual double  | getSolPhaseMass (int iphase) | 
| 
virtual double  | getVolume () | 
|   | returns system volume in J/Pa 
  | 
| 
virtual double  | getSolidGibbsFreeEnergy () | 
|   | returns Gibbs free energy of solids in J/Pa 
  | 
| 
virtual double  | getSolidEnthalpy () | 
|   | returns enthalpy of solids in J/Pa 
  | 
| 
virtual double  | getSolidEntropy () | 
|   | returns entropy of solids in J/Pa 
  | 
| 
virtual double  | getSolidHeatCapacity () | 
|   | returns heat capacity of solids in J/Pa 
  | 
| 
virtual double  | getSolidVolume () | 
|   | returns volume of solids in J/Pa 
  | 
| virtual double  | getSolidGibbsFreeEnergy (int iphase, int instance) | 
| virtual double  | getSolidGibbsFreeEnergy (int iphase) | 
| virtual double  | getSolidEnthalpy (int iphase, int instance) | 
| virtual double  | getSolidEnthalpy (int iphase) | 
| virtual double  | getSolidEntropy (int iphase, int instance) | 
| virtual double  | getSolidEntropy (int iphase) | 
| virtual double  | getSolidHeatCapacity (int iphase, int instance) | 
| virtual double  | getSolidHeatCapacity (int iphase) | 
| virtual double  | getSolidVolume (int iphase, int instance) | 
| virtual double  | getSolidVolume (int iphase) | 
| virtual double  | getSoliddVdT (int iphase, int instance) | 
| virtual double  | getSoliddVdT (int iphase) | 
| virtual double  | getSoliddVdP (int iphase, int instance) | 
| virtual double  | getSoliddVdP (int iphase) | 
| 
virtual double  | getDeltaOxygen () | 
|   | returns moles of oxygen added/removed from system 
  | 
| 
virtual double  | getOxygenGibbsFreeEnergy () | 
|   | returns Oxygen Gibbs Free Energy in J/mol 
  | 
| 
virtual double  | getOxygenEnthalpy () | 
|   | returns Oxygen enthalpy in J/mol 
  | 
| 
virtual double  | getOxygenEntropy () | 
|   | returns Oxygen entropy in J/K-mol 
  | 
| 
virtual double  | getOxygenHeatCapacity () | 
|   | returns Oxygen heat capacity in J/K-mol 
  | 
| 
virtual double  | getOxygenVolume () | 
|   | returns Oxygen volume in J/Pa-mol 
  | 
| 
virtual double  | getLiquidGibbsFreeEnergy () | 
|   | returns liquid Gibbs Free Energy in J 
  | 
| 
virtual double  | getLiquidEnthalpy () | 
|   | returns liquid enthalpy in J 
  | 
| 
virtual double  | getLiquidEntropy () | 
|   | returns liquid entropy in J/K 
  | 
| 
virtual double  | getLiquidHeatCapacity () | 
|   | returns liquid heat capacity in J/K 
  | 
| 
virtual double  | getLiquidVolume () | 
|   | returns liquid volume in J/Pa 
  | 
| 
virtual double  | getLiquiddVdT () | 
|   | returns liquid dVdT in J/(Pa*K) 
  | 
| 
virtual double  | getLiquiddVdP () | 
|   | returns liquid dVdP in J/Pa^2 
  | 
| 
virtual double  | getLiquidViscosity () | 
|   | returns liquid viscosity in log10 (poise) 
  | 
| 
virtual int  | getPhaseNo (const char *lab) | 
|   | get integer value of solid phase corresponding to label 
  | 
| 
virtual int  | isSingleComponent (int iphase) | 
|   | returns boolean indicating if phase iphase is single-component. 
  | 
| 
virtual int  | getNumberCoexistPhase (int iphase) | 
|   | get number of coexisting phases in stable assemblage 
  | 
| 
virtual int  | findRockLiquidus () | 
|   | find liquidus temperature for this bulk composition and sets state 
  | 
| 
virtual int  | equilibrateRock () | 
|   | execute equilibration on current state 
  | 
Public Attributes | 
| 
const int  | fo2_none | 
|   | no oxygen fugacity constraint mode 
  | 
| 
const int  | fo2_hm | 
|   | hematite-magnetite oxygen fugacity constraint mode 
  | 
| 
const int  | fo2_nno | 
|   | Ni-NiO oxygen fugacity constraint mode. 
  | 
| 
const int  | fo2_qfm | 
|   | QFM oxygen fugacity constraint mode. 
  | 
| 
const int  | fo2_iw | 
|   | iron-wustite oxygen fugacity constraint mode 
  | 
Protected Member Functions | 
| 
virtual int  | init (void) | 
|   | private initialization routine 
  | 
| 
virtual int  | initializeState () | 
|   | function turns off iso* modes to initialize Rock state. Arguments are working space 
  | 
| 
virtual void  | equilibrateError (int err) | 
|   | prints equilibrate error explanations 
  | 
| 
virtual void  | findLiquidusError (int err) | 
|   | prints findLiquidus error explanations 
  | 
| 
virtual void  | liquify () | 
|   | converts everything to liquid and zero's solid. 
  | 
| 
virtual void  | printSilminStateStructure (SilminState *pt) | 
|   | utility to print current state of silminState variable 
  | 
Protected Attributes | 
| 
int  | nphase | 
|   | number of available solid phases 
  | 
| 
int *  | phasedex | 
|   | indexing array to convert from phase number to SilminState index 
  | 
| 
int  | stateinit | 
|   | boolean to indicate whether calculation state is initialized 
  | 
| 
SilminState *  | silminState | 
|   | state variables for silmin. Contains lots of stuff. 
  | 
| 
int  | curThread | 
|   | current thread (this class instance) 
  | 
| 
ThermoData *  | liquidCur | 
|   | state variables for silmin. Contains lots of stuff. 
  | 
| 
ThermoData *  | solidsCur | 
|   | state variables for silmin. Contains lots of stuff. 
  | 
| 
ThermoData *  | oxygenCur | 
|   | state variables for silmin. Contains lots of stuff. 
  | 
Static Protected Attributes | 
| 
static int  | staticinit | 
|   | boolean to indicate if static variables have been allocated 
  | 
| 
static int  | threadCount | 
|   | number of active threads (instances of class) 
  | 
| 
static const int  | maxThreads = 25 | 
|   | maximum number of class instances (from MELTS library) 
  | 
| static int *  | threadPool | 
| 
static int  | mutexLock | 
|   | variable to hold thread lock (boolean) 
  | 
Private Attributes | 
| 
double *  | mSol | 
|   | working space 
  | 
| 
double *  | mLiq | 
| 
double *  | r | 
| 
double *  | x | 
c++ wrapper for Ghiorso's Melts code. Inherits all Melts constants etc. through silmin.h.