Commit Graph

35 Commits

Author SHA1 Message Date
Andreas Dörfler d50f5fadf0 Add Pyr5 elements, including med support and tests 2017-05-28 00:45:19 +02:00
Jukka Aho f275ce3767 Bug/mortar discretization (#88)
* new mortar segmentation tests which are failing

* test_problems_mortar_3d.jl: first test (Tet4) pass

* solvers.jl: diagonal of A is now properly filled, if that option is used. Another option is to remove zero rows from matrix system, which is on by default

* problems_mortar.jl: added new function diagnose_interface to calculate quantities from interface hopefully revealing bugs in calculation

* problems_mortar_3d.jl: added docstring for check_orientation! and removed flooding debug messages not helping to debug anything

* solvers.jl: Another way to solve Ax = b

* Refactored code to make implementation of Tri6 assemble! easier

* Patch test with linear Tet4 elements and quadratic Tet10 elements pass

When using quadratic elements, in polygon clipping algorithm element is divided to linear sub-elements as proposed in [Puso2008]. Interpolation of Lagrange multiplier space is done using quadratic shape functions.

References
----------

[Puso2008] Puso, Michael A., T. A. Laursen, and Jerome Solberg. "A segment-to-segment mortar contact method for quadratic elements and large deformations." Computer Methods in Applied Mechanics and Engineering 197.6 (2008): 555-566.

* increased coverage by adding diagnose_interface

* test using dual basis, failing for unknown reason

* Fixed dual basis construction for Mortar/Tet4

The coefficient matrix Ae for one particular slave element e is the result performing numerical integration on *all* integration cells associated with this element [Popp2013]. Ae cannot be calculated "cell-wise" like it was done before. Now patch test will pass also using `interface.properties.dual_basis = true` option. Partially integrated slave elements are supported as well.

References
----------

[Popp2013] Popp, Alexander, et al. "Improved robustness and consistency of 3D contact algorithms based on a dual mortar approach." Computer Methods in Applied Mechanics and Engineering 264 (2013): 67-80.

* Minor modifications to preprocess.jl

- removed two functions which are unimplemented (but maybe planned in future)
- added function create_node_set_from_element_set!, which can be used, like name suggests, to create a node set from nodes belonging to some set of elements.

* solvers.jl: now prints a list of overconstrained nodes which can be easily copy-pasted to problem.assembly.removed_dofs list to solver overconstrained situation manually

* Increase code coverage

Added a new test which tests dual basis 3d mortar + adjust option when using Tet4 in elasticity problem.

* Tet10 + Dual basis still failing, others are working

* mortar 3d low level tests

* linear surface element projection tests pass

* Introduced basis transform constant alpha

Tet10 + dual basis patch test still failing, but single element low level routine tests gives expected results with alpha=0.2

* added new integration rule FPG12 for triangular elements

* added drop_tolerance option to remove very small values from constraint matrices

* Introduced a basis transform matrix T

Constructing bi-orthogonal basis for quadratic surfaces is ill-conditioned. By doing a basis transform N' = N*T for slave side displacement vector it's possible to construct a bi-orthogonal basis in a same way than with linear elements. Setting alpha=0.2 ensures that quadratic basis functions are strictly positive in practical cases.

* fix 3d clipping test routine, accepts only 3d vertices

* dropped number of integration poitns from 12 to 7 in quadratic mortar surfaces intrestingly gives more accurate results, maybe something numerical error in FPG12 integration rule..?

* added two displacement patch tests + output writing for all cases

* %s/Int64/Int/g

* Changed test data location

* Fine tuning of logging levels
2017-02-25 18:40:14 +02:00
Jukka Aho 3be1769e21 more integration rules for wedge elements 2016-12-01 11:14:13 +02:00
Jukka Aho a4671f1ebd added wedge15 element + integration rules 2016-11-30 16:18:57 +02:00
Jukka Aho e64ed7f6a3 v0.5 fixes 2016-11-15 22:01:00 +02:00
Jukka Aho 9b1b651965 fixed bug in integration rule of tet10 2016-11-05 18:27:39 +02:00
Jukka Aho c935725d3a julia v0.5 compatibility. test -> testing. new elements tri7 and wedge6. abaqus inp reading. more integration rules. 2016-07-10 04:26:21 +03:00
Jukka Aho b070f21aab heat solver tests etc 2016-07-03 05:01:18 +03:00
Jukka Aho 778c167bba refactor contact and tests 2016-06-25 04:12:53 +03:00
Jukka Aho 67aeddb868 modal solver + tie contact works now. dirichlet boundary and mpcs are eliminated properly before solution to get reduced system 2016-06-22 01:39:28 +03:00
Jukka Aho a0b4ffbf34 first version of modal analysis for natural frequencies 2016-06-17 02:10:17 +03:00
Jukka Aho 07812f3bc7 nurbs elements 2016-06-01 20:43:25 +03:00
Jukka Aho d606bde168 integration points 2016-05-25 22:33:47 +03:00
Jukka Aho 9e33d36d0d med node ordering 2016-05-24 19:05:25 +03:00
Jukka Aho 558adc1d45 updated integration points 2016-05-24 08:29:24 +03:00
Jukka Aho 24656eb243 most important tests pass now 2016-05-22 17:00:01 +03:00
Jukka Aho d6dea85b9d some tests pass now 2016-05-22 02:34:38 +03:00
Jukka Aho ee7ea15587 rewrite elements 2016-05-22 00:22:17 +03:00
Jukka Aho d20d2b3aaf joopa joo. 2016-02-26 18:18:00 +02:00
Jukka Aho 86f30f96f8 fixes & integration rules 2016-02-06 21:08:35 +02:00
Jukka Aho 5c5adff939 fixed weighted gap in 3d problems + some small fixes. nt formulation 2016-02-06 15:29:35 +02:00
Jukka Aho 69ebba5e11 more integration rules 2016-02-05 22:22:40 +02:00
Jukka Aho 7d1ece1368 mortar tests, bug finding 2015-12-17 15:33:51 +02:00
Jukka Aho 3242241cd4 linear elasticity. looks we are having problems with results in 3d 2015-12-13 00:10:46 +02:00
Jukka Aho d960ec5824 3d mortar assembly tests + fixes detecting unique with tol. 2015-12-10 23:00:05 +02:00
Jukka Aho a3c84680a3 mortar assembly for 3d problems 2015-12-10 17:40:10 +02:00
Jukka Aho 8c3cc04b69 petsc interface 2015-12-05 10:58:01 +02:00
Jukka Aho d9ffa21a71 elasticity solver example updated 2015-11-28 14:06:12 +02:00
Jukka Aho ef667e8f34 removed Equation type from code 2015-11-27 10:10:00 +02:00
Jukka Aho 3ad23c6f0e minor modifications to abaqus reader 2015-11-25 10:08:24 +02:00
Jukka Aho 66b9ecea92 2d tie contact working. 2015-11-24 03:06:56 +02:00
Jukka Aho 9e9bceecff 2d mortar 2015-11-18 01:19:04 +02:00
Jukka Aho 6f8b403019 updated developers guide + tests 2015-11-11 00:54:19 +02:00
Jukka Aho 12c0f60af9 new tutorial about material models. 2015-11-05 10:20:00 +02:00
Jukka Aho aba63bb44c tutorial notebook working again 2015-10-27 06:37:58 +02:00