Peano
Loading...
Searching...
No Matches
DGCGCoupling.h
Go to the documentation of this file.
1// This file is part of the Peano's MGHyPE extension. For conditions of
2// distribution and use, please see the copyright notice at
3// www.peano-framework.org
4#pragma once
5
6
7#include "tarch/la/Matrix.h"
8#include "tarch/la/Vector.h"
10
11
12namespace mghype {
13 namespace matrixfree {
14 namespace solvers {
15 namespace dgcgcoupling {
90 auto& vertex,
91 bool restrictRhsAndInjectSolution,
92 bool fas
93 );
94
96
117 auto& vertices
118 );
119
130 template <class DGSolver, class CGSolver>
134 auto& cgVertices
135 );
136
137 template <class DGSolver, class CGSolver>
141 const auto& cgVertices
142 );
143
144 template <class DGSolver, class CGSolver>
152 auto& cgVertices
153 );
154
155 template <class DGSolver, class CGSolver>
163 auto& cgVertices
164 );
165
169 template <class CGSolver>
171 auto& cgVertices
172 );
173 }
174 }
175 }
176}
177
178
179#include "DGCGCoupling.cpph"
180
Static (i.e.
Definition Matrix.h:42
Log Device.
Definition Log.h:517
void updateRestrictionCounters(auto &vertices)
Restrict counters.
void 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)
void 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)
void rollOverAndPrepareCGVertex(auto &vertex, bool restrictRhsAndInjectSolution, bool fas)
Apply updates from previous mesh sweep in multigrid sense and prepare for next correction step.
void 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)
tarch::la::Vector< DGSolver::NodesPerCell *DGSolver::UnknownsPerCellNode, double > 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)
tarch::la::Vector< TwoPowerD *CGSolver::VertexUnknowns, double > getCoarseGridSolution(auto &cgVertices)
Get the vector of course grid solutions.
This file is part of the multigrid project within Peano 4.
Definition __init__.py:1
This file is part of the multigrid project within Peano 4.
Definition __init__.py:1
Simple vector class.
Definition Vector.h:159