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()
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.