Peano
Loading...
Searching...
No Matches
DGCGCoupling.h File Reference
Include dependency graph for DGCGCoupling.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mghype
 This file is part of the multigrid project within Peano 4.
 
namespace  mghype::matrixfree
 
namespace  mghype::matrixfree::solvers
 
namespace  mghype::matrixfree::solvers::dgcgcoupling
 

Functions

void mghype::matrixfree::solvers::dgcgcoupling::rollOverAndPrepareCGVertex (auto &vertex, bool restrictRhsAndInjectSolution, bool fas)
 Apply updates from previous mesh sweep in multigrid sense and prepare for next correction step.
 
void mghype::matrixfree::solvers::dgcgcoupling::updateRestrictionCounters (auto &vertices)
 Restrict counters.
 
template<class DGSolver , class CGSolver >
void mghype::matrixfree::solvers::dgcgcoupling::injectSolution (const tarch::la::Matrix< TwoPowerD *CGSolver::VertexUnknowns, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &injectionMatrix, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgSolution, auto &cgVertices)
 
template<class DGSolver , class CGSolver >
tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, doublemghype::matrixfree::solvers::dgcgcoupling::prolongate (const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, TwoPowerD *CGSolver::VertexUnknowns, double > &prolongationMatrix, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgSolution, const auto &cgVertices)
 
template<class DGSolver , class CGSolver >
void mghype::matrixfree::solvers::dgcgcoupling::computeAndRestrictResidual (const tarch::la::Matrix< TwoPowerD *CGSolver::VertexUnknowns, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &restrictionMatrix, const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &massMatrix, const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &systemMatrix, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgSolution, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgRhs, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &faceSolutions, auto &cgVertices)
 
template<class DGSolver , class CGSolver >
void mghype::matrixfree::solvers::dgcgcoupling::computeAndRestrictHierarchicalResidual (const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, TwoPowerD *CGSolver::VertexUnknowns, double > &prolongationMatrix, const tarch::la::Matrix< TwoPowerD *CGSolver::VertexUnknowns, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &restrictionMatrix, const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &massMatrix, const tarch::la::Matrix< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &systemMatrix, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgSolution, const tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > &dgRhs, auto &cgVertices)
 
template<class CGSolver >
tarch::la::Vector< TwoPowerD *CGSolver::VertexUnknowns, doublemghype::matrixfree::solvers::dgcgcoupling::getCoarseGridSolution (auto &cgVertices)
 Get the vector of course grid solutions.
 

Variables

tarch::logging::Log mghype::matrixfree::solvers::dgcgcoupling::_log