Pull requests are welcome.
By submitting a pull request, you acknowledge and agree that project maintainers may modify your contribution without prior notice.
This may include changes to the submitted code and, where applicable, updates to the project's overall licensing terms.
If you intend to retain full copyright control over your work, please consider contributing through dynamically linked libraries.
Feature requests should be submitted by opening an issue.
Templates are available for feature request submissions.
Private-domain collaboration in any form is also available; please contact tlcfem(at)gmail(dot)com.
Please use the file .clang-format to format the code.
- Use
snake_caseinstead ofCamelCasefor variables. - Use
CamelCasefor class names. Acronyms shall be capitalized, for exampleNURBSSurfaceinstead ofNurbsSurface. - Use meaningful variable names instead of abstract names if possible.
- Avoid abbreviations, except for common ones such as
ptrandtmp, for the ease of readability and maintenance.
- Avoid non-const static variables, avoid shared working buffers.
- Use smart pointers instead of raw pointers.
- Use armadillo classes
matandvecfor variables that involve mathematical operations. - Use STL containers
std::arrayandstd::vectorin general cases. - Provide Catch2 tests if applicable, otherwise provide example models that cover the implementation as much as possible.
- Check similar existing implemented code first.
- Apply early return if possible, avoid deep nesting of code.
- Branch-free code is preferred.