Lines Matching refs:level
140 for (PetscInt level = 0; level < num_levels; level++) { in main() local
141 PetscCall(DMClone(dm_orig, &level_dms[level])); in main()
143 PetscCall(DMSetVecType(level_dms[level], vectype)); in main()
144 …PetscCall(SetupDMByDegree(level_dms[level], app_ctx, app_ctx->level_degrees[level], PETSC_TRUE, nu… in main()
148 PetscCall(DMGetLocalSection(level_dms[level], §ion)); in main()
189 for (PetscInt level = 0; level < num_levels; level++) { in main() local
191 PetscCall(DMCreateGlobalVector(level_dms[level], &U_g[level])); in main()
192 PetscCall(VecGetSize(U_g[level], &U_g_size[level])); in main()
194 PetscCall(VecGetLocalSize(U_g[level], &U_l_size[level])); in main()
197 PetscCall(DMCreateLocalVector(level_dms[level], &U_loc[level])); in main()
199 PetscCall(VecGetSize(U_loc[level], &U_loc_size[level])); in main()
254 for (PetscInt level = num_levels - 2; level >= 0; level--) { in main() local
255 PetscCall(PetscCalloc1(1, &ceed_data[level])); in main()
258 PetscCall(VecZeroEntries(U_g[level + 1])); in main()
259 PetscCall(VecSet(U_loc[level + 1], 1.0)); in main()
260 PetscCall(DMLocalToGlobal(level_dms[level + 1], U_loc[level + 1], ADD_VALUES, U_g[level + 1])); in main()
261 … PetscCall(DMGlobalToLocal(level_dms[level + 1], U_g[level + 1], INSERT_VALUES, U_loc[level + 1])); in main()
266 PetscCall(VecGetArrayReadAndMemType(U_loc[level + 1], &m, &m_mem_type)); in main()
267 …CeedVectorSetArray(ceed_data[level + 1]->x_ceed, MemTypeP2C(m_mem_type), CEED_USE_POINTER, (CeedSc… in main()
273 …tscCall((*SetupLibceedLevel)(level_dms[level], ceed, app_ctx, level, num_comp_u, U_g_size[level], … in main()
274 ceed_data[level + 1]->x_ceed, ceed_data)); in main()
277 CeedVectorTakeArray(ceed_data[level + 1]->x_ceed, MemTypeP2C(m_mem_type), (CeedScalar **)&m); in main()
278 PetscCall(VecRestoreArrayReadAndMemType(U_loc[level + 1], &m)); in main()
279 PetscCall(VecZeroEntries(U_g[level + 1])); in main()
280 PetscCall(VecZeroEntries(U_loc[level + 1])); in main()
358 PetscInt level = i ? fine_level : 0; in main() local
365 … level, i ? "fine" : "coarse", app_ctx->level_degrees[level] + 1, U_g_size[level] / num_comp_u, in main()
366 U_l_size[level] / num_comp_u)); in main()
385 for (PetscInt level = 0; level < num_levels; level++) { in main() local
387 PetscCall(PetscMalloc1(1, &jacob_ctx[level])); in main()
388 …PetscCall(SetupJacobianCtx(comm, app_ctx, level_dms[level], U_g[level], U_loc[level], ceed_data[le… in main()
389 jacob_ctx[level])); in main()
392 …MatCreateShell(comm, U_l_size[level], U_l_size[level], U_g_size[level], U_g_size[level], jacob_ctx… in main()
393 … PetscCall(MatShellSetOperation(jacob_mat[level], MATOP_MULT, (void (*)(void))ApplyJacobian_Ceed)); in main()
394 …PetscCall(MatShellSetOperation(jacob_mat[level], MATOP_GET_DIAGONAL, (void (*)(void))GetDiag_Ceed)… in main()
395 PetscCall(MatShellSetVecType(jacob_mat[level], vectype)); in main()
415 for (PetscInt level = 1; level < num_levels; level++) { in main() local
417 PetscCall(PetscMalloc1(1, &prolong_restr_ctx[level])); in main()
418 …longRestrictCtx(comm, app_ctx, level_dms[level - 1], level_dms[level], U_g[level], U_loc[level - 1… in main()
419 … ceed_data[level - 1], ceed_data[level], ceed, prolong_restr_ctx[level])); in main()
422 …(MatCreateShell(comm, U_l_size[level], U_l_size[level - 1], U_g_size[level], U_g_size[level - 1], … in main()
423 &prolong_restr_mat[level])); in main()
425 …PetscCall(MatShellSetOperation(prolong_restr_mat[level], MATOP_MULT, (void (*)(void))Prolong_Ceed)… in main()
426 …PetscCall(MatShellSetOperation(prolong_restr_mat[level], MATOP_MULT_TRANSPOSE, (void (*)(void))Res… in main()
427 PetscCall(MatShellSetVecType(prolong_restr_mat[level], vectype)); in main()
502 for (PetscInt level = 0; level < num_levels; level++) { in main() local
508 PetscCall(PCMGGetSmoother(pc, level, &ksp_smoother)); in main()
509 PetscCall(KSPSetDM(ksp_smoother, level_dms[level])); in main()
518 PetscCall(KSPSetOperators(ksp_smoother, jacob_mat[level], jacob_mat[level])); in main()
526 if (level != fine_level) { in main()
527 PetscCall(PCMGSetX(pc, level, U_g[level])); in main()
531 if (level > 0) { in main()
532 PetscCall(PCMGSetInterpolation(pc, level, prolong_restr_mat[level])); in main()
533 PetscCall(PCMGSetRestriction(pc, level, prolong_restr_mat[level])); in main()
803 for (PetscInt level = 0; level < num_levels; level++) { in main() local
805 PetscCall(VecDestroy(&U_g[level])); in main()
806 PetscCall(VecDestroy(&U_loc[level])); in main()
809 PetscCall(VecDestroy(&jacob_ctx[level]->Y_loc)); in main()
810 PetscCall(MatDestroy(&jacob_mat[level])); in main()
811 PetscCall(PetscFree(jacob_ctx[level])); in main()
814 if (level > 0) { in main()
815 PetscCall(PetscFree(prolong_restr_ctx[level])); in main()
816 PetscCall(MatDestroy(&prolong_restr_mat[level])); in main()
820 PetscCall(DMDestroy(&level_dms[level])); in main()
823 PetscCall(CeedDataDestroy(level, ceed_data[level])); in main()