Fix/VarOpti_Sliding_And_tolerances
Merge Request - Fix
Issue/feature addressed
Please provide a description of the problem your changes address. Be sure to link to any related items in the issue tracker.
- VarOpti is not moving the nodes on the CAD ( both EdgeNodes and Vertices ) in 2D
- VarOpti converges after 1 iteration with Residual= 0 without improving the mesh quality or untangling invalid elements ( tolerance issue)
Proposed solution
A summary of the proposed changes and how they address the issue/feature at hand. Whenever possible, describe alternatives your considered and decisions you made.
- Include the nodes that are boundary AND have 1 CADCurve associated to them into the Set of optimazible ( free) nodes .
- Revert the gradient tolerances AND the poissons ratio (hyperelastic + linearelastic formulations) to the value used in Mikes's thesis/ branch.
Implementation
- Performed in the preprocessing part of VarOpti. The choice of particular condition N=1 CAD curve is intentional to avoid moving a mesh vertex/node that is at the end of the CADCurve. If (>=1 CADCurves) this is topologically a CADCurve Vertex and should be fixed. Otherwise, the mesh node/vertex will move outside of the CAD and will destroy the mesh (Tested).
Note: A small limitation on the 3rd Party pipeline. This might create some fixed (non-optimizable) vertices in regions of proximities when the CADReconstruction module assigns N>1 CADCurves due to bounding box intersections.
- The tolerances were just reverted to the ones in the Mike's branch. The tests performed by @jingtian showed significant improvement in comparison to the master and identical mesh quality ( Scaled Jacobian histograms ) to the branch from Mike's thesis.
Tests
For the time-being qualitative tests:
- Sliding nodes - r-adaptation of NACA0012 ( see in comments for files)
- For tolerances - TBD: Full test suite needs to be added for VarOpti. (For the time-being multiple histograms on the deformed Jacobian were used to verify the improvement. Example - linear elasticity - nu from 0.4 - 0.49.
Suggested reviewers
Notes
Please add any other information that could be useful for reviewers.
Checklist
-
Functions and classes, or changes to them, are documented. -
User guide/documentation is updated. -
Changelog is updated. -
Suitable tests added for new functionality. -
Contributed code is correctly formatted. (See the contributing guidelines). -
License added to any new files. -
No extraneous files have been added (e.g. compiler output or test data files).
Edited by Kaloyan Kirilov