#include <NonSmoothSteepestDescent.hpp>
Public Member Functions | |
NonSmoothSteepestDescent (ObjectiveFunction *of) | |
virtual | ~NonSmoothSteepestDescent () |
NonSmoothSteepestDescent (ObjectiveFunction *of) | |
virtual | ~NonSmoothSteepestDescent () |
Public Member Functions inherited from VertexMover | |
virtual | ~VertexMover () |
virtual double | loop_over_mesh (MeshSet &ms, MsqError &err) |
Improves the quality of the MeshSet, calling some methods specified in a class derived from VertexMover. More... | |
virtual | ~VertexMover () |
virtual double | loop_over_mesh (MeshSet &ms, MsqError &err) |
This is the "run" function of PatchDataUser. It can do anything really. More... | |
Public Member Functions inherited from QualityImprover | |
virtual | ~QualityImprover () |
void | set_name (msq_std::string name) |
provides a name to the QualityImprover (use it in constructor). More... | |
virtual msq_std::string | get_name () |
retrieves the QualityImprover name. A default name should be set in the constructor. More... | |
virtual AlgorithmType | get_algorithm_type () |
Return the algorithm type (to avoid RTTI use). More... | |
void | set_inner_termination_criterion (TerminationCriterion *crit) |
Sets in the termination criterion for the concrete solver's optimization. More... | |
void | set_outer_termination_criterion (TerminationCriterion *crit) |
Sets in the termination criterion for the outer loop over patches. More... | |
virtual | ~QualityImprover () |
void | set_name (msq_std::string name) |
provides a name to the QualityImprover (use it in constructor). More... | |
virtual msq_std::string | get_name () |
retrieves the QualityImprover name. A default name should be set in the constructor. More... | |
virtual AlgorithmType | get_algorithm_type () |
Return the algorithm type (to avoid RTTI use). More... | |
void | set_inner_termination_criterion (TerminationCriterion *crit) |
Sets in the termination criterion for the concrete solver's optimization. More... | |
void | set_outer_termination_criterion (TerminationCriterion *crit) |
Sets in the termination criterion for the outer loop over patches. More... | |
Public Member Functions inherited from PatchDataUser | |
virtual | ~PatchDataUser () |
virtual void | set_patch_type (PatchData::PatchType patch_type, MsqError &err, int param1=0, int param2=0) |
Sets the Patch Type. More... | |
PatchData::PatchType | get_patch_type () |
Returns the Patch Type. More... | |
int | get_nb_layers (MsqError &err) |
Returns number of layers (if relevant for partition algorythm). More... | |
void | add_culling_method (enum PatchData::culling_method cm) |
Sets on the culling method passed as argument. More... | |
void | no_culling_method () |
Sets off all culling methods. More... | |
void | remove_culling_method (enum PatchData::culling_method cm) |
Sets off the culling method passed as argument. More... | |
long unsigned int | get_culling_method_bits () |
Returns the bitset containing culling methods flags. More... | |
void | set_all_parameters (PatchDataParameters ¶ms) |
PatchDataParameters & | get_all_parameters () |
Returns the PatchDataParameters object. More... | |
void | set_global_patch (PatchData *pd, MsqError &err) |
Sets the Global Patch, so that it can be use by contiguoug PatchDataUser. More... | |
PatchData * | get_global_patch () |
Returns the Global Patch. More... | |
void | no_global_patch () |
Sets the Global Patch pointer to NULL. More... | |
virtual | ~PatchDataUser () |
virtual void | set_patch_type (PatchData::PatchType patch_type, MsqError &err, int param1=0, int param2=0) |
Sets the Patch Type. More... | |
PatchData::PatchType | get_patch_type () |
Returns the Patch Type. More... | |
int | get_nb_layers (MsqError &err) |
Returns number of layers (if relevant for partition algorythm). More... | |
void | add_culling_method (enum PatchData::culling_method cm) |
Sets on the culling method passed as argument. More... | |
void | no_culling_method () |
Sets off all culling methods. More... | |
void | remove_culling_method (enum PatchData::culling_method cm) |
Sets off the culling method passed as argument. More... | |
long unsigned int | get_culling_method_bits () |
Returns the bitset containing culling methods flags. More... | |
void | set_all_parameters (PatchDataParameters ¶ms) |
PatchDataParameters & | get_all_parameters () |
Returns the PatchDataParameters object. More... | |
void | set_global_patch (PatchData *pd, MsqError &err) |
Sets the Global Patch, so that it can be use by contiguoug PatchDataUser. More... | |
PatchData * | get_global_patch () |
Returns the Global Patch. More... | |
void | no_global_patch () |
Sets the Global Patch pointer to NULL. More... | |
Protected Member Functions | |
virtual void | initialize (PatchData &pd, MsqError &err) |
virtual void | optimize_vertex_positions (PatchData &pd, MsqError &err) |
virtual void | initialize_mesh_iteration (PatchData &pd, MsqError &err) |
virtual void | terminate_mesh_iteration (PatchData &pd, MsqError &err) |
virtual void | cleanup () |
virtual void | initialize (PatchData &pd, MsqError &err) |
virtual void | optimize_vertex_positions (PatchData &pd, MsqError &err) |
virtual void | initialize_mesh_iteration (PatchData &pd, MsqError &err) |
virtual void | terminate_mesh_iteration (PatchData &pd, MsqError &err) |
virtual void | cleanup () |
Protected Member Functions inherited from VertexMover | |
VertexMover () | |
size_t | check_feasible (PatchData &pd, MsqError &err) |
CHECK FEASIBLE IS NOT YET IMPLEMENTED. More... | |
VertexMover () | |
size_t | check_feasible (PatchData &pd, MsqError &err) |
CHECK FEASIBLE IS NOT YET IMPLEMENTED. More... | |
Protected Member Functions inherited from QualityImprover | |
QualityImprover () | |
const MeshSet * | get_mesh_set () const |
MeshSet * | get_mesh_set () |
void | set_mesh_set (MeshSet *ms) |
TerminationCriterion * | get_outer_termination_criterion () |
return the outer termination criterion pointer More... | |
TerminationCriterion * | get_inner_termination_criterion () |
return the inner termination criterion pointer More... | |
QualityImprover () | |
const MeshSet * | get_mesh_set () const |
MeshSet * | get_mesh_set () |
void | set_mesh_set (MeshSet *ms) |
TerminationCriterion * | get_outer_termination_criterion () |
return the outer termination criterion pointer More... | |
TerminationCriterion * | get_inner_termination_criterion () |
return the inner termination criterion pointer More... | |
Protected Member Functions inherited from PatchDataUser | |
PatchDataUser () | |
PatchDataUser () | |
Private Member Functions | |
void | init_opt (MsqError &err) |
void | init_max_step_length (MsqError &err) |
void | minmax_opt (PatchData &pd, MsqError &err) |
void | step_acceptance (PatchData &pd, MsqError &err) |
void | get_min_estimate (double *final_est, MsqError &err) |
void | get_gradient_projections (MsqError &err) |
void | compute_alpha (MsqError &err) |
void | copy_active (ActiveSet *active1, ActiveSet *active2, MsqError &err) |
bool | compute_function (PatchData *pd, double *function, MsqError &err) |
double ** | compute_gradient (PatchData *pd, MsqError &err) |
void | find_active_set (double *function, ActiveSet *active_set, MsqError &err) |
void | print_active_set (ActiveSet *active_set, double *func, MsqError &err) |
int | improvement_check (MsqError &err) |
int | validity_check (MsqError &err) |
void | check_equilibrium (int *equil, int *opt_status, MsqError &err) |
int | convex_hull_test (double **vec, int num_vec, MsqError &err) |
int | check_vector_dots (double **vec, int num_vec, double *normal, MsqError &err) |
void | find_plane_normal (double pt1[3], double pt2[3], double pt3[3], double *cross, MsqError &err) |
void | find_plane_points (int dir1, int dir2, double **vec, int num_vec, double *pt1, double *pt2, double *pt3, int *opt_status, MsqError &err) |
void | form_grammian (double **vec, MsqError &err) |
void | form_PD_grammian (MsqError &err) |
void | singular_test (int n, double **A, int *singular, MsqError &err) |
void | condition3x3 (double **A, double *cond, MsqError &err) |
void | solve2x2 (double a11, double a12, double a21, double a22, double b1, double b2, double **x, MsqError &err) |
void | form_reduced_matrix (double ***P, MsqError &err) |
void | search_direction (PatchData &pd, MsqError &err) |
void | search_edges_faces (double **dir, MsqError &err) |
void | get_active_directions (double **gradient, double ***dir, MsqError &err) |
void | init_opt (MsqError &err) |
void | init_max_step_length (MsqError &err) |
void | minmax_opt (PatchData &pd, MsqError &err) |
void | step_acceptance (PatchData &pd, MsqError &err) |
void | get_min_estimate (double *final_est, MsqError &err) |
void | get_gradient_projections (MsqError &err) |
void | compute_alpha (MsqError &err) |
void | copy_active (ActiveSet *active1, ActiveSet *active2, MsqError &err) |
bool | compute_function (PatchData *pd, double *function, MsqError &err) |
double ** | compute_gradient (PatchData *pd, MsqError &err) |
void | find_active_set (double *function, ActiveSet *active_set, MsqError &err) |
void | print_active_set (ActiveSet *active_set, double *func, MsqError &err) |
int | improvement_check (MsqError &err) |
int | validity_check (MsqError &err) |
void | check_equilibrium (int *equil, int *opt_status, MsqError &err) |
int | convex_hull_test (double **vec, int num_vec, MsqError &err) |
int | check_vector_dots (double **vec, int num_vec, double *normal, MsqError &err) |
void | find_plane_normal (double pt1[3], double pt2[3], double pt3[3], double *cross, MsqError &err) |
void | find_plane_points (int dir1, int dir2, double **vec, int num_vec, double *pt1, double *pt2, double *pt3, int *opt_status, MsqError &err) |
void | form_grammian (double **vec, MsqError &err) |
void | form_PD_grammian (MsqError &err) |
void | singular_test (int n, double **A, int *singular, MsqError &err) |
void | condition3x3 (double **A, double *cond, MsqError &err) |
void | solve2x2 (double a11, double a12, double a21, double a22, double b1, double b2, double **x, MsqError &err) |
void | form_reduced_matrix (double ***P, MsqError &err) |
void | search_direction (PatchData &pd, MsqError &err) |
void | search_edges_faces (double **dir, MsqError &err) |
void | get_active_directions (double **gradient, double ***dir, MsqError &err) |
Private Attributes | |
int | mDimension |
int | numVertices |
int | numElements |
MsqVertex * | mCoords |
MsqMeshEntity * | mConnectivity |
int | numFree |
int | freeVertexIndex |
double | activeEpsilon |
double | minAcceptableImprovement |
double | minStepSize |
double | originalValue |
int | iterCount |
int | optIterCount |
int | numFunctionValues |
double * | mFunction |
double * | testFunction |
double * | originalFunction |
double ** | mGradient |
int | optStatus |
int | equilibriumPt |
int | mSteepest |
double | mSearch [3] |
double | mAlpha |
double | maxAlpha |
double * | mGS |
double * | prevActiveValues |
double ** | mG |
double ** | mPDG |
int | pdgInd [3] |
ActiveSet * | mActive |
ActiveSet * | testActive |
ActiveSet * | originalActive |
Additional Inherited Members | |
Public Types inherited from PatchDataUser | |
enum | AlgorithmType { QUALITY_IMPROVER, QUALITY_ASSESSOR, MESH_TRANSFORM, TARGET_CALCULATOR, QUALITY_IMPROVER, QUALITY_ASSESSOR, MESH_TRANSFORM, TARGET_CALCULATOR } |
enum | AlgorithmType { QUALITY_IMPROVER, QUALITY_ASSESSOR, MESH_TRANSFORM, TARGET_CALCULATOR, QUALITY_IMPROVER, QUALITY_ASSESSOR, MESH_TRANSFORM, TARGET_CALCULATOR } |
Protected Attributes inherited from VertexMover | |
ObjectiveFunction * | objFunc |
Definition at line 145 of file includeLinks/NonSmoothSteepestDescent.hpp.
Definition at line 45 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References i, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mGradient, NonSmoothSteepestDescent::mGS, NonSmoothSteepestDescent::mPDG, MSQ_DBGOUT, VertexMover::objFunc, NonSmoothSteepestDescent::originalActive, NonSmoothSteepestDescent::originalFunction, NonSmoothSteepestDescent::prevActiveValues, QualityImprover::set_name(), NonSmoothSteepestDescent::testActive, and NonSmoothSteepestDescent::testFunction.
|
inlinevirtual |
Definition at line 150 of file includeLinks/NonSmoothSteepestDescent.hpp.
|
inlinevirtual |
Definition at line 150 of file src/QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.hpp.
|
inlineprivate |
Definition at line 658 of file includeLinks/NonSmoothSteepestDescent.hpp.
References NonSmoothSteepestDescent::convex_hull_test(), NonSmoothSteepestDescent::form_grammian(), NonSmoothSteepestDescent::get_active_directions(), i, j, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mGradient, min(), MSQ_DOT, MSQ_EQUILIBRIUM, MSQ_FALSE, MSQ_MACHINE_EPS, MSQ_NORMALIZE, MSQ_PRINT, ActiveSet::num_active, and NonSmoothSteepestDescent::numFunctionValues.
Referenced by NonSmoothSteepestDescent::minmax_opt().
|
private |
|
inlineprivate |
Definition at line 517 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, MSQ_DOT, MSQ_FALSE, MSQ_MACHINE_EPS, and MSQ_TRUE.
Referenced by NonSmoothSteepestDescent::convex_hull_test().
|
private |
|
protectedvirtual |
Implements VertexMover.
|
protectedvirtual |
Implements VertexMover.
Definition at line 169 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References i, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mGradient, NonSmoothSteepestDescent::mGS, NonSmoothSteepestDescent::mPDG, MSQ_DBGOUT, NonSmoothSteepestDescent::originalActive, NonSmoothSteepestDescent::originalFunction, NonSmoothSteepestDescent::prevActiveValues, NonSmoothSteepestDescent::testActive, and NonSmoothSteepestDescent::testFunction.
|
private |
|
inlineprivate |
Definition at line 1025 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, NonSmoothSteepestDescent::mAlpha, NonSmoothSteepestDescent::maxAlpha, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mGS, NonSmoothSteepestDescent::minStepSize, MSQ_PRINT, NonSmoothSteepestDescent::mSteepest, and NonSmoothSteepestDescent::numFunctionValues.
Referenced by NonSmoothSteepestDescent::minmax_opt().
Definition at line 248 of file includeLinks/NonSmoothSteepestDescent.hpp.
References PatchData::element_by_index(), QualityMetric::evaluate_element(), ObjectiveFunction::get_quality_metric(), ObjectiveFunction::get_quality_metric_list(), i, MSQ_ERRZERO, NonSmoothSteepestDescent::numElements, and VertexMover::objFunc.
Referenced by NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::step_acceptance().
Definition at line 278 of file includeLinks/NonSmoothSteepestDescent.hpp.
References NonSmoothSteepestDescent::compute_function(), NonSmoothSteepestDescent::freeVertexIndex, ObjectiveFunction::get_quality_metric(), ObjectiveFunction::get_quality_metric_list(), i, j, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mGradient, MSQ_CHKERR, MSQ_DBGOUT, NonSmoothSteepestDescent::numElements, NonSmoothSteepestDescent::numFunctionValues, and VertexMover::objFunc.
Referenced by NonSmoothSteepestDescent::minmax_opt().
|
inlineprivate |
Definition at line 736 of file includeLinks/NonSmoothSteepestDescent.hpp.
References denom, MSQ_FALSE, MSQ_MACHINE_EPS, MSQ_TRUE, and sqrt().
Referenced by NonSmoothSteepestDescent::singular_test().
|
private |
|
inlineprivate |
Definition at line 566 of file includeLinks/NonSmoothSteepestDescent.hpp.
References NonSmoothSteepestDescent::check_vector_dots(), NonSmoothSteepestDescent::find_plane_normal(), NonSmoothSteepestDescent::find_plane_points(), MsqError::INVALID_STATE, MSQ_CHECK_X_COORD_DIRECTION, MSQ_CHECK_Y_COORD_DIRECTION, MSQ_CHECK_Z_COORD_DIRECTION, MSQ_EQUIL, MSQ_HULL_TEST_ERROR, MSQ_NO_EQUIL, MSQ_PRINT, MSQ_SETERR, MSQ_THREE_PT_PLANE, MSQ_TWO_PT_PLANE, MSQ_XDIR, MSQ_YDIR, and MSQ_ZDIR.
Referenced by NonSmoothSteepestDescent::check_equilibrium().
|
private |
Definition at line 1086 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, i, MsqError::INVALID_ARG, MSQ_SETERR, ActiveSet::num_active, ActiveSet::num_equal, and ActiveSet::true_active_value.
Referenced by NonSmoothSteepestDescent::step_acceptance().
Definition at line 335 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, NonSmoothSteepestDescent::activeEpsilon, for(), i, MSQ_DBGOUT, MSQ_MACHINE_EPS, Mesquite::MSQ_MAX, ActiveSet::num_active, ActiveSet::num_equal, NonSmoothSteepestDescent::numFunctionValues, and ActiveSet::true_active_value.
Referenced by NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::step_acceptance().
|
inlineprivate |
Definition at line 546 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, and MSQ_NORMALIZE.
Referenced by NonSmoothSteepestDescent::convex_hull_test().
|
private |
|
private |
Definition at line 213 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References i, max(), min(), MSQ_BIG_NEG_NMBR, MSQ_BIG_POS_NMBR, MSQ_CCW, MSQ_CHECK_BOTTOM_UP, MSQ_CHECK_TOP_DOWN, MSQ_CHECK_X_COORD_DIRECTION, MSQ_CHECK_Y_COORD_DIRECTION, MSQ_COPY_VECTOR, MSQ_CW, MSQ_EQUIL, MSQ_HULL_TEST_ERROR, MSQ_MACHINE_EPS, MSQ_NO_EQUIL, MSQ_PRINT, and MSQ_TWO_PT_PLANE.
Referenced by NonSmoothSteepestDescent::convex_hull_test().
|
private |
|
inlineprivate |
Definition at line 639 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, MsqError::INVALID_STATE, j, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mG, MSQ_DOT, MSQ_SETERR, and ActiveSet::num_active.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), and NonSmoothSteepestDescent::search_direction().
|
private |
|
private |
|
inlineprivate |
Definition at line 830 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, i, MsqError::INVALID_STATE, j, k, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mPDG, MSQ_SETERR, ActiveSet::num_active, NonSmoothSteepestDescent::pdgInd, and NonSmoothSteepestDescent::singular_test().
Referenced by NonSmoothSteepestDescent::search_direction().
|
inlineprivate |
Definition at line 973 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, j, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mG, and ActiveSet::num_active.
Referenced by NonSmoothSteepestDescent::search_direction().
|
private |
|
private |
|
inlineprivate |
Definition at line 502 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, i, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, MSQ_COPY_VECTOR, and ActiveSet::num_active.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), and NonSmoothSteepestDescent::search_direction().
|
inlineprivate |
Definition at line 1016 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mGradient, NonSmoothSteepestDescent::mGS, NonSmoothSteepestDescent::mSearch, MSQ_DOT, MSQ_PRINT, NonSmoothSteepestDescent::mSteepest, and NonSmoothSteepestDescent::numFunctionValues.
Referenced by NonSmoothSteepestDescent::minmax_opt().
|
private |
|
inlineprivate |
Definition at line 993 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, i, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mAlpha, NonSmoothSteepestDescent::mGS, MSQ_MACHINE_EPS, ActiveSet::num_active, and NonSmoothSteepestDescent::numFunctionValues.
Referenced by NonSmoothSteepestDescent::step_acceptance().
|
private |
|
private |
Definition at line 195 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References NonSmoothSteepestDescent::mActive, MSQ_PRINT, NonSmoothSteepestDescent::originalValue, and ActiveSet::true_active_value.
Referenced by NonSmoothSteepestDescent::step_acceptance().
|
private |
|
private |
|
inlineprivate |
Definition at line 1172 of file includeLinks/NonSmoothSteepestDescent.hpp.
References i, MsqError::INVALID_MESH, j, k, NonSmoothSteepestDescent::maxAlpha, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mDimension, MSQ_PRINT, MSQ_SETERR, NonSmoothSteepestDescent::numElements, NonSmoothSteepestDescent::numVertices, and sqrt().
Referenced by NonSmoothSteepestDescent::optimize_vertex_positions().
|
private |
|
inlineprivate |
Definition at line 1121 of file includeLinks/NonSmoothSteepestDescent.hpp.
References NonSmoothSteepestDescent::equilibriumPt, i, MsqError::INVALID_STATE, NonSmoothSteepestDescent::iterCount, j, NonSmoothSteepestDescent::mAlpha, NonSmoothSteepestDescent::maxAlpha, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mGradient, NonSmoothSteepestDescent::mGS, NonSmoothSteepestDescent::mPDG, NonSmoothSteepestDescent::mSearch, MSQ_PRINT, MSQ_SETERR, NonSmoothSteepestDescent::mSteepest, NonSmoothSteepestDescent::numFunctionValues, NonSmoothSteepestDescent::optIterCount, NonSmoothSteepestDescent::optStatus, NonSmoothSteepestDescent::originalFunction, NonSmoothSteepestDescent::pdgInd, NonSmoothSteepestDescent::prevActiveValues, and NonSmoothSteepestDescent::testFunction.
Referenced by NonSmoothSteepestDescent::optimize_vertex_positions().
Implements VertexMover.
Implements VertexMover.
Definition at line 73 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References NonSmoothSteepestDescent::activeEpsilon, PatchData::ELEMENTS_ON_VERTEX_PATCH, NonSmoothSteepestDescent::minAcceptableImprovement, NonSmoothSteepestDescent::minStepSize, MSQ_DBGOUT, and PatchDataUser::set_patch_type().
Implements VertexMover.
Implements VertexMover.
Definition at line 85 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
Definition at line 548 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::equilibriumPt, NonSmoothSteepestDescent::find_active_set(), NonSmoothSteepestDescent::freeVertexIndex, NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::iterCount, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mGradient, MSQ_COPY_VECTOR, MSQ_DBG, MSQ_EQUILIBRIUM, MSQ_ERRRTN, MSQ_FLAT_NO_IMP, MSQ_FUNCTION_TIMER, MSQ_IMP_TOO_SMALL, MSQ_MAX_ITER_EXCEEDED, MSQ_MAX_OPT_ITER, MSQ_PRINT, MSQ_STEP_TOO_SMALL, MSQ_ZERO_SEARCH, ActiveSet::num_active, NonSmoothSteepestDescent::numFunctionValues, NonSmoothSteepestDescent::optIterCount, NonSmoothSteepestDescent::optStatus, NonSmoothSteepestDescent::originalFunction, NonSmoothSteepestDescent::originalValue, NonSmoothSteepestDescent::prevActiveValues, NonSmoothSteepestDescent::print_active_set(), NonSmoothSteepestDescent::search_direction(), NonSmoothSteepestDescent::step_acceptance(), ActiveSet::true_active_value, and NonSmoothSteepestDescent::validity_check().
Referenced by NonSmoothSteepestDescent::optimize_vertex_positions().
Implements VertexMover.
Implements VertexMover.
Definition at line 89 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References NonSmoothSteepestDescent::compute_function(), NonSmoothSteepestDescent::find_active_set(), NonSmoothSteepestDescent::freeVertexIndex, PatchData::get_element_array(), QualityImprover::get_mesh_set(), PatchData::get_vertex_array(), MsqMeshEntity::get_vertex_indices(), NonSmoothSteepestDescent::init_max_step_length(), NonSmoothSteepestDescent::init_opt(), MsqError::INVALID_MESH, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mConnectivity, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::minmax_opt(), MSQ_DBG, MSQ_ERRRTN, MSQ_FUNCTION_TIMER, MSQ_PRINT, MSQ_SETERR, MsqFreeVertexIndexIterator::next(), PatchData::num_elements(), PatchData::num_free_vertices(), PatchData::num_vertices(), NonSmoothSteepestDescent::numElements, NonSmoothSteepestDescent::numFree, NonSmoothSteepestDescent::numFunctionValues, NonSmoothSteepestDescent::numVertices, NonSmoothSteepestDescent::originalFunction, MsqFreeVertexIndexIterator::reset(), MeshSet::space_dim(), NonSmoothSteepestDescent::validity_check(), and MsqFreeVertexIndexIterator::value().
Definition at line 1103 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, i, MsqError::INVALID_ARG, MSQ_DBGOUT, MSQ_PRINT, MSQ_SETERR, and ActiveSet::num_active.
Referenced by NonSmoothSteepestDescent::minmax_opt(), and NonSmoothSteepestDescent::search_direction().
Definition at line 406 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References ActiveSet::active_ind, denom, NonSmoothSteepestDescent::form_grammian(), NonSmoothSteepestDescent::form_PD_grammian(), NonSmoothSteepestDescent::form_reduced_matrix(), NonSmoothSteepestDescent::get_active_directions(), i, MsqError::INVALID_STATE, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mGradient, NonSmoothSteepestDescent::mSearch, MSQ_CHKERR, MSQ_COPY_VECTOR, MSQ_DOT, MSQ_ERRRTN, MSQ_MACHINE_EPS, MSQ_NORMALIZE, MSQ_PRINT, MSQ_SETERR, MSQ_ZERO_SEARCH, NonSmoothSteepestDescent::mSteepest, ActiveSet::num_active, NonSmoothSteepestDescent::optStatus, NonSmoothSteepestDescent::print_active_set(), NonSmoothSteepestDescent::search_edges_faces(), NonSmoothSteepestDescent::singular_test(), NonSmoothSteepestDescent::solve2x2(), and x.
Referenced by NonSmoothSteepestDescent::minmax_opt().
|
inlineprivate |
Definition at line 872 of file includeLinks/NonSmoothSteepestDescent.hpp.
References ActiveSet::active_ind, denom, i, MsqError::INVALID_MESH, j, k, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mG, NonSmoothSteepestDescent::mSearch, MSQ_COPY_VECTOR, MSQ_DOT, MSQ_EQUILIBRIUM, MSQ_MACHINE_EPS, MSQ_SETERR, NonSmoothSteepestDescent::mSteepest, ActiveSet::num_active, NonSmoothSteepestDescent::optStatus, and projection().
Referenced by NonSmoothSteepestDescent::search_direction().
|
private |
|
private |
|
inlineprivate |
Definition at line 801 of file includeLinks/NonSmoothSteepestDescent.hpp.
References NonSmoothSteepestDescent::condition3x3(), MsqError::INVALID_ARG, MSQ_FALSE, MSQ_MACHINE_EPS, MSQ_SETERR, and MSQ_TRUE.
Referenced by NonSmoothSteepestDescent::form_PD_grammian(), and NonSmoothSteepestDescent::search_direction().
|
inlineprivate |
Definition at line 948 of file includeLinks/NonSmoothSteepestDescent.hpp.
References MSQ_MACHINE_EPS.
Referenced by NonSmoothSteepestDescent::search_direction().
|
private |
Definition at line 669 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
References NonSmoothSteepestDescent::compute_function(), NonSmoothSteepestDescent::copy_active(), NonSmoothSteepestDescent::find_active_set(), NonSmoothSteepestDescent::freeVertexIndex, NonSmoothSteepestDescent::get_min_estimate(), i, NonSmoothSteepestDescent::improvement_check(), NonSmoothSteepestDescent::iterCount, NonSmoothSteepestDescent::mActive, NonSmoothSteepestDescent::mAlpha, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mDimension, NonSmoothSteepestDescent::mFunction, NonSmoothSteepestDescent::minAcceptableImprovement, NonSmoothSteepestDescent::minStepSize, NonSmoothSteepestDescent::mSearch, MSQ_CHKERR, MSQ_COPY_VECTOR, MSQ_ERRRTN, MSQ_FALSE, MSQ_FLAT_NO_IMP, MSQ_IMP_TOO_SMALL, MSQ_PRINT, MSQ_STEP_ACCEPTED, MSQ_STEP_DONE, MSQ_STEP_NOT_DONE, MSQ_STEP_TOO_SMALL, MSQ_TRUE, NonSmoothSteepestDescent::numFunctionValues, NonSmoothSteepestDescent::optStatus, NonSmoothSteepestDescent::originalActive, NonSmoothSteepestDescent::originalFunction, NonSmoothSteepestDescent::prevActiveValues, NonSmoothSteepestDescent::testActive, NonSmoothSteepestDescent::testFunction, ActiveSet::true_active_value, and NonSmoothSteepestDescent::validity_check().
Referenced by NonSmoothSteepestDescent::minmax_opt().
Implements VertexMover.
Definition at line 164 of file QualityImprover/VertexMover/NonSmoothSteepestDescent/NonSmoothSteepestDescent.cpp.
Implements VertexMover.
|
private |
|
inlineprivate |
Definition at line 394 of file includeLinks/NonSmoothSteepestDescent.hpp.
References Vector3D::get_coordinates(), MsqMeshEntity::get_vertex_index(), i, NonSmoothSteepestDescent::mConnectivity, NonSmoothSteepestDescent::mCoords, NonSmoothSteepestDescent::mDimension, MSQ_MACHINE_EPS, NonSmoothSteepestDescent::numElements, and sqrt().
Referenced by NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 172 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::find_active_set(), and NonSmoothSteepestDescent::initialize().
|
private |
Definition at line 186 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::init_opt(), and NonSmoothSteepestDescent::minmax_opt().
|
private |
|
private |
Definition at line 178 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 196 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::form_grammian(), NonSmoothSteepestDescent::form_PD_grammian(), NonSmoothSteepestDescent::form_reduced_matrix(), NonSmoothSteepestDescent::get_active_directions(), NonSmoothSteepestDescent::get_min_estimate(), NonSmoothSteepestDescent::improvement_check(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), NonSmoothSteepestDescent::optimize_vertex_positions(), NonSmoothSteepestDescent::search_direction(), NonSmoothSteepestDescent::search_edges_faces(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 189 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::get_min_estimate(), NonSmoothSteepestDescent::init_opt(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 190 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::init_max_step_length(), and NonSmoothSteepestDescent::init_opt().
|
private |
Definition at line 167 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::validity_check().
|
private |
Definition at line 166 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::init_max_step_length(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::optimize_vertex_positions(), NonSmoothSteepestDescent::step_acceptance(), and NonSmoothSteepestDescent::validity_check().
|
private |
Definition at line 163 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::form_grammian(), NonSmoothSteepestDescent::form_PD_grammian(), NonSmoothSteepestDescent::get_active_directions(), NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::init_max_step_length(), NonSmoothSteepestDescent::optimize_vertex_positions(), NonSmoothSteepestDescent::search_direction(), NonSmoothSteepestDescent::search_edges_faces(), NonSmoothSteepestDescent::step_acceptance(), and NonSmoothSteepestDescent::validity_check().
|
private |
Definition at line 181 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), NonSmoothSteepestDescent::search_direction(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 193 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::form_grammian(), NonSmoothSteepestDescent::form_PD_grammian(), NonSmoothSteepestDescent::form_reduced_matrix(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), NonSmoothSteepestDescent::search_direction(), and NonSmoothSteepestDescent::search_edges_faces().
|
private |
Definition at line 184 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), and NonSmoothSteepestDescent::search_direction().
|
private |
Definition at line 191 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::get_min_estimate(), NonSmoothSteepestDescent::init_opt(), and NonSmoothSteepestDescent::NonSmoothSteepestDescent().
|
private |
Definition at line 173 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::initialize(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 174 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::initialize(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 194 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::form_PD_grammian(), NonSmoothSteepestDescent::init_opt(), and NonSmoothSteepestDescent::NonSmoothSteepestDescent().
|
private |
Definition at line 188 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::search_direction(), NonSmoothSteepestDescent::search_edges_faces(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 187 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::search_direction(), and NonSmoothSteepestDescent::search_edges_faces().
|
private |
Definition at line 165 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::compute_function(), NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::init_max_step_length(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::validity_check().
|
private |
Definition at line 168 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::optimize_vertex_positions().
|
private |
Definition at line 180 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::check_equilibrium(), NonSmoothSteepestDescent::compute_alpha(), NonSmoothSteepestDescent::compute_gradient(), NonSmoothSteepestDescent::find_active_set(), NonSmoothSteepestDescent::get_gradient_projections(), NonSmoothSteepestDescent::get_min_estimate(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 164 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::init_max_step_length(), and NonSmoothSteepestDescent::optimize_vertex_positions().
|
private |
Definition at line 179 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::init_opt(), and NonSmoothSteepestDescent::minmax_opt().
|
private |
Definition at line 185 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::search_direction(), NonSmoothSteepestDescent::search_edges_faces(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 198 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 183 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), NonSmoothSteepestDescent::optimize_vertex_positions(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 177 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::improvement_check(), and NonSmoothSteepestDescent::minmax_opt().
|
private |
Definition at line 195 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::form_PD_grammian(), and NonSmoothSteepestDescent::init_opt().
|
private |
Definition at line 192 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::minmax_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 197 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), and NonSmoothSteepestDescent::step_acceptance().
|
private |
Definition at line 182 of file includeLinks/NonSmoothSteepestDescent.hpp.
Referenced by NonSmoothSteepestDescent::cleanup(), NonSmoothSteepestDescent::init_opt(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), and NonSmoothSteepestDescent::step_acceptance().