ASPECT
|
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) |
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.
|
virtual |
Execute this mesh refinement criterion. The default implementation sets all the error indicators to zero.
[out] | error_indicators | A vector that for every active cell of the current mesh (which may be a partition of a distributed mesh) provides an error indicator. This vector will already have the correct size when the function is called. |
Reimplemented in aspect::MeshRefinement::ParticleDensity< dim >, aspect::MeshRefinement::Boundary< dim >, aspect::MeshRefinement::Slope< dim >, aspect::MeshRefinement::Density< dim >, aspect::MeshRefinement::Viscosity< dim >, aspect::MeshRefinement::ThermalEnergyDensity< dim >, aspect::MeshRefinement::Topography< dim >, aspect::MeshRefinement::Composition< dim >, aspect::MeshRefinement::CompositionApproximateGradient< dim >, aspect::MeshRefinement::CompositionGradient< dim >, aspect::MeshRefinement::NonadiabaticTemperature< dim >, aspect::MeshRefinement::StrainRate< dim >, aspect::MeshRefinement::Temperature< dim >, aspect::MeshRefinement::Velocity< dim >, and aspect::MeshRefinement::ArtificialViscosity< dim >.
|
virtual |
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 >.