int main(int argc, char *argv[]) { int i, j, numSteps, startRow, startCol, endRow, endCol; double initialTemp; /* Initialization step */ std::vector< std::vector<double> > currGrid(NROWS, std::vector<double>(NCOLS)); std::vector< std::vector<double> > nextGrid(NROWS, std::vector<double>(NCOLS)); /* Initial conditions */ initialTemp = 100; currGrid[0].assign(NCOLS, initialTemp); currGrid[NROWS-1].assign(NCOLS, initialTemp); nextGrid[0].assign(NCOLS, initialTemp); nextGrid[NROWS-1].assign(NCOLS, initialTemp); printGrid(currGrid); numSteps = 3; startRow = 1; startCol = 0; endRow = NROWS-1 ; endCol = NCOLS ; for(i = 0;i < numSteps;i++) { std::cout << "------------------Step " << i << "-----------------------" << std::endl; diffuse(currGrid, nextGrid, startRow, startCol, endRow, endCol, i); } return 0; }
void PFO_VariableArrayGridLinesGL :: DrawPlotObject() { if (!InitDrawObject()) return; Limit3D currLimits = GetCurrentViewLimits(); OGL2DBase& currPlot = static_cast<OGL2DBase&>(*objectBase); PC_GridLine currGrid(currPlot, arrayIsX); GL_Line::SetLineProperties(gridLineSpec); for (int i = 0; i < variableArrayDC->Size(); i++) { double varVal = (*variableArrayDC)[i].GetValue(); if (!currGrid.CreateGridLine(varVal, currLimits)) continue; currGrid.SetLabelPos(labelFormat.labelPosition / 100.0); currGrid.AdjustForAxes(); char label[80]; bool doLabel; switch (labelFormat.labelType) { case PSC_GridLineLabelFormat::ltNone: { doLabel = false; break; } case PSC_GridLineLabelFormat::ltText : { CopyString(label, (*variableArrayDC)[i].GetID(), 80); doLabel = IsNotNull(label); break; } case PSC_GridLineLabelFormat::ltValue : { valueFormat.RealToString(varVal, label, 80); doLabel = true; break; } } bool drawFullLine = true; if (doLabel) { currGrid.OffsetLabelPos(labelFont, labelFormat.labelOffset, labelFormat.halign, labelFormat.valign); if (labelFormat.blankLabel) { drawFullLine = false; currGrid.DrawBlankedLine(labelFont, label, labelFormat.halign, labelFormat.valign); } currGrid.PrintUnclippedLabel(labelFont, label, labelFormat.halign, labelFormat.valign); } if (drawFullLine) currGrid.DrawGridLine(); } CloseDrawObject(); }