47 #ifndef PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_ 48 #define PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_ 85 template <
class Scalar = double,
86 class LocalOrdinal = int,
87 class GlobalOrdinal = LocalOrdinal,
88 class Node = KokkosClassic::DefaultNode::DefaultNodeType>
90 #undef MUELU_VARIABLEDOFLAPLACIANFACTORY_SHORT 119 void buildPaddedMap(
const Teuchos::ArrayRCP<const LocalOrdinal> & dofPresent, std::vector<LocalOrdinal> & map,
size_t nDofs)
const;
120 void assignGhostLocalNodeIds(
const Teuchos::RCP<const Map> & rowDofMap,
const Teuchos::RCP<const Map> & colDofMap, std::vector<LocalOrdinal> & myLocalNodeIds,
const std::vector<LocalOrdinal> & dofMap,
size_t maxDofPerNode,
size_t& nLocalNodes,
size_t& nLocalPlusGhostNodes, Teuchos::RCP<
const Teuchos::Comm< int > > comm)
const;
121 void squeezeOutNnzs(Teuchos::ArrayRCP<size_t> & rowPtr, Teuchos::ArrayRCP<LocalOrdinal> & cols, Teuchos::ArrayRCP<Scalar> & vals,
const std::vector<bool>& keep)
const;
122 void buildLaplacian(
const Teuchos::ArrayRCP<size_t>& rowPtr,
const Teuchos::ArrayRCP<LocalOrdinal>& cols, Teuchos::ArrayRCP<Scalar>& vals,
const size_t& numdim,
const RCP<Xpetra::MultiVector<double,LocalOrdinal,GlobalOrdinal,Node> > & ghostedCoords)
const;
124 template <
class listType>
125 void MueLu_az_sort(listType list[],
size_t N,
size_t list2[], Scalar list3[])
const {
144 if ((list2 != NULL) && (list3 != NULL)) {
159 if (list[j] > list[j - 1]) j = j + 1;
161 if (list[j - 1] > K) {
162 list[ i - 1] = list[ j - 1];
163 list2[i - 1] = list2[j - 1];
164 list3[i - 1] = list3[j - 1];
200 else if (list2 != NULL) {
214 if (list[j] > list[j - 1]) j = j + 1;
216 if (list[j - 1] > K) {
217 list[ i - 1] = list[ j - 1];
218 list2[i - 1] = list2[j - 1];
249 else if (list3 != NULL) {
263 if (list[j] > list[j - 1]) j = j + 1;
265 if (list[j - 1] > K) {
266 list[ i - 1] = list[ j - 1];
267 list3[i - 1] = list3[j - 1];
312 if (list[j] > list[j - 1]) j = j + 1;
314 if (list[j - 1] > K) {
315 list[ i - 1] = list[ j - 1];
347 #define MUELU_VARIABLEDOFLAPLACIANFACTORY_SHORT VariableDofLaplacianFactory()
Constructor.
void buildLaplacian(const Teuchos::ArrayRCP< size_t > &rowPtr, const Teuchos::ArrayRCP< LocalOrdinal > &cols, Teuchos::ArrayRCP< Scalar > &vals, const size_t &numdim, const RCP< Xpetra::MultiVector< double, LocalOrdinal, GlobalOrdinal, Node > > &ghostedCoords) const
virtual ~VariableDofLaplacianFactory()
Destructor.
Namespace for MueLu classes and methods.
void assignGhostLocalNodeIds(const Teuchos::RCP< const Map > &rowDofMap, const Teuchos::RCP< const Map > &colDofMap, std::vector< LocalOrdinal > &myLocalNodeIds, const std::vector< LocalOrdinal > &dofMap, size_t maxDofPerNode, size_t &nLocalNodes, size_t &nLocalPlusGhostNodes, Teuchos::RCP< const Teuchos::Comm< int > > comm) const
void buildPaddedMap(const Teuchos::ArrayRCP< const LocalOrdinal > &dofPresent, std::vector< LocalOrdinal > &map, size_t nDofs) const
void squeezeOutNnzs(Teuchos::ArrayRCP< size_t > &rowPtr, Teuchos::ArrayRCP< LocalOrdinal > &cols, Teuchos::ArrayRCP< Scalar > &vals, const std::vector< bool > &keep) const
Class that holds all level-specific information.
Factory for building scalar Laplace operator (that is used as fake operator for variable dof size pro...
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void Build(Level ¤tLevel) const
Build an object with this factory.
void DeclareInput(Level ¤tLevel) const
Input.
Base class for factories that use one level (currentLevel).
void MueLu_az_sort(listType list[], size_t N, size_t list2[], Scalar list3[]) const