commit:2020:03_19
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
commit:2020:03_19 [2020/03/19 11:54] – created laruelle | commit:2020:03_19 [2020/03/20 10:13] – laruelle | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== Commit Description ===== | ===== Commit Description ===== | ||
- | In this commit I implemented a new type of Interaction " | + | In this commit I implemented a new type of Interaction " |
===== Initial Goal ===== | ===== Initial Goal ===== | ||
Line 27: | Line 27: | ||
{{: | {{: | ||
- | {{: | + | {{: |
**PointOnCurveLagMult2DElement** | **PointOnCurveLagMult2DElement** | ||
Line 39: | Line 39: | ||
**EqualityDofConstraintLagMult2DElement** | **EqualityDofConstraintLagMult2DElement** | ||
- | This element is the recration | + | This element is the recreation |
- | {{: | + | {{: |
- | {{: | + | {{: |
===== ConstainerLine Object===== | ===== ConstainerLine Object===== | ||
- | As stated before, I added a new type of geometry Object " | + | As stated before, I added a new type of geometry Object " |
+ | |||
+ | Remark: | ||
+ | The topology link between curves and sides is wrong for all ContainerLines. I created a function " | ||
===== Tests ===== | ===== Tests ===== | ||
I Added a series of tests in apps.lagMult to test the new elements. | I Added a series of tests in apps.lagMult to test the new elements. | ||
- | **PointOnCurve** | ||
+ | **DraggingPointOnCurve and PointOnCurve** | ||
+ | First, I reproduced a test that was using the old implementation " | ||
+ | {{: | ||
+ | |||
+ | **Simple Shear** | ||
+ | |||
+ | Secondly I created a new test " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | On those two cases I created both a " | ||
+ | |||
+ | **Case 1**: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Case 2**: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | One can see that as expected, the two elements give the same result when the displacement of the middle node is fully imposed (case 2). However, in case 1 where the displacement of the middle node is not imposed only the " | ||
**EqualityDofConstraint** | **EqualityDofConstraint** | ||
+ | I recreated the apps.qs.equalityDofConstraint.py test using " | ||
- | ===== Added [a] / deleted [d] / modified [m] / renamed [r] files ====== | + | {{: |
+ | |||
+ | {{: | ||
+ | |||
+ | One can see that the results using equalityDofConstraint or the Lagrange Multipliers are exactly the same. There is however a slight increase in CPU (+12% Real CPU) and memory (+7%). Moreover the DSSolver was used in both cases because the Default Skyline had troubles with the added 0 pivot resulting from the addition of the Lagrange Multiplier. No other study of the influence of the solver has been done so far but this issue needs to be addressed in the future. | ||
+ | |||
+ | Another test using equalityDofConstraint was recreated using Lagrange Multipliers, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Finally, a last test was added " | ||
+ | |||
+ | The test contains both the classical fixation(right) and the fixation using equalityDofConstraintLagMult2DElement (Left). The results are the same as expected. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Future dev ===== | ||
+ | |||
+ | This commit is a preliminary to the implementation of many more LagMultInteractions. The extension to 3D elements will come soon (already implemented but not tested), then will come the extension to Thermal. A lot of other relations between DoFs could be created using LagMultElements and more types of elements will be added in the future. A study of the influence of the lagrange multiplier DoFs on the residual still needs to be done as well as looking at the behavior in dynamic schemes. | ||
+ | |||
+ | ===== Added [a] / deleted [d] / renamed [r] files ====== | ||
====Code: | ====Code: | ||
< | < | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtElements/ | ||
+ | [a] mtGeo/ | ||
+ | [a] mtGeo/ | ||
+ | [a] mtGeo/ | ||
+ | [a] mtGeo/ | ||
+ | [a] mtGeo/ | ||
+ | [a] mtGeo/ | ||
</ | </ | ||
====Tests: | ====Tests: | ||
< | < | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | [a] apps/ | ||
+ | |||
</ | </ | ||
--- // | --- // |