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

# User Rev Content
1 kstocke1 3926 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