47 #ifndef PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_ 48 #define PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_ 105 #undef MUELU_VARIABLEDOFLAPLACIANFACTORY_SHORT 134 void buildPaddedMap(
const Teuchos::ArrayRCP<const LocalOrdinal> & dofPresent, std::vector<LocalOrdinal> & map,
size_t nDofs)
const;
135 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;
136 void squeezeOutNnzs(Teuchos::ArrayRCP<size_t> & rowPtr, Teuchos::ArrayRCP<LocalOrdinal> & cols, Teuchos::ArrayRCP<Scalar> & vals,
const std::vector<bool>& keep)
const;
137 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<
typename Teuchos::ScalarTraits<Scalar>::magnitudeType,
LocalOrdinal,
GlobalOrdinal,
Node> > & ghostedCoords)
const;
139 template <
class listType>
159 if ((list2 != NULL) && (list3 != NULL)) {
174 if (list[j] > list[j - 1]) j = j + 1;
176 if (list[j - 1] > K) {
177 list[ i - 1] = list[ j - 1];
178 list2[i - 1] = list2[j - 1];
179 list3[i - 1] = list3[j - 1];
215 else if (list2 != NULL) {
229 if (list[j] > list[j - 1]) j = j + 1;
231 if (list[j - 1] > K) {
232 list[ i - 1] = list[ j - 1];
233 list2[i - 1] = list2[j - 1];
264 else if (list3 != NULL) {
278 if (list[j] > list[j - 1]) j = j + 1;
280 if (list[j - 1] > K) {
281 list[ i - 1] = list[ j - 1];
282 list3[i - 1] = list3[j - 1];
327 if (list[j] > list[j - 1]) j = j + 1;
329 if (list[j - 1] > K) {
330 list[ i - 1] = list[ j - 1];
362 #define MUELU_VARIABLEDOFLAPLACIANFACTORY_SHORT VariableDofLaplacianFactory()
Constructor.
MueLu::DefaultLocalOrdinal LocalOrdinal
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
virtual ~VariableDofLaplacianFactory()
Destructor.
Namespace for MueLu classes and methods.
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< typename Teuchos::ScalarTraits< Scalar >::magnitudeType, LocalOrdinal, GlobalOrdinal, Node > > &ghostedCoords) const
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
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
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