67 A_mp = MueLu::TpetraCrs_To_XpetraMatrix<scalar_t, lo_t, go_t, node_t>(A);
68 A_mp->SetFixedBlockSize(1);
70 Teuchos::RCP<mv_t> coords_p = Teuchos::rcp(
74 const scalar_t* domain = level_p->geom.ProbLo();
75 const scalar_t* dx = level_p->cellSize();
76 for (amrex::MFIter mfi(level_p->grids, level_p->dmap,
true);
80 const lo_t* lo = tbx.loVect();
81 const lo_t* hi = tbx.hiVect();
83 for (
lo_t i = lo[0]; i <= hi[0]; ++i) {
84 for (
lo_t j = lo[1]; j <= hi[1]; ++j) {
85#if AMREX_SPACEDIM == 3
86 for (
lo_t k = lo[2]; k <= hi[2]; ++k) {
89 go_t gidx = level_p->serialize(iv);
91 coords_p->replaceGlobalValue(gidx, 0, domain[0] + (0.5 + i) * dx[0]);
92 coords_p->replaceGlobalValue(gidx, 1, domain[1] + (0.5 + j) * dx[1]);
93#if AMREX_SPACEDIM == 3
94 coords_p->replaceGlobalValue(gidx, 2, domain[2] + (0.5 + k) * dx[2]);
101 Teuchos::RCP<xmv_t> coordinates = MueLu::TpetraMultiVector_To_XpetraMultiVector(coords_p);
103 Teuchos::RCP<mv_t> nullspace = Teuchos::rcp(
new mv_t(A->getRowMap(), 1));
104 Teuchos::RCP<xmv_t> xnullspace = MueLu::TpetraMultiVector_To_XpetraMultiVector(nullspace);
105 xnullspace->putScalar(1.0);
106 hierarchy_mp->GetLevel(0)->Set(
"Nullspace", xnullspace);
107 hierarchy_mp->GetLevel(0)->Set(
"Coordinates", coordinates);
112 Teuchos::RCP<level_t> finest_p =
hierarchy_mp->GetLevel(0);
113 finest_p->Set(
"A",
A_mp);