GithubHelp home page GithubHelp logo

fenics-shells / fenicsx-shells Goto Github PK

View Code? Open in Web Editor NEW
15.0 4.0 4.0 85 KB

A FEniCS Project-based library for simulating thin structures

License: GNU Lesser General Public License v3.0

Shell 100.00%
thin structures beams plates shells fenicsx

fenicsx-shells's Introduction

FEniCSx-Shells

A FEniCS Project-based library for simulating thin structures.

tests docs

Description

FEniCSx-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.

FEniCSx-Shells is an experimental version targeting version v0.8.0.dev0 of the new DOLFINx solver.

The foundational aspects of the FEniCS-Shells project are described in the paper:

Simple and extensible plate and shell finite element models through automatic code generation tools, J. S. Hale, M. Brunetti, S. P. A. Bordas, C. Maurini. Computers & Structures, 209, 163-181, doi:10.1016/j.compstruc.2018.08.001.

Documentation

The documentation can be viewed here.

Features

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

  • Reissner-Mindlin plates.
  • Kirchhoff-Love plates.

A roadmap for future developments will be shared soon.

We are using a variety of numerical techniques for discretising the PDEs including:

  • Mixed Interpolation of Tensorial Component (MITC) reduction operators.
  • Tangential Displacement Normal-Normal Derivative (TDNNS) methods.
  • Hellman-Herrmann-Johnson (HHJ) finite elements.

Citing

Please consider citing the old FEniCS-Shells paper and code if you find this repository useful.

@article{hale_simple_2018,
	title = {Simple and extensible plate and shell finite element models through automatic code generation tools},
	volume = {209},
	issn = {0045-7949},
	url = {http://www.sciencedirect.com/science/article/pii/S0045794918306126},
	doi = {10.1016/j.compstruc.2018.08.001},
	journal = {Computers \& Structures},
	author = {Hale, Jack S. and Brunetti, Matteo and Bordas, Stéphane P. A. and Maurini, Corrado},
	month = oct,
	year = {2018},
	keywords = {Domain specific language, FEniCS, Finite element methods, Plates, Shells, Thin structures},
	pages = {163--181},
}

along with the appropriate general FEniCS citations.

Authors

  • Jack S. Hale, University of Luxembourg, Luxembourg.
  • Tian Yang, EPFL, Switzerland.

FEniCSx-Shells contains code and text adapted from the FEniCS-Shells project hosted on BitBucket authored by:

  • Matteo Brunetti, University of Udine, Udine.
  • Jack S. Hale, University of Luxembourg, Luxembourg.
  • Corrado Maurini, Sorbonne Université, France.

Contributing

We are always looking for contributions and help with FEniCSx-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 GitHub issue tracker to report any issues.

License

FEniCSx-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 FEniCSx-Shells. If not, see http://www.gnu.org/licenses/.

fenicsx-shells's People

Contributors

jhale avatar sanguinariojoe avatar tianyangepfl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fenicsx-shells's Issues

MITC stopped working on recent version of DOLFINx

Current version of DOLFINx produces highly mesh dependent and wrong results when running notebook https://github.com/FEniCS-Shells/fenics-shellsx/blob/main/demo/documented/reissner-mindlin-clamped/demo_reissner-mindlin-clamped.ipynb

Found a working version of FEniCSx at following commits:

basix: e7ff5c1d08 (early May)
dolfinx: 732ff7f953 (early May)
ffcx: 60739ccc (early May)
ufl: 94badf86983 (main on day of test)

Further investigation required.

dolfinx.cpp.geometry.compute_colliding_cells -> dolfinx.geometry.compute_colliding_cells

dolfinx.cpp.geometry.compute_colliding_cells() expects a dolfinx.cpp.mesh.Mesh_float64, while in the tests and demos a dolfinx.mesh.Mesh is generated. Thus, the following error is always received:

Traceback (most recent call last):
  File "/home/pepe/CoreMarine/exmar/fenicsx/fenicsx-shells/demo/demo_kirchhoff-love-clamped.py", line 216, in <module>
    cells = dolfinx.cpp.geometry.compute_colliding_cells(
TypeError: compute_colliding_cells(): incompatible function arguments. The following argument types are supported:
    1. (mesh: dolfinx.cpp.mesh.Mesh_float64, candidate_cells: dolfinx.cpp.graph.AdjacencyList_int32, points: numpy.ndarray[numpy.float64]) -> Union[dolfinx.cpp.graph.AdjacencyList_int32, numpy.ndarray[numpy.int32]]

Invoked with: <dolfinx.mesh.Mesh object at 0x7f1f7c66ba00>, <AdjacencyList> with 1 nodes
  0: [263 247 279 294 217 232 264 248 ]
, array([0.5, 0.5, 0. ])

The solution is calling directly dolfinx.geometry.compute_colliding_cells(), which has been available since dolfinx 0.4.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.