GooseFEM¶
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¶
Beyond the default C++ types, GooseFEM use Eigen columns/matrices and cppmat multi-dimensional arrays. In particular:
Type | Description |
---|---|
MatD |
row-major Eigen::matrix |
ColD |
(column-major) Eigen::Matrix (column) |
SpMatD |
row-major Eigen::SparseMatrix |
ArrD |
multi-dimensional cppmat::array |
The last letter thereby indicates the type specialisation:
Indicator | Description |
---|---|
D |
double |
S |
size_t |
I |
int |
Data-storage¶
Alias | Description | Type | Shape |
---|---|---|---|
“dofval” | degrees-of-freedom | ColD |
[ndof] |
“nodevec” | nodal vectors | MatD |
[nnode, ndim] |
“elemvec” | nodal vectors stored per element | ArrD |
[nelem, nne, ndim] |
“elemmat” | matrices stored per element | ArrD |
[nelem, nne*ndim, nne*ndim] |
“qtensor” | tensors stored (as list) per integration point | ArrD |
[nelem, nip, #tensor-components] |
“qscalar” | scalars stored per integration point | ArrD |
[nelem, nip] |