Hi, Matt Thanks for your clarification. Can I change the type of DMPlex to DMForest?
Best wishes, Zongze On Mon, 27 Feb 2023 at 20:18, Matthew Knepley <knep...@gmail.com> wrote: > On Sat, Feb 18, 2023 at 2:25 AM Zongze Yang <yangzon...@gmail.com> wrote: > >> Dear PETSc Group, >> >> I am writing to inquire about the function DMAdaptLabel in PETSc. >> I am trying to use it coarse a mesh, but the resulting mesh is refined. >> >> In the following code, all of the `adpat` label values were set to 2 >> (DM_ADAPT_COARSEN). >> There must be something wrong. Could you give some suggestions? >> > > Sorry for the late reply. You are right, I need to put in error messages > for this. Here is what is happening. > PETSc tries to fallback if you do not have certain packages. In this case, > you are not using DMForest, > which responds to both coarsen and refine, so the > mesh generator interprets all markers as refine (they > cannot coarsen). I will add a check that fails on the coarsen marker. > > Coarsening is much more difficult in the presence of boundaries, which is > why it is not implemented in > most packages. For unstructured coarsening, I do not think there is any > choice but MMG. > > Thanks, > > Matt > > ```python >> from firedrake import * >> from firedrake.petsc import PETSc >> >> def mark_all_cells(mesh): >> plex = mesh.topology_dm >> with PETSc.Log.Event("ADD_ADAPT_LABEL"): >> plex.createLabel('adapt') >> cs, ce = plex.getHeightStratum(0) >> for i in range(cs, ce): >> plex.setLabelValue('adapt', i, 2) >> >> return plex >> >> mesh = RectangleMesh(10, 10, 1, 1) >> >> x = SpatialCoordinate(mesh) >> V = FunctionSpace(mesh, 'CG', 1) >> f = Function(V).interpolate(10 + 10*sin(x[0])) >> triplot(mesh) >> >> plex = mark_all_cells(mesh) >> new_plex = plex.adaptLabel('adapt') >> mesh = Mesh(new_plex) >> triplot(mesh) >> ``` >> >> Thank you very much for your time. >> >> Best wishes, >> Zongze >> > > > -- > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > -- Norbert Wiener > > https://www.cse.buffalo.edu/~knepley/ > <http://www.cse.buffalo.edu/~knepley/> >