Public Member Functions | List of all members
aspect::MeshRefinement::Interface< dim > Class Template Reference
Inheritance diagram for aspect::MeshRefinement::Interface< dim >:
Inheritance graph

Public Member Functions

virtual void execute (Vector< float > &error_indicators) const
virtual void tag_additional_cells () const
- Public Member Functions inherited from aspect::Plugins::InterfaceBase
virtual ~InterfaceBase ()=default
virtual void initialize ()
virtual void update ()
virtual void parse_parameters (ParameterHandler &prm)

Additional Inherited Members

- Static Public Member Functions inherited from aspect::Plugins::InterfaceBase
static void declare_parameters (ParameterHandler &prm)

Detailed Description

template<int dim>
class aspect::MeshRefinement::Interface< dim >

This class declares the public interface of mesh refinement plugins. Plugins have two different ways to influence adaptive refinement (and can make use of either or both):

First, execute() allows the plugin to specify weights for individual cells that are then used to coarsen and refine (where larger numbers indicate a larger error).

Second, after cells get flagged for coarsening and refinement (using the first approach), tag_additional_cells() is executed for each plugin. Here the plugin is free to set or clear coarsen and refine flags on any cell.

Access to the data of the simulator is granted by the protected member functions of the SimulatorAccess class, i.e., classes implementing this interface will in general want to derive from both this Interface class as well as from the SimulatorAccess class.

Definition at line 74 of file interface.h.

Member Function Documentation

§ execute()

template<int dim>
virtual void aspect::MeshRefinement::Interface< dim >::execute ( Vector< float > &  error_indicators) const

§ tag_additional_cells()

template<int dim>
virtual void aspect::MeshRefinement::Interface< dim >::tag_additional_cells ( ) const

After cells have been marked for coarsening/refinement, apply additional criteria independent of the error estimate. The default implementation does nothing.

This function is also called during the initial global refinement cycle. At this point you do not have access to solutions, DoFHandlers, or finite element spaces. You can check if this is the case by querying this->get_dof_handler().n_dofs() == 0.

Reimplemented in aspect::MeshRefinement::Isosurfaces< dim >, aspect::MeshRefinement::MinimumRefinementFunction< dim >, aspect::MeshRefinement::MaximumRefinementFunction< dim >, aspect::MeshRefinement::CompactionLength< dim >, aspect::MeshRefinement::CompositionThreshold< dim >, aspect::MeshRefinement::NonadiabaticTemperatureThreshold< dim >, and aspect::MeshRefinement::VolumeOfFluidInterface< dim >.

The documentation for this class was generated from the following file: