double Fex_H2O_FittedCorrelations::compute(const ScalarFieldTilde* Ntilde, ScalarFieldTilde* Phi_Ntilde) const
{	double PhiEx = 0.0;
	//Quadratic part:
	ScalarFieldTilde V_O = double(gInfo.nr)*(COO*Ntilde[0] + COH*Ntilde[1]); Phi_Ntilde[0] += V_O;
	ScalarFieldTilde V_H = double(gInfo.nr)*(COH*Ntilde[0] + CHH*Ntilde[1]); Phi_Ntilde[1] += V_H;
	PhiEx += 0.5*gInfo.dV*(dot(V_O,Ntilde[0]) + dot(V_H,Ntilde[1]));

	//Compute gaussian weighted densities:
	ScalarField NObar = I(fex_gauss*Ntilde[0]), Phi_NObar; nullToZero(Phi_NObar, gInfo);
	ScalarField NHbar = I(fex_gauss*Ntilde[1]), Phi_NHbar; nullToZero(Phi_NHbar, gInfo);
	//Evaluated weighted density functional:
	#ifdef GPU_ENABLED
	ScalarField fex(ScalarFieldData::alloc(gInfo,isGpuEnabled()));
	Fex_H20_FittedCorrelations_gpu(gInfo.nr, NObar->dataGpu(), NHbar->dataGpu(),
		 fex->dataGpu(), Phi_NObar->dataGpu(), Phi_NHbar->dataGpu());
	PhiEx += integral(fex);
	#else
	PhiEx += gInfo.dV*threadedAccumulate(Fex_H2O_FittedCorrelations_calc, gInfo.nr,
		 NObar->data(), NHbar->data(), Phi_NObar->data(), Phi_NHbar->data());
	#endif
	//Convert gradients:
	Phi_Ntilde[0] += fex_gauss*Idag(Phi_NObar);
	Phi_Ntilde[1] += fex_gauss*Idag(Phi_NHbar);
	return PhiEx;
}
Example #2
0
int main(int argc, char **argv)
{
	if(argc != 3)
	{
		std::cout << "doorspr: Door sprite utility\nUsage: doorspr <source> <dest>\n";
		return 0;
	}
	allegro_init();
	set_color_depth(32);
	BITMAP *src = load_bitmap(argv[1], 0);
	BITMAP *newDest;
	if(fex(argv[2]))
	{
		BITMAP *oldDest;
		oldDest = load_bitmap(argv[2], 0);
		newDest = create_bitmap(60, oldDest->h + 45 * 4);
		clear_to_color(newDest, 0xFF00FF);
		draw_sprite(newDest, oldDest, 0, 0);
		destroy_bitmap(oldDest);
	}
	else
	{
		newDest = create_bitmap(60, 45 * 4);
		clear_to_color(newDest, 0xFF00FF);
	}
	for(int i = 0; i < 4; i++)
	{
		blit(src, newDest, 0, i * (src->h / 4), 30 - (src->w / 2), newDest->h - ((3 - i) * 45) - (src->h / 4), src->w, src->h / 4);
	}
	save_bitmap(argv[2], newDest, 0);
	return 0;
}
FRFXLL_RESULT FRFXLLCreateFeatureSet(
  FRFXLL_HANDLE hContext,          ///< [in] Handle to a fingerprint recognition context
  const unsigned char fpData[],  ///< [in] sample
  size_t size,                   ///< [in] size of the sample buffer
  FRFXLL_DATA_TYPE dataType,       ///< [in] type of the sample, for instance image format
  unsigned int flags,            ///< [in] Set to 0 for default or bitwise or of any of the FRFXLL_FEX_xxx flags
  FRFXLL_HANDLE_PT phFeatureSet    ///< [out] pointer to where to put an open handle to the feature set
) {
  if (fpData == NULL)  return CheckResult(FRFXLL_ERR_INVALID_PARAM);
  if (phFeatureSet == NULL) return CheckResult(FRFXLL_ERR_INVALID_PARAM);
  CheckInvalidFlagsCombinationR(flags, FRFXLL_FEX_DISABLE_ENHANCEMENT | FRFXLL_FEX_ENABLE_ENHANCEMENT);
  Ptr<const Context> ctx(hContext);
  if (!ctx) return CheckResult(FRFXLL_ERR_INVALID_HANDLE);
  Ptr<FexObj> fex(new(ctx) FexObj(ctx));
  if (!fex) return CheckResult(FRFXLL_ERR_NO_MEMORY);
  return fex->CreateFeatureSet(fpData, size, dataType, flags, phFeatureSet);
}
Example #4
0
double true_Ev_rate(double Te, double ne, double *nv){
    // Calculate the Instanteneous rate of energy/m3 change
    double nvdot[34], data[2], Ei, Evdot;
    int i;

    data[0] = Te;
    data[1] = ne;

    // Call rate of change function to set nvdot
    fex(0.0, nv, nvdot, data);       // particles/m3/s
    Evdot = 0.0;

    for (i = 0; i< 34; i++) {
        Ei = 6.626067E-34*7.08E13*i; // J/particle
        Evdot += nvdot[i]*Ei;        // J/m3/s
    }
    return Evdot;
}