DMPlexModifyGeomModel#

Generates a new EGADS geometry model based in user provided Control Points and Control Points Weights. Optionally, the function will inflate the DM to the new geometry and save the new geometry to a file.

Synopsis#

#include "petscdmplex.h"   
PetscErrorCode DMPlexModifyGeomModel(DM dm, MPI_Comm comm, PetscScalar newCP[], PetscScalar newW[], PetscBool autoInflate, PetscBool saveGeom, const char *stpName) PeNS

Collective

Input Parameters#

  • dm - The DM object representing the mesh with PetscContainer containing an EGADS geometry model

  • comm - Used to generate IS in the function

  • newCP - Array of [x, y, z] New/Updated Control Point Coordinates defining the geometry (See DMPlexGeomDataAndGrads() for format)

  • newW - Array of New/Updated Control Point Weights associated with the Control Points defining the new geometry

  • autoInflate - Flag denoting if the user would like to inflate the DM points to the new geometry.

  • saveGeom - Flag denoting if the user would like to save the new geometry to a file.

  • stpName - Array indicating the name of the file to save the new geometry to. Extension must be included and will denote type of file written.

                      *.stp or *.step = STEP File
                      *.igs or *.iges = IGES File
                              *.egads = EGADS File
                               *.brep = BRep File (OpenCASCADE File)

Output Parameter#

  • dm - The updated DM object representing the mesh with PetscContainers containing the updated/modified geometry

Notes#

Functionality not available for DMPLEXs with attached EGADSlite geometry files (.egadslite).

Requires ./configure be run with --download-egads

Developer Note#

Why does this function take a comm argument? Why can’t it use the MPI communicator in dm? This should be documented.

See Also#

DMPLEX, DMCreate(), DMPlexCreateGeom(), DMPlexCreateGeomFromFile(), DMPlexGeomDataAndGrads()

Level#

intermediate

Location#

src/dm/impls/plex/plexegads.c

Examples#

src/dm/impls/plex/tutorials/ex18.c
src/dm/impls/plex/tutorials/ex19.c


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