Example #1
0
    void MiscibilityLiveOil::B(const std::vector<PhaseVec>& pressures,
                               const std::vector<CompVec>& surfvol,
                               int phase,
                               std::vector<double>& output) const
    {
        ASSERT(pressures.size() == surfvol.size());
        int num = pressures.size();
        output.resize(num);
#pragma omp parallel for
        for (int i = 0; i < num; ++i) {
            output[i] = evalB(pressures[i][phase], surfvol[i]);
        }
    }
Example #2
0
	uint8_t readB(){
		switch (type){
			case A_BYTE: return  evalB();
			case A_UINT: return  evalU();
			case A_INT: return  evalI();
			case A_LONG: return  evalL();
			case A_FLOAT: return  evalF();
			case A_DOUBLE: return  evalD();
			case A_TIME: return  evalT();
			default: return 0;
		}
		return 0;
	}
Example #3
0
	uint32_t readT(){
		switch (type){
			case A_BYTE: return  evalB();
			case A_UINT: return  evalU();
			case A_INT: return  evalI();
			case A_LONG: return  evalL();
			case A_FLOAT: return  evalF();
			case A_DOUBLE: return  evalD();
			case A_TIME: return  evalT();
			case A_STRING: return 0;
			case BAD_TYPE: return 0;
		}
		return 0;
	}
Example #4
0
    void MiscibilityLiveOil::evalBDeriv(const double press, const surfvol_t& surfvol,
                                        double& B, double& dBdp) const
    {
	B = evalB(press, surfvol);
	dBdp = -B*B*miscible_oil(press, surfvol, 1, true);
    }
Example #5
0
    double MiscibilityLiveOil::dBdp(int /*region*/, double press, const surfvol_t& surfvol) const
    {	
        // if (surfvol[Liquid] == 0.0) return 0.0; // To handle no-oil case.
	double Bo = evalB(press, surfvol); // \TODO check if we incur virtual call overhead here.
	return -Bo*Bo*miscible_oil(press, surfvol, 1, true);
    }
Example #6
0
 double MiscibilityLiveOil::B(int /*region*/, double press, const surfvol_t& surfvol) const
 {
     return evalB(press, surfvol);
 }