Numerical Solvers#

The RatelSolverType determines how the composite CeedOperator are build and used to set the appropriate DMSNES or DMTS options.

PetscLogEvent RATEL_Prolong[RATEL_MAX_MULTIGRID_LEVELS]#
PetscLogEvent RATEL_Restrict[RATEL_MAX_MULTIGRID_LEVELS]#
static PetscErrorCode RatelRegisterPMultigridLogEvents(PetscInt num_multigrid_levels)#

Register p-multigrid Ratel log events.

Not collective across MPI processes.

Parameters:
  • num_multigrid_levels[in] Number of multigrid levels to register

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelPMGProcessCommandLineOptions(RatelPMGContext pmg)#

Get PCpMG options.

Collective across MPI processes.

Parameters:
  • pmg[inout] PCpMG context

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelSetupMultigridLevel(Ratel ratel, Vec M_loc, CeedVector m_loc, PetscInt level, CeedOperator op_jacobian, CeedOperator op_prolong, CeedOperator op_restrict)#

Setup CeedOperator for multigrid prolongation, restriction, and coarse grid Jacobian evaluation.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • M_loc[in] PETSc local vector holding multiplicity data

  • m_loc[in] CeedVector for multiplicity data

  • level[in] Multigrid level to set up

  • op_jacobian[inout] Composite CeedOperator for Jacobian

  • op_prolong[inout] Composite CeedOperator for prolongation

  • op_restrict[inout] Composite CeedOperator for restriction

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelPCCreatePMG(PC pc)#

Setup PCpMG preconditioner from Ratel context.

Collective across MPI processes.

Parameters:
  • pc[inout] PCpMG object

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelPCDestroyPMG(RatelPMGContext pmg)#

Destroy Ratel PMG preconditioner.

Parameters:
  • pmg[inout] Ratel pMG context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelPCRegisterPMG(Ratel ratel)#

Register PCpMG preconditioner.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelSetupFormJacobianCtx(Ratel ratel, RatelFormJacobianContext ctx_form_jacobian)#

Setup context data for Jacobian evaluation.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • ctx_form_jacobian[out] Context data for Jacobian evaluation

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelDMSetupSolver(Ratel ratel)#

Setup solver contexts.

Collective across MPI processes.

Parameters:
  • ratel[inout] Ratel context

Returns:

An error code: 0 - success, otherwise - failure