Esempio n. 1
0
/*@C
   PCRegisterAll - Registers all of the preconditioners in the PC package.

   Not Collective

   Input Parameter:
.  path - the library where the routines are to be found (optional)

   Level: advanced

.keywords: PC, register, all

.seealso: PCRegister(), PCRegisterDestroy()
@*/
PetscErrorCode  PCRegisterAll(void)
{
  PetscErrorCode ierr;

  PetscFunctionBegin;
  PCRegisterAllCalled = PETSC_TRUE;

  ierr = PCRegister(PCNONE         ,PCCreate_None);CHKERRQ(ierr);
  ierr = PCRegister(PCJACOBI       ,PCCreate_Jacobi);CHKERRQ(ierr);
  ierr = PCRegister(PCPBJACOBI     ,PCCreate_PBJacobi);CHKERRQ(ierr);
  ierr = PCRegister(PCBJACOBI      ,PCCreate_BJacobi);CHKERRQ(ierr);
  ierr = PCRegister(PCSOR          ,PCCreate_SOR);CHKERRQ(ierr);
  ierr = PCRegister(PCLU           ,PCCreate_LU);CHKERRQ(ierr);
  ierr = PCRegister(PCSHELL        ,PCCreate_Shell);CHKERRQ(ierr);
  ierr = PCRegister(PCMG           ,PCCreate_MG);CHKERRQ(ierr);
  ierr = PCRegister(PCEISENSTAT    ,PCCreate_Eisenstat);CHKERRQ(ierr);
  ierr = PCRegister(PCILU          ,PCCreate_ILU);CHKERRQ(ierr);
  ierr = PCRegister(PCICC          ,PCCreate_ICC);CHKERRQ(ierr);
  ierr = PCRegister(PCCHOLESKY     ,PCCreate_Cholesky);CHKERRQ(ierr);
  ierr = PCRegister(PCASM          ,PCCreate_ASM);CHKERRQ(ierr);
  ierr = PCRegister(PCGASM         ,PCCreate_GASM);CHKERRQ(ierr);
  ierr = PCRegister(PCKSP          ,PCCreate_KSP);CHKERRQ(ierr);
  ierr = PCRegister(PCCOMPOSITE    ,PCCreate_Composite);CHKERRQ(ierr);
  ierr = PCRegister(PCREDUNDANT    ,PCCreate_Redundant);CHKERRQ(ierr);
  ierr = PCRegister(PCNN           ,PCCreate_NN);CHKERRQ(ierr);
  ierr = PCRegister(PCMAT          ,PCCreate_Mat);CHKERRQ(ierr);
  ierr = PCRegister(PCFIELDSPLIT   ,PCCreate_FieldSplit);CHKERRQ(ierr);
  ierr = PCRegister(PCGALERKIN     ,PCCreate_Galerkin);CHKERRQ(ierr);
  ierr = PCRegister(PCEXOTIC       ,PCCreate_Exotic);CHKERRQ(ierr);
  ierr = PCRegister(PCHMPI         ,PCCreate_HMPI);CHKERRQ(ierr);
  ierr = PCRegister(PCASA          ,PCCreate_ASA);CHKERRQ(ierr);
  ierr = PCRegister(PCCP           ,PCCreate_CP);CHKERRQ(ierr);
  ierr = PCRegister(PCLSC          ,PCCreate_LSC);CHKERRQ(ierr);
  ierr = PCRegister(PCREDISTRIBUTE ,PCCreate_Redistribute);CHKERRQ(ierr);
  ierr = PCRegister(PCSVD          ,PCCreate_SVD);CHKERRQ(ierr);
  ierr = PCRegister(PCGAMG         ,PCCreate_GAMG);CHKERRQ(ierr);
#if defined(PETSC_HAVE_BOOST) && defined(PETSC_CLANGUAGE_CXX)
  ierr = PCRegister(PCSUPPORTGRAPH ,PCCreate_SupportGraph);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_ML)
  ierr = PCRegister(PCML           ,PCCreate_ML);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_SPAI)
  ierr = PCRegister(PCSPAI         ,PCCreate_SPAI);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_HYPRE)
  ierr = PCRegister(PCHYPRE        ,PCCreate_HYPRE);CHKERRQ(ierr);
  ierr = PCRegister(PCPFMG         ,PCCreate_PFMG);CHKERRQ(ierr);
  ierr = PCRegister(PCSYSPFMG      ,PCCreate_SysPFMG);CHKERRQ(ierr);
#endif
#if !defined(PETSC_USE_COMPLEX)
  ierr = PCRegister(PCTFS          ,PCCreate_TFS);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_CUSP_SMOOTHED_AGGREGATION) && defined(PETSC_HAVE_CUSP)
  ierr = PCRegister(PCSACUSP       ,PCCreate_SACUSP);CHKERRQ(ierr);
  ierr = PCRegister(PCAINVCUSP     ,PCCreate_AINVCUSP);CHKERRQ(ierr);
  ierr = PCRegister(PCBICGSTABCUSP ,PCCreate_BiCGStabCUSP);CHKERRQ(ierr);
  ierr = PCRegister(PCSACUSPPOLY   ,PCCreate_SACUSPPoly);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_PARMS)
  ierr = PCRegister(PCPARMS        ,PCCreate_PARMS);CHKERRQ(ierr);
#endif
#if defined(PETSC_HAVE_PCBDDC)
  ierr = PCRegister(PCBDDC         ,PCCreate_BDDC);CHKERRQ(ierr);
#endif
  PetscFunctionReturn(0);
}
Esempio n. 2
0
File: sys.C Progetto: Goon83/dendro
  PetscErrorCode RegisterEvents()
  {
    PetscFunctionBegin;

    // PCRegister("blockDiag","${DENDRO_DIR}/lib/libPC","ot::PCCreate_BlockDiag", ot::PCCreate_BlockDiag);
    PCRegister("blockDiag", ot::PCCreate_BlockDiag);

#ifdef PETSC_USE_LOG
    PetscClassId classid;
    PetscClassIdRegister("Dendro",&classid);

    PetscLogEventRegister("splitComm-2way", classid, &par::splitComm2wayEvent);
    PetscLogEventRegister("splitComm",classid,&par::splitCommEvent);
    PetscLogEventRegister("partW",classid,&par::partwEvent);
    PetscLogEventRegister("sort",classid,&par::sortEvent);
    PetscLogEventRegister("remdup",classid,&par::remdupEvent);
    PetscLogEventRegister("ParallelSearch", classid,&par::searchEvent);
    PetscLogEventRegister("Par-Scatter", classid,&par::parScatterEvent);
    PetscLogEventRegister("Par-sendRecv", classid,&par::sendRecvEvent);
    PetscLogEventRegister("Par-gather", classid,&par::gatherEvent);
    PetscLogEventRegister("a2avs-Wait", classid,&par::a2avWaitEvent);
    PetscLogEventRegister("Par-a2avs", classid,&par::all2AllvSparseEvent);
    PetscLogEventRegister("Par-a2avd", classid,&par::all2AllvDenseEvent);
    PetscLogEventRegister("Par-ag", classid,&par::allGatherEvent);
    PetscLogEventRegister("Par-agv", classid,&par::allGathervEvent);
    PetscLogEventRegister("Par-a2a", classid,&par::all2AllEvent);
    PetscLogEventRegister("Par-aRed", classid,&par::allReduceEvent);
    PetscLogEventRegister("Par-red", classid,&par::reduceEvent);
    PetscLogEventRegister("Par-bcast",	classid,&par::bcastEvent);
    PetscLogEventRegister("Par-scan", classid,&par::scanEvent);
    PetscLogEventRegister("Par-ConCat",classid,&par::concatEvent);
    PetscLogEventRegister("nhBlk",classid,&pickNhBlocksEvent);
    PetscLogEventRegister("mergeComboBal",classid,&mergeComboBalEvent);
    PetscLogEventRegister("bal-mergeRecv",classid,&mergeRecvKeysBalEvent);
    PetscLogEventRegister("finalBalMerge",classid,&finalBalMergeEvent);
    PetscLogEventRegister("bal-comm1",classid,&prepBalComm1MssgEvent);
    PetscLogEventRegister("bal-comm2",classid,&prepBalComm2MssgEvent);
    PetscLogEventRegister("bal-wList",classid,&prepBalWlistEvent);
    PetscLogEventRegister("mergeOctrees",classid,&mergeOctreesEvent);
    PetscLogEventRegister("rg2o",classid,&rg2oEvent);
    PetscLogEventRegister("p2o",classid,&p2oEvent);
    PetscLogEventRegister("p2oSeq",classid,&p2oSeqEvent);
    PetscLogEventRegister("p2oLoc",classid,&p2oLocalEvent);
    PetscLogEventRegister("ComboRipple",classid,&comboRippleEvent);
    PetscLogEventRegister("Coarsen",classid,&coarsenEvent);
    PetscLogEventRegister("CoarsenSeq",classid,&coarsenSeqEvent);
    PetscLogEventRegister("ezCoarse",classid,&simpleCoarsenEvent);
    PetscLogEventRegister("bal",classid,&balanceEvent);
    PetscLogEventRegister("DA-apriori",classid,&DAaprioriCommEvent);
    PetscLogEventRegister("balSubtree", classid,&balSubtreeEvent);
    PetscLogEventRegister("conSubtree", classid,&completeSubtreeEvent);
    PetscLogEventRegister("n2o",classid,&n2oEvent);
    PetscLogEventRegister("n2oSeq",classid,&n2oSeqEvent);
    PetscLogEventRegister("compReg",classid,&completeRegionEvent);
    PetscLogEventRegister("pickBnd",classid,&pickBndEvent);
    PetscLogEventRegister("bPart1",classid,&blockPart1Event);
    PetscLogEventRegister("bPart2",classid,&blockPart2Event);
    PetscLogEventRegister("bPart3",classid,&blockPart3Event);
    PetscLogEventRegister("DAbPart1",classid,&DAbPart1Event);
    PetscLogEventRegister("DAbPart2",classid,&DAbPart2Event);
    PetscLogEventRegister("DAbPart3",classid,&DAbPart3Event);
    PetscLogEventRegister("conBal",classid,&conBalEvent);
    PetscLogEventRegister("rippleBal",classid,&rippleBalEvent);
    PetscLogEventRegister("ptrRipple",classid,&ptrRippleBalEvent);
    PetscLogEventRegister("parRipple1",classid,&parRippleType1Event);
    PetscLogEventRegister("parRipple2",classid,&parRippleType2Event);
    PetscLogEventRegister("parRipple3",classid,&parRippleType3Event);
    PetscLogEventRegister("BuildDA",classid,&buildDaEvent);
    PetscLogEventRegister("SetMatValues",classid,&setMatValuesEvent);
    PetscLogEventRegister("FlagNodes",classid,&markHangingEvent);
    PetscLogEventRegister("BuildNodeList",classid,&buildNlistEvent);
    PetscLogEventRegister("Nlist-Comm",classid,&buildNlistCommEvent);
    PetscLogEventRegister("Add Bdy",classid,&addBdyEvent);
    PetscLogEventRegister("AddBdySiblings",classid,&addBdySiblingsEvent);
    PetscLogEventRegister("Pick Ghosts",classid,&pickGhostsEvent);
    PetscLogEventRegister("SetDA",classid,&setDaEvent);
    PetscLogEventRegister("SetUp",classid,&setUpEvent);
    PetscLogEventRegister("crRp1",classid,&createRp1Event);
    PetscLogEventRegister("crRp2",classid,&createRp2Event);
    PetscLogEventRegister("SetKSP",classid,&setKspEvent);
    PetscLogEventRegister("Restrict",classid,&restrictEvent);
    PetscLogEventRegister("Restrict-Dummy",classid,&dummyRestrictEvent);
    PetscLogEventRegister("Prolong",classid,&prolongEvent);
    PetscLogEventRegister("MG Scatter",classid,&scatterEvent);
    PetscLogEventRegister("R-Gh-N-Begin",classid,&readFromGhostNodesBeginEvent);
    PetscLogEventRegister("R-Gh-N-End",classid,&readFromGhostNodesEndEvent);
    PetscLogEventRegister("R-Gh-E-Begin",classid,&readFromGhostElemsBeginEvent);
    PetscLogEventRegister("R-Gh-E-End",classid,&readFromGhostElemsEndEvent);
    PetscLogEventRegister("W-Gh-N-Begin",classid,&writeToGhostNodesBeginEvent);
    PetscLogEventRegister("W-Gh-N-End",classid,&writeToGhostNodesEndEvent);
    PetscLogEventRegister("W-Gh-E-Begin",classid,&writeToGhostElemsBeginEvent);
    PetscLogEventRegister("W-Gh-E-End",classid,&writeToGhostElemsEndEvent);
    PetscLogEventRegister("DA-Init",classid,&daInitEvent);
    PetscLogEventRegister("DA-Final",classid,&daFinalEvent);
    PetscLogEventRegister("DAMG-Init",classid,&damgInitEvent);
    PetscLogEventRegister("DAMG-Final",classid,&damgFinalEvent);
    
    PetscLogEventRegister("PC-KSP-Shell-Setup",classid,&pcKspShellSetupEvent);
    PetscLogEventRegister("PC-KSP-Shell-Apply",classid,&pcKspShellApplyEvent);
    PetscLogEventRegister("PC-KSP-Shell-Destroy",classid,&pcKspShellDestroyEvent);

    PetscLogEventRegister("Bal-Comm",classid,&balCommEvent);
    PetscLogEventRegister("Bal-SplitComm",classid,&balSplitCommEvent);
    PetscLogEventRegister("Bal-Scatter",classid,&balScatterEvent);
    PetscLogEventRegister("Bal-Bpart1",classid,&balBpart1Event);
    PetscLogEventRegister("Bal-Bpart2",classid,&balBpart2Event);

    PetscLogEventRegister("SetDA-stg1",classid,&setDAstage1Event);
    PetscLogEventRegister("SetDA-stg2",classid,&setDAstage2Event);
    PetscLogEventRegister("SetDA-stg3",classid,&setDAstage3Event);
    PetscLogEventRegister("SetDA-stg4",classid,&setDAstage4Event);
    PetscLogEventRegister("SetDA-stg5",classid,&setDAstage5Event);
    PetscLogEventRegister("SetDA-stg6",classid,&setDAstage6Event);

    PetscLogEventRegister("buildDA-stg1",classid,&buildDAstage1Event);
    PetscLogEventRegister("buildDA-stg2",classid,&buildDAstage2Event);
    PetscLogEventRegister("buildDA-stg3",classid,&buildDAstage3Event);
    PetscLogEventRegister("buildDA-stg4",classid,&buildDAstage4Event);
    PetscLogEventRegister("buildDA-stg5",classid,&buildDAstage5Event);
    PetscLogEventRegister("buildDA-stg6",classid,&buildDAstage6Event);
    PetscLogEventRegister("buildDA-stg7",classid,&buildDAstage7Event);
    PetscLogEventRegister("buildDA-stg8",classid,&buildDAstage8Event);
    PetscLogEventRegister("buildDA-stg9",classid,&buildDAstage9Event);

    PetscLogEventRegister("FLN-stg1",classid,&FLNstage1Event);
    PetscLogEventRegister("FLN-stg2",classid,&FLNstage2Event);
    PetscLogEventRegister("FLN-stg3",classid,&FLNstage3Event);
    PetscLogEventRegister("FLN-stg4",classid,&FLNstage4Event);
    PetscLogEventRegister("FLN-stg5",classid,&FLNstage5Event);
    PetscLogEventRegister("FLN-stg6",classid,&FLNstage6Event);
    PetscLogEventRegister("FLN-stg7",classid,&FLNstage7Event);
    PetscLogEventRegister("FLN-stg8",classid,&FLNstage8Event);
    PetscLogEventRegister("FLN-stg9",classid,&FLNstage9Event);
    PetscLogEventRegister("FLN-stg10",classid,&FLNstage10Event);
    PetscLogEventRegister("FLN-stg11",classid,&FLNstage11Event);
#endif

    PetscFunctionReturn(0);
  }