47 #ifndef PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_
48 #define PACKAGES_MUELU_SRC_GRAPH_MUELU_VARIABLEDOFLAPLACIANFACTORY_DECL_HPP_
100 template <
class Scalar = double,
101 class LocalOrdinal = int,
102 class GlobalOrdinal = LocalOrdinal,
105 #undef MUELU_VARIABLEDOFLAPLACIANFACTORY_SHORT
139 template <
class listType>
140 void MueLu_az_sort(listType list[],
size_t N,
size_t list2[], Scalar list3[])
const {
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.
void buildPaddedMap(const Teuchos::ArrayRCP< const LocalOrdinal > &dofPresent, std::vector< LocalOrdinal > &map, size_t nDofs) const
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
virtual ~VariableDofLaplacianFactory()
Destructor.
void DeclareInput(Level ¤tLevel) const
Input.
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 MueLu_az_sort(listType list[], size_t N, size_t list2[], Scalar list3[]) const
Class that holds all level-specific information.
void Build(Level ¤tLevel) const
Build an object with this factory.
Factory for building scalar Laplace operator (that is used as fake operator for variable dof size pro...
void squeezeOutNnzs(Teuchos::ArrayRCP< size_t > &rowPtr, Teuchos::ArrayRCP< LocalOrdinal > &cols, Teuchos::ArrayRCP< Scalar > &vals, const std::vector< bool > &keep) const
Base class for factories that use one level (currentLevel).
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.