37 #ifndef Mesquite_VertexMover_hpp
38 #define Mesquite_VertexMover_hpp
42 #include "QualityImprover.hpp"
43 #include "PatchData.hpp"
44 #include "ObjectiveFunction.hpp"
52 class VertexMover :
public QualityImprover
87 MsqMeshEntity* elems=pd.get_element_array(err);
88 size_t num_elements=pd.num_elements();
89 msq_std::vector<Vector3D> sample_points;
91 short num_jacobian_vectors;
93 for(i=0;i<num_elements;++
i){
95 msq_std::vector<Vector3D>::iterator iter=sample_points.begin();
96 while(iter!=sample_points.end()){
97 elems[
i].compute_weighted_jacobian(pd, (*iter),
99 num_jacobian_vectors, err);
100 if(num_jacobian_vectors==2){
103 else if(num_jacobian_vectors==3){
104 if(jacobian_vectors[0]%(jacobian_vectors[1]*
105 jacobian_vectors[2])<=0.0){
118 #endif // Mesquite_VertexMover_hpp
virtual void terminate_mesh_iteration(PatchData &, MsqError &err)=0
Used to hold the error state and return it to the application.
size_t check_feasible(PatchData &pd, MsqError &err)
CHECK FEASIBLE IS NOT YET IMPLEMENTED.
virtual double loop_over_mesh(MeshSet &ms, MsqError &err)
Improves the quality of the MeshSet, calling some methods specified in a class derived from VertexMov...
NVec< 3, double > Vector3D
ObjectiveFunction * objFunc
virtual void initialize(PatchData &pd, MsqError &err)=0
virtual void optimize_vertex_positions(PatchData &pd, MsqError &err)=0
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...
virtual void initialize_mesh_iteration(PatchData &pd, MsqError &err)=0