//-------------------------------------------------------------------------------- COutputConfig::COutputConfig() { m_nRefCount++; if(m_pDBKeyName != NULL) return; CRegKey rkConfig(g_rkRoot, (LPCTSTR) NULL); if(! rkConfig.CreateKey()) { SetResultCode(errOS); SetOSResult(::GetLastError()); return; } CRegValueSz rvStr(rkConfig, REG_VALNAME_LOGFILE); CString sTemp; if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pLogFile, sTemp); rvStr.SetValueName(REG_OUTPUT_DBKEYNAME); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pDBKeyName, sTemp); else ALLOC_STRING(m_pDBKeyName, "Database"); CRegValueDWord rvVal(rkConfig, REG_VALNAME_TRACELEVEL_FLAGS); if(! rvVal.ReadValue(&m_nTraceLevel)) m_nTraceLevel = m_nTraceLevelDefault; rvVal.SetValueName(REG_VALNAME_FLAGS); rvVal.ReadValue(&m_nFlags); rvStr.SetValueName(REG_OUTPUT_MONKEYNAME); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pMonKeyName, sTemp); else ALLOC_STRING(m_pMonKeyName, "Monitors"); // read the database config { CRegKey rkDB(rkConfig, m_pDBKeyName); if(! rkDB.OpenKey()) return; CRegValueSz rvStr(rkDB, ""); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_ODBC); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pODBCString, sTemp); else ALLOC_STRING(m_pODBCString, ""); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_TYPE); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pDBType, sTemp); else ALLOC_STRING(m_pDBType, ""); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_PROC); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pProcAccnt, sTemp); else ALLOC_STRING(m_pProcAccnt, ""); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_TABLE); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pTableAccnt, sTemp); else ALLOC_STRING(m_pTableAccnt, ""); } rvStr.SetValueName(REG_SECSERV_MAIN_IP); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pSecServIP, sTemp); rvVal.SetValueName(REG_SECSERV_MAIN_PORT); rvVal.ReadValue(&m_nSecServPort); rvStr.SetValueName(REG_SECSERV_BKUP_IP); if(rvStr.ReadValue(sTemp)) ALLOC_STRING(m_pSecServBkupIP, sTemp); rvVal.SetValueName(REG_SECSERV_BKUP_PORT); rvVal.ReadValue(&m_nSecServBkupPort); }
int main(int argc, char *argv[]) { #include "setRootCase.H" #include "createTime.H" #include "createMesh.H" Info << "Reading T_init" << endl; volScalarField T_init ( IOobject("T_init", runTime.constant(), mesh, IOobject::MUST_READ), mesh ); Info << "Reading P_init" << endl; volScalarField P_init ( IOobject("P_init", runTime.constant(), mesh, IOobject::MUST_READ), mesh ); Info << "Reading rt_init" << endl; volScalarField rt_init ( IOobject("rt_init", runTime.constant(), mesh, IOobject::MUST_READ), mesh ); Info << "Reading r_init" << endl; volScalarField r_init ( IOobject("r_init", runTime.constant(), mesh, IOobject::MUST_READ), mesh ); Info << "Reading or creating tracer field rhof_init" << endl; surfaceScalarField rhof_init ( IOobject("rhof_init", runTime.constant(), mesh, IOobject::READ_IF_PRESENT), linearInterpolate(rt_init) ); Info << "Creating T" << endl; volScalarField T ( IOobject("T", runTime.timeName(), mesh, IOobject::NO_READ), T_init ); Info << "Creating P" << endl; volScalarField P ( IOobject("P", runTime.timeName(), mesh, IOobject::NO_READ), P_init ); Info << "Creating rt" << endl; volScalarField rt ( IOobject("rt", runTime.timeName(), mesh, IOobject::NO_READ), rt_init ); Info << "Creating rl" << endl; volScalarField rl ( IOobject("rl", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rv" << endl; volScalarField rv ( IOobject("rv", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rl_diag" << endl; volScalarField rl_diag ( IOobject("rl_diag", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rv_diag" << endl; volScalarField rv_diag ( IOobject("rv_diag", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rl_analytic" << endl; volScalarField rl_analytic ( IOobject("rl_analytic", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rv_analytic" << endl; volScalarField rv_analytic ( IOobject("rv_analytic", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rt_analytic" << endl; volScalarField rt_analytic ( IOobject("rt_analytic", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating S" << endl; volScalarField S ( IOobject("S", runTime.timeName(), mesh, IOobject::NO_READ), r_init ); Info << "Creating rhof" << endl; surfaceScalarField rhof ( IOobject("rhof", runTime.timeName(), mesh, IOobject::NO_READ), rhof_init ); IOdictionary rtDict ( IOobject ( "totalMoistureDict", mesh.time().system(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ) ); IOdictionary rlDict ( IOobject ( "liquidWaterDict", mesh.time().system(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ) ); IOdictionary rvDict ( IOobject ( "waterVapourDict", mesh.time().system(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ) ); IOdictionary tempDict ( IOobject ( "tempDict", mesh.time().system(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ) ); IOdictionary PDict ( IOobject ( "pressureDict", mesh.time().system(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ) ); const noAdvection velocityField; autoPtr<tracerField> rtVal(tracerField::New(rtDict, velocityField)); autoPtr<tracerField> rlVal(tracerField::New(rlDict, velocityField)); autoPtr<tracerField> rvVal(tracerField::New(rvDict, velocityField)); autoPtr<tracerField> tempVal(tracerField::New(tempDict, velocityField)); autoPtr<tracerField> PVal(tracerField::New(PDict, velocityField)); Info << "writing rt for time " << runTime.timeName() << endl; rtVal->applyTo(rt); rt.write(); Info << "writing rl for time " << runTime.timeName() << endl; rlVal->applyTo(rl); rl.write(); Info << "writing rv for time " << runTime.timeName() << endl; rvVal->applyTo(rv); rv.write(); Info << "writing rl_diag for time " << runTime.timeName() << endl; rlVal->applyTo(rl_diag); rl_diag.write(); Info << "writing rv_diag for time " << runTime.timeName() << endl; rvVal->applyTo(rv_diag); rv_diag.write(); Info << "writing rl_analytic for time " << runTime.timeName() << endl; rlVal->applyTo(rl_analytic); rl_analytic.write(); Info << "writing rv_analytic for time " << runTime.timeName() << endl; rvVal->applyTo(rv_analytic); rv_analytic.write(); Info << "writing rt_analytic for time " << runTime.timeName() << endl; rtVal->applyTo(rt_analytic); rt_analytic.write(); Info << "writing S for time " << runTime.timeName() << endl; S.write(); Info << "writing qf for time " << runTime.timeName() << endl; rtVal->applyTo(rhof); rhof.write(); Info << "writing T" << endl; tempVal->applyTo(T); T.write(); Info << "writing P" << endl; PVal->applyTo(P); P.write(); return EXIT_SUCCESS; }
//-------------------------------------------------------------------------------- bool COutputConfig::WriteConfig() { CRegKey rkConfig(g_rkRoot, (LPCTSTR) NULL); if(! rkConfig.OpenKey()) { SetResultCode(errOS); SetOSResult(::GetLastError()); return false; } CRegValueSz rvStr(rkConfig, REG_VALNAME_LOGFILE); CString sTemp; if(m_pLogFile != NULL) rvStr.WriteValue(m_pLogFile); rvStr.SetValueName(REG_OUTPUT_DBKEYNAME); if(m_pDBKeyName != NULL) rvStr.WriteValue(m_pDBKeyName); CRegValueDWord rvVal(rkConfig, REG_VALNAME_TRACELEVEL_FLAGS); rvVal.WriteValue(m_nTraceLevel); rvVal.SetValueName(REG_VALNAME_FLAGS); rvVal.WriteValue(m_nFlags); rvStr.SetValueName(REG_OUTPUT_MONKEYNAME); if(m_pMonKeyName != NULL) rvStr.WriteValue(m_pMonKeyName); // write the database config { CRegKey rkDB(rkConfig, m_pDBKeyName); if(! rkDB.CreateKey()) return true; CRegValueSz rvStr(rkDB, ""); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_ODBC); if(m_pODBCString != NULL) rvStr.WriteValue(m_pODBCString); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_TYPE); if(m_pDBType != NULL) rvStr.WriteValue(m_pDBType); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_PROC); if(m_pProcAccnt != NULL) rvStr.WriteValue(m_pProcAccnt); rvStr.SetValueName(REG_OUTPUT_VALNAME_DB_TABLE); if(m_pTableAccnt != NULL) rvStr.WriteValue(m_pTableAccnt); } rvStr.SetValueName(REG_SECSERV_MAIN_IP); if(m_pSecServIP != NULL) rvStr.WriteValue(m_pSecServIP); rvVal.SetValueName(REG_SECSERV_MAIN_PORT); rvVal.WriteValue(m_nSecServPort); rvStr.SetValueName(REG_SECSERV_BKUP_IP); if(m_pSecServBkupIP != NULL) rvStr.WriteValue(m_pSecServBkupIP); rvVal.SetValueName(REG_SECSERV_BKUP_PORT); rvVal.WriteValue(m_nSecServBkupPort); return true; }