Commit Graph

284 Commits

Author SHA1 Message Date
Jukka Aho 6248887189 Improvements to preprocess scripts
* convert several elements to node sets in one command

* possibility to find particular node from mesh filtered by node set
2017-02-27 07:34:04 +02:00
Jukka Aho 4a471b5cb7 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 c307c1482c Testing/code coverage (#83)
Change the code coverage to green. 

* removed duplicate code

* Removed unused code

* removed unmaintained code

* DCTI + DVTI refactored

* discrete fields refactored and tested

* fields are now tested quite well.

* Removed obsolete code not used anywhere

* Element descriptions to common dictionary

* size in global const dictionary also

* Added coverage to sparse tools and removed couple unused functions

* get nonzero rows from SparseMatrixCSC

* bugfix: extending element basis now working and tested

* Removed two unused functions from elements.jl

* removed useless function

* Useless conversion

* remove elasticity assembly using ForwardDiff because it's not used anywhere'

* Added basic testing for NURBS. Fixed bug in NSolid interpolation.

* removed unused functions

* Removed some debug stuff

* renamed file

* removed field assembly posthook, i think not good idea at all

* test for nnz(K) == 0 and automatic determination of dofs

* Testing that solver is throwing error if having problems with boundary assembly

* Removed some unused options. Refactoring.

* Moved solver non-related code to elements.jl

* Removed custom exception (no need)

* unneeded postprocess code

* More tests for NURBS elements.

* Removed unfinished .mail parser

* proper use of Logging package

* also read results

* renamed test file

* create_surface_elements accepts surface name in String now

* bugfix: remove zero rows from constraint matrix after manually removing dofs from some boundary assemblies.

* New test, displacement 3d patch test

* skip displacement field in surface element splitting if not defined

* test element splitting and linear surface elements, fails.

* Bugfix: Xdmf, not XDMF

* removed nonworking tests, requires bugfix

* abaqus_read_results is not working -> bug
2017-01-30 12:28:33 +02:00
Jukka Aho 6fafad63a4 Fix FactCheck dependencies (issue #80)
- Remove some obsolete tests related to Field.
- Fixed a test checking is header information found from source files
  (was using FactCheck and commented out).
- Add header information for all files (was missing from
  materials_plasticity.jl)
2017-01-27 10:15:52 +02:00
Jukka Aho 9b4c1a4c5e Fixed multiple dispatch issues on io.jl
Related to issue #74, io.jl is no more modifying functionality of
LightXML
2017-01-21 12:32:53 +02:00
Jukka Aho c1b5d2f7ed Inceased coverage (#77)
- added Xdmf() to solver for two tests to test also creating Xdmf after solution.
2017-01-21 09:57:52 +02:00
Jukka Aho 5467fc1d66 fixed test 2017-01-09 13:21:07 +02:00
Jukka Aho 05b31a14ee removed obsolete test files 2017-01-09 11:26:26 +02:00
Jukka Aho 19551f85ff fixed test 2017-01-09 09:32:15 +02:00
Jukka Aho 9a382d9f7d possibility to manually remove dofs from problems by adding dof number to problem.assembly.removed_dofs vector 2017-01-09 08:56:31 +02:00
Jukka Aho 8953ca73dc fixed test 2017-01-06 07:24:58 +02:00
Jukka Aho 5a1a566826 fixed test 2017-01-06 07:22:09 +02:00
Jukka Aho a1c6c8753a io tests 2017-01-05 11:29:29 +02:00
Jukka Aho 4a12cbfb41 dict fields 2017-01-05 11:03:19 +02:00
Jukka Aho dc7c770c6e no id in constructor 2017-01-05 09:32:43 +02:00
Jukka Aho 6fb491ed66 fixed element initialization 2017-01-05 09:30:41 +02:00
Jukka Aho 070c64ff89 fixed 2d finite sliding contact for julia 0.5 2017-01-05 09:09:11 +02:00
Jukka Aho 858740cec7 SparseVectorCOO 2017-01-05 09:08:32 +02:00
Jukka Aho f018fa564d connectivity information needs now to be given every element 2017-01-05 07:22:15 +02:00
Jukka Aho 1a23969ba7 removed obsolete code 2017-01-05 07:20:17 +02:00
Jukka Aho 868db9ee2e removed null space related code as obsolete 2017-01-05 07:14:54 +02:00
Jukka Aho 4b5e7a204e added license string. this is not a test (tests missing) 2017-01-05 05:32:13 +02:00
Frondelius 62fbe8c9f4 Improving test coverage: test_lagrange.jl fixing copy-paste 2017-01-03 22:38:32 +02:00
Frondelius a8005ce78d Improving test coverage: test_lagrange.jl 2017-01-03 22:11:27 +02:00
Frondelius 6a0a7f76ff Improving test coverage: test_preprocess.jl 2017-01-03 18:30:17 +02:00
Frondelius f15e6a701f Improving test coverage: test_preprocess_abaqus_reader.jl 2017-01-03 17:11:10 +02:00
Jukka Aho 306edbcacd added test for zero eigenvalue model (no dirichlet boundaries defined) 2016-12-12 07:40:18 +02:00
Jukka Aho 41c321d961 test stress tensor at integration points compared to Ca solution 2016-12-02 10:09:27 +02:00
Jukka Aho e4a65c0e4e test stress extrapolation to nodes 2016-12-01 11:14:32 +02:00
Jukka Aho d9daf1776f first attempts to verify stress calculation to nodes 2016-11-30 16:19:40 +02:00
Jukka Aho 9ee2bb3b66 fixed whitespace bug in reading *NODE block 2016-11-28 10:09:48 +02:00
Tero Frondelius 83c7d60dc6 try catch to ignore *ELSET creation from existing sets 2016-11-17 21:35:40 +02:00
Tero Frondelius 6899817215 missing testdata 2016-11-17 20:40:02 +02:00
Tero Frondelius 4c8c66b8da Fixed abaqus_read_mesh() 1.0E+00 problem 2016-11-17 19:43:20 +02:00
Tero Frondelius 397a34e317 fixing the tests after last update 2016-11-17 18:54:08 +02:00
Jukka Aho a8ff9f50f7 v0.5 fixes 2016-11-15 22:01:00 +02:00
Jukka Aho 50187466f4 fixed deprecation warnings for 0.5 2016-11-13 13:24:08 +02:00
Olli Väinölä e384824f49 Ideal plasticity converged, both 2D and 3D 2016-10-28 15:46:04 +03:00
Tero Frondelius 603616f92f create_surface_elements() moved to abaqus.jl and tested 2016-10-26 23:10:38 +03:00
Tero Frondelius 7e151db3e9 parse_section() fixed to ignore parameters order 2016-10-26 22:28:49 +03:00
Tero Frondelius f28bad7f7f test for 1.0E1 format added for abaqus reader 2016-10-26 21:27:17 +03:00
Olli a7bdc6e5b4 fixed 3d, since there is no dev field anymore 2016-10-09 14:51:06 +03:00
Olli c4756e90df added parameters to ip & element fields 2016-10-09 13:52:21 +03:00
Olli f156a5e79e 3d formulation still not converging 2016-10-04 08:27:54 +03:00
Olli d82ea7cba9 Added 3D formulation, no convergence yet 2016-10-03 08:47:20 +03:00
Olli 9749778420 initial dev for ideal plastic material 2016-10-02 17:34:05 +03:00
Jukka Aho c79b4d5514 updated contact codes 2016-10-01 13:37:15 +03:00
Jukka Aho 9b1cc3e134 minor changes to 2d contact formulation 2016-09-12 03:39:33 +03:00
Jukka Aho 45f605bfc7 new style dict field, xdmf improvements 2016-08-04 13:15:19 +03:00
Jukka Aho 9583f1ae17 better xdmf support 2016-08-02 02:51:32 +03:00