DMGenerateRegister#

Adds a grid generator to DM

Synopsis#

#include "petscdm.h"          
PetscErrorCode DMGenerateRegister(const char sname[], PetscErrorCode (*fnc)(DM, PetscBool, DM *), PetscErrorCode (*rfnc)(DM, PetscReal *, DM *), PetscErrorCode (*alfnc)(DM, Vec, DMLabel, DMLabel, DM *), PetscInt dim)

Not Collective

Input Parameters#

  • sname - name of a new user-defined grid generator

  • fnc - generator function

  • rfnc - refinement function

  • alfnc - adapt by label function

  • dim - dimension of boundary of domain

Example Usage#

   DMGenerateRegister("my_generator", MyGeneratorCreate, MyGeneratorRefiner, MyGeneratorAdaptor, dim);

Then, your generator can be chosen with the procedural interface via

DMGenerate(dm, "my_generator",...)

or at runtime via the option

-dm_generator my_generator

Note#

DMGenerateRegister() may be called multiple times to add several user-defined generators

See Also#

DM, DMGenerateRegisterAll(), DMPlexGenerate(), DMGenerateRegisterDestroy()

Level#

advanced

Location#

src/dm/interface/dmgenerate.c


Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages