#include <VertexMover.hpp>
Public Member Functions | |
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 Attributes | |
ObjectiveFunction * | objFunc |
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 } |
Base class for all Vertex Movers.
Definition at line 52 of file includeLinks/VertexMover.hpp.
|
protected |
Definition at line 45 of file QualityImprover/VertexMover/VertexMover.cpp.
References VertexMover::objFunc.
|
inlinevirtual |
Definition at line 58 of file includeLinks/VertexMover.hpp.
|
protected |
|
inlinevirtual |
Definition at line 58 of file src/QualityImprover/VertexMover/VertexMover.hpp.
CHECK FEASIBLE IS NOT YET IMPLEMENTED.
Takes a PatchData object (by reference) and returns whether the patch is within the feasible region, 0, or outside the region, 1.
Definition at line 85 of file includeLinks/VertexMover.hpp.
References MsqMeshEntity::compute_weighted_jacobian(), QualityMetric::ELEMENT_VERTICES, PatchData::get_element_array(), MsqMeshEntity::get_sample_points(), i, and PatchData::num_elements().
CHECK FEASIBLE IS NOT YET IMPLEMENTED.
|
protectedpure virtual |
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, ConjugateGradient, ConjugateGradient, SteepestDescent, SteepestDescent, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
|
protectedpure virtual |
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, ConjugateGradient, ConjugateGradient, SteepestDescent, SteepestDescent, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Referenced by VertexMover::loop_over_mesh().
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Referenced by VertexMover::loop_over_mesh().
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Referenced by VertexMover::loop_over_mesh().
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
This is the "run" function of PatchDataUser. It can do anything really.
Implements QualityImprover.
Improves the quality of the MeshSet, calling some methods specified in a class derived from VertexMover.
const | MeshSet &: this MeshSet is looped over. Only the mutable data members are changed (such as currentVertexInd). |
Implements QualityImprover.
Definition at line 118 of file QualityImprover/VertexMover/VertexMover.cpp.
References TerminationCriterion::accumulate_outer(), TerminationCriterion::accumulate_patch(), VertexMover::cleanup(), TerminationCriterion::cleanup(), TerminationCriterion::cull_vertices(), PatchDataUser::get_global_patch(), QualityImprover::get_inner_termination_criterion(), MeshSet::get_next_patch(), QualityImprover::get_outer_termination_criterion(), PatchDataUser::get_patch_type(), PatchData::GLOBAL_PATCH, VertexMover::initialize(), VertexMover::initialize_mesh_iteration(), MsqError::INVALID_STATE, MSQ_CHKERR, MSQ_SETERR, VertexMover::objFunc, VertexMover::optimize_vertex_positions(), MeshSet::reset(), TerminationCriterion::reset_inner(), TerminationCriterion::reset_outer(), TerminationCriterion::reset_patch(), TerminationCriterion::set_debug_output_level(), QualityImprover::set_mesh_set(), TerminationCriterion::terminate(), VertexMover::terminate_mesh_iteration(), and PatchData::update_mesh().
Referenced by ShapeImprovementWrapper::run_instructions().
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, SteepestDescent, SteepestDescent, ConjugateGradient, ConjugateGradient, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Referenced by VertexMover::loop_over_mesh().
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, ConjugateGradient, SteepestDescent, ConjugateGradient, SteepestDescent, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Implemented in NonSmoothSteepestDescent, NonSmoothSteepestDescent, FeasibleNewton, FeasibleNewton, ConjugateGradient, SteepestDescent, ConjugateGradient, SteepestDescent, LaplacianSmoother, Randomize, LaplacianSmoother, Randomize, SmartLaplacianSmoother, SmartLaplacianSmoother, NullImprover, and NullImprover.
Referenced by VertexMover::loop_over_mesh().
|
protected |
Definition at line 77 of file includeLinks/VertexMover.hpp.
Referenced by NonSmoothSteepestDescent::compute_function(), NonSmoothSteepestDescent::compute_gradient(), ConjugateGradient::ConjugateGradient(), FeasibleNewton::FeasibleNewton(), ConjugateGradient::get_step(), LaplacianSmoother::LaplacianSmoother(), VertexMover::loop_over_mesh(), NonSmoothSteepestDescent::NonSmoothSteepestDescent(), SmartLaplacianSmoother::optimize_vertex_positions(), ConjugateGradient::optimize_vertex_positions(), SteepestDescent::optimize_vertex_positions(), FeasibleNewton::optimize_vertex_positions(), SmartLaplacianSmoother::SmartLaplacianSmoother(), SteepestDescent::SteepestDescent(), VertexMover::VertexMover(), and LaplacianSmoother::~LaplacianSmoother().