Skip to content

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.

  1. VarOpti is not moving the nodes on the CAD ( both EdgeNodes and Vertices ) in 2D
  2. 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.

  1. Include the nodes that are boundary AND have 1 CADCurve associated to them into the Set of optimazible ( free) nodes .
  2. Revert the gradient tolerances AND the poissons ratio (hyperelastic + linearelastic formulations) to the value used in Mikes's thesis/ branch.

Implementation

  1. 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.

  1. 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:

  1. Sliding nodes - r-adaptation of NACA0012 ( see in comments for files)

MicrosoftTeams-image__4_

  1. 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.

nu = 0.4 MicrosoftTeams-image__2_

nu = 0.49 MicrosoftTeams-image__3_

Suggested reviewers

@dmoxey, @mgreen , @mlahooti

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

Merge request reports