21 for (
int i =
sequence.Size()-1; i >= 0; i--)
36 case NONE:
if (last) {
return NONE; }
goto next_step;
46 for (
int i = 0; i <
sequence.Size(); i++)
94 const int NE = mesh.
GetNE();
96 MFEM_ASSERT(local_err.
Size() == NE,
"invalid size of local_err");
98 double total_err =
GetNorm(local_err, mesh);
105 for (
int el = 0; el < NE; el++)
116 if (aniso_flags.
Size() > 0)
int Size() const
Logical size of the array.
char ref_type
refinement XYZ bit mask (7 = full isotropic)
long GetGlobalNE() const
Return the total (global) number of elements.
virtual int ApplyImpl(Mesh &mesh)
Apply the operator to the mesh.
int Size() const
Returns the size of the vector.
int GetNE() const
Returns number of elements.
double GetNorm(const Vector &local_err, Mesh &mesh) const
virtual int ApplyImpl(Mesh &mesh)
Apply the operator to the mesh.
virtual long ReduceInt(int value) const
Utility function: sum integers from all processors (Allreduce).
virtual void Reset()
Reset all MeshOperators in the sequence.
int index
Mesh element number.
virtual int ApplyImpl(Mesh &mesh)
Apply the MeshOperatorSequence.
bit mask for all "action" bits
void Rebalance()
Load balance the mesh. NC meshes only.
bool Nonconforming() const
double Normlp(double p) const
Returns the l_p norm of the vector.
virtual void Reset()
Reset the associated estimator.
virtual const Vector & GetLocalErrors()=0
Get a Vector with all element errors.
virtual int ApplyImpl(Mesh &mesh)
Rebalance a parallel mesh (only non-conforming parallel meshes are supported).
bit mask for all "info" bits
Base class for all element based error estimators.
Array< Refinement > marked_elements
virtual const Array< int > & GetAnisotropicFlags()=0
Get an Array<int> with anisotropic flags for all mesh elements.
ErrorEstimator & estimator
virtual void Reset()=0
Force recomputation of the estimates on the next call to GetLocalErrors.
virtual ~MeshOperatorSequence()
Delete all operators from the sequence.
a stopping criterion was satisfied
AnisotropicErrorEstimator * aniso_estimator
ErrorEstimator & estimator
bool DerefineByError(Array< double > &elem_error, double threshold, int nc_limit=0, int op=1)
The AnisotropicErrorEstimator class is the base class for all error estimators that compute one non-n...
double infinity()
Define a shortcut for std::numeric_limits<double>::infinity()
double ParNormlp(const Vector &vec, double p, MPI_Comm comm)
Compute the l_p norm of the Vector which is split without overlap across the given communicator...
ThresholdRefiner(ErrorEstimator &est)
Construct a ThresholdRefiner using the given ErrorEstimator.
Array< MeshOperator * > sequence
MeshOperators sequence, owned by us.
void GeneralRefinement(const Array< Refinement > &refinements, int nonconforming=-1, int nc_limit=0)
Class for parallel meshes.