Wrapper which performs a Feasible Newton solve using an objective function template with inverse mean ratio. More...
#include <ShapeImprovementWrapper.hpp>
Public Member Functions | |
ShapeImprovementWrapper (MsqError &err, double cpu_time=0.0, double grad_norm=1.e-6) | |
virtual | ~ShapeImprovementWrapper () |
Destructor must delete the objects inserted in the queue. More... | |
virtual void | run_instructions (MeshSet &ms, MsqError &err) |
run_instructions runs the wrapper on the given MeshSet. More... | |
ShapeImprovementWrapper (MsqError &err, double cpu_time=0.0, double grad_norm=1.e-6) | |
virtual | ~ShapeImprovementWrapper () |
Destructor must delete the objects inserted in the queue. More... | |
virtual void | run_instructions (MeshSet &ms, MsqError &err) |
run_instructions runs the wrapper on the given MeshSet. More... | |
Public Member Functions inherited from InstructionQueue | |
InstructionQueue () | |
virtual | ~InstructionQueue () |
void | add_target_calculator (TargetCalculator *tc, MsqError &err) |
void | add_preconditioner (QualityImprover *instr, MsqError &err) |
adds a QualityImprover at the end of the instruction list More... | |
void | remove_preconditioner (size_t index, MsqError &err) |
removes a QualityImprover* from the instruction queue More... | |
void | insert_preconditioner (QualityImprover *instr, size_t index, MsqError &err) |
inserts a QualityImprover* into the instruction queue. More... | |
void | add_quality_assessor (QualityAssessor *instr, MsqError &err) |
adds a QualityAssessor to the instruction queue. More... | |
void | remove_quality_assessor (size_t index, MsqError &err) |
removes a QualityAssessor* from the instruction queue More... | |
void | insert_quality_assessor (QualityAssessor *instr, size_t index, MsqError &err) |
inserts a QualityAssessor* into the instruction queue. More... | |
void | set_master_quality_improver (QualityImprover *instr, MsqError &err) |
void | disable_automatic_quality_assessment () |
void | enable_automatic_quality_assessment () |
void | disable_automatic_midnode_adjustment () |
void | enable_automatic_midnode_adjustment () |
void | clear () |
void | trap_floating_point_exception (bool enable) |
Generate SIGFPE whenever a floating point exception occurs. More... | |
bool | trap_floating_point_exception () const |
InstructionQueue () | |
virtual | ~InstructionQueue () |
void | add_target_calculator (TargetCalculator *tc, MsqError &err) |
void | add_preconditioner (QualityImprover *instr, MsqError &err) |
void | remove_preconditioner (size_t index, MsqError &err) |
void | insert_preconditioner (QualityImprover *instr, size_t index, MsqError &err) |
void | add_quality_assessor (QualityAssessor *instr, MsqError &err) |
void | remove_quality_assessor (size_t index, MsqError &err) |
void | insert_quality_assessor (QualityAssessor *instr, size_t index, MsqError &err) |
void | set_master_quality_improver (QualityImprover *instr, MsqError &err) |
void | disable_automatic_quality_assessment () |
void | enable_automatic_quality_assessment () |
void | disable_automatic_midnode_adjustment () |
void | enable_automatic_midnode_adjustment () |
void | clear () |
void | trap_floating_point_exception (bool enable) |
Generate SIGFPE whenever a floating point exception occurs. More... | |
bool | trap_floating_point_exception () const |
Private Attributes | |
ShapeQualityMetric * | inverseMeanRatio |
LPtoPTemplate * | objFunc |
FeasibleNewton * | feasNewt |
QualityAssessor * | mQA |
TerminationCriterion * | termOuter |
TerminationCriterion * | termInner |
bool | timerNeeded |
double | maxTime |
double | untBeta |
double | successiveEps |
Wrapper which performs a Feasible Newton solve using an objective function template with inverse mean ratio.
Definition at line 68 of file includeLinks/ShapeImprovementWrapper.hpp.
ShapeImprovementWrapper | ( | MsqError & | err, |
double | cpu_time = 0.0 , |
||
double | grad_norm = 1.e-6 |
||
) |
The consturctor allows for two values. The first is a time bound (in seconds) used as a termination criterion. If this value is non-positive, no time bound will be set. By default, the value is set to zero and no time bound is used. The second value is the tolerance for the gradient norm termination criteria. The default value is 1.e-6.
Definition at line 51 of file Control/Wrappers/ShapeImprovementWrapper.cpp.
References TerminationCriterion::add_criterion_type_with_int(), PatchDataUser::add_culling_method(), ObjectiveFunction::ANALYTICAL_GRADIENT, QualityMetric::ANALYTICAL_GRADIENT, QualityMetric::ANALYTICAL_HESSIAN, QualityAssessor::disable_printing_results(), ShapeImprovementWrapper::feasNewt, PatchData::GLOBAL_PATCH, ShapeImprovementWrapper::inverseMeanRatio, QualityMetric::LINEAR, QualityAssessor::MAXIMUM, ShapeImprovementWrapper::mQA, MSQ_ERRRTN, PatchData::NO_BOUNDARY_VTX, TerminationCriterion::NUMBER_OF_ITERATES, ShapeImprovementWrapper::objFunc, QualityMetric::set_averaging_method(), ObjectiveFunction::set_gradient_type(), QualityMetric::set_gradient_type(), QualityMetric::set_hessian_type(), QualityImprover::set_inner_termination_criterion(), QualityImprover::set_outer_termination_criterion(), PatchDataUser::set_patch_type(), ShapeImprovementWrapper::successiveEps, ShapeImprovementWrapper::termInner, ShapeImprovementWrapper::termOuter, and ShapeImprovementWrapper::untBeta.
|
virtual |
Destructor must delete the objects inserted in the queue.
Definition at line 93 of file Control/Wrappers/ShapeImprovementWrapper.cpp.
References ShapeImprovementWrapper::feasNewt, ShapeImprovementWrapper::inverseMeanRatio, ShapeImprovementWrapper::mQA, ShapeImprovementWrapper::objFunc, ShapeImprovementWrapper::termInner, and ShapeImprovementWrapper::termOuter.
ShapeImprovementWrapper | ( | MsqError & | err, |
double | cpu_time = 0.0 , |
||
double | grad_norm = 1.e-6 |
||
) |
|
virtual |
Destructor must delete the objects inserted in the queue.
run_instructions runs the wrapper on the given MeshSet.
Run instructions first calls the global untangler. If the resulting mesh is tangled after that pre-conditioning step, The mesh is iteratively smoothed with a local and then global untangler until the mesh is untangled or until a certain time constraint has been exceeded. If the mesh was successfully untangled and there is still time remaining, an inverse mean ratio shape improvement is then performed.
Reimplemented from InstructionQueue.
Definition at line 111 of file Control/Wrappers/ShapeImprovementWrapper.cpp.
References ShapeImprovementWrapper::feasNewt, VertexMover::loop_over_mesh(), QualityAssessor::loop_over_mesh(), ShapeImprovementWrapper::mQA, and MSQ_ERRRTN.
Referenced by Rocmop::smooth_mesquite().
run_instructions runs the wrapper on the given MeshSet.
Reimplemented from InstructionQueue.
|
private |
Definition at line 87 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::run_instructions(), ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 85 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 93 of file includeLinks/ShapeImprovementWrapper.hpp.
|
private |
Definition at line 88 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::run_instructions(), ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 86 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 96 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper().
|
private |
Definition at line 90 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 89 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper(), and ShapeImprovementWrapper::~ShapeImprovementWrapper().
|
private |
Definition at line 92 of file includeLinks/ShapeImprovementWrapper.hpp.
|
private |
Definition at line 95 of file includeLinks/ShapeImprovementWrapper.hpp.
Referenced by ShapeImprovementWrapper::ShapeImprovementWrapper().