Extended Finite Element Toolbox in Diffpack

The Diffpack Development Framework is an object-oriented software environment for the numerical solution of partial differential equations (PDEs). By its design, Diffpack intends to close the gap between black-box simulation packages and technical computing environments using interpreted computer languages. The framework provides a high degree of modeling flexibility, while still offering the computational efficiency needed for most demanding simulation problems in science and engineering. Technically speaking, Diffpack is a collection of C++ libraries with classes, functions and utility programs. The numerical functionality is embedded in an environment of software engineering tools supporting the management of Diffpack development projects. Diffpack supports a variety of numerical methods with distinct focus on the finite element method (FEM) but has no inherent restrictions on the types of PDEs and therefore applications to be solved.

The key point of partition of unity enriched methods such as XFEM and GFEM is to help capture discontinuities and singularities or large gradients in solutions, which are not well resolved by h or p refinement. The general idea is that the mesh need not conform to the moving boundaries so that minimal or no remeshing is required during the analysis. Our main work is to provide a generic implementation of enrichment within a flexible C++ environment, namely the Diffpack platform.

Conference Paper:

M.N. Hossain, D.A. Paladim, F. Vogel, S.P.A. Bordas. Implementation of a XFEM toolbox in Diffpack. International Conference on Extended Finite Element Methods – XFEM 2013, September 11 – 13, 2013, Lyon, France.

D.A. Paladim, S. Natarajan, S.P.A Bordas, P. Kerfriden, F. Vogel. STABLE EXTENDED FINITE ELEMENT METHOD: CONVERGENCE, ACCURACY, PROPERTIES AND DIFFPACK IMPLEMENTATION. International Conference on Extended Finite Element Methods – XFEM 2013, September 11 – 13, 2013, Lyon, France.

 

Crack using heaviside enrichment function (displacement Ux using bilinear element 160X160)

Crack using heaviside enrichment function (displacement Ux using bilinear element 160X160)

Crack using heaviside enrichment function (displacement Uy using bilinear elements 160X160 )

Crack using heaviside enrichment function (displacement Uy using bilinear elements 160X160 )