37 #include "PatchData.hpp"
38 #include "MsqTimer.hpp"
39 using namespace Mesquite;
void set_gradient_type(GRADIENT_TYPE grad)
Set gradType to either NUMERICAL_GRADIENT or ANALYTICAL_GRADIENT.
#define MSQ_ERRZERO(err)
Return zero/NULL on error.
void set_quality_metric(QualityMetric *qm)
Set the value of qMetric.
Used to hold the error state and return it to the application.
virtual msq_std::list< QualityMetric * > get_quality_metric_list()
Returns the QualityMetric list assossiated with objFunc.
bool evaluate(PatchData &patch, double &fval, MsqError &err)
Vector3D is the object that effeciently stores information about about three-deminsional vectors...
every differentiable function should have an analytical gradient implemented.
QualityMetric * get_quality_metric()
virtual msq_std::list< QualityMetric * > get_quality_metric_list()
CompositeOFScalarAdd(double, ObjectiveFunction *)
#define MSQ_CHKERR(err)
Mesquite's Error Checking macro.
bool compute_gradient(PatchData &patch, Vector3D *const &grad, double &OF_val, MsqError &err, size_t array_size=0)
Calls either compute_numerical_gradient or compute_analytical_gradient depending on the value of grad...
void set_negate_flag(int neg)
Set the value of ObjectiveFunction's negateFlag. Unless composite, concrete ObjectiveFunctions should...
virtual ~CompositeOFScalarAdd()
ObjectiveFunction * objFunc
#define MSQ_FUNCTION_TIMER(NAME)
bool compute_analytical_gradient(PatchData &patch, Vector3D *const &grad, double &OF_val, MsqError &err, size_t array_size)
Base class for concrete Objective Functions ObjectiveFunction contains a pointer to a QualityMetric...
virtual bool concrete_evaluate(PatchData &patch, double &fval, MsqError &err)