39 #ifndef TerminationCriterion_hpp
40 #define TerminationCriterion_hpp
48 #ifdef MSQ_USE_OLD_STD_HEADERS
58 class ObjectiveFunction;
307 #endif // TerminationCriterion_hpp
double successiveImprovementsAbsoluteEps
double get_current_function_value()
This function returns the current function value.
Terminates when a the maximum distance moved by any vertex during the previous iteration is below the...
~TerminationCriterion()
Destructor.
Terminates when the decrease in the objective function value since the previous iteration is below th...
double gradL2NormAbsoluteEps
double gradL2NormRelativeEps
void cleanup(MeshSet &ms, MsqError &err)
Cleans up after the TerminationCriterion is finished.
double qualityImprovementRelativeEps
double successiveImprovementsRelativeEps
Terminates when any vertex leaves the bounding box, defined by the given value, d.
Used to hold the error state and return it to the application.
double boundedVertexMovementEps
void accumulate_patch(PatchData &pd, MsqError &err)
Common code for both inner and outer termination criteria during inner iteration. ...
double currentGradInfNorm
The TerminationCriterion class contains functionality to terminate the VertexMover's optimization...
Vector3D is the object that effeciently stores information about about three-deminsional vectors...
checks the gradient of objective function against a double and stops when
TerminationCriterion()
Constructor which does not take any arguements.
void reset_outer(MeshSet &ms, ObjectiveFunction *of, MsqError &err)
Clear any data accumulated during an outer iteration.
Terminates when a the maximum distance moved by any vertex during the previous iteration is below the...
void reset_inner(PatchData &pd, ObjectiveFunction *of, MsqError &err)
Clear any data accumulated during an inner iteration.
bool terminate()
Check if termination criterion has been met.
terminates on the j_th iteration when That is, terminates when the norm of the gradient is small tha...
bool cull_vertices(PatchData &pd, ObjectiveFunction *obj_ptr, MsqError &err)
Function which determines whether this patch should be 'culled'.
void reset_patch(PatchData &pd, MsqError &err)
Shared inner and outer initialization during inner loop.
Terminates when the decrease in the objective function value since the previous iteration is below th...
void set_debug_output_level(int i)
msq_std::vector< Vector3D > mGrad
double qualityImprovementAbsoluteEps
double maxSquaredMovement
double gradInfNormAbsoluteEps
Terminates when the objective function value is smaller than the given scalar value.
double maxSquaredInitialMovement
double initialGradInfNorm
Terminates when the algorithm exceeds an allotted time limit (given in seconds).
double vertexMovementRelativeEps
void set_culling_type(TCType tc_type, double eps, MsqError &err)
Sets the type of criterion that the user would like to use for culling purposes (along with the assoc...
void add_criterion_type_with_double(TCType tc_type, double eps, MsqError &err)
Sets the criterion by specifing the TCType and the eps value.
long unsigned int terminationCriterionFlag
Bit flag of termination crit.
PatchDataVerticesMemento * initialVerticesMemento
void accumulate_inner(PatchData &pd, MsqError &err)
Accumulate data during inner iteration.
long unsigned int cullingMethodFlag
Terminates when the number of iterations exceeds a given integer.
double gradInfNormRelativeEps
int vertexMovementExceedsBound
void remove_criterion_type(TCType tc_type, MsqError &err)
Removes the criterion by specifing just the TCType.
void remove_culling(MsqError &err)
Removes any previously set culling types (sets the culling type to be NONE).
PatchDataVerticesMemento * previousVerticesMemento
double vertexMovementAbsoluteEps
void accumulate_outer(MeshSet &ms, MsqError &err)
Contains a copy of the coordinates of a PatchData.
Terminates when the objective function value is smaller than the given scalar value times the origina...
void add_criterion_type_with_int(TCType tc_type, int bound, MsqError &err)
Sets the criterion by specifing the TCType and the integer value.
terminates on the j_th iteration when
checks the gradient of objective function against a double and stops when
ObjectiveFunction * OFPtr
Base class for concrete Objective Functions ObjectiveFunction contains a pointer to a QualityMetric...
The MeshSet class stores one or more Mesquite::Mesh pointers and manages access to the mesh informati...