void peano::applications::poisson::jacobitutorial::mappings::RegularGrid2PlotSolution::touchVertexFirstTime( peano::applications::poisson::jacobitutorial::RegularGridVertex& vertex, const tarch::la::Vector<DIMENSIONS,double>& x ) { logTraceInWith2Arguments( "touchVertexFirstTime()", x, vertex ); /** * --- inserted manually --- * * This is now the interesting part. The first few lines in the block resemble * the one inserted by the generated grid plotter. It brings the vertex to * your screen (or vtk file respectively. The lines afterwards then set */ tarch::multicore::Lock localLock( _outputStreamSemaphore ); if ( _vertex2IndexMap.find(x) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[x] = _vertexWriter->plotVertex(x); #else _vertex2IndexMap[x] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(x.data())); #endif _vertexResidualWriter->plotVertex(_vertex2IndexMap[x],vertex.getResidual()); _vertexValueWriter->plotVertex(_vertex2IndexMap[x],vertex.getU()); _vertexRhsWriter->plotVertex(_vertex2IndexMap[x],vertex.getRhs()); } logTraceOutWith1Argument( "touchVertexFirstTime()", vertex ); }
int peano::integration::dataqueries::CartesianGridWriterProxy::getVertexIndex( const tarch::la::Vector<3,double>& position ) { assertion((int)_positionList.size()<_bufferSize); for (unsigned int i=0; i<_positionList.size(); i+=3) { if (position[0]==_positionList[i]&&position[0]==_positionList[i+1]&&position[0]==_positionList[i+2]) { return i; } } for(int i=0;i<position.size();i++) _positionList.push_back(position[i]); return (_positionList.size()-1)/3; }
void peano::applications::pic::demo2::mappings::RegularGrid2PlotSolution::plotVertex( const peano::applications::pic::demo2::RegularGridVertex& GridVertex, const tarch::la::Vector<DIMENSIONS,double>& GridX ) { if ( _vertex2IndexMap.find(GridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[GridX] = _vertexWriter->plotVertex(GridX); #else _vertex2IndexMap[GridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(GridX.data())); #endif // _vertexWriter->plotVertex(_vertex2IndexMap[ridX],GridVertex.getP() ); } }
void particles::pit::adapters::InitGridAndPlot2VTKGridVisualiser_1::plotVertex( const particles::pit::Vertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { if ( _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif const int boundaryFlag = fineGridVertex.isHangingNode() ? -1 : fineGridVertex.isBoundary() ? 1 : 0; _vertexTypeWriter->plotVertex (_vertex2IndexMap[fineGridX], boundaryFlag); _vertexRefinementControlWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getRefinementControl() ); _vertexAdjacentCellsHeight->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.getAdjacentCellsHeightOfPreviousIteration() ); } }
void peano::applications::heatequation::timestepping::adapters::SpacetreeGrid2PlotGrid::plotVertex( const peano::applications::heatequation::timestepping::SpacetreeGridSingleStepVertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { #ifdef SharedTBB Vertex2IndexMapSemaphore::scoped_lock localLock(_vertex2IndexMapSemaphore); #elif SharedOMP #pragma omp critical #endif if ( fineGridVertex.getRefinementControl() != peano::applications::heatequation::timestepping::SpacetreeGridSingleStepVertex::Records::Refined && fineGridVertex.getRefinementControl() != peano::applications::heatequation::timestepping::SpacetreeGridSingleStepVertex::Records::Refining && _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif _vertexTypeWriter->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.isBoundary() ); _vertexRefinementControlWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getRefinementControl() ); _vertexMaximumSubtreeWriter->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.getMaximumSubtreeHeight() ); } }
void peano::applications::pic::demo2::mappings::SpacetreeGrid2PlotSolution::plotVertex( const peano::applications::pic::demo2::SpacetreeGridVertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { if ( fineGridVertex.getRefinementControl() != peano::applications::pic::demo2::SpacetreeGridVertex::Records::Refined && fineGridVertex.getRefinementControl() != peano::applications::pic::demo2::SpacetreeGridVertex::Records::Refining && _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif } }
void peano::applications::faxen::adapters::SpacetreeGrid2PlotGrid::plotVertex( const peano::applications::faxen::SpacetreeGridVertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { #ifdef SharedTBB Vertex2IndexMapSemaphore::scoped_lock localLock(_vertex2IndexMapSemaphore); #elif SharedOMP assertionMsg( false, "here should be a critical section, but I don't know how to implement this. If you implement it, please add it to the templates, too." ); #endif if ( fineGridVertex.getRefinementControl() != peano::applications::faxen::SpacetreeGridVertex::Records::Refined && fineGridVertex.getRefinementControl() != peano::applications::faxen::SpacetreeGridVertex::Records::Refining && _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif _vertexTypeWriter->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.isBoundary() ); _vertexRefinementControlWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getRefinementControl() ); _vertexMaximumSubtreeWriter->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.getMaximumSubtreeHeight() ); } }
void dem::adapters::TimeStepAndPlotOnReluctantDynamicGrid2VTKGridVisualiser_4::plotVertex( const dem::Vertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { if ( _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { assertion( _vertexWriter != nullptr ); assertion( _vertexTypeWriter != nullptr ); assertion( _vertexRefinementControlWriter != nullptr ); assertion( _vertexAdjacentCellsHeight != nullptr ); #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif const int boundaryFlag = fineGridVertex.isHangingNode() ? -1 : fineGridVertex.isBoundary() ? 1 : 0; _vertexTypeWriter->plotVertex (_vertex2IndexMap[fineGridX], boundaryFlag); _vertexRefinementControlWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getRefinementControl() ); _vertexAdjacentCellsHeight->plotVertex (_vertex2IndexMap[fineGridX],fineGridVertex.getAdjacentCellsHeightOfPreviousIteration() ); } }
void peano::applications::poisson::multigrid::mappings::SpacetreeGrid2PlotSolution::plotVertex( peano::applications::poisson::multigrid::SpacetreeGridVertex& fineGridVertex, const tarch::la::Vector<DIMENSIONS,double>& fineGridX ) { if ( fineGridVertex.getRefinementControl() == SpacetreeGridVertex::Records::Unrefined ) { #ifdef SharedTBB Vertex2IndexMapSemaphore::scoped_lock localLock(_vertex2IndexMapSemaphore); #elif SharedOMP assertionMsg( false, "here should be a critical section, but I don't know how to implement this. If you implement it, please add it to the templates, too." ); #endif if ( _vertex2IndexMap.find(fineGridX) == _vertex2IndexMap.end() ) { #if defined(Dim2) || defined(Dim3) _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(fineGridX); #else _vertex2IndexMap[fineGridX] = _vertexWriter->plotVertex(tarch::la::Vector<3,double>(fineGridX.data())); #endif if (fineGridVertex.isHangingNode()) { _vertexResidualWriter->plotVertex(_vertex2IndexMap[fineGridX],0.0); _vertexValueWriter->plotVertex(_vertex2IndexMap[fineGridX],0.0); // @todo For a smooth plot, it might make sense to set the 'right' rhs, i.e. // the rhs belonging to a persistent vertex at this very position. _vertexRhsWriter->plotVertex(_vertex2IndexMap[fineGridX],0.0); } else { _vertexResidualWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getResidual()); _vertexValueWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getU()); _vertexRhsWriter->plotVertex(_vertex2IndexMap[fineGridX],fineGridVertex.getRhs()); } } } }