void Tile::TransferMass(ITile *t) { int &myh=matterh;//GetHeight(); if (myh<0) return ; if (//(t->GetHeight()<myh)&& (t->GetHeight()<MAXMAT+1)) if (IsLiquid(myh)||IsGas(myh)) { TransferTemp(t); //t->mats[t->GetHeight()+1]=mats[myh]; t->AddTop(mats[myh]); RemoveMatter(); //if (myh==0)temp=0;//actual ambient temp? neturetu but svarbu nes VV metodas taip veikia } if(stack) for(unsigned i=0;i<stack->GetCount();i++) { IItem *it=stack->GetItem(i); if(it->GetSize()<=SIZE_CAT) { stack->RemoveItem(i); t->AddItem(it); return; } } }
bool Tile::IsGas() { int top=GetHeight(); if (top<0) return false; return IsGas(top); //return (temp>=mymat->BoilTemp); };
void Tile::Sort() { for (int i=0;i<MAXMAT;i++) for (int j=i+1;j<MAXMAT;j++) { Material *mm; if ((IsLiquid(i)&&IsSolid(j))||(IsGas(i)&&(IsLiquid(j)||IsSolid(j)))) { mm=mats[i]; mats[i]=mats[j]; mats[j]=mm; } } }
void KVHarpeeIC::SetTemperature(Double_t t) { // Set the same temperature for each gaz layer. // The units are: degrees celsius if (!IsGas()) return; KVMaterial* abs = NULL; TIter next(GetListOfAbsorbers()); while ((abs = (KVMaterial*)next())) { if (abs->IsGas()) { abs->SetTemperature(t); if (abs->GetAbsGeoVolume()) abs->GetAbsGeoVolume()->GetMaterial()->SetTemperature(t); } } }
void KVHarpeeIC::SetPressure(Double_t p /* mbar */) { // Set the same pressure for each gas layer (in mbar) if (!IsGas()) return; KVMaterial* abs = NULL; TIter next(GetListOfAbsorbers()); while ((abs = (KVMaterial*)next())) { if (abs->IsGas()) { abs->SetPressure(p * KVUnits::mbar); if (abs->GetAbsGeoVolume()) abs->GetAbsGeoVolume()->GetMaterial()->SetPressure(p * KVUnits::mbar); } } KVDetector::SetPressure(p * KVUnits::mbar); }
int Tile::GetPic() { const unsigned int LEVEL_PIX[]={250,',','_','-',223,176,177,178}; int h=GetHeight(); //performance!!! if (h<0) return ' '; if (IsSolid(h)) return LEVEL_PIX[h]; if (IsLiquid(h)) //return '0'+h+1; return (h%2)?126:184; if (IsGas(h)) if (h>2) return '%'; else return '.'; return ' '; }
Bool_t KVIonRangeTable::IsMaterialGas(const Char_t* mat) { // Returns kTRUE if material of given name or type is gaseous. FIND_MAT_AND_EXEC(IsGas(),kFALSE); }