12 #ifndef MFEM_TMOP_AMR_HPP 13 #define MFEM_TMOP_AMR_HPP 19 #include "../mesh/mesh_operators.hpp" 122 double spat_gf_critical_ = 0.5)
236 bool move_bnd_,
bool hradaptivity_,
237 int mesh_poly_deg_,
int amr_metric_id_,
238 int hr_iter_ = 5,
int h_per_r_iter_ = 1);
242 bool move_bnd_,
bool hradaptivity_,
243 int mesh_poly_deg_,
int amr_metric_id_,
244 int hr_iter_ = 5,
int h_per_r_iter_ = 1);
virtual const Vector & GetLocalErrors()
Get a Vector with all element errors.
ThresholdRefiner * tmop_r
Class for an integration rule - an Array of IntegrationPoint.
Class for grid function - Vector with associated FE space.
void GetTMOPRefinementEnergy(int reftype, Vector &el_energy_vec)
virtual const Vector & GetLocalErrors()
int Dimension() const
Dimension of the reference space used within the elements.
bool MeshIsModified()
Check if the mesh of the solution was modified.
bool MeshIsModified()
Check if the mesh of the solution was modified.
void AddFESpaceForUpdate(ParFiniteElementSpace *pfes_)
Abstract parallel finite element space.
~TMOPDeRefinerEstimator()
TMOPHRSolver(Mesh &mesh_, NonlinearForm &nlf_, TMOPNewtonSolver &tmopns_, GridFunction &x_, bool move_bnd_, bool hradaptivity_, int mesh_poly_deg_, int amr_metric_id_, int hr_iter_=5, int h_per_r_iter_=1)
void SetSpatialIndicator(GridFunction &spat_gf_, double spat_gf_critical_=0.5)
void SetHAdaptivityIterations(int iter)
Total number of h-adaptivity iterations per r-adaptivity iteration.
void AddGridFunctionForUpdate(ParGridFunction *pgf_)
Array< FiniteElementSpace * > fespacearr
void SetEnergyScalingFactor(double scale)
int Append(const T &el)
Append element 'el' to array, resize if necessary.
ThresholdDerefiner * tmop_dr
Mesh refinement operator using an error threshold.
Array< ParGridFunction * > pgridfuncarr
Array< IntegrationRule * > QuadIntRule
TMOPRefinerEstimator(Mesh &mesh_, NonlinearForm &nlf_, int order_, int amrmetric_)
virtual void Reset()
Reset the error estimator.
virtual const Array< int > & GetAnisotropicFlags()
For anisotropic refinements, get the refinement type (e.g., x or y)
Base class for all element based error estimators.
void AddFESpaceForUpdate(FiniteElementSpace *fes)
Array< IntegrationRule * > TetIntRule
void GetTMOPDerefinementEnergy(Mesh &cmesh, TMOP_Integrator &tmopi, Vector &el_energy_vec)
void AddGridFunctionForUpdate(GridFunction *gf)
Array< GridFunction * > gridfuncarr
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void SetSpatialIndicatorCritical(double val_)
void RebalanceParNCMesh()
TMOPRefinerEstimator * tmop_r_est
Array< IntegrationRule * > HexIntRule
double energy_scaling_factor
IntegrationRule * SetIntRulesFromMesh(Mesh &meshsplit)
TMOPDeRefinerEstimator * tmop_dr_est
The AnisotropicErrorEstimator class is the base class for all error estimators that compute one non-n...
Array< IntegrationRule * > TriIntRule
Array< ParFiniteElementSpace * > pfespacearr
void UpdateNonlinearFormAndBC(Mesh *mesh, NonlinearForm *nlf)
TMOPDeRefinerEstimator(Mesh &mesh_, NonlinearForm &nlf_)
Class for parallel grid function.
TMOPDeRefinerEstimator(ParMesh &pmesh_, ParNonlinearForm &pnlf_)
Class for parallel meshes.
virtual void Reset()
Reset the error estimator.
TMOPNewtonSolver * tmopns
void SetHRAdaptivityIterations(int iter)
bool GetDerefineEnergyForIntegrator(TMOP_Integrator &tmopi, Vector &fine_energy)
De-refinement operator using an error threshold.
A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor.