Hi.
I think you refer to the refinement algorithm
used by FEniCS rather than an adaptive process. In this case, the old Dolfin can be configured trough
parameters["refinement_algorithm"]
which has the options
[plaza,plaza_with_parent_facets,regular_cut]
The most popular one is plaza
which preserve parent-child information. See for example https://fenicsproject.discourse.group/t/controling-the-refinement-of-an-element/5687/2. The new Dolfinx has plaza by default.
On the other hand, if you are referring explicitly to the marking step in an adaptive process, they are independent of FEniCS, and there is plenty of marking strategies hanging around in the FEniCS discussions and Github repos. You have goal-oriented, RGB, Dörfler, etc (see for example https://github.com/rbulle/fenics-error-estimation/blob/master/fenics_error_estimation/mark.py)
Cheers.