ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/npVSS_algorithm.txt
Revision: 3926
Committed: Fri Aug 2 19:28:10 2013 UTC (10 years, 10 months ago) by kstocke1
Content type: text/plain
File size: 1725 byte(s)
Log Message:
Initial Import

File Contents

# Content
1 vc = Pc / Mc;
2 ac = -momentumTarget_ / Mc + vc;
3 acrec = -momentumTarget_ / Mc;
4
5 // We now need the inverse of the inertia tensor to calculate the angular velocity of the cold slab;
6
7 Ici = Ic.inverse();
8 omegac = Ici * Lc;
9 bc = -(Ici * angularMomentumTarget_) + omegac;
10 bcrec = bc - omegac;
11
12 cNumerator = Kc - kineticTarget_;
13 if (doLinearPart)
14 cNumerator -= 0.5 * Mc * ac.lengthSquare();
15
16 if (doAngularPart)
17 cNumerator -= 0.5 * ( dot(bc, Ic * bc));
18
19 cDenominator = Kc;
20
21 if (doLinearPart)
22 cDenominator -= 0.5 * Mc * vc.lengthSquare();
23
24 if (doAngularPart)
25 cDenominator -= 0.5*(dot(omegac, Ic * omegac));
26
27 c = sqrt(cNumerator / cDenominator);
28
29 if ((c > 0.9) && (c < 1.1)) {//restrict scaling coefficients
30
31 vh = Ph / Mh;
32 ah = momentumTarget_ / Mh + vh;
33 ahrec = momentumTarget_ / Mh;
34
35 // We now need the inverse of the inertia tensor to calculate the angular velocity of the hot slab;
36
37 Ihi = Ih.inverse();
38 omegah = Ihi * Lh;
39 bh = (Ihi * angularMomentumTarget_) + omegah;
40 bhrec = bh - omegah;
41
42 hNumerator = Kh + kineticTarget_;
43 if (doLinearPart)
44 hNumerator -= 0.5 * Mh * ah.lengthSquare();
45
46 if (doAngularPart)
47 hNumerator -= 0.5 * ( dot(bh, Ih * bh));
48
49 hDenominator = Kh;
50 if (doLinearPart)
51 hDenominator -= 0.5 * Mh * vh.lengthSquare();
52 if (doAngularPart)
53 hDenominator -= 0.5*(dot(omegah, Ih * omegah));
54
55 h = sqrt(hNumerator / hDenominator);
56 if ((h > 0.9) && (h < 1.1)) {//restrict scaling coefficients
57
58 rPos = (*sdi)->getPos() - coordinateOrigin_;
59 if (doLinearPart)
60 vel = ((*sdi)->getVel() - vc) * c + ac;
61 if (doAngularPart)
62 vel = ((*sdi)->getVel() - cross(omegac, rPos)) * c + cross(bc, rPos);
63

Properties

Name Value
svn:executable