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* and test_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_hole gallery 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.