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.

JuliaFEM base package (core functionality)

AbaqusReader.jl is a parse for ABAQUS FEM models. It's capable of parsing the geometry accurately, including surface sets, node sets, and other relevant geometrical data used in FEM calculations. Other option is to parse whole model, including boundary conditions, material data and load steps.

FEMBasis contains interpolation routines for finite element function spaces. Given ansatz and coordinates of domain, shape functions are calculated symbolically in a very general way to get efficient code. Shape functions can also be given directly and in that case partial derivatives are calculated automatically.

ModelReduction is a repository of JuliaFEM to reduce the dimension of a model for multibody dynamics problems. The package includes e.g. the Guyan reduction and the Craig-Bampton method.

Computational material models

FEMSparse.jl aims to develop fast finite element assembly procedure. Main goal is to utilize threading of multicore computeres in order to calculate global FEM matrices in a efficient way.

Julia package for a smallest enclosing sphere for points in arbitrary dimensions

Mortar2D.jl is a Julia package to calculate discrete projections between non-conforming finite element meshes. The resulting "mortar matrices" can be used to tie non-conforming finite elements meshes together in an optimal way.

AsterReader.jl is a Julia package to read Code Aster binary mesh and result files. Code Aster meshes can be done using another open source software SALOME Platform. Reading results from .rmed files is also partially supported, so it's possible to verify calculations of JuliaFEM.jl against Code Aster solutions.

Package contains algorithms to calculate smallest enclosing sphere for a given set of points in N dimensions.

NodeNumbering is a repository of JuliaFEM to renumber FE nodes with the Reverse Cuthill-McKee algorithm.

Mortar3D.jl is a Julia package to calculate discrete projections between non-conforming finite element mesheds. The resulting "mortar matrices" can be used to tie non-conforming finite element meshes together which are meshed separately to construct bigger models.

FEMQuad.jl package contains various of integration schemes for cartesian and tetrahedral domains. The most common integration rules are tabulated and focus is on speed. Each rule has own "label" so we can easily implement several rules with same degree. API is very simple making is easy to utilize package in different FEM projects.

FEModels.jl is a Julia package to download test models from FEModels easily.

Implementation of heat transfer problems for JuliaFEM

Plane mortar contact mechanics using automatic differentiation

A solver for implicit dynamics

Beam implementation for JuliaEFM

Coupling elements for JuliaFEM, including kinematic couplings and distributing couplings.

Mortar contact mechanics for plane problems