| /petsc/src/ksp/pc/impls/bddc/ |
| H A D | bddc.c | 40 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCSetFromOptions_BDDC() local 56 …vel", "Verbose output for PCBDDC (intended for debug)", "none", pcbddc->dbg_flag, &pcbddc->dbg_fla… in PCSetFromOptions_BDDC() 58 …erfaceExtType", PCBDDCInterfaceExtTypes, (PetscEnum)pcbddc->interface_extension, (PetscEnum *)&pcb… in PCSetFromOptions_BDDC() 59 if (pcbddc->interface_extension == PC_BDDC_INTERFACE_EXT_DIRICHLET) { in PCSetFromOptions_BDDC() 60 … that we are using approximate Dirichlet solvers", "none", pcbddc->NullSpace_corr[0], &pcbddc->Nul… in PCSetFromOptions_BDDC() 61 …PCBDDC that we need to scale the Dirichlet solve", "none", pcbddc->NullSpace_corr[1], &pcbddc->Nul… in PCSetFromOptions_BDDC() 64 pcbddc->switch_static = PETSC_TRUE; in PCSetFromOptions_BDDC() 66 …DC that we are using approximate Neumann solvers", "none", pcbddc->NullSpace_corr[2], &pcbddc->Nul… in PCSetFromOptions_BDDC() 67 …m PCBDDC that we need to scale the Neumann solve", "none", pcbddc->NullSpace_corr[3], &pcbddc->Nul… in PCSetFromOptions_BDDC() 69 …djacency graph of local mat for interface analysis", "none", pcbddc->use_local_adj, &pcbddc->use_l… in PCSetFromOptions_BDDC() [all …]
|
| H A D | bddcprivate.c | 155 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCNedelecSupport() local 180 order = pcbddc->nedorder; in PCBDDCNedelecSupport() 181 conforming = pcbddc->conforming; in PCBDDCNedelecSupport() 182 field = pcbddc->nedfield; in PCBDDCNedelecSupport() 183 global = pcbddc->nedglobal; in PCBDDCNedelecSupport() 212 …pcbddc->n_ISForDofsLocal || field < pcbddc->n_ISForDofsLocal, comm, PETSC_ERR_USER, "Invalid field… in PCBDDCNedelecSupport() 213 if (pcbddc->n_ISForDofsLocal && field >= 0) { in PCBDDCNedelecSupport() 214 PetscCall(PetscObjectReference((PetscObject)pcbddc->ISForDofsLocal[field])); in PCBDDCNedelecSupport() 215 nedfieldlocal = pcbddc->ISForDofsLocal[field]; in PCBDDCNedelecSupport() 217 } else if (!pcbddc->n_ISForDofsLocal && field != PETSC_DECIDE) { in PCBDDCNedelecSupport() [all …]
|
| H A D | bddcscalingbasic.c | 48 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingExtension_Basic() local 52 PetscCall(VecPointwiseMult(pcbddc->work_scaling, pcis->D, local_interface_vector)); in PCBDDCScalingExtension_Basic() 54 …PetscCall(VecScatterBegin(pcis->global_to_B, pcbddc->work_scaling, global_vector, ADD_VALUES, SCAT… in PCBDDCScalingExtension_Basic() 55 …PetscCall(VecScatterEnd(pcis->global_to_B, pcbddc->work_scaling, global_vector, ADD_VALUES, SCATTE… in PCBDDCScalingExtension_Basic() 62 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCScalingExtension_Deluxe() local 63 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCScalingExtension_Deluxe() 66 PetscCall(VecSet(pcbddc->work_scaling, 0.0)); in PCBDDCScalingExtension_Deluxe() 74 PetscCall(VecGetArray(pcbddc->work_scaling, &array)); in PCBDDCScalingExtension_Deluxe() 76 PetscCall(VecRestoreArray(pcbddc->work_scaling, &array)); in PCBDDCScalingExtension_Deluxe() 114 …PetscCall(VecScatterBegin(deluxe_ctx->seq_scctx[i], deluxe_ctx->seq_work1[i], pcbddc->work_scaling… in PCBDDCScalingExtension_Deluxe() [all …]
|
| H A D | bddcnullspace.c | 68 PC_BDDC *pcbddc = (PC_BDDC *)pc->data; in PCBDDCNullSpaceAssembleCorrection() local 79 if (isdir) local_ksp = pcbddc->ksp_D; /* Dirichlet solver */ in PCBDDCNullSpaceAssembleCorrection() 80 else local_ksp = pcbddc->ksp_R; /* Neumann solver */ in PCBDDCNullSpaceAssembleCorrection() 84 …if (pcbddc->dbg_flag) PetscCall(PetscViewerASCIISynchronizedPrintf(pcbddc->dbg_viewer, "Subdomain … in PCBDDCNullSpaceAssembleCorrection() 89 PetscCall(PetscLogEventBegin(PC_BDDC_ApproxSetUp[pcbddc->current_level], pc, 0, 0, 0)); in PCBDDCNullSpaceAssembleCorrection() 96 shell_ctx->evapply = PC_BDDC_ApproxApply[pcbddc->current_level]; in PCBDDCNullSpaceAssembleCorrection() 146 if (needscaling || pcbddc->dbg_flag) { in PCBDDCNullSpaceAssembleCorrection() 186 if (pcbddc->dbg_flag) { in PCBDDCNullSpaceAssembleCorrection() 188 …PetscCall(PetscViewerASCIISynchronizedPrintf(pcbddc->dbg_viewer, "Subdomain %04d infinity error fo… in PCBDDCNullSpaceAssembleCorrection() 190 …PetscCall(PetscViewerASCIISynchronizedPrintf(pcbddc->dbg_viewer, "Subdomain %04d infinity error fo… in PCBDDCNullSpaceAssembleCorrection() [all …]
|
| H A D | bddcfetidp.c | 121 PC_BDDC *pcbddc = (PC_BDDC *)fetidpmat_ctx->pc->data; in PCBDDCSetupFETIDPMatContext() local 122 PCBDDCGraph mat_graph = pcbddc->mat_graph; in PCBDDCSetupFETIDPMatContext() 320 if (!pcbddc->use_deluxe_scaling) { in PCBDDCSetupFETIDPMatContext() 381 if (!pcbddc->use_deluxe_scaling) { in PCBDDCSetupFETIDPMatContext() 404 if (!pcbddc->use_deluxe_scaling) scaling_factors[partial_sum + s] = array[s]; in PCBDDCSetupFETIDPMatContext() 410 …if (!pcbddc->use_deluxe_scaling) scaling_factors[partial_sum + s + n_neg_values] = array[s + n_neg… in PCBDDCSetupFETIDPMatContext() 428 if (!pcbddc->use_deluxe_scaling) { in PCBDDCSetupFETIDPMatContext() 471 …PetscCheck(!pcbddc->use_deluxe_scaling, comm, PETSC_ERR_SUP, "Deluxe FETIDP with fully-redundant m… in PCBDDCSetupFETIDPMatContext() 484 if (!pcbddc->use_deluxe_scaling || !pcbddc->sub_schurs) { in PCBDDCSetupFETIDPMatContext() 492 PCBDDCDeluxeScaling deluxe_ctx = pcbddc->deluxe_ctx; in PCBDDCSetupFETIDPMatContext() [all …]
|
| /petsc/src/ksp/ksp/impls/fetidp/ |
| H A D | fetidp.c | 260 PC_BDDC *pcbddc = (PC_BDDC *)fetidp->innerbddc->data; in KSPFETIDPCheckOperators() local 297 PetscCall(PCBDDCGraphGetCandidatesIS(pcbddc->mat_graph, NULL, NULL, NULL, NULL, &isvert)); in KSPFETIDPCheckOperators() 393 PetscCall(PCBDDCGraphGetDirichletDofs(pcbddc->mat_graph, &dirdofs)); in KSPFETIDPCheckOperators() 503 PetscCall(PCBDDCGraphRestoreCandidatesIS(pcbddc->mat_graph, NULL, NULL, NULL, NULL, &isvert)); in KSPFETIDPCheckOperators() 510 PC_BDDC *pcbddc = (PC_BDDC *)fetidp->innerbddc->data; in KSPFETIDPSetUpOperators() local 551 if (!pcbddc->n_ISForDofsLocal && !pcbddc->n_ISForDofs) { in KSPFETIDPSetUpOperators() 640 … fidp[0] = pcbddc->n_ISForDofsLocal ? pcbddc->n_ISForDofsLocal - 1 : pcbddc->n_ISForDofs - 1; in KSPFETIDPSetUpOperators() 642 } else if (!pcbddc->n_ISForDofsLocal && !pcbddc->n_ISForDofs) { in KSPFETIDPSetUpOperators() 650 if (pcbddc->n_ISForDofsLocal) { in KSPFETIDPSetUpOperators() 654 …pcbddc->n_ISForDofsLocal, PetscObjectComm((PetscObject)ksp), PETSC_ERR_USER, "Invalid field id for… in KSPFETIDPSetUpOperators() [all …]
|
| /petsc/src/ksp/pc/impls/mg/ |
| H A D | gdsw.c | 8 PC pcbddc = NULL, smoothpc; in PCMGGDSWSetUp() local 73 PetscCall(PCCreate(PetscObjectComm((PetscObject)A), &pcbddc)); in PCMGGDSWSetUp() 74 PetscCall(PCSetType(pcbddc, PCBDDC)); in PCMGGDSWSetUp() 75 PetscCall(PCSetOperators(pcbddc, smoothA, A)); in PCMGGDSWSetUp() 76 PetscCall(PCISSetUp(pcbddc, PETSC_TRUE, PETSC_FALSE)); in PCMGGDSWSetUp() 79 pcbddc = smoothpc; in PCMGGDSWSetUp() 81 ipcis = (PC_IS *)pcbddc->data; in PCMGGDSWSetUp() 82 ipcbddc = (PC_BDDC *)pcbddc->data; in PCMGGDSWSetUp() 158 …if (userdefined) PetscCall(PCBDDCComputeFakeChange(pcbddc, PETSC_FALSE, graph, NULL, &cmat, &cref,… in PCMGGDSWSetUp() 173 …PetscCall(PCBDDCComputeFakeChange(pcbddc, PETSC_TRUE, graph, sub_schurs, &cmat, &cref, &sGiM[0], N… in PCMGGDSWSetUp() [all …]
|