C2H2::C2H2() : teplojomkost() { set_v_max( 13 ); v_t(1) = 0; v_Cp( 1 ) = 0.38447; v_Cv( 1 ) = 0.308; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.44669; v_Cv( 2 ) = 0.3703; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.48817; v_Cv( 3 ) = 0.4117; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.51928; v_Cv( 4 ) = 0.4428; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.54501; v_Cv( 5 ) = 0.4686; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.56756; v_Cv( 6 ) = 0.49128; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.58784; v_Cv( 7 ) = 0.51156; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.60643; v_Cv( 8 ) = 0.53015; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.62337; v_Cv( 9 ) = 0.54709; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.63881; v_Cv( 10 ) = 0.56253; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.65279; v_Cv( 11 ) = 0.57651; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.66542; v_Cv( 12 ) = 0.58915; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.67672; v_Cv( 13 ) = 0.60044; v_S( 13 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=1200) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
C2H4::C2H4() : teplojomkost() { set_v_max( 13 ); v_t(1) = 0; v_Cp( 1 ) = 0.3486; v_Cv( 1 ) = 0.2777; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.4363; v_Cv( 2 ) = 0.3654; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.5197; v_Cv( 3 ) = 0.4488; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.5918; v_Cv( 4 ) = 0.5208; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.6534; v_Cv( 5 ) = 0.5825; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.7065; v_Cv( 6 ) = 0.6356; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.7532; v_Cv( 7 ) = 0.6823; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.7942; v_Cv( 8 ) = 0.7233; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.8295; v_Cv( 9 ) = 0.7586; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.8609; v_Cv( 10 ) = 0.79; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.8887; v_Cv( 11 ) = 0.8178; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.9126; v_Cv( 12 ) = 0.8416; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.9336; v_Cv( 13 ) = 0.8627; v_S( 13 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=1200) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
C3H8::C3H8() : teplojomkost() { set_v_max( 13 ); v_t(1) = 0; v_Cp( 1 ) = 0.3701; v_Cv( 1 ) = 0.325; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.4817; v_Cv( 2 ) = 0.4366; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.5871; v_Cv( 3 ) = 0.512; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.677; v_Cv( 4 ) = 0.6318; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.755; v_Cv( 5 ) = 0.7098; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.8237; v_Cv( 6 ) = 0.7786; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.8831; v_Cv( 7 ) = 0.838; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.9353; v_Cv( 8 ) = 0.8901; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.9775; v_Cv( 9 ) = 0.9323; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 1.0151; v_Cv( 10 ) = 0.97; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 1.0496; v_Cv( 11 ) = 1.0044; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 1.0811; v_Cv( 12 ) = 1.036; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 1.1094; v_Cv( 13 ) = 1.0643; v_S( 13 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=1200) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
C3H6::C3H6() : teplojomkost() { set_v_max( 13 ); v_t(1) = 0; v_Cp( 1 ) = 0.3406; v_Cv( 1 ) = 0.2933; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.4299; v_Cv( 2 ) = 0.3826; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.5159; v_Cv( 3 ) = 0.4686; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.5915; v_Cv( 4 ) = 0.5442; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.6576; v_Cv( 5 ) = 0.6103; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.7146; v_Cv( 6 ) = 0.6673; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.7643; v_Cv( 7 ) = 0.717; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.8078; v_Cv( 8 ) = 0.7605; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.8456; v_Cv( 9 ) = 0.7983; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.8784; v_Cv( 10 ) = 0.8311; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.9071; v_Cv( 11 ) = 0.8598; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.9321; v_Cv( 12 ) = 0.8848; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.9535; v_Cv( 13 ) = 0.9062; v_S( 13 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=1200) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
void fixedRhoEFvPatchScalarField::updateCoeffs() { if (updated()) { return; } const dictionary& thermodynamicProperties = db().lookupObject<IOdictionary> ( "thermodynamicProperties" ); dimensionedScalar Cv(thermodynamicProperties.lookup("Cv")); const fvPatchScalarField& rhop = lookupPatchField<volScalarField, scalar>("rho"); const fvPatchVectorField& rhoUp = lookupPatchField<volVectorField, vector>("rhoU"); const fvPatchScalarField& Tp = lookupPatchField<volScalarField, scalar>("T"); operator==(rhop*(Cv.value()*Tp + 0.5*magSqr(rhoUp/rhop))); fixedValueFvPatchScalarField::updateCoeffs(); }
void MoM_Partition::GetIncomeV() { IncomeV.resize(Edge.size()); for (int i=0; i<Edge.size(); i++) { int EdgeNo = Edge[i]; int Node1 = Geo->Edge(EdgeNo)[0]; int Node2 = Geo->Edge(EdgeNo)[1]; dComplex Crhse(0.0, 0.0); dComplex Crhsh(0.0, 0.0); for (int Fld=0; Fld<2; Fld++) { int Pat3 = Geo->Edge(EdgeNo)[2+Fld]; int Node3 = IGetN3(Pat3, Node1, Node2); Position3D Anorm(Geo->Patch_Norm(Pat3));//patch的法向矢量 real_data Poln(dot(Anorm, Ex->Pol));//极化矢量在法向的投影 real_data Rkn(dot(Anorm, Ex->Rk));//波矢在法向的投影 Position3D Rfld(Geo->Patch_Ctr(Pat3)); Position3D Rhofld((1.0 - 2*Fld) * (Rfld - Geo->Node(Node3))); //场点的Rho dComplex Ct = exp(dot(Ex->Rk, Rfld)*dComplex(0.0,-1.0));//exp(-jkR) real_data Polrho= dot(Rhofld, Ex->Pol); if (ALPHA > 1e-5) { Crhse -= 0.5*Ct*Polrho;//P.9页(55)式,The factor 0.5 comes from the test function.The sign "-1" comes from the EFIE ( E^s = - E^i ) } if (abs(1.0 - ALPHA) > 1e-5)//The right-hand-side of the MFIE:(The factor 0.5 comes from the test function.) { dComplex Cv((Poln * dot(Rhofld, Ex->Rk) - Rkn * Polrho) * Ct); Crhsh += 0.5 * Cv / Ex->Wave_Num;//除以波长是因为p14页 88式中括号里的波矢为单位矢量,没有-4PI是因为已经把它除到了MFIE的矩阵元素里,没有ETA0是因为已经和CFIE的系数消掉了 } } IncomeV(i) = Geo->Edge_Length(EdgeNo) * (ALPHA * Crhse + (1.0 - ALPHA) * Crhsh); } }
CvType getCvTypeAsConst (CvType const & cv_type) { CvType res_cv_type = cv_type; if (res_cv_type.getType ()->getKind () != REF_TYPE) { Cv const & cv = res_cv_type.getCv (); res_cv_type = CvType (res_cv_type.getType (), Cv (true, cv.isVolatile ())); } return res_cv_type; }
NO::NO() : teplojomkost() { set_v_max( 31 ); v_t(1) = 0; v_Cp( 1 ) = 0.2386; v_Cv( 1 ) = 0.1724; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.2381; v_Cv( 2 ) = 0.1719; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.2414; v_Cv( 3 ) = 0.1752; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 5.2472; v_Cv( 4 ) = 0.181; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.2534; v_Cv( 5 ) = 0.1872; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.2594; v_Cv( 6 ) = 0.1932; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.2648; v_Cv( 7 ) = 0.1986; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.2695; v_Cv( 8 ) = 0.2033; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.2736; v_Cv( 9 ) = 0.2074; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.277; v_Cv( 10 ) = 0.2108; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.2799; v_Cv( 11 ) = 0.2137; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.2824; v_Cv( 12 ) = 0.2165; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.2845; v_Cv( 13 ) = 0.2183; v_S( 13 ) = 0; v_t(14) = 1300; v_Cp( 14 ) = 0.2864; v_Cv( 14 ) = 0.2202; v_S( 14 ) = 0; v_t(15) = 1400; v_Cp( 15 ) = 0.2881; v_Cv( 15 ) = 0.2219; v_S( 15 ) = 0; v_t(16) = 1500; v_Cp( 16 ) = 0.2895; v_Cv( 16 ) = 0.2233; v_S( 16 ) = 0; v_t(17) = 1600; v_Cp( 17 ) = 0.2907; v_Cv( 17 ) = 0.2245; v_S( 17 ) = 0; v_t(18) = 1700; v_Cp( 18 ) = 0.2918; v_Cv( 18 ) = 0.2256; v_S( 18 ) = 0; v_t(19) = 1800; v_Cp( 19 ) = 0.2928; v_Cv( 19 ) = 0.2267; v_S( 19 ) = 0; v_t(20) = 1900; v_Cp( 20 ) = 0.2938; v_Cv( 20 ) = 0.2276; v_S( 20 ) = 0; v_t(21) = 2000; v_Cp( 21 ) = 0.2947; v_Cv( 21 ) = 0.2285; v_S( 21 ) = 0; v_t(22) = 2100; v_Cp( 22 ) = 0.2954; v_Cv( 22 ) = 0.2292; v_S( 22 ) = 0; v_t(23) = 2200; v_Cp( 23 ) = 0.296; v_Cv( 23 ) = 0.2299; v_S( 23 ) = 0; v_t(24) = 2300; v_Cp( 24 ) = 0.2967; v_Cv( 24 ) = 0.2305; v_S( 24 ) = 0; v_t(25) = 2400; v_Cp( 25 ) = 0.2973; v_Cv( 25 ) = 0.2311; v_S( 25 ) = 0; v_t(26) = 2500; v_Cp( 26 ) = 0.2978; v_Cv( 26 ) = 0.2317; v_S( 26 ) = 0; v_t(27) = 2600; v_Cp( 27 ) = 0.2984; v_Cv( 27 ) = 0.2322; v_S( 27 ) = 0; v_t(28) = 2700; v_Cp( 28 ) = 0.2989; v_Cv( 28 ) = 0.2323; v_S( 28 ) = 0; v_t(29) = 2800; v_Cp( 29 ) = 0.2994; v_Cv( 29 ) = 0.2333; v_S( 29 ) = 0; v_t(30) = 2900; v_Cp( 30 ) = 0.2999; v_Cv( 30 ) = 0.2338; v_S( 30 ) = 0; v_t(31) = 3000; v_Cp( 31 ) = 0.3004; v_Cv( 31 ) = 0.2342; v_S( 31 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=3000) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
CO::CO() : teplojomkost() { set_v_max( 26 ); v_t(1) = 0; v_Cp( 1 ) = 0.2483; v_Cv( 1 ) = 0.1774; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.2495; v_Cv( 2 ) = 0.1786; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.2528; v_Cv( 3 ) = 0.1819; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.258; v_Cv( 4 ) = 0.1871; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.2641; v_Cv( 5 ) = 0.1932; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.2704; v_Cv( 6 ) = 0.1995; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.2763; v_Cv( 7 ) = 0.2054; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.2816; v_Cv( 8 ) = 0.2107; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.2863; v_Cv( 9 ) = 0.2154; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.2904; v_Cv( 10 ) = 0.2195; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.2939; v_Cv( 11 ) = 0.223; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.297; v_Cv( 12 ) = 0.2261; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.2996; v_Cv( 13 ) = 0.2287; v_S( 13 ) = 0; v_t(14) = 1300; v_Cp( 14 ) = 0.302; v_Cv( 14 ) = 0.2311; v_S( 14 ) = 0; v_t(15) = 1400; v_Cp( 15 ) = 0.304; v_Cv( 15 ) = 0.233; v_S( 15 ) = 0; v_t(16) = 1500; v_Cp( 16 ) = 0.3057; v_Cv( 16 ) = 0.2348; v_S( 16 ) = 0; v_t(17) = 1600; v_Cp( 17 ) = 0.3073; v_Cv( 17 ) = 0.2364; v_S( 17 ) = 0; v_t(18) = 1700; v_Cp( 18 ) = 0.3087; v_Cv( 18 ) = 0.2378; v_S( 18 ) = 0; v_t(19) = 1800; v_Cp( 19 ) = 0.31; v_Cv( 19 ) = 0.239; v_S( 19 ) = 0; v_t(20) = 1900; v_Cp( 20 ) = 0.3111; v_Cv( 20 ) = 0.2402; v_S( 20 ) = 0; v_t(21) = 2000; v_Cp( 21 ) = 0.3121; v_Cv( 21 ) = 0.2412; v_S( 21 ) = 0; v_t(22) = 2100; v_Cp( 22 ) = 0.313; v_Cv( 22 ) = 0.2421; v_S( 22 ) = 0; v_t(23) = 2200; v_Cp( 23 ) = 0.3138; v_Cv( 23 ) = 0.2429; v_S( 23 ) = 0; v_t(24) = 2300; v_Cp( 24 ) = 0.3146; v_Cv( 24 ) = 0.2437; v_S( 24 ) = 0; v_t(25) = 2400; v_Cp( 25 ) = 0.3153; v_Cv( 25 ) = 0.2444; v_S( 25 ) = 0; v_t(26) = 2500; v_Cp( 26 ) = 0.316; v_Cv( 26 ) = 0.245; v_S( 26 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=2500) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
N2::N2() : teplojomkost() { set_v_max( 26 ); v_t(1) = 0; v_Cp( 1 ) = 0.2482; v_Cv( 1 ) = 0.1773; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.2489; v_Cv( 2 ) = 0.178; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.2512; v_Cv( 3 ) = 0.1804; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.2554; v_Cv( 4 ) = 0.1845; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.2607; v_Cv( 5 ) = 0.1898; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.2664; v_Cv( 6 ) = 0.1955; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.2721; v_Cv( 7 ) = 0.2012; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.2774; v_Cv( 8 ) = 0.2065; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.2822; v_Cv( 9 ) = 0.2113; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.2864; v_Cv( 10 ) = 0.2156; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.2902; v_Cv( 11 ) = 0.2193; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.2935; v_Cv( 12 ) = 0.2226; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.2964; v_Cv( 13 ) = 0.2255; v_S( 13 ) = 0; v_t(14) = 1300; v_Cp( 14 ) = 0.2989; v_Cv( 14 ) = 0.228; v_S( 14 ) = 0; v_t(15) = 1400; v_Cp( 15 ) = 0.3011; v_Cv( 15 ) = 0.2302; v_S( 15 ) = 0; v_t(16) = 1500; v_Cp( 16 ) = 0.303; v_Cv( 16 ) = 0.2322; v_S( 16 ) = 0; v_t(17) = 1600; v_Cp( 17 ) = 0.3048; v_Cv( 17 ) = 0.2339; v_S( 17 ) = 0; v_t(18) = 1700; v_Cp( 18 ) = 0.3063; v_Cv( 18 ) = 0.2354; v_S( 18 ) = 0; v_t(19) = 1800; v_Cp( 19 ) = 0.3077; v_Cv( 19 ) = 0.2358; v_S( 19 ) = 0; v_t(20) = 1900; v_Cp( 20 ) = 0.3089; v_Cv( 20 ) = 0.238; v_S( 20 ) = 0; v_t(21) = 2000; v_Cp( 21 ) = 0.31; v_Cv( 21 ) = 0.2391; v_S( 21 ) = 0; v_t(22) = 2100; v_Cp( 22 ) = 0.311; v_Cv( 22 ) = 0.2401; v_S( 22 ) = 0; v_t(23) = 2200; v_Cp( 23 ) = 0.312; v_Cv( 23 ) = 0.2411; v_S( 23 ) = 0; v_t(24) = 2300; v_Cp( 24 ) = 0.3128; v_Cv( 24 ) = 0.2419; v_S( 24 ) = 0; v_t(25) = 2400; v_Cp( 25 ) = 0.3136; v_Cv( 25 ) = 0.2427; v_S( 25 ) = 0; v_t(26) = 2500; v_Cp( 26 ) = 0.3143; v_Cv( 26 ) = 0.2434; v_S( 26 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=2500) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
N2_ATM::N2_ATM() : teplojomkost() { set_v_max( 26 ); v_t(1) = 0; v_Cp( 1 ) = 0.2461; v_Cv( 1 ) = 0.1756; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.2469; v_Cv( 2 ) = 0.1763; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.2491; v_Cv( 3 ) = 0.1786; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.2532; v_Cv( 4 ) = 0.1827; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.2584; v_Cv( 5 ) = 0.1879; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.2641; v_Cv( 6 ) = 0.1935; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.2697; v_Cv( 7 ) = 0.1992; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 0.2749; v_Cv( 8 ) = 0.2044; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 0.2793; v_Cv( 9 ) = 0.2091; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 0.2833; v_Cv( 10 ) = 0.2132; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 0.2874; v_Cv( 11 ) = 0.2169; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 0.2907; v_Cv( 12 ) = 0.2202; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 0.2935; v_Cv( 13 ) = 0.223; v_S( 13 ) = 0; v_t(14) = 1300; v_Cp( 14 ) = 0.295; v_Cv( 14 ) = 0.2255; v_S( 14 ) = 0; v_t(15) = 1400; v_Cp( 15 ) = 0.2982; v_Cv( 15 ) = 0.2277; v_S( 15 ) = 0; v_t(16) = 1500; v_Cp( 16 ) = 0.3001; v_Cv( 16 ) = 0.2296; v_S( 16 ) = 0; v_t(17) = 1600; v_Cp( 17 ) = 0.3018; v_Cv( 17 ) = 0.2313; v_S( 17 ) = 0; v_t(18) = 1700; v_Cp( 18 ) = 0.3033; v_Cv( 18 ) = 0.2328; v_S( 18 ) = 0; v_t(19) = 1800; v_Cp( 19 ) = 0.3047; v_Cv( 19 ) = 0.2341; v_S( 19 ) = 0; v_t(20) = 1900; v_Cp( 20 ) = 0.3059; v_Cv( 20 ) = 0.2354; v_S( 20 ) = 0; v_t(21) = 2000; v_Cp( 21 ) = 0.307; v_Cv( 21 ) = 0.2364; v_S( 21 ) = 0; v_t(22) = 2100; v_Cp( 22 ) = 0.308; v_Cv( 22 ) = 0.2374; v_S( 22 ) = 0; v_t(23) = 2200; v_Cp( 23 ) = 0.3089; v_Cv( 23 ) = 0.2383; v_S( 23 ) = 0; v_t(24) = 2300; v_Cp( 24 ) = 0.3097; v_Cv( 24 ) = 0.2392; v_S( 24 ) = 0; v_t(25) = 2400; v_Cp( 25 ) = 0.3105; v_Cv( 25 ) = 0.24; v_S( 25 ) = 0; v_t(26) = 2500; v_Cp( 26 ) = 0.3112; v_Cv( 26 ) = 0.2407; v_S( 26 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=2500) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
CO2::CO2() : teplojomkost() { set_v_max( 26 ); v_t( 1 ) = 0.0 ; v_Cp( 1 ) = 0.1946 ; v_Cv( 1 ) = 0.1495; v_S( 1 ) = 0.0; v_t( 2 ) = 100.0 ; v_Cp( 2 ) = 0.2182 ; v_Cv( 2 ) = 0.1731; v_S( 2 ) = 0.0; v_t( 3 ) = 200.0 ; v_Cp( 3 ) = 0.2371 ; v_Cv( 3 ) = 0.1920; v_S( 3 ) = 0.0; v_t( 4 ) = 300.0 ; v_Cp( 4 ) = 0.2524 ; v_Cv( 4 ) = 0.2073; v_S( 4 ) = 0.0; v_t( 5 ) = 400.0 ; v_Cp( 5 ) = 0.2652 ; v_Cv( 5 ) = 0.2200; v_S( 5 ) = 0.0; v_t( 6 ) = 500.0 ; v_Cp( 6 ) = 0.2758 ; v_Cv( 6 ) = 0.2307; v_S( 6 ) = 0.0; v_t( 7 ) = 600.0 ; v_Cp( 7 ) = 0.2847 ; v_Cv( 7 ) = 0.2395; v_S( 7 ) = 0.0; v_t( 8) = 700.0 ; v_Cp( 8 ) = 0.2921 ; v_Cv( 8 ) = 0.2470; v_S( 8 ) = 0.0; v_t( 9 ) = 800.0 ; v_Cp( 9 ) = 0.2984 ; v_Cv( 9 ) = 0.2532; v_S( 9 ) = 0.0; v_t( 10 ) = 900.0 ; v_Cp( 10 ) = 0.3037 ; v_Cv( 10 ) = 0.2585; v_S( 10 ) = 0.0; v_t( 11 ) = 1000.0 ; v_Cp( 11 ) = 0.3081 ; v_Cv( 11 ) = 0.2630; v_S( 11 ) = 0.0; v_t( 12 ) = 1100.0 ; v_Cp( 12 ) = 0.3119 ; v_Cv( 12 ) = 0.2668; v_S( 12 ) = 0.0; v_t( 13 ) = 1200.0 ; v_Cp( 13 ) = 0.3152 ; v_Cv( 13 ) = 0.2700; v_S( 13 ) = 0.0; v_t( 14 ) = 1300.0 ; v_Cp( 14 ) = 0.3180 ; v_Cv( 14 ) = 0.2728; v_S( 14 ) = 0.0; v_t( 15 ) = 1400.0 ; v_Cp( 15 ) = 0.3204 ; v_Cv( 15 ) = 0.2752; v_S( 15 ) = 0.0; v_t( 16 ) = 1500.0 ; v_Cp( 16 ) = 0.3224 ; v_Cv( 16 ) = 0.2773; v_S( 16 ) = 0.0; v_t( 17 ) = 1600.0 ; v_Cp( 17 ) = 0.3242 ; v_Cv( 17 ) = 0.2791; v_S( 17 ) = 0.0; v_t( 18 ) = 1700.0 ; v_Cp( 18 ) = 0.3257 ; v_Cv( 18 ) = 0.2806; v_S( 18 ) = 0.0; v_t( 19 ) = 1800.0 ; v_Cp( 19 ) = 0.3271 ; v_Cv( 19 ) = 0.2820; v_S( 19 ) = 0.0; v_t( 20 ) = 1900.0 ; v_Cp( 20 ) = 0.3282 ; v_Cv( 20 ) = 0.2831; v_S( 20 ) = 0.0; v_t( 21 ) = 2000.0 ; v_Cp( 21 ) = 0.3292 ; v_Cv( 21 ) = 0.2840; v_S( 21 ) = 0.0; v_t( 22 ) = 2100.0 ; v_Cp( 22 ) = 0.3300 ; v_Cv( 22 ) = 0.2848; v_S( 22 ) = 0.0; v_t( 23 ) = 2200.0 ; v_Cp( 23 ) = 0.3306 ; v_Cv( 23 ) = 0.2855; v_S( 23 ) = 0.0; v_t( 24 ) = 2300.0 ; v_Cp( 24 ) = 0.3311 ; v_Cv( 24 ) = 0.2860; v_S( 24 ) = 0.0; v_t( 25 ) = 2400.0 ; v_Cp( 25 ) = 0.3314 ; v_Cv( 25 ) = 0.2863; v_S( 25 ) = 0.0; v_t( 26 ) = 2500.0 ; v_Cp( 26 ) = 0.3315 ; v_Cv( 26 ) = 0.2864; v_S( 26 ) = 0.0; v_t=v_t/1000.0; reculc_polynoms(); cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=2500) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
fg::Image FontRenderer::renderGlyph(const fm::Uint32 &letter,Glyph::Style style,fm::vec2 *leftDown) const { if (!m_fileContent) return fg::Image(); if (letter == ' ') { float scl = stbtt_ScaleForMappingEmToPixels((stbtt_fontinfo*)m_stbFontInfo, m_currentSize); int ix0,ix1,iy0,iy1; stbtt_GetCodepointBitmapBox((stbtt_fontinfo*)m_stbFontInfo, 'w', scl, scl, &ix0, &iy0, &ix1, &iy1); return fg::Image(fm::vec2s(ix1-ix0,iy1-iy0),fg::Color(255,255,255,0)); } unsigned char *bitmap; fm::vec2i size,offset; bitmap = stbtt_GetCodepointBitmap((stbtt_fontinfo*)m_stbFontInfo, 0,stbtt_ScaleForMappingEmToPixels((stbtt_fontinfo*)m_stbFontInfo, m_currentSize), letter, &size.w, &size.h, &offset.x, &offset.y); if (leftDown) *leftDown = offset; fg::Image img; img.create(size); Cv(size) img.set(p,fg::Color(255,bitmap[p.x + p.y*size.w])); stbtt_FreeBitmap(bitmap,0); return img; (void)style; /* // if rendering upper/lower index decrease size unsigned int originalSize = m_currentSize; if ((style & Glyph::Subscript) xor (style & Glyph::Superscript )) setCharacterSize(m_currentSize*.7); // get glyph index FT_UInt glyphIndex = FT_Get_Char_Index(*((FT_Face*)m_ftFaceData),letter); // load glyph data int error = FT_Load_Glyph(*((FT_Face*)m_ftFaceData),glyphIndex,FT_LOAD_FORCE_AUTOHINT | FT_LOAD_DEFAULT); if (error) return fg::Image(); FT_Face face = (*((FT_Face*)m_ftFaceData)); // embolden and italicise if (style & fg::Glyph::Bold) FT_GlyphSlot_Embolden(face->glyph); if (style & fg::Glyph::Italic) FT_GlyphSlot_Oblique(face->glyph); // render glyph image error = FT_Render_Glyph( face->glyph,FT_RENDER_MODE_NORMAL); if (error) return fg::Image(); // get bitmap details fm::Size width = face->glyph->bitmap.width; fm::Size height = face->glyph->bitmap.rows; std::vector<fm::Uint8> bitmap(face->glyph->bitmap.buffer,face->glyph->bitmap.buffer+width*height); float offsetx = (face->glyph->metrics.horiBearingX>>6); float offsety = (face->glyph->metrics.horiBearingY>>6)-float(height); // manually create upper index if requested if (style & fg::Glyph::Superscript && !(style & fg::Glyph::Subscript)) { fm::Size deltaH = height*0.4f; bitmap.resize(width*(height+deltaH),0); offsety+=deltaH; height+=deltaH; } // manually create lower index if requested if (style & fg::Glyph::Subscript && !(style & fg::Glyph::Superscript)) { fm::Size deltaH = height*0.4f; bitmap.resize(width*(height+deltaH),0); offsety-=deltaH; Cxy(width,height) { fm::Uint8 tmp = bitmap[x+int(height+deltaH-y-1)*width]; bitmap[x+int(height+deltaH-y-1)*width] = bitmap[x+int(height-y-1)*width]; bitmap[x+int(height-y-1)*width] = tmp; } height+=height/2.f; } // reset the size back if needed if ((style & fg::Glyph::Subscript) xor (style & fg::Glyph::Superscript)) setCharacterSize(originalSize); // manually strike through and/or underline if requested for (int i=0;i<bool(style & fg::Glyph::Crossed)+bool(style & fg::Glyph::Underlined);i++) { bool crossed = ((style & fg::Glyph::Crossed) && i==0); int ymax = offsety+height; float &ymin = offsety; // if the line would be out of the image (take account the y offset like in '~' as the leeter might not "sit" on the baseline) int lineW = int(m_metrics.maxH/15.f); int lineP = int(m_metrics.maxH*(crossed ? 0.2 : 0.0) ); if (ymin > lineP) { bitmap.resize(width*(height+int(ymin-lineP)),0); ymin = lineP; height = ymax-ymin; } else if (ymax < lineW+lineP) { bitmap.resize(width*(height+(lineW+lineP-ymax)),0); ymax = lineW+lineP; height = ymax-ymin; } // simply set the value to one for every pixel in the line Cx(width) Cy((unsigned int)(lineW)) bitmap[x+(height-1-y+int(ymin)-lineP)*width] = 255; } // manually create outline if requested if (style & fg::Glyph::Outline) { std::vector<fm::Uint8> oldData = bitmap; bitmap.resize((width+2)*(height+2)); // get a bigger bitmap Cxy(width+2,height+2) { int db=0,sum=0; int ax=int(x)-1,ay=int(y)-1; int curVal = fm::rect2i(0,0,width-1,height-1).contains(fm::vec2i(ax,ay)) ? oldData[ax+ay*width] : 0; // this algorithm uses the difference between the neighbour pixels (the bigger the difference the bigger the output will be) for(int x1=-1;x1<=1;x1++) for(int y1=-1;y1<=1;y1++) { if (fm::vec2(x1,y1).LENGTH()>=1) { int deltaVal=(fm::rect2i(0,0,width-1,height-1).contains(fm::vec2i(ax+x1,ay+y1))) ? oldData[(ax+x1)+(ay+y1)*width]-curVal : -curVal; deltaVal*=(deltaVal > 0 ? .9 : 1.4); sum+=(deltaVal < 0 ? -deltaVal : deltaVal), db++; } } // do some scaling on the value and clamp it to [0;255] bitmap[x+y*(width+2)] = fm::math::min(255.0,db ? sum/db*1.6 : 0.0); } // update glyph image details width+=2,height+=2;offsetx--,offsety--; } Cxy(width,height) { float f = bitmap[y*width + x] / 255.0; bitmap[y*width + x] = fm::math::sqrt3(f) * 255.0; } if (leftDown) leftDown->x = offsetx, leftDown->y = offsety; // convert the bitmap to fg::Image fg::Image img; img.create(width,height); Cxy(width,height) img.setPixel(x,y,fg::Color(255,255,255,bitmap[y*width + x])); */ return img; }
CH4::CH4() : teplojomkost() { set_v_max( 13 ); v_t(1) = 0; v_Cp( 1 ) = 0.5172; v_Cv( 1 ) = 0.3934; v_S( 1 ) = 0; v_t(2) = 100; v_Cp( 2 ) = 0.5848; v_Cv( 2 ) = 0.461; v_S( 2 ) = 0; v_t(3) = 200; v_Cp( 3 ) = 0.6704; v_Cv( 3 ) = 0.5466; v_S( 3 ) = 0; v_t(4) = 300; v_Cp( 4 ) = 0.7584; v_Cv( 4 ) = 0.6346; v_S( 4 ) = 0; v_t(5) = 400; v_Cp( 5 ) = 0.843; v_Cv( 5 ) = 0.7192; v_S( 5 ) = 0; v_t(6) = 500; v_Cp( 6 ) = 0.921; v_Cv( 6 ) = 0.7972; v_S( 6 ) = 0; v_t(7) = 600; v_Cp( 7 ) = 0.9919; v_Cv( 7 ) = 0.8681; v_S( 7 ) = 0; v_t(8) = 700; v_Cp( 8 ) = 1.056; v_Cv( 8 ) = 0.9322; v_S( 8 ) = 0; v_t(9) = 800; v_Cp( 9 ) = 1.1129; v_Cv( 9 ) = 0.9891; v_S( 9 ) = 0; v_t(10) = 900; v_Cp( 10 ) = 1.1638; v_Cv( 10 ) = 1.04; v_S( 10 ) = 0; v_t(11) = 1000; v_Cp( 11 ) = 1.2089; v_Cv( 11 ) = 1.0851; v_S( 11 ) = 0; v_t(12) = 1100; v_Cp( 12 ) = 1.2483; v_Cv( 12 ) = 1.1245; v_S( 12 ) = 0; v_t(13) = 1200; v_Cp( 13 ) = 1.282; v_Cv( 13 ) = 1.1582; v_S( 13 ) = 0; v_t=v_t/1000.0; reculc_polynoms(); cout << Name() << endl << Formula() << endl; cout << p_t_Cp; cout << p_t_Cv ; cout << p_t_S ; int i =0; while (i<=1200) { cout << i <<" "<<Cp(i) <<" "<< Cv(i) <<" "<< S(i)<< endl; i+=100; } }
void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh) { bool writeResults = !args.optionFound("noWrite"); IOobject Uheader ( "U", runTime.timeName(), mesh, IOobject::MUST_READ ); IOobject Theader ( "T", runTime.timeName(), mesh, IOobject::MUST_READ ); // Check U and T exists if (Uheader.headerOk() && Theader.headerOk()) { autoPtr<volScalarField> MachPtr; volVectorField U(Uheader, mesh); if (isFile(runTime.constantPath()/"thermophysicalProperties")) { // thermophysical Mach autoPtr<basicPsiThermo> thermo ( basicPsiThermo::New(mesh) ); volScalarField Cp = thermo->Cp(); volScalarField Cv = thermo->Cv(); MachPtr.set ( new volScalarField ( IOobject ( "Ma", runTime.timeName(), mesh ), mag(U)/(sqrt((Cp/Cv)*(Cp - Cv)*thermo->T())) ) ); } else { // thermodynamic Mach IOdictionary thermoProps ( IOobject ( "thermodynamicProperties", runTime.constant(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE ) ); dimensionedScalar R(thermoProps.lookup("R")); dimensionedScalar Cv(thermoProps.lookup("Cv")); volScalarField T(Theader, mesh); MachPtr.set ( new volScalarField ( IOobject ( "Ma", runTime.timeName(), mesh ), mag(U)/(sqrt(((Cv + R)/Cv)*R*T)) ) ); } Info<< "Mach max : " << max(MachPtr()).value() << endl; if (writeResults) { MachPtr().write(); } } else { Info<< " Missing U or T" << endl; } }
void VideoFluids::trackVelocity(Matrix& Zn1,Matrix& Zn,Matrix& U,Matrix& V) { Matrix Zx(height,width),Zy(height,width),ZZx(height,width),ZZy(height,width),Zt(height,width),ZZt(height,width),ZZtx(height,width),ZZty(height,width); Matrix Au1(height,width),Au2(height,width),Av1(height,width),Av2(height,width); Matrix Z2x(height,width),Z2y(height,width),Z2(height,width); Matrix Cu(height,width),Cv(height,width); Matrix tmp(height,width),tmp1(height,width); Matrix U_old(height,width),V_old(height,width),Ux(height,width),Uy(height,width),Vx(height,width),Vy(height,width),Uax(height,width),Uay(height,width),Vax(height,width),Vay(height,width),Uxy(height,width),Vxy(height,width); Matrix Coe(height,width); Zt = Zn; Zt -= Zn1; DotMul(Zn,Zt,ZZt); Zn.output("Zn.txt"); Zn1.output("Zn1.txt"); Zt.output("Zt.txt"); Partial(ZZt,ZZtx,AXIS_X); Partial(ZZt,ZZty,AXIS_Y); Partial(Zn,Zx,AXIS_X); Partial(Zn,Zy,AXIS_Y); DotMul(Zn,Zx,ZZx); DotMul(Zn,Zy,ZZy); DotMul(Zx,Zx,Au1); Partial(ZZx,tmp,AXIS_X); Au1-=tmp; DotMul(Zn,Zn,tmp); Au1+=tmp; Au1+=2*alpha*alpha; DotMul(Zx,Zy,Au2); Partial(ZZy,tmp,AXIS_X); Au2-=tmp; DotMul(Zx,Zy,Av1); Partial(ZZx,tmp,AXIS_Y); Av1-=tmp; DotMul(Zy,Zy,Av2); Partial(ZZy,tmp,AXIS_Y); Av2-=tmp; DotMul(Zn,Zn,tmp); Av2+=tmp; Av2+=2*alpha*alpha; DotMul(Zn,Zn,Z2); Partial(Z2,Z2x,AXIS_X); Partial(Z2,Z2y,AXIS_Y); for (int i = 0;i<height;i++) for (int j = 0;j<width;j++) Coe[i][j] = 1.0/(Au1[i][j]*Av2[i][j]-Au2[i][j]*Av1[i][j]); U = 0.0; V = 0.0; for (int iter_time = 0;iter_time<iterationTime;iter_time++) { V_old = V; U_old = U; Partial(U,Ux,AXIS_X); Partial(U,Uy,AXIS_Y); Partial(V,Vx,AXIS_X); Partial(V,Vy,AXIS_Y); Partial(Vx,Vxy,AXIS_Y); Partial(Ux,Uxy,AXIS_Y); Average(U,Uax,AXIS_X); Average(U,Uay,AXIS_Y); Average(V,Vax,AXIS_X); Average(V,Vay,AXIS_Y); DotMul(Z2x,Ux,Cu); DotMul(ZZy,Vx,tmp); Cu += tmp; tmp = ZZx*-1; tmp+=Z2x; DotMul(tmp,Vy,tmp1); Cu+=tmp1; tmp = Z2; tmp+=alpha*alpha; DotMul(tmp,Uax,tmp1); Cu+=tmp1; tmp1=Uay; tmp1*=alpha*alpha; Cu+=tmp1; DotMul(Z2,Vxy,tmp1); Cu+=tmp1; DotMul(Zx,Zt,tmp); Cu-=tmp; Cu+=ZZtx; DotMul(Z2y,Vy,Cv); DotMul(ZZx,Uy,tmp); Cv += tmp; tmp = ZZy; tmp*=-1; tmp+=Z2y; DotMul(tmp,Ux,tmp1); Cv+=tmp1; tmp = Z2; tmp+=alpha*alpha; DotMul(tmp,Vay,tmp1); Cv+=tmp1; tmp1=Vax; tmp1*=alpha*alpha; Cv+=tmp1; DotMul(Z2,Uxy,tmp1); Cv+=tmp1; DotMul(Zy,Zt,tmp); Cv-=tmp; Cv+=ZZty; for (int i = 0;i<height;i++) for (int j = 0;j<width;j++) { U[i][j] = Coe[i][j]*(Av2[i][j]*Cu[i][j]-Au2[i][j]*Cv[i][j]); V[i][j] = Coe[i][j]*(-Av1[i][j]*Cu[i][j]+Au1[i][j]*Cv[i][j]); } for (int i = 0;i<height;i++) { U[i][0] = U[i][1]; U[i][width-1] = U[i][width-2]; V[i][0] = V[i][1]; V[i][width-1] =V[i][width-2]; } for (int i = 0;i<width;i++) { U[0][i] = U[1][i]; U[height-1][i] = U[height-2][i]; V[0][i] = V[1][i]; V[height-1][i] =V[height-2][i]; } FILE* fp; // Au1.output("Au1.txt"); // Au2.output("Au2.txt"); // Av1.output("Av1.txt"); // Av2.output("Av2.txt"); // Cu.output("Cu.txt"); // Cv.output("Cv.txt"); float d1 = Difference(U,U_old); float d2 = Difference(V,V_old); // U.output("U.txt"); // U_old.output("U_old.txt"); // V.output("V.txt"); cout<<d1<<' '<<d2<<endl; if (d1<iterationTorlerance && d2<iterationTorlerance) break; } U.output("U.txt"); cv::Mat showV(height,width,CV_8UC3); float lowv=10000000,lowu=10000000,highu=-10000000,highv=-1000000; for(int j=0;j<height;j++){ for(int k=0;k<width;k++){ if(U[j][k]>highu) highu=U[j][k]; if(U[j][k]<lowu) lowu=U[j][k]; if(V[j][k]>highv) highv=V[j][k]; if(V[j][k]<lowv) lowv=V[j][k]; } } for(int j=0;j<height;j++){ for(int k=0;k<width;k++){ //printf("%d %d\n",j,k); //if(sfs_list[i][j][k]<low) // showH.at<uchar>(j,k)=0; //else float u=(U[j][k]-lowu)/(highu-lowu); float v=(V[j][k]-lowv)/(highv-lowv); if(u>0.5) showV.at<cv::Vec3b>(j,k)[2]=255; else showV.at<cv::Vec3b>(j,k)[2]=255*u; if(v>0.5){ showV.at<cv::Vec3b>(j,k)[0]=255; showV.at<cv::Vec3b>(j,k)[1]=255*(1-v); } else{ showV.at<cv::Vec3b>(j,k)[1]=255; showV.at<cv::Vec3b>(j,k)[0]=255*v; } } } cv::imwrite("testV.bmp",showV); printf("show you"); }