FEniCS-Shells

A FEniCS Project-based library for simulating thin structures.

Description

FEniCS-Shells is an open-source library that provides finite element-based numerical methods for solving a wide range of thin structural models (beams, plates and shells) expressed in the Unified Form Language (UFL) of the FEniCS Project.

Getting started

  1. Install FEniCS by following the instructions at http://fenicsproject.org/download. We recommend using Docker to install FEniCS. However, you can use any method you want to install FEniCS.

  2. Then, clone this repository using the command:

    git clone https://bitbucket.org/unilucompmech/fenics-shells.git
    
  3. Start a Docker container:

    cd fenics-shells
    ./launch-container.sh
    
  1. You should now have a shell inside a container with FEniCS installed. Try out an example:

    python3 setup.py develop --user
    cd demo
    ./generate_demos.py
    cd documented/reissner_mindlin_clamped
    python3 demo_reissner-mindlin-clamped.py
    

    The resulting fields are written to the directory output/ which will be shared with the host machine. These files can be opened using Paraview.

  2. Check out the demos at https://fenics-shells.readthedocs.io/.

Documentation

Documentation can be viewed at http://fenics-shells.readthedocs.org/.

Documentation Status

We are currently busy converting as many of the old demos under demo/undocumented to fully documented demos demo/documented as possible.

Automated testing

We use Bitbucket Pipelines to perform automated testing. All documented demos include basic sanity checks on the results. Tests are run in the quay.io/fenicsproject/stable:current Docker image.

Pipelines Build Status

Features

FEniCS-Shells currently includes implementations of the following structural models:

  • Kirchhoff-Love plates,
  • Reissner-Mindlin plates,
  • von-Kármán shallow shells,
  • Reissner-Mindlin-von-Kármán shallow shells,
  • non-linear and linear Naghdi shells with exact geometry.

Additionally, the following models are under active development:

  • linear and non-linear Timoshenko beams,

We are using a variety of finite element numerical techniques including:

  • MITC reduction operators,
  • discontinuous Galerkin methods,
  • reduced integration techniques.

Citing

We are currently preparing a paper that describes FEniCS-Shells in full. In the meantime, please consider citing the following figshare DOI if you find the examples in FEniCS-Shells useful for your paper:

https://dx.doi.org/10.6084/m9.figshare.4291160

@misc{hale_fenics-shells_2016,
        title = {{FEniCS}-{Shells}},
        url = {https://figshare.com/articles/FEniCS-Shells/4291160},
        abstract = {FEniCS-Shells is an open-source library (LGPLv3) that provides a wide range
                of thin structural models (beams, plates and shells) solved using the
                finite element method and expressed in the Unified Form Language (UFL)
                of the FEniCS Project.},
        author = {Hale, Jack S. and Brunetti, Matteo and Bordas, Stéphane P.A. and Maurini, Corrado},
        month = dec,
        year = {2016},
        doi = {10.6084/m9.figshare.4291160},
        keywords = {FEniCS, Locking, MITC, PDEs, Python, Shells, thin structures},
 }

along with the appropriate general FEniCS citations.

Contributing

We are always looking for contributions and help with fenics-shells. If you have ideas, nice applications or code contributions then we would be happy to help you get them included. We ask you to follow the FEniCS Project git workflow.

Issues and Support

Please use the bugtracker to report any issues.

For support or questions please email jack.hale@uni.lu.

Authors (alphabetical)

Matteo Brunetti, Université Pierre et Marie Curie, Paris.
Jack S. Hale, University of Luxembourg, Luxembourg.
Corrado Maurini, Université Pierre et Marie Curie, Paris.

License

fenics-shells is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with fenics-shells. If not, see http://www.gnu.org/licenses/.