Пример #1
0
void peanoclaw::mappings::ValidateGrid::mergeWithMaster(
  const peanoclaw::Cell&           workerGridCell,
  peanoclaw::Vertex * const        workerGridVertices,
 const peano::grid::VertexEnumerator& workerEnumerator,
  peanoclaw::Cell&                 fineGridCell,
  peanoclaw::Vertex * const        fineGridVertices,
  const peano::grid::VertexEnumerator&                fineGridVerticesEnumerator,
  peanoclaw::Vertex * const        coarseGridVertices,
  const peano::grid::VertexEnumerator&                coarseGridVerticesEnumerator,
  peanoclaw::Cell&                 coarseGridCell,
  const tarch::la::Vector<DIMENSIONS,int>&                             fineGridPositionOfCell,
  int                                                                  worker,
  const peanoclaw::State&          workerState,
  peanoclaw::State&                masterState
) {
  logTraceIn( "mergeWithMaster(...)" );

  std::vector<PatchDescription> remoteData = PatchDescriptionHeap::getInstance().receiveData(
    worker,
    fineGridVerticesEnumerator.getVertexPosition(0),
    fineGridVerticesEnumerator.getLevel(),
    peano::heap::MasterWorkerCommunication
  );

  std::vector<PatchDescription>& localData = PatchDescriptionHeap::getInstance().getData(_patchDescriptionsIndex);
  localData.insert(localData.end(), remoteData.begin(), remoteData.end());

  logInfo("mergeWithMaster(...)", "Merged " << remoteData.size() << " patches: " << PatchDescriptionHeap::getInstance().getData(_patchDescriptionsIndex).size() << " entries.");

  logTraceOut( "mergeWithMaster(...)" );
}
Пример #2
0
tarch::la::Vector<DIMENSIONS,double>   scenario::diffusionequation::CornerPointField::getDomainSize() const {
  logTraceIn( "getDomainSize()" );
  const double max = tarch::la::max(_hexahedron.getBoundingBox());
  tarch::la::Vector<DIMENSIONS,double> result = tarch::la::Vector<DIMENSIONS,double>(max);
  logTraceOutWith1Argument( "getDomainSize()", result );
  return result;
}
peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridArrayStackImplementation::PICBatchJobRepositoryForSpacetreeGridArrayStackImplementation(
  peano::geometry::Geometry&                   geometry,
  const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
  const tarch::la::Vector<DIMENSIONS,double>&  domainOffset,
  int                                          maximumSizeOfCellInOutStack,
  int                                          maximumSizeOfVertexInOutStack,
  int                                          maximumSizeOfVertexTemporaryStack
):
  _geometry(geometry),
  _cellStack(maximumSizeOfCellInOutStack),
  _vertexStack(maximumSizeOfVertexInOutStack, maximumSizeOfVertexTemporaryStack),
  _solverState(),
  _gridWithSetupExperiment(_vertexStack,_cellStack,_geometry,_solverState,domainSize,domainOffset),
  _gridWithSetupExperimentAndPlot(_vertexStack,_cellStack,_geometry,_solverState,domainSize,domainOffset),

  _countSetupExperimentRuns(0),
  _countSetupExperimentAndPlotRuns(0),

  _measureSetupExperimentCPUTime(0.0),
  _measureSetupExperimentAndPlotCPUTime(0.0),

  _measureSetupExperimentCalendarTime(0.0),
  _measureSetupExperimentAndPlotCalendarTime(0.0),

  _repositoryState() {
  logTraceIn( "peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridArrayStackImplementation(...)" );
  
  _repositoryState.setAction( PICBatchJobRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(2 +3);
  
  logTraceOut( "peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridArrayStackImplementation(...)" );
}
peano::applications::faxen::lbf::mappings::RegularGrid2MoveParticles::~RegularGrid2MoveParticles() {
	logTraceIn( "~RegularGrid2MoveParticles()" );

	delete[] _cellVertices;

	logTraceOut( "~RegularGrid2MoveParticles()" );
}
peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridArrayStackImplementation::PrototypeRepositoryForSpacetreeGridArrayStackImplementation(
  peano::geometry::Geometry&                   geometry,
  const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
  const tarch::la::Vector<DIMENSIONS,double>&  domainOffset,
  int                                          maximumSizeOfCellInOutStack,
  int                                          maximumSizeOfVertexInOutStack,
  int                                          maximumSizeOfVertexTemporaryStack
):
  _geometry(geometry),
  _cellStack(maximumSizeOfCellInOutStack),
  _vertexStack(maximumSizeOfVertexInOutStack, maximumSizeOfVertexTemporaryStack),
  _solverState(),




  _repositoryState() {
  logTraceIn( "peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridArrayStackImplementation(...)" );
  
  _repositoryState.setAction( PrototypeRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(0);
  
  logTraceOut( "peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridArrayStackImplementation(...)" );
}
void peano::applications::latticeboltzmann::blocklatticeboltzmann::repositories::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation::terminate() {
  logTraceIn( "terminate(...)" );
  
  _repositoryState.setAction( BlockLatticeBoltzmannBatchJobRepositoryState::Terminate );
  
  #ifdef Parallel
  if (tarch::parallel::Node::getInstance().isMasterProcess()) {
    tarch::parallel::NodePool::getInstance().broadcastToWorkingNodes(
      _repositoryState,
      peano::kernel::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag()
    );
  }
  peano::kernel::parallel::SendReceiveBufferPool::getInstance().terminate();
  #endif
  
  _gridContainer.terminate();
  _gridWithRegularBlockSolverAdapter.terminate();
  _gridWithInitialiseSpacetreeGridAdapter.terminate();
  _gridWithBlockCCAOutputAdapter.terminate();
  _gridWithDynamicRefinementForSpacetreeGridAdapter.terminate();
  _gridWithBlockVTKOutputAdapter.terminate();
  _gridWithRegularBlockSolverAndVTKOutputAdapter.terminate();

  logTraceOut( "terminate()" );
}
peano::applications::faxen::lbf::mappings::RegularGrid2MoveParticles::RegularGrid2MoveParticles() {
	logTraceIn( "RegularGrid2MoveParticles()" );

	_cellVertices = new peano::applications::faxen::lbf::RegularGridBlockVertex*[TWO_POWER_D];

	logTraceOut( "RegularGrid2MoveParticles()" );
}
Пример #8
0
peanoclaw::repositories::RepositoryArrayStack::ContinueCommand peanoclaw::repositories::RepositoryArrayStack::continueToIterate() {
  logTraceIn( "continueToIterate()" );

  assertion( !tarch::parallel::Node::getInstance().isGlobalMaster());

  ContinueCommand result;
  if ( _solverState.hasJoinedWithMaster() ) {
    result = Terminate;
  }
  else {
    int masterNode = tarch::parallel::Node::getInstance().getGlobalMasterRank();
    assertion( masterNode != -1 );

    _repositoryState.receive( masterNode, peano::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag(), true, ReceiveIterationControlMessagesBlocking );

    result = Continue;
    if (_repositoryState.getAction()==peanoclaw::records::RepositoryState::Terminate) {
      result = Terminate;
    } 
    if (_repositoryState.getAction()==peanoclaw::records::RepositoryState::RunOnAllNodes) {
      result = RunGlobalStep;
    } 
  }
   
  logTraceOutWith1Argument( "continueToIterate()", result );
  return result;
}
Пример #9
0
peanoclaw::repositories::RepositoryArrayStack::RepositoryArrayStack(
  peano::geometry::Geometry&                   geometry,
  int                                          maximumSizeOfCellInOutStack,
  int                                          maximumSizeOfVertexInOutStack,
  int                                          maximumSizeOfVertexTemporaryStack
):
  _geometry(geometry),
  _cellStack(maximumSizeOfCellInOutStack),
  _vertexStack(maximumSizeOfVertexInOutStack,maximumSizeOfVertexTemporaryStack),
  _solverState(),
  _gridWithInitialiseGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithInitialiseAndValidateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithPlot(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithPlotAndValidateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithRemesh(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithSolveTimestep(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithSolveTimestepAndValidateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithSolveTimestepAndPlot(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithSolveTimestepAndPlotAndValidateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithGatherCurrentSolution(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithGatherCurrentSolutionAndValidateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithCleanup(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),

  _repositoryState() {
  logTraceIn( "RepositoryArrayStack(Geometry&)" );
  
  _repositoryState.setAction( peanoclaw::records::RepositoryState::Terminate );

  peano::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(peanoclaw::records::RepositoryState::NumberOfAdapters);
  #ifdef Parallel
  peano::parallel::loadbalancing::Oracle::getInstance().setNumberOfOracles(peanoclaw::records::RepositoryState::NumberOfAdapters);
  #endif
  
  logTraceOut( "RepositoryArrayStack(Geometry&)" );
}
peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridFileStackImplementation::GridConstructionMovieBatchJobRepositoryForSpacetreeGridFileStackImplementation(
  peano::geometry::Geometry&                   geometry,
  int                                          blockSize,
  int                                          numberOfBlocks,
  int                                          minFillThreshold,
  int                                          maxFillThreshold,
  const std::string&                           tempFilePrefix    
):
  _geometry(geometry),
  _cellStack(blockSize,numberOfBlocks,minFillThreshold,maxFillThreshold,tempFilePrefix),
  _vertexStack(blockSize,numberOfBlocks,minFillThreshold,maxFillThreshold,tempFilePrefix),
  _solverState(),
  _gridWithPerformOneRefinement(_vertexStack,_cellStack,_geometry,_solverState),
  _gridWithPerformOneRefinementWithoutGridSnapshot(_vertexStack,_cellStack,_geometry,_solverState),

  _countPerformOneRefinementRuns(0),
  _countPerformOneRefinementWithoutGridSnapshotRuns(0),

  _measurePerformOneRefinementCPUTime(0.0),
  _measurePerformOneRefinementWithoutGridSnapshotCPUTime(0.0),

  _measurePerformOneRefinementCalendarTime(0.0),
  _measurePerformOneRefinementWithoutGridSnapshotCalendarTime(0.0),

  _repositoryState() {
  logTraceIn( "peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridFileStackImplementation(Geometry&)" );

  _repositoryState.setAction( GridConstructionMovieBatchJobRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(2 +3);

  logTraceOut( "peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridFileStackImplementation(Geometry&)" );
}
peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation::PICBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(
  peano::geometry::Geometry&                   geometry,
  int                                          initialStackSize
):
  _geometry(geometry),
  _cellStack(initialStackSize),
  _vertexStack(initialStackSize),
  _solverState(),
  _gridWithSetupExperiment(_vertexStack,_cellStack,_geometry,_solverState),
  _gridWithSetupExperimentAndPlot(_vertexStack,_cellStack,_geometry,_solverState),

  _countSetupExperimentRuns(0),
  _countSetupExperimentAndPlotRuns(0),

  _measureSetupExperimentCPUTime(0.0),
  _measureSetupExperimentAndPlotCPUTime(0.0),

  _measureSetupExperimentCalendarTime(0.0),
  _measureSetupExperimentAndPlotCalendarTime(0.0),

  _repositoryState() {
  logTraceIn( "peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(Geometry&)" );

  _repositoryState.setAction( PICBatchJobRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(2 +3);
  
  logTraceOut( "peano::applications::pic::demo::repositories::PICBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(Geometry&)" );
}
peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation::JacobiBatchJobRepositoryForRegularGridStandardImplementation(
    peano::geometry::Geometry&                   geometry
):
    _geometry(geometry),
    _gridContainer(),
    _gridWithSetupExperiment(_gridContainer,_geometry, _solverState),
    _gridWithJacobiStep(_gridContainer,_geometry, _solverState),
    _gridWithJacobiStepAndPlotSolution(_gridContainer,_geometry, _solverState),
    _gridWithPlotSolution(_gridContainer,_geometry, _solverState),

    _countSetupExperimentRuns(0),
    _countJacobiStepRuns(0),
    _countJacobiStepAndPlotSolutionRuns(0),
    _countPlotSolutionRuns(0),

    _measureSetupExperimentCPUTime(0.0),
    _measureJacobiStepCPUTime(0.0),
    _measureJacobiStepAndPlotSolutionCPUTime(0.0),
    _measurePlotSolutionCPUTime(0.0),

    _measureSetupExperimentCalendarTime(0.0),
    _measureJacobiStepCalendarTime(0.0),
    _measureJacobiStepAndPlotSolutionCalendarTime(0.0),
    _measurePlotSolutionCalendarTime(0.0),

    _solverState(),
    _repositoryState() {
    logTraceIn( "peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation(Geometry&)" );

    _repositoryState.setAction( JacobiBatchJobRepositoryState::Terminate );

    peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(4 +3 );

    logTraceOut( "peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation(Geometry&)" );
}
peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation::GridConstructionMovieBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(
  peano::geometry::Geometry&                   geometry,
  int                                          initialStackSize
):
  _geometry(geometry),
  _cellStack(initialStackSize),
  _vertexStack(initialStackSize),
  _solverState(),
  _gridWithPerformOneRefinement(_vertexStack,_cellStack,_geometry,_solverState),
  _gridWithPerformOneRefinementWithoutGridSnapshot(_vertexStack,_cellStack,_geometry,_solverState),

  _countPerformOneRefinementRuns(0),
  _countPerformOneRefinementWithoutGridSnapshotRuns(0),

  _measurePerformOneRefinementCPUTime(0.0),
  _measurePerformOneRefinementWithoutGridSnapshotCPUTime(0.0),

  _measurePerformOneRefinementCalendarTime(0.0),
  _measurePerformOneRefinementWithoutGridSnapshotCalendarTime(0.0),

  _repositoryState() {
  logTraceIn( "peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(Geometry&)" );

  _repositoryState.setAction( GridConstructionMovieBatchJobRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(2 +3);
  
  logTraceOut( "peano::applications::puregrid::repositories::GridConstructionMovieBatchJobRepositoryForSpacetreeGridSTDDoubleStackImplementation(Geometry&)" );
}
Пример #14
0
dem::repositories::RepositorySTDStack::RepositorySTDStack(
  peano::geometry::Geometry&                   geometry
):
  _geometry(geometry),
  _cellStack(),
  _vertexStack(),
  _solverState(),
  _gridWithCreateGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithCreateGridAndPlot(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStep(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStepAndPlot(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStepOnDynamicGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStepAndPlotOnDynamicGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStepOnReluctantDynamicGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),
  _gridWithTimeStepAndPlotOnReluctantDynamicGrid(_vertexStack,_cellStack,_geometry,_solverState,_regularGridContainer,_traversalOrderOnTopLevel),

  _repositoryState() {
  logTraceIn( "RepositorySTDStack(Geometry&)" );

  _repositoryState.setAction( dem::records::RepositoryState::Terminate );
  
  peano::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(dem::records::RepositoryState::NumberOfAdapters);
  #ifdef Parallel
  peano::parallel::loadbalancing::Oracle::getInstance().setNumberOfOracles(dem::records::RepositoryState::NumberOfAdapters);
  #endif
  
  logTraceOut( "RepositorySTDStack(Geometry&)" );
}
Пример #15
0
void dem::repositories::RepositorySTDStack::terminate() {
  logTraceIn( "terminate()" );
  
  _repositoryState.setAction( dem::records::RepositoryState::Terminate );
  
  #ifdef Parallel
  if (tarch::parallel::Node::getInstance().isGlobalMaster()) {
    tarch::parallel::NodePool::getInstance().broadcastToWorkingNodes(
      _repositoryState,
      peano::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag()
    );
  }
  peano::parallel::SendReceiveBufferPool::getInstance().terminate();
  #endif

  _gridWithCreateGrid.terminate();
  _gridWithCreateGridAndPlot.terminate();
  _gridWithTimeStep.terminate();
  _gridWithTimeStepAndPlot.terminate();
  _gridWithTimeStepOnDynamicGrid.terminate();
  _gridWithTimeStepAndPlotOnDynamicGrid.terminate();
  _gridWithTimeStepOnReluctantDynamicGrid.terminate();
  _gridWithTimeStepAndPlotOnReluctantDynamicGrid.terminate();


  logTraceOut( "terminate()" );
}
peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridFileStackImplementation::PrototypeRepositoryForSpacetreeGridFileStackImplementation(
  peano::geometry::Geometry&                   geometry,
  int                                          blockSize,
  int                                          numberOfBlocks,
  int                                          minFillThreshold,
  int                                          maxFillThreshold,
  const std::string&                           tempFilePrefix    
):
  _geometry(geometry),
  _cellStack(blockSize,numberOfBlocks,minFillThreshold,maxFillThreshold,tempFilePrefix),
  _vertexStack(blockSize,numberOfBlocks,minFillThreshold,maxFillThreshold,tempFilePrefix),
  _solverState(),




  _repositoryState() {
  logTraceIn( "peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridFileStackImplementation(Geometry&)" );

  _repositoryState.setAction( PrototypeRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(0);

  logTraceOut( "peano::applications::navierstokes::prototype2::repositories::PrototypeRepositoryForSpacetreeGridFileStackImplementation(Geometry&)" );
}
void peano::applications::navierstokes::prototype1::repositories::PrototypeRepositoryForRegularGridStandardImplementation::terminate() {
  logTraceIn( "terminate(...)" );
  
  _repositoryState.setAction( PrototypeRepositoryState::Terminate );
  
  #ifdef Parallel
  if (tarch::parallel::Node::getInstance().isMasterProcess()) {
    tarch::parallel::NodePool::getInstance().broadcastToWorkingNodes(
      _repositoryState,
      peano::kernel::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag()
    );
  }
  peano::kernel::parallel::SendReceiveBufferPool::getInstance().terminate();
  #endif
  
  _gridContainer.terminate();
  _gridWithInitialiseScenario.terminate();
  _gridWithMergeA.terminate();
  _gridWithCalculateF.terminate();
  _gridWithCalculatePPERHS.terminate();
  _gridWithGaussSeidelForEnhancedDivFree.terminate();
  _gridWithUpdateVelocity.terminate();
  _gridWithPlotSolutionVTK.terminate();
  _gridWithPlotRegularSolutionVTK.terminate();
  _gridWithUpdateScenario.terminate();

  logTraceOut( "terminate()" );
}
Пример #18
0
void peanoclaw::repositories::RepositoryArrayStack::terminate() {
  logTraceIn( "terminate()" );
  
  _repositoryState.setAction( peanoclaw::records::RepositoryState::Terminate );
  
  #ifdef Parallel
  if (tarch::parallel::Node::getInstance().isGlobalMaster()) {
    tarch::parallel::NodePool::getInstance().broadcastToWorkingNodes(
      _repositoryState,
      peano::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag()
    );
  }
  peano::parallel::SendReceiveBufferPool::getInstance().terminate();
  #endif
  
  _gridWithInitialiseGrid.terminate();
  _gridWithInitialiseAndValidateGrid.terminate();
  _gridWithPlot.terminate();
  _gridWithPlotAndValidateGrid.terminate();
  _gridWithRemesh.terminate();
  _gridWithSolveTimestep.terminate();
  _gridWithSolveTimestepAndValidateGrid.terminate();
  _gridWithSolveTimestepAndPlot.terminate();
  _gridWithSolveTimestepAndPlotAndValidateGrid.terminate();
  _gridWithGatherCurrentSolution.terminate();
  _gridWithGatherCurrentSolutionAndValidateGrid.terminate();
  _gridWithCleanup.terminate();

 
  logTraceOut( "terminate()" );
}
void peano::applications::faxen::repositories::FaxenBatchJobRepositoryForSpacetreeGridArrayStackImplementation::terminate() {
  logTraceIn( "terminate(...)" );
  
  _repositoryState.setAction( FaxenBatchJobRepositoryState::Terminate );
  
  #ifdef Parallel
  if (tarch::parallel::Node::getInstance().isMasterProcess()) {
    tarch::parallel::NodePool::getInstance().broadcastToWorkingNodes(
      _repositoryState,
      peano::kernel::parallel::SendReceiveBufferPool::getInstance().getIterationManagementTag()
    );
  }
  peano::kernel::parallel::SendReceiveBufferPool::getInstance().terminate();
  #endif
  
  _gridWithInitialize.terminate();
  _gridWithInitializeAndSetBoundary.terminate();
  _gridWithPlotGrid.terminate();
  _gridWithControlTimeStep.terminate();
  _gridWithSetVelocitiesBoundary.terminate();
  _gridWithSetScenarioBoundary.terminate();
  _gridWithComputeVelocitiesDerivatives.terminate();
  _gridWithComputeRightHandSide.terminate();
  _gridWithSetZeroPressureBoundary.terminate();
  _gridWithSetPressureBoundary.terminate();
  _gridWithSORStep.terminate();
  _gridWithComputeResidualNorm.terminate();
  _gridWithComputeVelocities.terminate();
  _gridWithPlotSolution.terminate();

  logTraceOut( "terminate()" );
}
peano::applications::navierstokes::prototype1::mappings::RegularGrid2UpdateVelocity::RegularGrid2UpdateVelocity()
  : _elementType(ELEMENT_TYPE_UNDEF)
{
  logTraceIn( "RegularGrid2UpdateVelocity()" );
  // @todo Insert your code here
  logTraceOut( "RegularGrid2UpdateVelocity()" );
}
peano::applications::latticeboltzmann::blocklatticeboltzmann::repositories::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation(
  peano::geometry::Geometry&                   geometry,
  const tarch::la::Vector<DIMENSIONS,int>&     numberOfGridPoints,
  const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
  const tarch::la::Vector<DIMENSIONS,double>&  computationalDomainOffset,
  const tarch::la::Vector<TWO_POWER_D_TIMES_TWO_POWER_D,int>&  neighbourRanks
):
#else
peano::applications::latticeboltzmann::blocklatticeboltzmann::repositories::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation(
  peano::geometry::Geometry&                   geometry,
  const tarch::la::Vector<DIMENSIONS,int>&     numberOfGridPoints,
  const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
  const tarch::la::Vector<DIMENSIONS,double>&  computationalDomainOffset
):
#endif
  _geometry(geometry),
  _gridContainer(),
  _gridWithRegularBlockSolverAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
  _gridWithInitialiseSpacetreeGridAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
  _gridWithBlockCCAOutputAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
  _gridWithDynamicRefinementForSpacetreeGridAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
  _gridWithBlockVTKOutputAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
  _gridWithRegularBlockSolverAndVTKOutputAdapter(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),

  _countRegularBlockSolverAdapterRuns(0),
  _countInitialiseSpacetreeGridAdapterRuns(0),
  _countBlockCCAOutputAdapterRuns(0),
  _countDynamicRefinementForSpacetreeGridAdapterRuns(0),
  _countBlockVTKOutputAdapterRuns(0),
  _countRegularBlockSolverAndVTKOutputAdapterRuns(0),

  _measureRegularBlockSolverAdapterCPUTime(0.0),
  _measureInitialiseSpacetreeGridAdapterCPUTime(0.0),
  _measureBlockCCAOutputAdapterCPUTime(0.0),
  _measureDynamicRefinementForSpacetreeGridAdapterCPUTime(0.0),
  _measureBlockVTKOutputAdapterCPUTime(0.0),
  _measureRegularBlockSolverAndVTKOutputAdapterCPUTime(0.0),

  _measureRegularBlockSolverAdapterCalendarTime(0.0),
  _measureInitialiseSpacetreeGridAdapterCalendarTime(0.0),
  _measureBlockCCAOutputAdapterCalendarTime(0.0),
  _measureDynamicRefinementForSpacetreeGridAdapterCalendarTime(0.0),
  _measureBlockVTKOutputAdapterCalendarTime(0.0),
  _measureRegularBlockSolverAndVTKOutputAdapterCalendarTime(0.0),

  _solverState(),
  _repositoryState() {
  logTraceIn( "peano::applications::latticeboltzmann::blocklatticeboltzmann::repositories::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation(...)" );
  #ifdef Parallel
  _gridContainer.restart( numberOfGridPoints,domainSize,computationalDomainOffset,neighbourRanks);
  #else
  _gridContainer.restart( numberOfGridPoints,domainSize,computationalDomainOffset);
  #endif
  _repositoryState.setAction( BlockLatticeBoltzmannBatchJobRepositoryState::Terminate );
  
  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(6 +3 );
  
  logTraceOut( "peano::applications::latticeboltzmann::blocklatticeboltzmann::repositories::BlockLatticeBoltzmannBatchJobRepositoryForRegularGridStandardImplementation(...)" );
}
Пример #22
0
peano::applications::faxen::mappings::RegularGrid2Initialize::RegularGrid2Initialize():
							_PI(0.0),
							_UI(0.0),
							_VI(0.0) {
	logTraceIn( "RegularGrid2Initialize()" );
	// @todo Insert your code here
	logTraceOut( "RegularGrid2Initialize()" );
}
void peanoclaw::runners::PeanoClawLibraryRunner::gatherCurrentSolution() {
  logTraceIn("gatherCurrentSolution");
  assertion(_repository != 0);

  iterateGatherSolution();

  logTraceOut("gatherCurrentSolution");
}
peano::applications::navierstokes::prototype1::mappings::RegularGrid2InitialiseScenario::RegularGrid2InitialiseScenario() {
  logTraceIn( "RegularGrid2InitialiseScenario()" );

  _scenarioHandler = std::auto_ptr<SetScenario>(new SetScenario(true)); //true, since we are in the grid initialisation
  _calculateA      = std::auto_ptr<peano::applications::navierstokes::prototype1::fluidnumerics::CalculateA>(
      new peano::applications::navierstokes::prototype1::fluidnumerics::CalculateA() );

  logTraceOut( "RegularGrid2InitialiseScenario()" );
}
Пример #25
0
peanoclaw::mappings::ValidateGrid::ValidateGrid()
 :
   _validator(0, 0, false)
{
  logTraceIn( "ValidateGrid()" );

  _patchDescriptionsIndex = PatchDescriptionHeap::getInstance().createData();

  logTraceOut( "ValidateGrid()" );
}
peano::applications::navierstokes::prototype1::repositories::PrototypeRepositoryForRegularGridStandardImplementation::PrototypeRepositoryForRegularGridStandardImplementation(
  peano::geometry::Geometry&                   geometry
):
  _geometry(geometry),
  _gridContainer(),
  _gridWithInitialiseScenario(_gridContainer,_geometry, _solverState),
  _gridWithMergeA(_gridContainer,_geometry, _solverState),
  _gridWithCalculateF(_gridContainer,_geometry, _solverState),
  _gridWithCalculatePPERHS(_gridContainer,_geometry, _solverState),
  _gridWithGaussSeidelForEnhancedDivFree(_gridContainer,_geometry, _solverState),
  _gridWithUpdateVelocity(_gridContainer,_geometry, _solverState),
  _gridWithPlotSolutionVTK(_gridContainer,_geometry, _solverState),
  _gridWithPlotRegularSolutionVTK(_gridContainer,_geometry, _solverState),
  _gridWithUpdateScenario(_gridContainer,_geometry, _solverState),

  _countInitialiseScenarioRuns(0),
  _countMergeARuns(0),
  _countCalculateFRuns(0),
  _countCalculatePPERHSRuns(0),
  _countGaussSeidelForEnhancedDivFreeRuns(0),
  _countUpdateVelocityRuns(0),
  _countPlotSolutionVTKRuns(0),
  _countPlotRegularSolutionVTKRuns(0),
  _countUpdateScenarioRuns(0),

  _measureInitialiseScenarioCPUTime(0.0),
  _measureMergeACPUTime(0.0),
  _measureCalculateFCPUTime(0.0),
  _measureCalculatePPERHSCPUTime(0.0),
  _measureGaussSeidelForEnhancedDivFreeCPUTime(0.0),
  _measureUpdateVelocityCPUTime(0.0),
  _measurePlotSolutionVTKCPUTime(0.0),
  _measurePlotRegularSolutionVTKCPUTime(0.0),
  _measureUpdateScenarioCPUTime(0.0),

  _measureInitialiseScenarioCalendarTime(0.0),
  _measureMergeACalendarTime(0.0),
  _measureCalculateFCalendarTime(0.0),
  _measureCalculatePPERHSCalendarTime(0.0),
  _measureGaussSeidelForEnhancedDivFreeCalendarTime(0.0),
  _measureUpdateVelocityCalendarTime(0.0),
  _measurePlotSolutionVTKCalendarTime(0.0),
  _measurePlotRegularSolutionVTKCalendarTime(0.0),
  _measureUpdateScenarioCalendarTime(0.0),

  _solverState(),
  _repositoryState() {
  logTraceIn( "peano::applications::navierstokes::prototype1::repositories::PrototypeRepositoryForRegularGridStandardImplementation(Geometry&)" );
  
  _repositoryState.setAction( PrototypeRepositoryState::Terminate );

  peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(9 +3 );
  
  logTraceOut( "peano::applications::navierstokes::prototype1::repositories::PrototypeRepositoryForRegularGridStandardImplementation(Geometry&)" );
}
Пример #27
0
peano::applications::poisson::jacobitutorial::mappings::RegularGrid2PlotSolution::RegularGrid2PlotSolution():
  _vertex2IndexMap(),
  _vtkWriter(),
  _vertexWriter(0),
  _cellWriter(0),
  _vertexResidualWriter(0),
  _vertexValueWriter(0),
  _vertexRhsWriter(0) {
  logTraceIn( "RegularGrid2PlotSolution()" );
  logTraceOut( "RegularGrid2PlotSolution()" );
}
Пример #28
0
peanoclaw::mappings::ValidateGrid::ValidateGrid(const ValidateGrid&  masterThread)
  : _domainOffset(masterThread._domainOffset),
    _domainSize(masterThread._domainSize),
    _patchDescriptionsIndex(masterThread._patchDescriptionsIndex),
    _validator(masterThread._validator),
    _state(masterThread._state)
{
  logTraceIn( "ValidateGrid(ValidateGrid)" );
  // @todo Insert your code here
  logTraceOut( "ValidateGrid(ValidateGrid)" );
}
peano::applications::poisson::multigrid::mappings::SpacetreeGrid2PlotSolution::SpacetreeGrid2PlotSolution():
  _vertex2IndexMap(),
  _vtkWriter(),
  _vertexWriter(0),
  _cellWriter(0),
  _vertexResidualWriter(0),
  _vertexValueWriter(0),
  _vertexRhsWriter(0) {
  logTraceIn( "SpacetreeGrid2PlotSolution()" );
  iterationCount = 0;
  logTraceOut( "SpacetreeGrid2PlotSolution()" );
}
peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation::JacobiBatchJobRepositoryForRegularGridStandardImplementation(
    peano::geometry::Geometry&                   geometry,
    const tarch::la::Vector<DIMENSIONS,int>&     numberOfGridPoints,
    const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
    const tarch::la::Vector<DIMENSIONS,double>&  computationalDomainOffset,
    const tarch::la::Vector<TWO_POWER_D_TIMES_TWO_POWER_D,int>&  neighbourRanks
):
#else
peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation::JacobiBatchJobRepositoryForRegularGridStandardImplementation(
    peano::geometry::Geometry&                   geometry,
    const tarch::la::Vector<DIMENSIONS,int>&     numberOfGridPoints,
    const tarch::la::Vector<DIMENSIONS,double>&  domainSize,
    const tarch::la::Vector<DIMENSIONS,double>&  computationalDomainOffset
):
#endif
    _geometry(geometry),
    _gridContainer(),
    _gridWithSetupExperiment(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
    _gridWithJacobiStep(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
    _gridWithJacobiStepAndPlotSolution(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),
    _gridWithPlotSolution(domainSize,computationalDomainOffset,_gridContainer,_geometry, _solverState),

    _countSetupExperimentRuns(0),
    _countJacobiStepRuns(0),
    _countJacobiStepAndPlotSolutionRuns(0),
    _countPlotSolutionRuns(0),

    _measureSetupExperimentCPUTime(0.0),
    _measureJacobiStepCPUTime(0.0),
    _measureJacobiStepAndPlotSolutionCPUTime(0.0),
    _measurePlotSolutionCPUTime(0.0),

    _measureSetupExperimentCalendarTime(0.0),
    _measureJacobiStepCalendarTime(0.0),
    _measureJacobiStepAndPlotSolutionCalendarTime(0.0),
    _measurePlotSolutionCalendarTime(0.0),

    _solverState(),
    _repositoryState() {
    logTraceIn( "peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation(...)" );
#ifdef Parallel
    _gridContainer.restart( numberOfGridPoints,domainSize,computationalDomainOffset,neighbourRanks);
#else
    _gridContainer.restart( numberOfGridPoints,domainSize,computationalDomainOffset);
#endif
    _repositoryState.setAction( JacobiBatchJobRepositoryState::Terminate );

    peano::kernel::datatraversal::autotuning::Oracle::getInstance().setNumberOfOracles(4 +3 );

    logTraceOut( "peano::applications::poisson::vhhjacobi::repositories::JacobiBatchJobRepositoryForRegularGridStandardImplementation(...)" );
}