Commit Graph
22 Commits
Author SHA1 Message Date
Tzanio 1a69dcff78 Replaced FIXMEs with TODO or NOTE 2019-05-24 14:23:39 -07:00
Tzanio Kolev 4987e1132a Merge pull request #664 from mfem/tmop-lim-dev
TMOP extension for limiting [tmop-lim-dev]
2018-12-17 07:25:51 -08:00
Vladimir Tomov 41205ed92f Moved the normalization computations inside TMOP_Integrator. 2018-12-12 16:35:36 -08:00
Veselin Dobrev 5b8ae39c88 Some small tweaks in the classes TMOP_LimiterFunction,
TMOP_QuadraticLimiter, and TMOP_Integrator.

In TMOP_Integrator::GetElementEnergy, add a FIXME remark about the
computation of the weight Coefficients in physical coordinates.
2018-12-06 21:51:29 -08:00
Vladimir Tomov da43f83a1d Merge branch 'tmop-skew-aspratio' of github.com:mfem/mfem into tmop-skew-aspratio 2018-12-06 19:01:19 -08:00
Vladimir Tomov d2f4e745e2 Small edits. 2018-12-06 19:00:36 -08:00
Tzanio 56059b4672 make style 2018-11-28 17:29:31 -08:00
Vladimir Tomov 4e22e0f772 Legacy version of EnableLimiting to maintain the old interface.
It will be removed after apps are updated.
2018-11-28 11:32:00 -08:00
Vladimir Tomov e8d7299091 Added space-dependent physical distance to the limiting interface.
(this changes the interface).
2018-11-20 18:23:24 -08:00
Vladimir Tomov a2ace42dc4 3D skew and aspect ratio. 2018-11-12 16:26:00 -08:00
Vladimir Tomov d13ea5fe0d Added skew-only and aspect_ratio-only metrics. 2018-11-09 19:31:01 -08:00
Tzanio 0c31381de8 Mentioned in CHANGELOG 2018-11-06 17:42:56 -08:00
Vladimir Tomov 7277e0ad01 Option for user-defined limiting terms. 2018-11-06 16:52:56 -08:00
Veselin Dobrev 6b572a01d4 Address a few more warnings and feedback from the PR (#379). 2017-12-10 19:43:56 -08:00
Tzanio 17cdb1933d Switching to version 3.3.2 in a few more files.
Adding ex18 and ex18p to .gitignore.

Few other small updates.

[skip ci]
2017-11-03 15:15:32 -07:00
Veselin Dobrev 4691ac1539 In tmop.[ch]pp, remove the old implementation of the matrix invariants. 2017-10-24 12:33:50 -07:00
Veselin Dobrev a39db9008a In class TMOP_Integrator, change the way limiting is handled:
* 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.
2017-10-20 15:44:45 -07:00
Veselin Dobrev 34b3b0f5d5 Various additions and changes in fem/tmop.[ch]pp:
* 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.
2017-10-18 19:38:21 -07:00
Vladimir Tomov a67130b729 Used the Invariants classes for metric 77.
Added additional flexibility in the RelaxedNewtonSolver.
2017-10-12 19:00:30 -07:00
Vladimir Tomov 05cf954768 Added more sample runs, fixed a bug in mu77. 2017-10-12 00:12:39 -07:00
Veselin Dobrev a34c7d9d12 A few small tweaks in names and comments.
[skip ci]
2017-10-11 20:40:18 -07:00
Veselin Dobrev 4912dad822 Moved the classes InvariantsEvaluator{2D,3D} into a separate file,
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.
2017-10-11 19:53:29 -07:00