// ################################################################# // コンポーネントモニタの履歴出力 void History::printHistoryCompo(FILE* fp, const CompoList* cmp, const Control* C, const REAL_TYPE dt) { REAL_TYPE dr, dp; const REAL_TYPE p0 = RefDensity * RefVelocity * RefVelocity; fprintf(fp, "%8d %14.6e", step, printTime()); for (int i=1; i<=C->NoCompo; i++) { switch ( cmp[i].getType() ) { case SPEC_VEL: if ( !cmp[i].isHeatMode() ) { fprintf(fp, " %11.4e", printVel(cmp[i].val[var_Velocity]) ); } else { fprintf(fp, " %11.4e %11.4e", printVel(cmp[i].val[var_Velocity]), printQF(cmp[i].getMonCalorie()) ); } break; case OUTFLOW: fprintf(fp, " %11.4e", printVel(cmp[i].val[var_Velocity]) ); if ( C->isHeatProblem() ) { fprintf(fp, " %11.4e", printQF(cmp[i].getMonCalorie()) ); // [W] } break; case HEX: dr = cmp[i].ca[4]; // 熱交換器の無次元厚さ dp = cmp[i].val[var_Pressure] * p0 * dr/dh * RefLength; fprintf(fp, " %11.4e %11.4e", printVel(cmp[i].val[var_Velocity]), dp); break; case DARCY: fprintf(fp, " %11.4e %11.4e %11.4e", cmp[i].val[0], cmp[i].val[1], cmp[i].val[2]); // ? unit break; case HEATFLUX: case TRANSFER: case ISOTHERMAL: case RADIANT: fprintf(fp, " %11.4e", printQF(cmp[i].getMonCalorie()) ); break; case HEAT_SRC: fprintf(fp, " %11.4e", printQV(cmp[i].getMonCalorie())); break; } } fprintf(fp, "\n"); fflush(fp); }
// ################################################################# // 壁面履歴の出力 void History::printHistoryWall(FILE* fp, const REAL_TYPE* range_Yp, const REAL_TYPE* range_Ut) { fprintf(fp, "%8d %14.6e ", step, printTime() ); fprintf(fp, "%12.6e %12.6e %12.6e %12.6e", printLen(range_Yp[0]), printLen(range_Yp[1]), printVel(range_Yp[0]), printVel(range_Yp[1]) ); fprintf(fp, "\n"); fflush(fp); }
void print( const PlayerT & player ) { if ( player.state_ ) { std::cout << "<Player side=\"" << player.side_ << "\""; std::cout << " unum=\"" << player.unum_ << "\""; std::cout << " type=\"" << player.type_ << "\""; if ( player.state_ != 1 ) std::cout << " mode=\"" << player.state_ << "\""; std::cout << ">\n"; printPos( player.x_, player.y_ ); printVel( player.vx_, player.vy_ ); printAngles( player.body_, player.neck_ ); printView( player.view_width_, player.view_quality_ == 'h' ); printStamina( player.stamina_, player.effort_, player.recovery_ ); printCounts( player.kick_count_, player.dash_count_, player.turn_count_, player.say_count_, player.turn_neck_count_, player.catch_count_, player.move_count_, player.change_view_count_ ); std::cout << "</Player>\n"; } }
void print( const BallT & ball ) { std::cout << "<Ball>\n"; printPos( ball.x_, ball.y_ ); printVel( ball.vx_, ball.vy_ ); std::cout << "</Ball>\n"; }
// ################################################################# // 計算領域の流束履歴の出力 void History::printHistoryDomfx(FILE* fp, const Control* C, const REAL_TYPE dt) { const REAL_TYPE sgn=-1.0; REAL_TYPE balance=0.0, s=1.0; for (int i=0; i<NOFACE; i++) { s *= sgn; balance += C->Q_Dface[i]*s; } fprintf(fp, "%8d %14.6e", step, printTime()); for (int i=0; i<NOFACE; i++) fprintf(fp, " %12.4e", printMF(C->Q_Dface[i]) ); fprintf(fp, " >> %12.4e : ", printMF(balance) ); for (int i=0; i<NOFACE; i++) fprintf(fp, " %12.4e", printVel(C->V_Dface[i]) ); if (C->isHeatProblem()) { for (int i=0; i<NOFACE; i++) fprintf(fp, " %12.4e", printQF(C->H_Dface[i]) ); // [W] } fprintf(fp, "\n"); fflush(fp); }