00001 #ifndef ROCK_I_H
00002 #define ROCK_I_H
00003
00004 #include "rock.hh"
00005 #include "Rock.h"
00006
00016 class Rock_i:public POA_rock::dRock,public PortableServer::RefCountServantBase {
00017 public:
00018 Rock_i();
00019 virtual ~Rock_i();
00020
00022 int verbose;
00023
00025 void setTk(CORBA::Double ltk);
00027 void setPa(CORBA::Double lpa);
00029 void setlogfo2(rock::dRock::fO2Type mode,CORBA::Double delta);
00031 void supressPhase(CORBA::Short iphase);
00033 void enablePhase(CORBA::Short iphase);
00035 void setIsenthalpic(CORBA::Boolean i);
00037 void setIsentropic(CORBA::Boolean i);
00039 void setIsochoric(CORBA::Boolean i);
00041 void setBulkCompM(const CORBA::DoubleSeq& bc);
00043 void setBulkCompW(const CORBA::DoubleSeq& bc);
00045 void fractionateSolids(CORBA::Double scale);
00047 void setVolume(CORBA::Double v);
00049 void setEnthalpy(CORBA::Double h);
00051 void setEntropy(CORBA::Double v);
00052
00054 CORBA::Double getTk();
00056 CORBA::Double getPa();
00058 CORBA::Short getNcomp();
00060 CORBA::Short getNLiqComp();
00062 CORBA::Short getNSolPhases();
00064 char *getSolPhaseName(CORBA::Short iphase);
00066 char *getSolPhaseFormula(CORBA::Short iphase,CORBA::Short instance);
00068 CORBA::Short getNSolComp(CORBA::Short iphase);
00073 char *getSolPhaseCompName(CORBA::Short iphase,CORBA::Short icomp);
00078 char *getSolPhaseCompFormula(CORBA::Short iphase,CORBA::Short icomp);
00080 char *getCompName(CORBA::Short i);
00082 char *getLiqCompName(CORBA::Short i);
00084 CORBA::DoubleSeq* getLiqComp();
00086 CORBA::DoubleSeq* getLiqCompWt();
00088 CORBA::DoubleSeq* getLiqMu();
00090 CORBA::DoubleSeq* getLiqActivity();
00092 CORBA::Short getNSatSolid();
00094 CORBA::ShortSeq* getSatSolidList();
00100 CORBA::Short getSolComp(CORBA::Short iphase,CORBA::Short instance,CORBA::DoubleSeq_out sx);
00106 CORBA::Short getSolCompWt(CORBA::Short iphase,CORBA::Short instance,CORBA::DoubleSeq_out sx);
00112 CORBA::Short getSolMu(CORBA::Short iphase,CORBA::Short instance,CORBA::DoubleSeq_out smu);
00119 CORBA::Double getAffinity(CORBA::Short iphase,CORBA::DoubleSeq_out x);
00121 CORBA::Short getSolVbar(CORBA::Short iphase,CORBA::Short instance,CORBA::DoubleSeq_out svbar);
00123 CORBA::Double getlogfo2();
00125 CORBA::Double getlogfo2relative(rock::dRock::fO2Type mode);
00127 CORBA::DoubleSeq* getBulkCompM();
00129 CORBA::DoubleSeq* getBulkCompW();
00131 CORBA::Double getLiquidMass();
00133 CORBA::Double getSolidMass();
00138 CORBA::Double getSolPhaseMass(CORBA::Short iphase,CORBA::Short instance);
00140 CORBA::Double getVolume();
00142 CORBA::Double getSolidGibbsFreeEnergyTotal();
00144 CORBA::Double getSolidEnthalpyTotal();
00146 CORBA::Double getSolidEntropyTotal();
00148 CORBA::Double getSolidHeatCapacityTotal();
00150 CORBA::Double getSolidVolumeTotal();
00152 CORBA::Double getSolidGibbsFreeEnergy(CORBA::Short iphase,CORBA::Short instance);
00154 CORBA::Double getSolidEnthalpy(CORBA::Short iphase,CORBA::Short instance);
00156 CORBA::Double getSolidEntropy(CORBA::Short iphase,CORBA::Short instance);
00158 CORBA::Double getSolidHeatCapacity(CORBA::Short iphase,CORBA::Short instance);
00160 CORBA::Double getSolidVolume(CORBA::Short iphase,CORBA::Short instance);
00162 CORBA::Double getSoliddVdT(CORBA::Short iphase,CORBA::Short instance);
00164 CORBA::Double getSoliddVdP(CORBA::Short iphase,CORBA::Short instance);
00166 CORBA::Double getDeltaOxygen();
00168 CORBA::Double getOxygenGibbsFreeEnergy();
00170 CORBA::Double getOxygenEnthalpy();
00172 CORBA::Double getOxygenEntropy();
00174 CORBA::Double getOxygenHeatCapacity();
00176 CORBA::Double getOxygenVolume();
00178 CORBA::Double getLiquidGibbsFreeEnergy();
00180 CORBA::Double getLiquidEnthalpy();
00182 CORBA::Double getLiquidEntropy();
00184 CORBA::Double getLiquidHeatCapacity();
00186 CORBA::Double getLiquidVolume();
00188 CORBA::Double getLiquiddVdT();
00190 CORBA::Double getLiquiddVdP();
00192 CORBA::Double getLiquidViscosity();
00193
00194
00196 CORBA::Short getPhaseNo(const char *);
00198 CORBA::Boolean isSingleComponent(CORBA::Short iphase);
00200 CORBA::Short getNumberCoexistPhase(CORBA::Short iphase);
00202 CORBA::Short findRockLiquidus();
00204 CORBA::Short equilibrateRock();
00205
00207 CORBA::LongLong getLastAccessTime();
00209 CORBA::UShort isActive();
00211 char *getStatus();
00213 void remove();
00214
00215 private:
00217 int active;
00219 Rock *rp;
00221 time_t lastAccessTime;
00223 double *c;
00225 int *ix;
00227 char *status;
00228 };
00229 #endif