Class for performing \(hp\)-adaptive refinement, where the selection on whether to perform \(h\)- or \(p\)-refinement is based on the predicted convergence rate of the error estimate for a smooth or non-smooth function; cf. More...
#include <ptems/hpstrategies.hpp>
Public Member Functions | |
HPPredictedErrorStrategy (const PDiscreteFunctionSpace< DIM, X, N > &space, double gammaH, double gammaP, double gammaN=1, std::size_t minP=1, bool preferP=false) | |
Creates an object for performing \(hp\)-adaptive refinement based on the predicted convergence rate of the error estimate. More... | |
HPPredictedErrorStrategy (const PDiscreteFunctionSpace< DIM, X, N > &space, double gammaH, double gammaP, bool preferP) | |
Creates an object for performing \(hp\)-adaptive refinement based on the predicted convergence rate of the error estimate. More... | |
const PDiscreteFunctionSpace< DIM, double, N > & | Space () |
Gets the finite element space the refinement strategy is on. More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategyAndDefaultSmoothing (const Estimators &estimators, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor, and with default mesh smoothing options (default constructed MeshSmoother). More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategyAndDefaultSmoothing (const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space, and with default mesh smoothing options (default constructed MeshSmoother). More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategyAndDefaultSmoothing (const Estimators &estimators, const DiscreteFuncs &funcs, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space, and with default mesh smoothing options (default constructed MeshSmoother). More... | |
FEMesh< DIM >::Modifications | AdaptConformingWithStrategy (const Estimators &estimators, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor, with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()). More... | |
FEMesh< DIM >::Modifications | AdaptConformingWithStrategy (const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()). More... | |
FEMesh< DIM >::Modifications | AdaptConformingWithStrategy (const Estimators &estimators, const DiscreteFuncs &funcs, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()). More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategy (const Estimators &estimators, MeshSmoother smoother, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor and with the specified mesh smoothing options. More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategy (const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, MeshSmoother smoother, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space and with the specified mesh smoothing options. More... | |
FEMesh< DIM >::Modifications | AdaptWithStrategy (const Estimators &estimators, const DiscreteFuncs &funcs, MeshSmoother smoother, Args... args) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space and with the specified mesh smoothing options. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &flags, const Estimators &estimators, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &flags, const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &flags, const Estimators &estimators, const DiscreteFuncs &funcs, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &refine, const Container &coarsen, const Estimators &estimators, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &refine, const Container &coarsen, const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen. More... | |
FEMesh< DIM >::Modifications | Adapt (const Container &refine, const Container &coarsen, const Estimators &estimators, const DiscreteFuncs &funcs, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen. More... | |
FEMesh< DIM >::Modifications | Adapt (Func flagFunction, const Estimators &estimators, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine. More... | |
FEMesh< DIM >::Modifications | Adapt (Func flagFunction, const Estimators &estimators, const DiscreteFunction< DIM, double, N, N > &func, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine. More... | |
FEMesh< DIM >::Modifications | Adapt (Func flagFunction, const Estimators &estimators, const DiscreteFuncs &funcs, MeshSmoother smoother=MeshSmoother{}) |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine. More... | |
Protected Member Functions | |
virtual bool | ShouldPolydegAdapt (const HPRefinementData< DIM, X, N > &data, std::size_t element, bool refine) override |
Method called by the adaptation routines to decide if \(p\)-refinement should be performed for an element. More... | |
virtual void | PostProcessSpaceRefine (const HPRefinementData< DIM, X, N > &data, const std::vector< AdaptationType > &pRefinements) override |
Method called by the adaptation routines after \(p\)-refinement, but before \(h\)-refinement. More... | |
virtual void | PostProcessMeshRefine (const HPRefinementData< DIM, X, N > &data, const typename FEMesh< DIM >::Modifications &changes, const std::vector< AdaptationType > &pRefinements) override |
Method called by the adaptation routines after both \(h\)-refinement and \(p\)-refinement. More... | |
virtual bool | ShouldPolydegAdapt (const HPRefinementData< DIM, double, N > &data, std::size_t element, bool refine)=0 |
Method called by the adaptation routines to decide if \(p\)-refinement should be performed for an element. More... | |
virtual void | PostProcessSpaceRefine ([[maybe_unused]] const HPRefinementData< DIM, double, N > &data,[[maybe_unused]] const std::vector< AdaptationType > &pRefinements) |
Method called by the adaptation routines after \(p\)-refinement, but before \(h\)-refinement. More... | |
virtual void | PostProcessMeshRefine ([[maybe_unused]] const HPRefinementData< DIM, double, N > &data,[[maybe_unused]] const typename FEMesh< DIM >::Modifications &changes,[[maybe_unused]] const std::vector< AdaptationType > &pRefinements) |
Method called by the adaptation routines after both \(h\)-refinement and \(p\)-refinement. More... | |
Class for performing \(hp\)-adaptive refinement, where the selection on whether to perform \(h\)- or \(p\)-refinement is based on the predicted convergence rate of the error estimate for a smooth or non-smooth function; cf.
[5].
For each element \(K\in\mathcal{T}_h\) marked for refinement the algorithm performs \(p\)-refinement if \(\eta_{K} < \eta_{K}^{\rm pred}\), where \(\eta_{K}\) is the error indicator for the element and \(\eta_{K}^{\rm pred}\) is the predicted error based on the estimated rate of convergence for a smooth function. The calculation of \(\eta_{K}^{\rm pred}\) depends on the refinement from the previous step:
\[ (\eta_{K_s}^{\rm pred})^2 = \frac{1}{S}\gamma_h \frac1{2^{2p_K}} \eta_{K}^2 \]
where \(p_K\) is the polynomial degree on element $K$, and \(\gamma_h\) is a steering parameter.\[ (\eta_{K}^{\rm pred})^2 = \gamma_p \eta_{K}^2 \]
where \(\gamma_p\) is a steering parameter.\[ (\eta_{K}^{\rm pred})^2 = \gamma_n (\eta_{K}^{\rm pred})^2 \]
where \(\gamma_n\) is a steering parameter.\(\eta_{K}^{\rm pred}\) is initialised to either 0 or \(\infty\) to perform \(h\)- or \(p\)-refinement, respectively, at the first iteration.
Usage: An instance of the HPPredictedErrorStrategy should be constructed when the initial mesh and space are constructed, and then the various Adapt* functions should be called to perform adaptation on BOTH the mesh and space:
DIM | The dimension of the mesh and spaces to refine |
X | The type of the result of the functions (double, std::complex, etc) for each space |
N | The size of the resulting vector space (N=1 for scalars) for each space |
|
inline |
Creates an object for performing \(hp\)-adaptive refinement based on the predicted convergence rate of the error estimate.
space | The function space to refine (containing the mesh to refine) |
gammaH | Steering parameter \(\gamma_h\) specifying the rate of reduction in the error estimator when \(h\)-refinement is performed. |
gammaP | Steering parameter \(\gamma_p\) specifying the rate of reduction in the error estimator when \(p\)-refinement is performed. |
gammaN | Steering parameter \(\gamma_n\) specifying the rate of reduction in the error estimator when no refinement is performed (default = 1) |
minP | Minimum polynomial degree. Coarsen will not occur if the polynomial degree of ANY component will fall below this minimum (default = 1) |
preferP | true if the first mesh refinement should be \(p\)-refinement, false if the first mesh refinement should be \(h\)-refinement (default = false) |
|
inline |
Creates an object for performing \(hp\)-adaptive refinement based on the predicted convergence rate of the error estimate.
space | The function space to refine (containing the mesh to refine) |
gammaH | Steering parameter \(\gamma_h\) specifying the rate of reduction in the error estimator when \(h\)-refinement is performed. |
gammaP | Steering parameter \(\gamma_p\) specifying the rate of reduction in the error estimator when \(p\)-refinement is performed. |
preferP | true if the first mesh refinement should be \(p\)-refinement, false if the first mesh refinement should be \(h\)-refinement |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform.
A container of flags can be one of the following:
Container | Container type containing AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
flags | Container of AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
funcs | List of functions defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform.
A container of flags can be one of the following:
Container | Container type containing AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
flags | Container of AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
func | Function defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and using a container of flags indicating the refinement to perform.
A container of flags can be one of the following:
Container | Container type containing AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
flags | Container of AdaptationType or std::size_t, or map from std::size_t to AdaptationType |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen.
Container | Container type for refinement and coarsen flags |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
refine | Container of indices of elements to refine |
coarsen | Container of indices of elements to coarsen |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
funcs | List of functions defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen.
Container | Container type for refinement and coarsen flags |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
refine | Container of indices of elements to refine |
coarsen | Container of indices of elements to coarsen |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
func | Function defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a set of elements to refine and coarsen.
Container | Container type for refinement and coarsen flags |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
refine | Container of indices of elements to refine |
coarsen | Container of indices of elements to coarsen |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine.
Func | A function type which takes a std::size_t, and returns an AdaptionType; e.g., of form AdaptionType operator()(std::size_t idx) . |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
flagFunction | Function which takes an element index in range [0, Mesh()->ElementCount()), and returns an AdaptionType flag value indicating if the element should be refined, coarsened, or left 'as-is' |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
funcs | List of functions defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine.
Func | A function type which takes a std::size_t, and returns an AdaptionType; e.g., of form AdaptionType operator()(std::size_t idx) . |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
flagFunction | Function which takes an element index in range [0, Mesh()->ElementCount()), and returns an AdaptionType flag value indicating if the element should be refined, coarsened, or left 'as-is' |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
func | Function defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a function for deciding which elements to refine.
Func | A function type which takes a std::size_t, and returns an AdaptionType; e.g., of form AdaptionType operator()(std::size_t idx) . |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
flagFunction | Function which takes an element index in range [0, Mesh()->ElementCount()), and returns an AdaptionType flag value indicating if the element should be refined, coarsened, or left 'as-is' |
estimators | Error indicators for each element in mesh, necessary for checking convergence against expected |
smoother | Specifies options for smoothing the mesh during refinemnt. Default options are as for a default constructed MeshSmoother object |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor, with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
funcs | List of functions defined on the space to use for the refinement strategy |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space with mesh smoothing options for conforming meshes (i.e., MeshSmoother::Conforming()).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
func | Function defined on the space to use for the refinement strategy |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space and with the specified mesh smoothing options.
Convenience method for call to
std::out_of_range | May be thrown if length of the esitmators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
funcs | List of functions defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space and with the specified mesh smoothing options.
Convenience method for call to
std::out_of_range | May be thrown if length of the esitmators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
func | Function defined on the space to use for the refinement strategy |
smoother | Specifies options for smoothing the mesh during refinemnt. |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor and with the specified mesh smoothing options.
Convenience method for call to
std::out_of_range | May be thrown if length of the esitmators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
smoother | Specifies options for smoothing the mesh during refinemnt. |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor, and with default mesh smoothing options (default constructed MeshSmoother).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified functions defined on the space, and with default mesh smoothing options (default constructed MeshSmoother).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
DiscreteFuncs | Type of the list of functions, must be random access container. |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
funcs | List of functions defined on the space to use for the refinement strategy |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineinherited |
Perform \(hp\)-adaptive refinement on the contained space and mesh using a marking strategy functor object which takes error indicators as the first argument to the constructor with the specified function defined on the space, and with default mesh smoothing options (default constructed MeshSmoother).
Convenience method for call to
std::out_of_range | May be thrown if length of the estimators is not number of elements in mesh |
MarkingStrategy | The type of the marking strategy to use. The constructor of this type must take the error indicators as the first argument Must be explicitly specified |
Estimators | Type of the list of error indicators, must be random access container of the same length as the number of elements on the mesh |
Args | Type of extra arguments to pass to the MarkingStrategy constructor |
estimators | Error indicators for each element in mesh, passed to first argument of MarkingStrategy constructor. |
func | Function defined on the space to use for the refinement strategy |
args | Extra arguments to pass to the MarkingStrategy constructor |
|
inlineprotectedvirtualinherited |
Method called by the adaptation routines after both \(h\)-refinement and \(p\)-refinement.
Can be used to for any post-processing.
data | Error indicators and functions defined on the mesh |
changes | Modifications performed to the mesh ( \(h\)-refinements) |
pRefinements | Vector, with one entry per element, denoting the type of \(p\)-adaptation performed (refinement, coarsening, or none) |
|
inlineoverrideprotectedvirtual |
Method called by the adaptation routines after both \(h\)-refinement and \(p\)-refinement.
Can be used to for any post-processing.
data | Error indicators and functions defined on the mesh |
changes | Modifications performed to the mesh ( \(h\)-refinements) |
pRefinements | Vector, with one entry per element, denoting the type of \(p\)-adaptation performed (refinement, coarsening, or none) |
|
inlineprotectedvirtualinherited |
Method called by the adaptation routines after \(p\)-refinement, but before \(h\)-refinement.
Can be used to for any post-processing.
data | Error indicators and functions defined on the mesh |
pRefinements | Vector, with one entry per element, denoting the type of \(p\)-adaptation performed (refinement, coarsening, or none) |
|
inlineoverrideprotectedvirtual |
Method called by the adaptation routines after \(p\)-refinement, but before \(h\)-refinement.
Can be used to for any post-processing.
data | Error indicators and functions defined on the mesh |
pRefinements | Vector, with one entry per element, denoting the type of \(p\)-adaptation performed (refinement, coarsening, or none) |
|
protectedpure virtualinherited |
Method called by the adaptation routines to decide if \(p\)-refinement should be performed for an element.
data | Error indicators and functions defiend on the mesh |
element | Index of the element |
refine | true if performing refinement of element, false if performing coarsening |
|
inlineoverrideprotectedvirtual |
Method called by the adaptation routines to decide if \(p\)-refinement should be performed for an element.
data | Error indicators and functions defiend on the mesh |
element | Index of the element |
refine | true if performing refinement of element, false if performing coarsening |
|
inlineinherited |
Gets the finite element space the refinement strategy is on.