GooseFEM

GPLv3 license GPLv3 license Download as .zip Download as .tar.gz
Contact tom@geus.me Website www.geus.me Github tdegeus/GooseFEM
Website GooseFEM.rtfd.io

Note

This library is free to use under the GPLv3 license. Any additions are very much appreciated, in terms of suggested functionality, code, documentation, testimonials, word of mouth advertisement, …. Bugs or feature requests can be filed on GitHub. As always, the code comes with no guarantee. None of the developers can be held responsible for possible mistakes.

Tip

This document should be considered as a quick-start guide. A lot effort has been spent on the readability of the code itself (in particular the *.h files should be instructive). One is highly encouraged to answer more advanced questions that arise from this guide directly using the code. Download buttons to the relevant files are included throughout this reader.

This header-only module provides C++ classes and several accompanying methods to work with n-d arrays and/or tensors. It’s usage, programmatically and from a compilation perspective, is really simple. One just has to #include <GooseFEM/GooseFEM.h> and tell your compiler where GooseFEM is located (and to use the C++14 or younger standard). Really, that’s it!

Data-types

[GooseFEM/GooseFEM.h]

Data-storage

Alias Description Shape Type
“dofval” degrees-of-freedom [ndof] xt::xtensor<double,1>
“nodevec” nodal vectors [nnode, ndim] xt::xtensor<double,2>
“elemvec” nodal vectors stored per element [nelem, nne, ndim] xt::xtensor<double,3>
“elemmat” matrices stored per element [nelem, nne*ndim, nne*ndim] xt::xtensor<double,3>
“qtensor” tensors stored (as list) per integration point [nelem, nip, #tensor-components] xt::xtensor<double,4>
“qscalar” scalars stored per integration point [nelem, nip] xt::xtensor<double,2>

Contents

EXAMPLES

Tip

A compact reader covering the basic theory is available here

Indices and tables