How to cite femorph-solver#
If femorph-solver supports your work, cite both the software
itself and the published references the kernel
implementations build on. Every kernel, solver backend, and
verification benchmark in the corpus traces back to a public
reference; the codebase’s Provenance inventory page is the master
list, and the per-module References blocks are the
authoritative source.
This page tells you which entry to use for which kind of publication.
Citing the software#
The repo carries a CITATION.cff (Citation File Format) that GitHub picks
up automatically — visit
femorph/solver and the “Cite this
repository” button on the right sidebar emits a BibTeX or APA
entry directly.
For a stable reference in a peer-reviewed paper, use the
following template (replace <x.y.z> with the version you
ran):
@software{femorph_solver_<x.y.z>,
author = {Kaszynski, Alex},
title = {{femorph-solver: structural finite-element solver}},
year = 2026,
version = {<x.y.z>},
url = {https://github.com/femorph/solver},
organization = {K-Matrix Engineering LLC}
}
When v1.0 ships, this template will be replaced by a Zenodo DOI; the CITATION.cff file is updated at the same time.
The version string and commit SHA every reproducible run
needs are emitted by femorph_solver.Report():
>>> import femorph_solver
>>> print(femorph_solver.Report())
...
femorph-solver: 0.20.2
_core extension: <commit-sha>
...
Include both the version and the _core SHA in the methods
section if the analysis is intended to be reproducible —
this matches the IEEE / ACM / Nature reproducibility-checklist
expectation.
Citing the algorithms#
The algorithm citations are not optional — femorph-solver is independently developed from public FEM literature, and every non-trivial numerical kernel traces to a paper / textbook / public report. When you cite the implementation (the software entry above), also cite the algorithm in the methods section. The Provenance inventory page is the running inventory; the entries below are the most-frequently-referenced sources, grouped by section.
Element kernels#
HEX8 / HEX20 / TET10 / WEDGE15 / PYR13 — O. C. Zienkiewicz, R. L. Taylor, J. Z. Zhu, The Finite Element Method: Its Basis and Fundamentals, 7th ed., Butterworth-Heinemann, 2013.
HEX8 enhanced strain (EAS) — J. C. Simo & M. S. Rifai, “A class of mixed assumed strain methods and the method of incompatible modes,” Int. J. Numer. Methods Eng. 29 (8), 1990, 1595–1638.
TET10 quadrature — P. Keast, “Moderate-degree tetrahedral quadrature formulas,” Comput. Methods Appl. Mech. Eng. 55 (1986), 339–348.
HEX20 mass matrix — B. M. Irons, “Quadrature rules for brick based finite elements,” Int. J. Numer. Methods Eng. 3 (2), 1971, 293–294.
BEAM2 (Hermite-cubic Euler-Bernoulli) — R. D. Cook, M. E. Plesha, M. S. Witt, Concepts and Applications of Finite Element Analysis, 4th ed., Wiley 2002, Chapter 2 + Table 16.3-1.
QUAD4_SHELL (DKT) — J.-L. Batoz, K.-J. Bathe, L.-W. Ho, “A study of three-node triangular plate bending elements,” Int. J. Numer. Methods Eng. 15 (12), 1980, 1771–1812.
PLANE182 / Wilson-Q6 — E. L. Wilson, R. L. Taylor, W. P. Doherty, J. Ghaboussi, “Incompatible displacement models,” Numerical and Computer Methods in Structural Mechanics (eds. Fenves et al.), Academic Press, 1973, 43–57.
Sparse linear solvers#
Pardiso — O. Schenk, K. Gärtner, “Solving unsymmetric sparse systems of linear equations with PARDISO,” Future Generation Computer Systems 20 (3), 2004, 475–487.
CHOLMOD — T. A. Davis, W. W. Hager, “Modifying a sparse Cholesky factorization,” SIAM J. Matrix Anal. Appl. 20 (3), 1999, 606–627.
MUMPS — P. R. Amestoy, I. S. Duff, J.-Y. L’Excellent, J. Koster, “A fully asynchronous multifrontal solver using distributed dynamic scheduling,” SIAM J. Matrix Anal. Appl. 23 (1), 2001, 15–41.
UMFPACK — T. A. Davis, “Algorithm 832: UMFPACK V4.3 — an unsymmetric-pattern multifrontal method,” ACM Trans. Math. Softw. 30 (2), 2004, 196–199.
SuperLU — J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, J. W. H. Liu, “A supernodal approach to sparse partial pivoting,” SIAM J. Matrix Anal. Appl. 20 (3), 1999, 720–755.
Eigensolvers#
ARPACK — R. B. Lehoucq, D. C. Sorensen, C. Yang, ARPACK Users’ Guide: Solution of Large-Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods, SIAM, 1998.
LOBPCG — A. V. Knyazev, “Toward the optimal preconditioned eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient method,” SIAM J. Sci. Comput. 23 (2), 2001, 517–541.
PRIMME — A. Stathopoulos, J. R. McCombs, “PRIMME: PReconditioned Iterative MultiMethod Eigensolver — methods and software description,” ACM Trans. Math. Softw. 37 (2), 2010, article 21.
Shift-invert Lanczos — T. Ericsson, A. Ruhe, “The spectral transformation Lanczos method for the numerical solution of large sparse generalized symmetric eigenvalue problems,” Math. Comp. 35 (152), 1980, 1251–1268.
Cyclic-symmetry reduction#
D. L. Thomas, “Dynamics of rotationally periodic structures,” Int. J. Numer. Methods Eng. 14 (1), 1979, 81–102.
A. Wildheim, “Excitation of rotationally periodic structures,” J. Appl. Mech. 46 (1979), 878–882.
R. Grimes, J. Lewis, H. Simon, “A shifted block Lanczos algorithm for solving sparse symmetric generalized eigenproblems,” SIAM J. Matrix Anal. Appl. 15 (1), 1994, 228–272.
Time integration#
N. M. Newmark, “A method of computation for structural dynamics,” ASCE J. Eng. Mech. Div. 85 (1959), 67–94.
T. J. R. Hughes, The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover, 2000.
Verification benchmarks#
NAFEMS — National Agency for Finite Element Methods and Standards. Linear-Elastic LE-1…LE-10 + Free-Vibration FV-1…FV-32 + plate / shell standards. Each
test_nafems_le*andtest_nafems_fv*cites the specific benchmark section.MAPDL Verification Manual — Ansys, Inc., Mechanical APDL Verification Manual, Release 2025R1. Femorph-solver re-authors each cited problem from the published statement under fair use; deck text is never lifted.
NASTRAN Verification Guide — MSC Software, MSC Nastran Verification Guide, Release 2024.1. Same fair-use re-authoring pattern.
The Provenance inventory page tracks the full set; the entries above are the citations every methods section will need.
Citing the verification result#
When the analysis includes a femorph-solver verification check (“our model converges to within 0.5 % of the published NAFEMS LE5 reference”), cite both the femorph-solver run and the published benchmark, and include the femorph-solver commit SHA + verification gallery example URL so the reviewer can rerun exactly the same problem. Pattern:
> “The plate-with-hole stress concentration was verified > against the analytical Kirsch reference [Kirsch 1898] using > femorph-solver v0.20.2 (commit 7a4b9c1) running the >
example_verify_plate_with_holegallery example > [URL]; agreement at the peak K_t value was within 0.3 %.”
Same convention every commercial-solver paper uses; no special tooling required.
Reporting issues#
If a citation in the docstring or in the Provenance inventory
inventory is wrong, incomplete, or missing, please file an
issue at femorph/solver#issues. The
sourcing policy in SOURCES.md is a hard rule — every
non-trivial numerical kernel must trace to a public reference,
and missing citations are a project-blocking bug, not a
nice-to-have.
See also#
Provenance inventory — running per-file citation inventory.
Changelog — version-by-version release notes (cite the version you ran, not the latest).
Known limitations — what the software does not do, so the methods section doesn’t overclaim capability.