MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_Q2Q1Q2CoarseGridFactory_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// MueLu: A package for multigrid based preconditioning
4//
5// Copyright 2012 NTESS and the MueLu contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef MUELU_Q2Q1Q2COARSEGRIDFACTORY_DECL_HPP
11#define MUELU_Q2Q1Q2COARSEGRIDFACTORY_DECL_HPP
12
13#include "MueLu_ConfigDefs.hpp"
15//#include "MueLu_Q2Q1Q2CoarseGridFactory_fwd.hpp"
16
17#include <Xpetra_Matrix_fwd.hpp>
18
19#include "MueLu_Level_fwd.hpp"
20#include "MueLu_PFactory.hpp"
21
22namespace MueLu {
23
30template <class Scalar = DefaultScalar,
33 class Node = DefaultNode>
35#undef MUELU_Q2Q1Q2COARSEGRIDFACTORY_SHORT
37
38 public:
40
41
44
47
49
51
52
59 void DeclareInput(Level &fineLevel, Level &coarseLevel) const;
60
62
64
65
67 void Build(Level &fineLevel, Level &coarseLevel) const;
68
69 void BuildCoarseGrid(Level &fineLevel, Level &coarseLevel) const;
70
71 /* For our geometric multigrid needs, we will explicitly build the
72 coarse grid here and store it as level data. There are two
73 things we care about here: coordinates of the dofs and
74 element-dof lists.
75
76 We will assume only that the elements are numbered
77 lexicographically, left-to-right, bottom-to-top. The order of
78 the degrees of freedom will only be assumed on coarse grids. It
79 can be anything on the finest grid (fineLevel.GetLevelID()==1).
80
81 We further assume that the x- and y-components of velocity are
82 zippered together: UX1 UY1 UX2 UY2 ETC...
83 */
84
86
87 private:
88 // No parameters need to be stored... To save "P", use
89 // coarseLevel.Set("P", finalP, this);
90
91}; // class Q2Q1Q2CoarseGridFactory
92
93} // namespace MueLu
94
95#define MUELU_Q2Q1Q2COARSEGRIDFACTORY_SHORT
96#endif // MUELU_Q2Q1Q2COARSEGRIDFACTORY_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Class that holds all level-specific information.
Factory for GMG Q2-Q1-Q2 interpolation.
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
void BuildCoarseGrid(Level &fineLevel, Level &coarseLevel) const
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Specifies the data that this class needs, and the factories that generate that data.
Base class for factories that use two levels (fineLevel and coarseLevel).
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar