pyCAFE is an open-source Python framework for the numerical solution of two-dimensional, frequency domain acoustic problems governed by the Helmholtz equation using the Finite Element Method (FEM). The software implements an explicit assembly of global acoustic stiffness and mass matrices from element-level contributions using four- and eight-node (CQUAD4 - CQUAD8) quadrilateral elements. It supports prescribed pressure, prescribed normal velocity, impedance, and rigid boundary conditions, and provides both direct frequency domain solvers and a modal solver based on a sparse generalised eigenvalue problem. pyCAFE operates on two- dimensional meshes generated with Gmsh and follows a matrix-based workflow conceptually aligned with commercial finite element software, exposing the discretised system operators directly to the user. The framework includes an automated test suite covering element-level properties, boundary condition enforcement, and solver accuracy, together with a GitHub Actions continuous integration pipeline verified on Python 3.10-3.12. Analytical validation against closed-form eigenfrequencies for a rigid rectangular cavity demonstrates extremely good agreement with the CQUAD8 discretisation. Originally developed as a MATLAB code, the framework has been ported to Python to improve accessibility and integration with open scientific libraries for research and teaching in computational acoustics.
pyCAFE: A Finite Element Framework for Solving Acoustic Problems in Python / Fabbri, D., Bruzzone, F., Rosso, C.. - In: JOURNAL OF OPEN RESEARCH SOFTWARE. - ISSN 2049-9647. - 14:1(2026). [10.5334/jors.677]
pyCAFE: A Finite Element Framework for Solving Acoustic Problems in Python
Daniele Fabbri;Fabio Bruzzone;Carlo Rosso
2026
Abstract
pyCAFE is an open-source Python framework for the numerical solution of two-dimensional, frequency domain acoustic problems governed by the Helmholtz equation using the Finite Element Method (FEM). The software implements an explicit assembly of global acoustic stiffness and mass matrices from element-level contributions using four- and eight-node (CQUAD4 - CQUAD8) quadrilateral elements. It supports prescribed pressure, prescribed normal velocity, impedance, and rigid boundary conditions, and provides both direct frequency domain solvers and a modal solver based on a sparse generalised eigenvalue problem. pyCAFE operates on two- dimensional meshes generated with Gmsh and follows a matrix-based workflow conceptually aligned with commercial finite element software, exposing the discretised system operators directly to the user. The framework includes an automated test suite covering element-level properties, boundary condition enforcement, and solver accuracy, together with a GitHub Actions continuous integration pipeline verified on Python 3.10-3.12. Analytical validation against closed-form eigenfrequencies for a rigid rectangular cavity demonstrates extremely good agreement with the CQUAD8 discretisation. Originally developed as a MATLAB code, the framework has been ported to Python to improve accessibility and integration with open scientific libraries for research and teaching in computational acoustics.| File | Dimensione | Formato | |
|---|---|---|---|
|
pycafe.pdf
accesso aperto
Tipologia:
2a Post-print versione editoriale / Version of Record
Licenza:
Creative commons
Dimensione
8.37 MB
Formato
Adobe PDF
|
8.37 MB | Adobe PDF | Visualizza/Apri |
Pubblicazioni consigliate
I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/11583/3012367
