本文整理汇总了C++中Pipe::InDia方法的典型用法代码示例。如果您正苦于以下问题:C++ Pipe::InDia方法的具体用法?C++ Pipe::InDia怎么用?C++ Pipe::InDia使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pipe
的用法示例。
在下文中一共展示了Pipe::InDia方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Example
void CPFAOptimize::Example()
{
CMainFrame* pMainFrame = NULL;
pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CChildFrame* pChildFrame = NULL;
pChildFrame = (CChildFrame*)pMainFrame->GetActiveFrame();
CAutoPFAView* pAutoView = NULL;
pAutoView = (CAutoPFAView*)pChildFrame->GetActiveView();
ComponentManager* pComManager = pAutoView->GetDocument()->m_scenarioManager.GetCurScenario()->GetCompManager();
JunSystemTransformCircleSystem( *pComManager, OptData );
DisplayMatrix( "F://CirPipe.txt", 100, OptData );
InitializePipeCircle( OptData );
DisplayMatrix( "F://Pipe.txt", 102, OptData );
// 从pComManager中初始化OptData的 初始实际流量,管道长度,节点流量,配水源,控制点,
// 先手动设置配水源和控制点
int iTemp = 1;
OptData.SetProperty( 0, 200, iTemp ); // 节点1为配水源
iTemp = 6;
OptData.SetProperty( 0, 201, iTemp ); // 节点10为控制点
CMinimumSquareSum MinSquSum;
//MinSquSum.InitializeFactFlux( *pComManager, OptData ); // 初始实际流量
///////////////////////////////////////
int i = 0;
int iKeyOfPipe = 0;
double Temp = 0.0;
Temp = 0.03;
OptData.SetProperty( 1, 1, Temp );
OptData.SetProperty( 3, 1, Temp );
OptData.SetProperty( 6, 1, Temp );
OptData.SetProperty( 7, 1, Temp );
Temp = 0.02;
OptData.SetProperty( 2, 1, Temp );
OptData.SetProperty( 4, 1, Temp );
OptData.SetProperty( 5, 1, Temp );
////////////////////////////////////////
double dTemp = 0.0;
Pipe* pPipe = NULL;
Component* pComponent = NULL;
map< int, double > BeforeDiameterMap; // 存储了上一次计算的直径
int iIteratorTime = 0; // 迭代次数
IteratorPtr<Component> PipeItPtr( pComManager->CreatPipeIterator() );
for( PipeItPtr->Fist(); !PipeItPtr->IsDone(); PipeItPtr->Next() )
{
pComponent = &PipeItPtr->CurrentItem();
pPipe = dynamic_cast<Pipe*>( pComponent );
dTemp = pPipe->Len();
OptData.SetProperty( pPipe->GetKey(), 2, dTemp );
dTemp = pPipe->InDia();
OptData.SetProperty( pPipe->GetKey(), 4, dTemp );
}
// 节点流量
QuantityManager& qm = QuantityManager::Instance();
CString strUnit = "";
CString strValue = "";
Jun* pJun = NULL;
IteratorPtr<Component> JunItPtr( pComManager->CreatJunIterator() );
for( JunItPtr->Fist(); !JunItPtr->IsDone(); JunItPtr->Next() )
{
pComponent = &JunItPtr->CurrentItem();
pJun = dynamic_cast<Jun*>( pComponent );
strUnit = pJun->ms_InitGuess.GetValue( 2 ); // 获得单位
strValue = pJun->ms_InitGuess.GetValue( 1 );
TCHAR* pChar = NULL;
qm.TransformToStd( dTemp, strUnit.GetBuffer( 32 ), _tcstod( strValue.GetBuffer( 32 ), &pChar ) ); // 转化成标准单位
if( IDS_STRVOLUMEFLOW != _ttoi( pJun->ms_InitGuess.GetValue( 0 ).GetBuffer( 32 ) ) ) // 质量流量,要转化为体积流量
{
double dTempDensity = 0.0;
NumFlyWeight *pDensity = &( ( pComManager->SysProperty().GetFuild() )->ms_Density );
dTemp *= pDensity->GetNum(); // GetNum返回标准单位数
}
OptData.SetProperty( pJun->GetKey(), 3, dTemp );
}
////////////
dTemp = 0.06;
OptData.SetProperty( 1, 3, dTemp );
dTemp = -0.06;
OptData.SetProperty( 6, 3, dTemp );
////////////
// 初始化经济参数
OptData.SetAModulus( 8.4 );
OptData.SetBModulus( 107 );
OptData.SetAlfaModulus( 1.6 );
OptData.SetDisinvestmentTime( 1.0e3 );
OptData.SetRepairModulus( 3.3 );
OptData.SetEletricityPrice( 0.5 );
OptData.SetAsymmetryModulus( 1.0 );
OptData.SetPumpEfficiency( 0.7 );
OptData.SetKModulus( 1.34e-10 );
OptData.SetMModulus( 5.3 );
OptData.SetNModulus( 2 );
OptData.Initialization();
//.........这里部分代码省略.........