mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-30 08:02:50 +00:00
f275ce3767b05b8ff1a75f0f8774e9be67c4b2a5
* 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
.. image:: https://raw.githubusercontent.com/JuliaFEM/JuliaFEM.jl/master/docs/logo/JuliaFEMLogo_256x256.png :target: https://github.com/JuliaFEM/JuliaFEM.jl ======== JuliaFEM ======== The JuliaFEM project develops open-source software for reliable, scalable, distributed Finite Element Method. .. image:: https://img.shields.io/github/license/JuliaFEM/Juliafem.jl.svg :target: https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md .. image:: https://badges.gitter.im/Join%20Chat.svg :target: https://gitter.im/JuliaFEM/JuliaFEM?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge .. image:: https://travis-ci.org/JuliaFEM/JuliaFEM.jl.svg?branch=master :target: https://travis-ci.org/JuliaFEM/JuliaFEM.jl .. image:: https://coveralls.io/repos/JuliaFEM/JuliaFEM.jl/badge.svg?branch=master :target: https://coveralls.io/r/JuliaFEM/JuliaFEM.jl?branch=master .. image:: http://juliafem.org/_static/notebooks-status.svg?ts=1 :target: http://juliafem.org/tutorials/index.html .. image:: http://juliafem.org/_static/doctests-status.svg?ts=1 .. image:: http://juliafem.org/_static/unittests-status.svg?ts=1 .. image:: http://juliafem.org/_static/lint-status.svg?ts=1 :target: http://juliafem.org/quality/index.html#lint-report .. image:: https://img.shields.io/github/issues/JuliaFEM/JuliaFEM.jl.svg :target: https://github.com/JuliaFEM/JuliaFEM.jl/issues Documentation: http://www.juliaFEM.org GitHub repository: https://github.com/JuliaFEM/JuliaFEM.jl IRC: #juliafem @ FreeNode, https://webchat.freenode.net/ The JuliaFEM software library is a framework that allows for the distributed processing of large Finite Element Models across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. The basic design principle is: everything is nonlinear. All physics models are nonlinear from which the linearization are made as a special cases. JuliaFEM current status: project planning Initial road map for JuliaFEM: +---------+-----------------------------+-----------------+ | version | number of degree of freedom | number of cores | +=========+=============================+=================+ | 0.1.0 | 1 000 000 | 10 | +---------+-----------------------------+-----------------+ | 0.2.0 | 10 000 000 | 100 | +---------+-----------------------------+-----------------+ | 1.0.0 | 100 000 000 | 1 000 | +---------+-----------------------------+-----------------+ | 2.0.0 | 1 000 000 000 | 10 000 | +---------+-----------------------------+-----------------+ | 3.0.0 | 10 000 000 000 | 100 000 | +---------+-----------------------------+-----------------+ We strongly believe in the test driven development as well as building on top of previous work. Thus all the new code in this project should be 100% tested. Also other people have wisdom in style as well: `The Zen of Python <https://www.python.org/dev/peps/pep-0020/>`_ | Beautiful is better than ugly. | Explicit is better than implicit. | Simple is better than complex. | Complex is better than complicated. | Flat is better than nested. | Sparse is better than dense. | Readability counts. | Errors should never pass silently. | Contributing ------------ Interested in participating? Please start by reading `CONTRIBUTING.md <https://github.com/JuliaFEM/JuliaFEM/blob/master/CONTRIBUTING.md>`_. Contributors: see `contributors <https://github.com/JuliaFEM/JuliaFEM/blob/master/contributors>`_
Languages
Julia
98%
Python
1.7%
Shell
0.3%