//----------------------------------------------------------------------------- // TestMatrixAdd_MM //----------------------------------------------------------------------------- bool TestMatrixAdd_MM() { Matrix A("1,2,3;4,5,6"); Matrix B("1,0,1;0,0,1"); Matrix C; Add_MM(A,B,C); Matrix ApB("2,2,4;4,5,7"); return ApproxEqual(C,ApB,TOLERANCE); }
inline void RocketGeometry::Display() { double v = 30; double t = 273.15 + 20; double rho = 1.225; double r = Reynolds(rho, v, ltr, t); double a = 0.01; double m = Mach(v, t); double cf = ViscousDrag(r); double xcp = Xcp(a); double cn = Cn(a, r, m); double ca = Ca(a, r, m, cn); std::cout << "Rocket Geometry: " << "\n\nPlanform Areas" << "\n - ApN: " << ApN() << "\n - ApB: " << ApB() << "\n - ApT: " << ApT() << "\n - ApF: " << ApF() << "\n - Afe: " << Afe() << "\n - Afp: " << Afp() << "\n\nStability Derivatives" << "\n - CnaN: " << NCnaN() << "\n - CnaB: " << NCnaB() << "\n - CnaT: " << NCnaT() << "\n - CnaF: " << NCnaF() << "\n\nNorm Force CP" << "\n - NcpN: " << NXcpN() << "\n - NcpB: " << NXcpB() << "\n - NcpT: " << NXcpT() << "\n - NcpF: " << NXcpF() << "\n\nLift Force CP" << "\n - LcpN: " << LXcpN() << "\n - LcpB: " << LXcpB() << "\n - LcpT: " << LXcpT() << "\n - LcpF: " << LXcpF() << "\n\nDrag Force" << "\n - DragB: " << DragBody(cf) << "\n - DragA: " << DragBase(DragBody(cf)) << "\n - DragF: " << DragFin(cf) << "\n - DragI: " << DragInterference(cf) << "\n - DragBA: " << DragAlphaBody(a) << "\n - DragFA: " << DragAlphaFin(a) << "\n\nResults" << "\n - Cn: " << cn << "\n - Ca: " << ca << "\n - Xcp: " << xcp << std::endl; }
inline void RocketGeometry::Update() { Ar = PI * sqr(dn / 2); Ap = ApB() + ApF() + ApN() + ApT(); StabilityConstants(KCna1, KCna2, KXcpa1, KXcpa2); }
double LCnaB() { return K * ApB() / Ar; }