TMOP_QuadraticLimiter, and TMOP_Integrator.
In TMOP_Integrator::GetElementEnergy, add a FIXME remark about the
computation of the weight Coefficients in physical coordinates.
* Replace the method SetLimited with a method called EnableLimiting
which takes the original nodes, n0, and a Coefficient, w0, that
muliplies the limiting term. By default the coefficient is NULL,
and limiting is disabled. The limiting epsilon is no longer used.
* Updated the mesh optimization miniapps to use the new limiting
methods; also, updated the sample runs that use limiting.
In class TMOP_Metric_007, fix a bug in the EvalW and EvalP methods.
* Add one line descriptions to all TMOP_Metric_* classes.
* Rename class TMOP_Metric_052 to TMOP_Metric_252 since the
implemented metric is not the 2D metric mu_52.
* Implement all TMOP_Metric_* classes (except 211) using the
classes InvariantsEvaluator2D and InvariantsEvaluator3D.
* Rename class TargetJacobian to TargetConstructor and make its
main method, ComputeElementTargets, a virtual method. This
makes the class extensible by derived classes - allowing other
target-matrix construction algorithms to be added by users.
* In class TargetConstructor, use more descriptive names in the
enumeration used to specify the target construction type.
* Add more doxygen documentation in class TargetConstructor.
* In class TargetConstructor, use class Geometry to obtain the
Jacobian matrices for the perfect/ideal elements, instead of
the (now removed) method ConstructIdealJ.
* In class TMOP_Integrator, always assume that a TargetConstructor
is given (the pointer cannot be NULL); for consistency with the
quality metric parameter, the TargetConstructor pointer is also
not owned by TMOP_Integrator.
* In class TMOP_Integrator, if a Coefficient is specified (with
SetCoefficient) and limiting is enabled, the coefficient only
applies to the quality metric term and not to the limiting L2
term. In the future, we can add a different coefficient that
applies to the limiting term, or add an option that controls
how the coefficient is used. For now, scaling only the quality
metric term makes more sense to me.
* In class TMOP_Integrator, simplify the implementation of its
virtual methods.
* Tweak the implementation of InterpolateTMOP_QualityMetric.
linalg/invariants.hpp.
Renamed some of the TMOP-related classes. Moved all TMOP-related
classes and their implementation to new files: fem/tmop.[ch]pp.
Update the mesh optimization miniapps {mesh,pmesh}-optimizer.cpp
with the new class names.