gf_mesh_set

General function for modification of a mesh object.

# Calling Sequence

    PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)

    PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)

    gf_mesh_set(mesh M, 'del point', ivec PIDs)

    CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)

    gf_mesh_set(mesh M, 'del convex', mat CVIDs)

    gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)

    gf_mesh_set(mesh M, 'translate', vec V)

    gf_mesh_set(mesh M, 'transform', mat T)

    gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)

    gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)

    gf_mesh_set(mesh M, 'region intersect', int r1, int r2)

    gf_mesh_set(mesh M, 'region merge', int r1, int r2)

    gf_mesh_set(mesh M, 'region substract', int r1, int r2)

    gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)

    gf_mesh_set(mesh M, 'delete region', ivec RIDs)

    gf_mesh_set(mesh M, 'merge', mesh m2)

    gf_mesh_set(mesh M, 'optimize structure')

    gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])

## Description

General function for modification of a mesh object.

## Command list

- `PIDs = gf_mesh_set(mesh M, 'pts', mat PTS)`

  Replace the coordinates of the mesh points with those given in `PTS`.

- `PIDs = gf_mesh_set(mesh M, 'add point', mat PTS)`

  Insert new points in the mesh and return their #ids. `PTS` should be an ``nxm`` matrix , where ``n`` is the mesh dimension, and ``m`` is the number of points that will be added to the mesh. On output, `PIDs` contains the point #ids of these new points. Remark: if some points are already part of the mesh (with a small tolerance of approximately ``1e-8``), they won't be inserted again, and `PIDs` will contain the previously assigned #ids of these points.

- `gf_mesh_set(mesh M, 'del point', ivec PIDs)`

  Removes one or more points from the mesh. `PIDs` should contain the point #ids, such as the one returned by the 'add point' command.

- `CVIDs = gf_mesh_set(mesh M, 'add convex', geotrans GT, mat PTS)`

  Add a new convex into the mesh. The convex structure (triangle, prism,...) is given by `GT` (obtained with gf_geotrans('...')), and its points are given by the columns of `PTS`. On return, `CVIDs` contains the convex #ids. `PTS` might be a 3-dimensional array in order to insert more than one convex (or a two dimensional array correctly shaped according to Fortran ordering).

- `gf_mesh_set(mesh M, 'del convex', mat CVIDs)`

  Remove one or more convexes from the mesh. `CVIDs` should contain the convexes #ids, such as the ones returned by the 'add convex' command.

- `gf_mesh_set(mesh M, 'del convex of dim', ivec DIMs)`

  Remove all convexes of dimension listed in `DIMs`. For example; ``gf_mesh_set(mesh M, 'del convex of dim', [1,2])`` remove all line segments, triangles and quadrangles.

- `gf_mesh_set(mesh M, 'translate', vec V)`

  Translates each point of the mesh from `V`.

- `gf_mesh_set(mesh M, 'transform', mat T)`

  Applies the matrix `T` to each point of the mesh. Note that `T` is not required to be a ``NxN`` matrix (with ``N = gf_mesh_get(mesh M, 'dim')``). Hence it is possible to transform a 2D mesh into a 3D one (and reciprocally).

- `gf_mesh_set(mesh M, 'boundary', int rnum, mat CVFIDs)`

  DEPRECATED FUNCTION. Use 'region' instead.

- `gf_mesh_set(mesh M, 'region', int rnum, mat CVFIDs)`

  Assigns the region number `rnum` to the convex faces (or convexes) stored in each column of the matrix `CVFIDs`. The first row of `CVFIDs` contains a convex #ids, and the second row contains a face number in the convex (or 0 for the whole convex (regions are usually used to store a list of convex faces, but you may also use them to store a list of convexes). If a vector is provided (or a one row matrix) the region will represent the corresponding set of convex.

- `gf_mesh_set(mesh M, 'region intersect', int r1, int r2)`

  Replace the region number `r1` with its intersection with region number `r2`.

- `gf_mesh_set(mesh M, 'region merge', int r1, int r2)`

  Merge region number `r2` into region number `r1`.

- `gf_mesh_set(mesh M, 'region substract', int r1, int r2)`

  Replace the region number `r1` with its difference with region number `r2`.

- `gf_mesh_set(mesh M, 'delete boundary', int rnum, mat CVFIDs)`

  DEPRECATED FUNCTION. Use 'delete region' instead.

- `gf_mesh_set(mesh M, 'delete region', ivec RIDs)`

  Remove the regions whose #ids are listed in `RIDs`

- `gf_mesh_set(mesh M, 'merge', mesh m2)`

  Merge with the mesh `m2`. Overlapping points won't be duplicated. If `m2` is a mesh_fem object, its linked mesh will be used.

- `gf_mesh_set(mesh M, 'optimize structure')`

  Reset point and convex numbering. After optimisation, the points (resp. convexes) will be consecutively numbered from 1 to gf_mesh_get(mesh M, 'max pid') (resp. gf_mesh_get(mesh M, 'max cvid')).

- `gf_mesh_set(mesh M, 'refine'[, ivec CVIDs])`

  Use a Bank strategy for mesh refinement. If `CVIDs` is not given, the whole mesh is refined. Note that the regions, and the finite element methods and integration methods of the mesh_fem and mesh_im objects linked to this mesh will be automagically refined.

## See Also

- getfem types

## Authors

Y. Collette