https://github.com/JuliaFEM/JuliaFEM.jl

sort by:
Revision Author Date Message Commit Date
3e8fb60 remove matplotlib dependency matplotlib cannot be installed during the generation of documentation, ssl error. Use static images in documentation instead of automatically generated ones. 13 November 2017, 09:48:17 UTC
24a4e34 add FEMBase.jl to REQUIRE 13 November 2017, 09:48:17 UTC
1693aa3 Moved core functionality to FEMBase Core functionality is moved to base package called FEMBase.jl. The aim is that when developing new elements, solvers, materials and so on, user only imports FEMBase.jl and uses the functionality there. JuliaFEM.jl is a sort of "metapackage" collecting together all the packages and features can be programmed in smaller packages focusing only on one thing. This structure makes it attractive to contribute smaller amount of code e.g. in the form of thesis. Moreover, FEMBase.jl is under 2000 lines of code, which will be very clearly documented thus everyone can understand the basic concepts behing JuliaFEM easily. 13 November 2017, 09:48:17 UTC
d7bdb83 Update README.md Add DOI for JuliaFEM v0.3.3. 23 August 2017, 13:00:14 UTC
6e46769 Fix documentation Update documentation of several functions to match documentation guide. 23 August 2017, 12:53:01 UTC
2bb66a9 Special handling of constant metric Tet10 Mass matrix can be analytically solved if Tet10 metric is constant, i.e. the midnodes are in the midpoint of corner nodes. This should increase assembling speed of mass matrix. 23 August 2017, 12:09:02 UTC
c7bab3b Update README.md 21 August 2017, 15:00:09 UTC
402ad55 README.rst -> README.md, we prefer Markdown 21 August 2017, 15:00:09 UTC
09f1a21 remove CONTRIBUTING.rst, new contributing guide is in juliafem.org 21 August 2017, 15:00:09 UTC
3f433b9 Add module Abaqus back to code Abaqus module is added back to code into `deprecations.jl` to make code in seminar paper run on 0.3.3. 21 August 2017, 07:05:32 UTC
bce05b9 New test for Tet10 mass matrix 20 August 2017, 17:51:00 UTC
25d5907 Fix test of zero eigenmodes A better known example. 20 August 2017, 17:51:00 UTC
f70209f Deprecate assemble!(problem, time, Val{:mass_matrix}) Use function assemble_mass_matrix!(problem, time) 20 August 2017, 17:51:00 UTC
5f6cdb8 Improve performance of mass matrix assembly * Avoid unnecessary memory allocations. * Decrease integration order. 20 August 2017, 17:51:00 UTC
2c08efe Increase performance of writing results to Xdmf 20 August 2017, 14:03:21 UTC
27f0a37 Calculate displacement gradient using FEMBasis 20 August 2017, 11:49:42 UTC
a08a928 Eliminate Dirichlet boundary conditions differently Slicing is very expensive operation on sparse matrices. Avoid slicing by calculating matrix product `K_red = C1*K*C1`, where C1 is diagonal matrix. This should be much cheaper. 20 August 2017, 09:13:12 UTC
6e03687 Use global timer to measure performance This makes syntax a little bit easier. Also, measure more accurately performance of modal solver under investigation. 19 August 2017, 10:30:01 UTC
b72db93 Test group_by_element_type 18 August 2017, 21:01:47 UTC
e839c60 Preallocate matrices in Elasticity problem Now style is to assemble all same kind/dimension elements at same time in one function call, so it's possible to allocate all necessary matrices only one time. 18 August 2017, 20:27:26 UTC
90fd63f New function group_by_element_type Function groups a list of elements to several lists, where each list contains elements of particular type. 18 August 2017, 17:15:45 UTC
115b621 Fix deprecation warnings when using Julia 0.6.0 18 August 2017, 14:45:52 UTC
bec6642 Assemble several elements at a time Now assemble! takes a vector of elements as input. This makes it possible to preallocate memory for common matrices making code super fast. 17 August 2017, 14:49:39 UTC
b1cf7ea Implement new function create_nodal_elements This function can be used to create elements from node set defined in mesh. Resulting elements are of type Poi1, that is, they don't have any volume but it's still possible to add boundary conditions to them which are then enforced in discrete sense. 17 August 2017, 12:53:20 UTC
741bb8d Fix test Now both JuliaFEM and JuliaFEM.Preprocess export add_elements! and it must be spesifically pointed out which one is used in test. 16 August 2017, 14:20:55 UTC
683c0a0 Implement new function add_elements! Add new elements to the problem. 16 August 2017, 14:20:55 UTC
8ca459f Remove functions used rarely A new problem can be defined with 8(!) different styles. Let's remove the ones not used often. 16 August 2017, 13:57:56 UTC
2ffe158 Templating data type of Field Use template in type Field to make type stabile code. This should fix problems related to type stability. 15 August 2017, 21:00:03 UTC
0ec0b8d New test 15 August 2017, 12:49:50 UTC
7a827e0 Fix return types for fields not defined Problem arises typically when boundary condition is created using "nodal" elements of type Poi1, but forget to define geometry and ```solvers("geometry", 0.0)``` fails in Xdmf update function. Fixed. 15 August 2017, 12:49:50 UTC
938b624 use FEMBasis / BasisInfo structure Calculate basic element info using BasisInfo 14 August 2017, 18:20:44 UTC
c422e14 add *.mem and *.cov to .gitignore 14 August 2017, 17:41:16 UTC
fa52f5f Set up entry point for element assembly From here we can preallocate matrices to improve efficiency of code. 14 August 2017, 15:26:37 UTC
36a726f Change coords field type from Point to Tuple Change to Tuple, Array is allocating memory. 14 August 2017, 14:10:02 UTC
d338060 Separate problems_elasticity.jl Have separate file problems_elasticity_2d.jl for plane stress, plane strain, axisymmetric etc. problems. 13 August 2017, 19:49:05 UTC
541dcff Remove obsolete code from heat assembly Postprocess-function is deprecated and not used anywhere. 13 August 2017, 19:45:11 UTC
197a603 Remove needless stuff from postprocess_utils.jl Not needed in core code. 13 August 2017, 19:28:13 UTC
8c955d2 Add another loop to assembly procedure Yet another loop, but this way we can preallocate matrices when constructiong local matrices of elements with same dimensions (which is the case in practice) 13 August 2017, 19:16:53 UTC
dc75cfd use TimerOutsputs to measure performance 13 August 2017, 11:37:44 UTC
6fcba92 add simple usage example 05 August 2017, 12:07:56 UTC
0bf9811 basic doc + @autodoc functions 05 August 2017, 12:07:56 UTC
d42232d Add new method to set properties for problem ``` update!(body.properties, "a" => "b", "c" => "d") ``` Usage example is shown in `test_elasticity_2d_linear_with_surface_load.jl`. 05 August 2017, 11:42:13 UTC
5731d59 Cleanup of obsolete files A lot of old files from old documentation systems etc. is in package. These are now removed or moved. Old notebooks are in docs/tutorials. This PR closes issue #124. 05 August 2017, 09:08:46 UTC
fffb007 Calculate shape functions using FEMBasis.jl A lot of code is moved to FEMBasis.jl regarding calculating basis / shape functions of finite elements. * add FEMBasis to REQUIRE * remove obsolete files * remove obsolete test files * make integration point iterable * loosen type definitions * get length of element rather from basis than connectivity * calculate midpoint of reference element * wrong input argument to eval_basis! fixed 05 August 2017, 09:03:05 UTC
dcd24e8 Use @__DIR__ instead of Pkg.dir this allows installing and loading the package from elsewhere 05 August 2017, 09:02:00 UTC
3cc43fa separate optomechanical experiments to own package 04 August 2017, 19:29:25 UTC
419edd9 add package dependency AsterReader.jl 03 August 2017, 18:06:55 UTC
19e89d4 add package dependency FEMQuad.jl 03 August 2017, 17:29:19 UTC
71f878c AbaqusReader.jl tagged, added to REQUIRE 01 August 2017, 22:30:32 UTC
250d454 use AsterReader.jl (#136) Functions used to read Code Aster file format are now in separate package AsterReader.jl 29 July 2017, 10:57:27 UTC
0ef5f61 Move Abaqus-related functions to own file (#137) 29 July 2017, 07:51:19 UTC
95d4eac Use FEMQuad.jl to calculate quadrature rules for elements (#134) 23 July 2017, 15:42:04 UTC
d7eb613 Change README link to new CONTRIBUTING.rst (#132) 22 July 2017, 14:24:10 UTC
c977a01 Use PkgTestSuite for CI (#131) This standardizes the CI process between JuliaFEM packages 21 July 2017, 13:28:03 UTC
ff3317e move cloning of AbaqusReader.jl from .travis to build/deps.jl (#130) 21 July 2017, 12:57:46 UTC
80b0db0 REQUIRE: change julia 0.5 -> 0.6 (#129) 21 July 2017, 08:08:17 UTC
ef507dc Use package AbaqusReader.jl (#127) Source code related to read and parse ABAQUS .inp files is now living in it's own repository `AbaqusReader.jl` and in this commit we cleanup the same files from this repository. - add AbaqusReader to .travis.yml because it's not registered package yet - initialize Mesh from AbaqusReader.jl dict - remove ABAQUS tests and files moved to AbaqusReader.jl - remove references to old module Abaqus - move ABAQUS code to preprocess.jl (what is left) - close issue #122 - close issue #55 20 July 2017, 21:40:52 UTC
fceb064 Make code 0.6 compatible (#128) * running v0.6 conversion code proposed by @ovainola in #108. * change travis so that build is done using 0.6 * documentation is build from 0.6 * fix most of deprecation warnings * fix test to pass 0.6 20 July 2017, 17:46:57 UTC
659da94 Deploy documentation from 0.5 build 20 July 2017, 14:17:12 UTC
bd965c4 Measure testing time for each test file separately (#126) Uses TimerOutputs. 20 July 2017, 14:11:37 UTC
97da438 add CheckHeader and CheckTabs (#125) * add `CheckHeader.jl` and `CheckTabs.jl` to `travis.yml` * fix tab -> 4 spaces 20 July 2017, 14:10:15 UTC
d56010f use version number instead of release in .travis.yml (#109) release will change over time, but your REQUIRE file says this package supports julia 0.5 so it should continue to be tested 20 July 2017, 13:04:21 UTC
8a92b45 Set up documentation + lint (#121) - remove some automatically generated stuff not should even be in repository - set up lint + Documents.jl in same way it is defined in freshly started projects - add lint + doctest to after_success so that build pass, these needs to be fixed later - build is failing on nightly (0.7) but it's ok for release (0.5.2) - Documenter.jl supports doctests, so this closes least #23 - build system is now on Travis-CI completely, so this closes also #68 19 July 2017, 04:34:38 UTC
aff194b Merge pull request #112 from JuliaFEM/fix/aster_preprocess Reading Code Aster med mesh properly 30 May 2017, 04:34:34 UTC
139ef1a Reading Code Aster med mesh properly - MED file actually supports multiple element sets or node sets for single element/node. This is now implemented. - Minor cleanup of code, etc.. - Fixes issue #111. 30 May 2017, 03:26:12 UTC
1f7b534 Merge pull request #110 from AndiMD/Pyr5 Pyr5 element implemented. 29 May 2017, 05:03:39 UTC
35e60b9 Add Pyr5 elements, including med support and tests 27 May 2017, 22:45:19 UTC
b95e03d Merge pull request #106 from JuliaFEM/feature/TimerOutputs.jl Use TimerOutputs.jl to measure time and memory performance 11 April 2017, 14:05:54 UTC
6425096 Use TimerOUtputs.jl to measure time and memory performance - Added TimerOutputs.jl to REQUIRE file - JuliaFEM has now TimerOutput handle `to` and function `print_statistics()` to get summary of time and memory usage - TimerOutputs is used in LinearSolver at the moment and tested in file `test_elasticity_2d_linear_with_surface_load.jl` 11 April 2017, 07:39:18 UTC
1c67f1c Add postprocessing features (#100) * refactored code for solvers. * Added elementary tests for least-squares fitting of strain and stress fields * A more realistic postprocess + Xdmf writing test * removed debug keyword argument from test * Rewrite update_xdmf! New function to update Xdmf file no longer takes Solver object but xdmf, problem, time and fields to write, for example julia> update_xdmf!(xdmf, problem, 0.0, ["displacement", "temperature"]) All problems are written separately and put together into one SpatialCollection, allowing to have more structured Xdmf and making it easier to write complicated field configurations. Support for Xdmf API 3.0 added. * Support for Tensor6 field writing * moved update_xdmf! to io.jl * Removed some empty files * Not use old Postprocessor, obsolete code. * Not use old XDMF (obsolete code). Fixed test. * removed some postprocessing to pass test, maybe we should drop abaqus.jl from code as obsolete * add function get_temporal_collection back, it's used by update_xdmf of modal solver * postprocess of boundary problems also * added test for contact pressure. dl+quad test output was written in wrong file, fixed. * postprocess for contact pressure * contact pressure postprocess * with boundary problems always store also the primary unknown field * Change "reaction force" -> "lambda" * testing postprocess of reaction force also * sign convention 21 March 2017, 06:36:18 UTC
48006a1 Contact algorithms testing & develpoment (#95) * contact 3d patch test, standard lagrange, small sliding, linear tet4 elements * tet4 dual basis contact patch test pass * contact 3d patch test, standard lagrange, small sliding, linear tet4 elements * tet4 dual basis contact patch test pass * Patch test for linear elements standard lagrange / dual lagrange pass now * Patch test for quadratic contact surfaces for standard + dual basis pass * refactoring * renamed files * Improvements to preprocess scripts * convert several elements to node sets in one command * possibility to find particular node from mesh filtered by node set * 2d small sliding contact patch test, linear elements * Added backward compatibility * 2d contact algorithms pass patch tests * test data for 2d contacts * no common models in different tests. testing generalized alpha stabilization * Preprocess tests * moved tests from test_preprocess_aster_reader.jl to test_preprocess.jl * generalized-alpha time integration, alpha=0.0 by default * Improvements to logging * JuliaFEM.jl: can set environment variable to one of logging levels: OFF, CRITICAL, ERROR, WARNING, INFO, DEBUG * problems_contact_2d_autodiff.jl: do not loop over nodes if logging level != DEBUG 02 March 2017, 06:43:58 UTC
5e54414 Merge pull request #94 from JuliaFEM/feature/preprocess Improvements to preprocess scripts 27 February 2017, 07:24:49 UTC
f17ad1c Added backward compatibility 27 February 2017, 06:27:08 UTC
6248887 Improvements to preprocess scripts * convert several elements to node sets in one command * possibility to find particular node from mesh filtered by node set 27 February 2017, 05:34:04 UTC
4a471b5 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 25 February 2017, 16:40:14 UTC
5631f28 Merge pull request #92 from JuliaFEM/solvers solvers.jl: Another way to solve Ax = b 25 February 2017, 06:25:30 UTC
2a885d2 solvers.jl: Another way to solve Ax = b Conflicts: src/solvers.jl 25 February 2017, 06:02:41 UTC
56213c2 Merge pull request #91 from JuliaFEM/bug/solution_vector_dimension [bugfix] maximum dimension problem is miscalculated 25 February 2017, 05:40:13 UTC
87874cd bugfix: maximum dimension of problem was miscalculated nnodes*dim, correct way is max_node_id*dim, this was causing bugs when node ids is not starting from 1 25 February 2017, 05:18:51 UTC
bb06b15 problems_mortar_3d.jl: rename function contains to approx_in (#86) * problems_mortar_3d.jl: rename function contains to approx_in See issue #85. `contains` is now renamed to `approx_in`. I also switched argument order, so this function is now called in a same way function `in()`. Usage example: julia> P = Vector[[1.0, 1.0], [2.0, 2.0]] 2-element Array{Array{T,1},1}: [1.0,1.0] [2.0,2.0] julia> q = [1.0, 1.0] + eps(Float64) 2-element Array{Float64,1}: 1.0 1.0 julia> in(q, P) false julia> approx_in(q, P) true Also added docstring and usage example. * Removed `importall base` from code 01 February 2017, 08:42:31 UTC
c307c14 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 30 January 2017, 10:28:33 UTC
ddabc9d Merge pull request #81 from JuliaFEM/fix_80 Fix FactCheck dependencies (issue #80) 27 January 2017, 11:34:18 UTC
6fafad6 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) 27 January 2017, 08:15:52 UTC
143ba4d Removed unused functions from postprocess.jl These functions are not used in anywhere, maybe unnecessary. 21 January 2017, 13:07:55 UTC
9b4c1a4 Fixed multiple dispatch issues on io.jl Related to issue #74, io.jl is no more modifying functionality of LightXML 21 January 2017, 10:32:53 UTC
c1b5d2f Inceased coverage (#77) - added Xdmf() to solver for two tests to test also creating Xdmf after solution. 21 January 2017, 07:57:52 UTC
4ddf144 Merge pull request #75 from ahojukka5/master Removed unnecessary functions to increase code coverage 10 January 2017, 07:17:21 UTC
64ba9e7 removed unnecessary function 10 January 2017, 06:11:30 UTC
519d252 Update .travis.yml 09 January 2017, 15:54:28 UTC
77d0b28 fixed function call for ideal_plasticity! to get correct arguments. 09 January 2017, 11:36:08 UTC
5467fc1 fixed test 09 January 2017, 11:21:07 UTC
c135832 commented out non-working elemen tprint 09 January 2017, 11:07:59 UTC
66285b6 umfpack solver: add diagonal terms to empty rows 09 January 2017, 10:44:40 UTC
0c4a85d fixed DCTV initialization 09 January 2017, 10:43:22 UTC
5cf93b0 boundary condition returns always 1-dimensional array for elements, not 0-dimensional 09 January 2017, 10:21:55 UTC
05b31a1 removed obsolete test files 09 January 2017, 09:26:26 UTC
d840e56 attempt to fix boundary condition 09 January 2017, 09:26:04 UTC
9683e60 refactoring; works now in julia 0.5 09 January 2017, 09:06:10 UTC
7dd897b conversion rule from SparseVector to SparseVectorCOO 09 January 2017, 09:01:18 UTC
19551f8 fixed test 09 January 2017, 07:32:15 UTC
back to top