Exemplo n.º 1
0
doublereal RedlichKisterVPSSTP::entropy_mole() const
{
    double s = 0;
    vector_fp sbar(m_kk);
    getPartialMolarEntropies(&sbar[0]);
    for (size_t i = 0; i < m_kk; i++) {
        s += moleFractions_[i]*sbar[i];
    }
    return s;
}
doublereal MixedSolventElectrolyte::entropy_mole() const
{
    double s = 0;
    vector_fp sbar(m_kk);
    getPartialMolarEntropies(&sbar[0]);
    for (size_t i = 0; i < m_kk; i++) {
        s += moleFractions_[i]*sbar[i];
    }
    return s;
}
Exemplo n.º 3
0
doublereal MargulesVPSSTP::entropy_mole() const
{
    size_t kk = nSpecies();
    double s = 0;
    vector_fp sbar(kk);
    getPartialMolarEntropies(&sbar[0]);
    for (size_t i = 0; i < kk; i++) {
        s += moleFractions_[i]*sbar[i];
    }
    return s;
}
Exemplo n.º 4
0
int main() {

	quaternion q1(1, 2, 3, 4);
	q1 = normalize(q1);

// real3 v(1,2,3);

// real3 Pl_1 = MatTMult(AMat(q1), v);

// cout<<Pl_1<<endl;

// real3 Pl_2 = quatRotate(v, ~q1);
// cout<<Pl_2<<endl;

// M33 Ps = XMatrix(v);
// M33 Jtemp = MatMult(AMat(q1), Ps);
// cout<<Jtemp.U;
// cout<<Jtemp.V;
// cout<<Jtemp.W;
	quaternion E1(1, 2, 3, 4);
	E1 = normalize(E1);
	real3 sbar(1, 2, 3);

//real3 vnew1 = quatRotate(sbar,~E1);
//real3 vnew2 = quatRotateMatT(sbar,E1);
//
//
//
////real3 t = 2 * cross(real3(E1.x,E1.y,E1.z), sbar);
////real3 vnew2 = sbar + E1.w * t + cross(real3(E1.x,E1.y,E1.z), t);
//
//cout<<vnew1<<endl;
////
//cout<<vnew2<<endl;;

	real3 U = normalize(real3(1, 7, 3));
	real3 V, W;

	W = cross(U, R3(0, 1, 0));
	real mzlen = length(W);
	if (mzlen < .0001) {     // was near singularity? change singularity reference custom_vector!
		real3 mVsingular = R3(1, 0, 0);
		W = cross(U, mVsingular);
		mzlen = length(W);
	}
	W /= mzlen;
	V = cross(W, U);
//
	M33 contact_plane;
	contact_plane.U = U;
	contact_plane.V = V;
	contact_plane.W = W;
//
	sbar = quatRotate(sbar, ~E1);     //A^T*s
////
////			M33 sbartilde = XMatrix(sbar);
////			M33 Jtemp = MatMult(AMat(E1), sbartilde);
////			M33 Jr = MatTMult(contact_plane, Jtemp);
	real3 col1 = cross(quatRotate(U, ~E1), sbar);
	real3 col2 = cross(quatRotate(V, ~E1), sbar);
	real3 col3 = cross(quatRotate(W, ~E1), sbar);
	cout << col1;
	cout << col2;
	cout << col3;

	real3 A = normalize(quatRotate(U, ~E1));
	real3 B, C;
	C = cross(A, R3(0, 1, 0));
	 mzlen = length(C);
	if (mzlen < .0001) {     // was near singularity? change singularity reference custom_vector!
		real3 mVsingular = R3(1, 0, 0);
		C = cross(A, mVsingular);
		mzlen = length(C);
	}
	C /= mzlen;
	B = cross(C, A);

	 col1 = cross(A, sbar);
	 col2 = cross(B, sbar);
	 col3 = cross(C, sbar);

	 cout<<endl;

	 cout << col1;
	 	cout << col2;
	 	cout << col3;
//
//
////
//	M33 Jr = MatTMult(contact_plane, AMat(E1));
////
//	real3 T1 = R3(Jr.U.x, Jr.V.x, Jr.W.x);
//	real3 T2 = R3(Jr.U.y, Jr.V.y, Jr.W.y);
//	real3 T3 = R3(Jr.U.z, Jr.V.z, Jr.W.z);
////
//	real3 col1 = quatRotate(U, ~E1);
//	real3 col2 = quatRotate(V, ~E1);
//	real3 col3 = quatRotate(W, ~E1);
//	cout << col1;
//	cout << col2;
//	cout << col3;
//
//	cout << endl;
//	cout << T1;
//	cout << T2;
//	cout << T3;
	/*
	 [-1.5185, -2.30493, 1.89737]
	 [-0.347087, -0.52684, -2.9093]
	 [1.34496, 2.04151, 1.3914]
	 */
//  [0.650787, 0.178357, 0.737865]
//  [0.0780945, -0.982338, 0.168655]
//  [0.754913, -0.0521351, -0.653537]
	return 0;

}