Exemplo n.º 1
0
    bool only_translation(agg::trans_affine& mat, double epsilon)
    {
        double temp[6];
        mat.store_to(temp);
		return (f_eq(temp[0], 1.0) && f_eq(temp[1], 0.0) &&
				f_eq(temp[2], 0.0) && f_eq(temp[3], 1.0));
    }
Exemplo n.º 2
0
Arquivo: EoS.cpp Projeto: fixinf/RMF
	double t_E(double nn, double np, set_const * C) {
		double f = f_eq(nn, np, C);
		double res = t_E(nn, np, f, C);

		double me = m_e;

		double pf_e = 0;
		if (pow(mu_e(nn + np, np, f, C), 2.0) - me*me >= 0){
			pf_e = sqrt(pow(mu_e(nn + np, np, f, C), 2.0) - me*me);
		}

		if (np != 0.0){
			res += KineticIntegral(pf_e, m_e, C);
		}

		double mmu = m_mu;
		double pf_mu = 0;
		if (pow(mu_e(nn + np, np, f, C), 2.0) - mmu*mmu >= 0){
			pf_mu = sqrt(pow(mu_e(nn + np, np, f, C), 2.0) - mmu*mmu);
		}

		if (np != 0.0){
			res += KineticIntegral(pf_mu, m_mu, C);
		}

		return res;

	}
Exemplo n.º 3
0
Arquivo: EoS.cpp Projeto: fixinf/RMF
	double func_np(double np, void * params) {
		struct func_np_params *p = (struct func_np_params *) params;
		double n = p->ntot;


		set_const * C = p->C;
		vec n_ext = p->n_ext;
		double sum = 0.0;
		for (int i = 0; i < n_ext.size(); i++){
			sum += n_ext[i];
		}

		double sum_ch = 0.0;
		for (int i = 0; i < n_ext.size(); i++){
			sum_ch += n_ext[i]*C->Q[i+2];
		}

		//n = n - sum;

		vec _n;
		_n.push_back(n - np);
		_n.push_back(np);
	
		for (int i = 0; i < n_ext.size(); i++){
			_n.push_back(n_ext[i]);
		}


		double f = f_eq(_n, C);
		//double mue = mu_e(n, np, f, C);
		double mu_n = mu(0, _n, C);
		double mu_p = mu(1, _n, C);
		double mue = mu_n - mu_p;
	//	printf("%f \n", mue);

		double mue2 = mu_e(n, np, f, C);
		//mue = mue2;
		
		//cout << "MUE = " << mue << " N = "<< n << " NP = " << np << " F = " << f << endl;
		double result = np;
		//cout << "RESULT = " << result << endl;
		double n_l = 0.0;
		if (mue*mue - m_e*m_e >= 0){
			n_l += pow(mue*mue - m_e*m_e, 3.0 / 2.0) / (3.0*D*pi*pi);
		}
		//cout << "RESULT = " << result << endl;
		if (mue*mue - m_mu*m_mu >= 0){
			n_l += pow(mue*mue - m_mu*m_mu, 3.0 / 2.0) / (3.0*D*pi*pi);
		}
		result -= n_l - sum_ch;
		/*printf("np_eq: mue = %f, n_ch = %f \n",
			mue, sum_ch);*/
		//cout << "RESULT = " << result << endl;
	//	printf("ntot = %f, result = %f \n", n, result);
		return result;
	}
Exemplo n.º 4
0
Arquivo: EoS.cpp Projeto: fixinf/RMF
	double mu(int i, vec n, set_const * C){
		double f = f_eq(n, C);
		double dn = 1e-7;
		double E_p, E_m, E_s;
		//mu_n
		double mu;
		n[i] = n[i] + dn;
		E_p = t_E(n, f, C);
		n[i] = n[i] - dn;
		E_m = t_E(n, f, C);
		n[i] = n[i] + 2*dn;
		double E_pp = t_E(n, f, C);
		mu = (-3*E_m + 4*E_p - E_pp) / (D * 2 * dn);
		return mu;
	}
Exemplo n.º 5
0
    bool is_identity(agg::trans_affine& mat, double epsilon)
    {
        double temp[6];
        mat.store_to(temp);
		return (f_eq(temp[0], 1.0) && f_eq(temp[1], 0.0) &&
				f_eq(temp[2], 0.0) && f_eq(temp[3], 1.0) &&
				f_eq(temp[4], 0.0) && f_eq(temp[5], 0.0));
//        return (temp[0] == 1.0 && temp[1] == 0.0 &&
//                temp[2] == 0.0 && temp[3] == 1.0 &&
//                temp[4] == 0.0 && temp[5] == 0.0);

    }