void peano::applications::pic::demo2::mappings::RegularGrid2PlotSolution::beginIteration( peano::applications::pic::demo2::RegularGridState& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); logTraceInWith1Argument( "beginIteration(State)", solverState ); _vtkWriter.clear(); _vertexWriter = _vtkWriter.createVertexWriter(); _cellWriter = _vtkWriter.createCellWriter(); _cellPWriter = _vtkWriter.createCellDataWriter( "p" ,1); logTraceOutWith1Argument( "beginIteration()", solverState ); }
void peano::applications::faxen::lbf::mappings::SpacetreeGrid2CorrectDensity4LB::endIteration( peano::applications::faxen::lbf::SpacetreeGridBlockState& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::faxen::lbf::mappings::SpacetreeGrid2SORStep::beginIteration( peano::applications::faxen::lbf::SpacetreeGridBlockState& solverState ) { logTraceInWith1Argument( "beginIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "beginIteration(State)", solverState); }
void peano::applications::heatequation::timestepping::mappings::RegularGrid2ApplyRefineDeleteCriterion::beginIteration( peano::applications::heatequation::timestepping::RegularGridState& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "beginIteration()", solverState ); }
void peano::applications::puregrid::mappings::RegularGrid2SetupGrid::beginIteration( peano::applications::puregrid::RegularGridState& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "beginIteration()", solverState ); }
void peano::applications::faxen::mappings::RegularGrid2Initialize::endIteration( peano::applications::faxen::RegularGridState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration()", solverState ); }
void peano::applications::poisson::multigrid::mappings::SpacetreeGrid2SetupExperiment::endIteration( peano::applications::poisson::multigrid::SpacetreeGridState& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::heatequation::timestepping::adapters::SpacetreeGrid2PlotGrid::endIteration( peano::applications::heatequation::timestepping::SpacetreeGridState& solverState ) { logTraceInWith1Argument( "endIteration(...)", solverState ); #ifdef SharedTBB Vertex2IndexMapSemaphore::scoped_lock localLock(_vertex2IndexMapSemaphore); #elif SharedOMP #pragma omp critical #endif _vertexWriter->close(); _cellWriter->close(); _vertexTypeWriter->close(); _vertexRefinementControlWriter->close(); _vertexMaximumSubtreeWriter->close(); #ifdef Parallel _cellDeltaWriter->close(); _cellWeightWriter->close(); #endif delete _vertexWriter; delete _cellWriter; delete _vertexTypeWriter; delete _vertexRefinementControlWriter; delete _vertexMaximumSubtreeWriter; #ifdef Parallel delete _cellDeltaWriter; delete _cellWeightWriter; #endif _vertexWriter = 0; _cellWriter = 0; _vertexTypeWriter = 0; _vertexRefinementControlWriter = 0; _vertexMaximumSubtreeWriter = 0; #ifdef Parallel _cellDeltaWriter = 0; _cellWeightWriter = 0; #endif std::ostringstream snapshotFileName; snapshotFileName << "vtk-grid-snapshot-SpacetreeGrid2PlotGrid-" << _snapshotCounter #ifdef Parallel << "-rank" << tarch::parallel::Node::getInstance().getRank() #endif << ".vtk"; _vtkWriter.writeToFile( snapshotFileName.str() ); _snapshotCounter++; _vertex2IndexMap.clear(); logTraceOut( "endIteration(...)" ); }
void peano::applications::heatequation::timestepping::adapters::SpacetreeGrid2PlotGrid::beginIteration( peano::applications::heatequation::timestepping::SpacetreeGridState& solverState ) { logTraceInWith1Argument( "beginIteration(...)", solverState ); #ifdef SharedTBB Vertex2IndexMapSemaphore::scoped_lock localLock(_vertex2IndexMapSemaphore); #elif SharedOMP #pragma omp critical #endif _vtkWriter.clear(); _vertexWriter = _vtkWriter.createVertexWriter(); _cellWriter = _vtkWriter.createCellWriter(); #ifdef Parallel _cellDeltaWriter = _vtkWriter.createCellDataWriter( "delta" ,1); _cellWeightWriter = _vtkWriter.createCellDataWriter( "weight" ,1); #endif _vertexTypeWriter = _vtkWriter.createVertexDataWriter(peano::applications::heatequation::timestepping::SpacetreeGridSingleStepVertex::Records::getInsideOutsideDomainMapping() ,1); _vertexRefinementControlWriter = _vtkWriter.createVertexDataWriter(peano::applications::heatequation::timestepping::SpacetreeGridSingleStepVertex::Records::getRefinementControlMapping() ,1); _vertexMaximumSubtreeWriter = _vtkWriter.createVertexDataWriter("max-subtree" ,1); logTraceOut( "beginIteration(...)" ); }
void peano::applications::navierstokes::prototype1::mappings::SpacetreeGrid2CalculatePPERHS::endIteration( peano::applications::navierstokes::prototype1::SpacetreeGridFluidStateEnhancedDivFreeEulerExplicit& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::heatequation::timestepping::mappings::RegularGrid2RestrictRhs::endIteration( peano::applications::heatequation::timestepping::RegularGridState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration()", solverState ); }
void peano::applications::faxen::lbf::mappings::RegularGrid2BlockVTKOutput::beginIteration( peano::applications::faxen::lbf::RegularGridBlockState& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); // set multi-level simulation data _multiLevelSimData = std::auto_ptr<peano::applications::latticeboltzmann::MultiLevelSimData>( new peano::applications::latticeboltzmann::MultiLevelSimData(solverState) ); // determine meshsize _h = tarch::la::Vector<DIMENSIONS,double>( _multiLevelSimData->getSimData(_multiLevelSimData->getSimData(0).getLevel()).getDx() *tarch::la::Vector<DIMENSIONS,double>(1.0) ); _vtkWriter.clear(); _vertex2IndexMap.clear(); _vertexWriter = _vtkWriter.createVertexWriter(); _cellWriter = _vtkWriter.createCellWriter(); _densityWriter = _vtkWriter.createCellDataWriter("density",1); _velocityWriter = _vtkWriter.createCellDataWriter("velocity",3); //#if defined(Debug) && (!defined(Parallel)) _blockCounter = 0; _blockIdWriter = _vtkWriter.createCellDataWriter("block-id",1); //#endif logTraceOutWith1Argument( "beginIteration()", solverState ); }
int tarch::plotter::griddata::regular::CartesianGridArrayWriter::getCellIndex( const tarch::la::Vector<3,double>& position ) { logTraceInWith1Argument( "getCellIndex(Vector)", position ); int result(0); int base = 1; tarch::la::Vector<3,double> h; h = getH(); for (int d=0; d<3; d++) { double translatedPointPosition = position(d)-_origin(d) +h(d)/2.0 + tarch::la::NUMERICAL_ZERO_DIFFERENCE; int index = 0; if (tarch::la::greater(h(d),0.0)) { translatedPointPosition = translatedPointPosition/h(d); index = static_cast<int>(floor(translatedPointPosition)); } if (index<0) { index = 0; } if (index>=_numberOfGridPoints(d)-1) { index = _numberOfGridPoints(d)-2; } result += index * base; base *= (_numberOfGridPoints(d)-1); } logTraceOutWith1Argument( "getCellIndex(Vector)", result); return result; }
void peano::applications::faxen::mappings::SpacetreeGrid2ComputeVelocitiesDerivatives::endIteration( peano::applications::faxen::SpacetreeGridState& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::faxen::lbf::mappings::RegularGrid2DynamicRefinementForSpacetreeGrid::endIteration( peano::applications::faxen::lbf::RegularGridBlockState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration()", solverState ); }
void peanoclaw::mappings::Cleanup::endIteration( peanoclaw::State& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::faxen::lbf::mappings::RegularGrid2MoveParticles::endIteration( peano::applications::faxen::lbf::RegularGridBlockState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); peano::applications::faxen::lbf::services::ForcesService::getInstance().moveParticles(solverState.getDelt()); logTraceOutWith1Argument( "endIteration()", solverState ); }
void pyclaw_peano_evolveToTime(double time, peanoclaw::runners::PeanoClawLibraryRunner* runner) { #ifdef USE_VALGRIND CALLGRIND_START_INSTRUMENTATION; CALLGRIND_ZERO_STATS; #endif static tarch::logging::Log _log("::pyclawBindings"); logTraceInWith1Argument("pyclaw_peano_evolveToTime", time); assertionMsg(runner!=0, "call pyclaw_peano_new before calling pyclaw_peano_run."); if(_calledFromPython) { _pythonState = PyGILState_Ensure(); } runner->evolveToTime(time); if(_calledFromPython) { PyGILState_Release(_pythonState); } #ifdef USE_VALGRIND CALLGRIND_STOP_INSTRUMENTATION; #endif logTraceOut("pyclaw_peano_evolveToTime"); }
void peano::applications::navierstokes::prototype1::mappings::SpacetreeGrid2PlotSolutionVTK::beginIteration( peano::applications::navierstokes::prototype1::SpacetreeGridFluidStateEnhancedDivFreeEulerExplicit& solverState ) { logTraceInWith1Argument( "beginIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "beginIteration(State)", solverState); }
void peano::applications::puregrid::mappings::RegularGrid2PerformOneRefinement::endIteration( peano::applications::puregrid::RegularGridState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration()", solverState ); }
void peano::applications::faxen::lbf::mappings::SpacetreeGrid2SetVelocitiesBoundary::endIteration( peano::applications::faxen::lbf::SpacetreeGridBlockState& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peanoclaw::interSubgridCommunication::GridLevelTransfer::updatePatchStateDuringMergeWithWorker( int localCellDescriptionIndex, int remoteCellDescriptionIndex ) { logTraceInWith1Argument("updatePatchStateDuringMergeWithWorker", localCellDescriptionIndex); assertion(localCellDescriptionIndex != -1); CellDescription& localCellDescription = CellDescriptionHeap::getInstance().getData(localCellDescriptionIndex).at(0); Patch localPatch(localCellDescription); if(remoteCellDescriptionIndex != -1) { CellDescription& remoteCellDescription = CellDescriptionHeap::getInstance().getData(remoteCellDescriptionIndex).at(0); assertion1(localCellDescriptionIndex != -1, localPatch); if(remoteCellDescription.getUIndex() != -1) { assertion1(localPatch.isVirtual() || localPatch.isLeaf(), localPatch); //Delete current content of patch DataHeap::getInstance().deleteData(localPatch.getUIndex()); //Merge localCellDescription.setUIndex(remoteCellDescription.getUIndex()); } CellDescriptionHeap::getInstance().deleteData(remoteCellDescriptionIndex); } logTraceOut("updatePatchStateDuringMergeWithWorker"); }
void peano::applications::navierstokes::prototype1::mappings::RegularGrid2InitialiseScenario::endIteration( peano::applications::navierstokes::prototype1::RegularGridFluidStateEnhancedDivFreeEulerExplicit& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); // @todo Insert your code here logTraceOutWith1Argument( "endIteration()", solverState ); }
void peano::applications::navierstokes::prototype1::mappings::RegularGrid2InitialiseScenario::beginIteration( peano::applications::navierstokes::prototype1::RegularGridFluidStateEnhancedDivFreeEulerExplicit& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); // @todo Insert your code here _log.info("beginIteration()","start iteration for InitialiseScenario mapping ..."); logTraceOutWith1Argument( "beginIteration()", solverState ); }
void peanoclaw::mappings::ValidateGrid::endIteration( peanoclaw::State& solverState ) { logTraceInWith1Argument( "endIteration(State)", solverState ); //TODO unterweg debug #ifdef Parallel logInfo("", "END ITERATION" << tarch::parallel::Node::getInstance().getRank() << "!"); #endif if( #ifdef Parallel tarch::parallel::Node::getInstance().isGlobalMaster() #else true #endif ) { //Copy collected patches std::vector<PatchDescription>& receivedDescriptions = PatchDescriptionHeap::getInstance().getData(_patchDescriptionsIndex); logInfo("endIteration(State)", "Received patches: " << receivedDescriptions.size()); std::vector<PatchDescription> localDescriptions = _validator.getAllPatches(); for(std::vector<PatchDescription>::iterator i = receivedDescriptions.begin(); i != receivedDescriptions.end(); i++) { localDescriptions.push_back(*i); } logInfo("endIteration(State)", "Total patches: " << localDescriptions.size()); //Construct database peanoclaw::statistics::PatchDescriptionDatabase database; for(int i = 0; i < (int)localDescriptions.size(); i++) { database.insertPatch(localDescriptions[i]); } //Check for unreferenced patches for(int i = 0; i < (int)localDescriptions.size(); i++) { if(!localDescriptions[i].getIsReferenced()) { logError("endIteration", "Unreferenced Patch found: " << localDescriptions[i].toString() << ", isUnreferenced=" << database.containsPatch(localDescriptions[i].getPosition(), localDescriptions[i].getLevel(), localDescriptions[i].getRank())); // assertionFail(""); } } _validator.validatePatches(); logInfo("endIteration", "Validated " << localDescriptions.size() << " subgrids."); } #ifdef Parallel PatchDescriptionHeap::getInstance().finishedToSendBoundaryData(solverState.isTraversalInverted()); if(tarch::parallel::Node::getInstance().isGlobalMaster()) { PatchDescriptionHeap::getInstance().finishedToSendSynchronousData(); } #endif logTraceOutWith1Argument( "endIteration(State)", solverState); }
void peano::applications::faxen::lbf::mappings::RegularGrid2ComputeRightHandSide::beginIteration( peano::applications::faxen::lbf::RegularGridBlockState& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); _dx = solverState.getDelx(); _dy = solverState.getDely(); _dt = solverState.getDelt(); logTraceOutWith1Argument( "beginIteration()", solverState ); }
void peano::applications::poisson::jacobitutorial::mappings::RegularGrid2PlotSolution::endIteration( peano::applications::poisson::jacobitutorial::RegularGridState& solverState ) { logTraceInWith1Argument( "endIteration()", solverState ); /** * --- inserted manually --- * * Whenever we startup a plotter iteration, we take the output file name and * add a counter. The counter is stored in the state as we have to keep track * of it throughout the whole program execution, and mappings should not have * a persistent state themselves. */ std::ostringstream newFilename; newFilename << "jacobi-solution-on-regular-grid-" << solverState.getFilenameCounterAndIncrementIt() << ".vtk"; /** * --- inserted manually --- * * Close the data writers, pipe the data to a file, and destroy all the * objects we won't need anymore. This is again technical stuff. */ _vertexWriter->close(); _cellWriter->close(); _vertexResidualWriter->close(); _vertexValueWriter->close(); _vertexRhsWriter->close(); delete _vertexWriter; delete _cellWriter; delete _vertexResidualWriter; delete _vertexValueWriter; delete _vertexRhsWriter; _vertexWriter = 0; _cellWriter = 0; _vertexResidualWriter = 0; _vertexValueWriter = 0; _vertexRhsWriter = 0; _vtkWriter.writeToFile( newFilename.str() ); /** * --- inserted manually --- * * Lets finally tell the user that we've created a file. */ logInfo( "endIteration()", "wrote solution to " << newFilename.str() ); logTraceOutWith1Argument( "endIteration()", solverState ); }
void peano::applications::navierstokes::prototype1::mappings::RegularGrid2UpdateVelocity::beginIteration( peano::applications::navierstokes::prototype1::RegularGridFluidStateEnhancedDivFreeEulerExplicit& solverState ) { logTraceInWith1Argument( "beginIteration()", solverState ); _tau = solverState.getOdeTau(); _elementType = solverState.getElementType(); _log.info("beginIteration()","start iteration for UpdateVelocity mapping ..."); logTraceOutWith1Argument( "beginIteration()", solverState ); }
void particles::pidt::mappings::MoveParticles::beginIteration( particles::pidt::State& solverState ) { logTraceInWith1Argument( "beginIteration(State)", solverState ); _state = solverState; _state.clearStatistics(); ParticleHeap::getInstance().startToSendBoundaryData(solverState.isTraversalInverted()); logTraceOutWith1Argument( "beginIteration(State)", solverState); }
void peano::applications::heatequation::timestepping::mappings::SpacetreeGrid2ComputeImplicitSolutionWithJacobi::beginIteration( peano::applications::heatequation::timestepping::SpacetreeGridState& solverState ) { logTraceInWith1Argument( "beginIteration(State)", solverState ); _solver.clearMeasurements(); _solver.setTimeStepSize(solverState.getTimeStepSize()); _solver.setOmega( solverState.getRelaxationFactor() ); logTraceOutWith1Argument( "beginIteration(State)", solverState); }