Skip to content
Snippets Groups Projects
Commit 57745048 authored by Dave Moxey's avatar Dave Moxey
Browse files

Merge branch 'fix/VarOpti_Sliding_Tolerances' into 'master'

Fix/VarOpti_Sliding_And_tolerances

See merge request nektar/nektar!1569
parents d7fe80bf 79636c75
No related branches found
No related tags found
No related merge requests found
......@@ -23,13 +23,13 @@ v5.6.0
- Fix misplaced " in Nektar++Config.cmake (!1742)
- Add conditional updating of elemental Mass and Laplacian matrices for LinearADR matrices (!1766)
**NekPy**
- Add binding to NekPy to check of geometry elements are valid (!1755)
- Fix PFASST I/O and pre-initialize coarse preconditioner for Parareal (!1749)
**NekMesh**
- Fix optiKind flags in VarOpti for freenodes that are on more than a single curve / surface (!1597)
- Fix VarOpti Surface Node Sliding on the CAD in 2D (!1569)
v5.5.0
------
......@@ -266,6 +266,7 @@ v5.4.0
**NekMesh**
- Changed CMake to set NEKTAR_USE_THREAD_SAFETY to ON when MeshGen is set to ON (!1546)
- Fix VarOpti Tolerances (!1569)
- Fixed a bug where MeshElement/Tetrahedron did not assign edge IDs in the constructor (!1596)
- Reduce VarOpti memory usage by removing the storage for GetFunctional in NodeOpti (!1633)
......
......@@ -100,7 +100,7 @@ protected:
}
static NekDouble gradTol()
{
return 1e-8;
return 1e-20;
}
static NekDouble alphaTol()
{
......@@ -247,7 +247,7 @@ NekDouble NodeOpti::GetFunctional(NekDouble &minJacNew, bool gradient)
{
case eLinEl:
{
const NekDouble nu = 0.4;
const NekDouble nu = 0.49;
const NekDouble mu = 1.0 / 2.0 / (1.0 + nu);
const NekDouble K = 1.0 / 3.0 / (1.0 - 2.0 * nu);
......@@ -442,7 +442,7 @@ NekDouble NodeOpti::GetFunctional(NekDouble &minJacNew, bool gradient)
case eHypEl:
{
const NekDouble nu = 0.4;
const NekDouble nu = 0.49;
const NekDouble mu = 1.0 / 2.0 / (1.0 + nu);
const NekDouble K = 1.0 / 3.0 / (1.0 - 2.0 * nu);
......
......@@ -211,6 +211,14 @@ vector<vector<NodeSharedPtr>> ProcessVarOpti::GetColouredNodes(
continue;
}
// Keep the nodes with 1 CAD Curve to the optimizable(movable)
// set
if (edge->m_n1->GetCADCurves().size() == 1 &&
edge->m_n2->GetCADCurves().size() == 1)
{
continue;
}
boundaryNodes.insert(edge->m_n1);
boundaryNodes.insert(edge->m_n2);
for (int i = 0; i < edge->m_edgeNodes.size(); i++)
......
......@@ -2,7 +2,7 @@
<test>
<description>Variational optimiser test on all tet cube/sphere</description>
<executable>NekMesh</executable>
<parameters>varopti_cube_sphere.msh varopti_cube_sphere-out.xml:xml:test -v -m varopti:hyperelastic:numthreads=2:maxiter=5:nq=4</parameters>
<parameters>varopti_cube_sphere.msh varopti_cube_sphere-out.xml:xml:test -v -m varopti:hyperelastic:maxiter=5:nq=4</parameters>
<files>
<file description="Input File">varopti_cube_sphere.msh</file>
</files>
......@@ -11,7 +11,7 @@
<regex>^.*Worst at end\s*: (-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)</regex>
<matches>
<match>
<field id="0" tolerance="2e-2">6.663593e-01</field>
<field id="0" tolerance="6e-2">5.652371e-01</field>
</match>
</matches>
</metric>
......
......@@ -2,7 +2,7 @@
<test>
<description>Variational optimiser test on a 2D all-triangle NACA0012 case</description>
<executable>NekMesh</executable>
<parameters>varopti_naca.msh varopti_naca-out.xml:xml:test -v -m varopti:linearelastic:numthreads=2:maxiter=5</parameters>
<parameters>varopti_naca.msh varopti_naca-out.xml:xml:test -v -m varopti:linearelastic:maxiter=5</parameters>
<files>
<file description="Input File">varopti_naca.msh</file>
</files>
......@@ -11,7 +11,7 @@
<regex>^.*Worst at end\s*:\s*(-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)</regex>
<matches>
<match>
<field id="0" tolerance="5e-3">8.725848e-01</field>
<field id="0" tolerance="5e-2">9.126583e-01</field>
</match>
</matches>
</metric>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment