Releases: jain-shobhit/YetAnotherFEcode
YetAnotherFEcode
A simple MATLAB-based code for implementing the Finite Element method in an object oriented fashion.
The main idea behind this package is to enable rapid prototyping and reproducible research related to finite element applications
and/or reduced-order modeling in a user-friendly MATLAB environment.
On one hand, commercial packages lack the flexibility needed for testing new ideas essential for research, especially in the context of
reduced-order modeling, where FE problems are indeed just applications but still require mild intrusion/access to the functionality.
Open source packages, on the other hand, allow endless access to the implementation but tend to be very cumbersome to hack, and
require significant time and training to be able to test even the simplest of ideas. This code is particularly aimed towards
users/researchers who are interested in intrusive finite-element modeling without getting lost in gory details of open source FE packages.
A distinguishing aspect of this package is that apart from using exisiting elements in our library, one can program new elements with
relative ease and flexibility. These elements may also arise from multi-physics problems, e.g., thermo-mechanical
problems which involve the numerical solution of different partial differential equations governing heat and momentum balance
on the same physical domain.
Without worrying about the cumbersome details of finite-element assembly, a researcher can simply focus on the
element-level implementation to quickly obtain results. At the same time, developers are also encouraged to contribute new and
alternative ideas to improve this environment and potentially publish them, allowing future users to access and build upon their work.
This allows for rapid developement and testing of ideas, especially valuable in research efforts.
To use the code, simply add the main folder and its contents to the MATLAB path. Feel free to play with examples in the examples directory.
Further usage and development instructions to follow.
📚 How to cite
To showcase the relevance, please cite the following reference if you use this package in your work
Shobhit Jain, Jacopo Marconi, Matteo Pozzi, Paolo Tiso (2025) YetAnotherFEcode. Zenodo. https://doi.org/10.5281/zenodo.4011281.
Please report any issues/bugs to Shobhit Jain shobhit.jain@tudelft.nl or Jacopo Marconi jacopo.marconi@polimi.it
📄What's new in this release
- added code associated to the following paper:
- Matteo Pozzi, Jacopo Marconi, Shobhit Jain, Mingwu Li, Francesco Braghin; Adjoint sensitivities for the optimization of nonlinear structural dynamics via spectral submanifolds. Proc. A 1 December 2025; 481 (2328): 20250244. https://doi.org/10.1098/rspa.2025.0244.
- MultiPointConstraint (MPC) approach implemented to connect rigid bodies and von Kàrmàn beams (in 2D)
- Topology optimization updated with new examples and routines for COMSOL
- General improvements
YetAnotherFEcode
A simple MATLAB-based code for implementing the Finite Element method in an object oriented fashion.
The main idea behind this package is to enable rapid prototyping and reproducible research related to finite element applications
and/or reduced-order modeling in a user-friendly MATLAB environment.
On one hand, commercial packages lack the flexibility needed for testing new ideas essential for research, especially in the context of
reduced-order modeling, where FE problems are indeed just applications but still require mild intrusion/access to the functionality.
Open source packages, on the other hand, allow endless access to the implementation but tend to be very cumbersome to hack, and
require significant time and training to be able to test even the simplest of ideas. This code is particularly aimed towards
users/researchers who are interested in intrusive finite-element modeling without getting lost in gory details of open source FE packages.
A distinguishing aspect of this package is that apart from using exisiting elements in our library, one can program new elements with
relative ease and flexibility. These elements may also arise from multi-physics problems, e.g., thermo-mechanical
problems which involve the numerical solution of different partial differential equations governing heat and momentum balance
on the same physical domain.
Without worrying about the cumbersome details of finite-element assembly, a researcher can simply focus on the
element-level implementation to quickly obtain results. At the same time, developers are also encouraged to contribute new and
alternative ideas to improve this environment and potentially publish them, allowing future users to access and build upon their work.
This allows for rapid developement and testing of ideas, especially valuable in research efforts.
To use the code, simply add the main folder and its contents to the MATLAB path. Feel free to play with examples in the examples directory.
Further usage and development instructions to follow.
What is new in this release:
- added Topology Optimization routines (density-based approach with MMA solver)
- added code associated to the following publications:
a. Pozzi, M., Marconi, J., Jain, S. & Braghin, F. Backbone curve tailoring via Lyapunov subcenter manifold optimization. Nonlinear Dynamics (2024), https://doi.org/10.1007/s11071-024-09881-5.
b. M. Pozzi, J. Marconi, S. Jain, M. Li, and F. Braghin. "Topology optimization of nonlinear structural dynamics with invariant manifold-based reduced order models". Structural and Multidisciplinary Optimization (2025), https://doi.org/10.1007/s00158-025-04010-1. - added Mesh tools and Electrostatic elements (2D)
- bugfix and general improvements
To showcase the relevance, please cite the following reference if you use this package in your work
Shobhit Jain, Jacopo Marconi & Paolo Tiso (2020). YetAnotherFEcode. Zenodo. http://doi.org/10.5281/zenodo.4011281
Please report any issues/bugs to Shobhit Jain shobhit.jain@tudelft.nl or Jacopo Marconi jacopo.marconi@polimi.it
YetAnotherFEcode
A simple MATLAB-based code for implementing the Finite Element method in an object oriented fashion.
The main idea behind this package is to enable rapid prototyping and reproducible research related to finite element applications
and/or reduced-order modeling in a user-friendly MATLAB environment.
On one hand, commercial packages lack the flexibility needed for testing new ideas essential for research, especially in the context of
reduced-order modeling, where FE problems are indeed just applications but still require mild intrusion/access to the functionality.
Open source packages, on the other hand, allow endless access to the implementation but tend to be very cumbersome to hack, and
require significant time and training to be able to test even the simplest of ideas. This code is particularly aimed towards
users/researchers who are interested in intrusive finite-element modeling without getting lost in gory details of open source FE packages.
A distinguishing aspect of this package is that apart from using existing elements in our library, one can program new elements with
relative ease and flexibility. These elements may also arise from multi-physics problems, e.g., thermo-mechanical
problems which involve the numerical solution of different partial differential equations governing heat and momentum balance
on the same physical domain.
Without worrying about the cumbersome details of finite-element assembly, a researcher can simply focus on the
element-level implementation to quickly obtain results. At the same time, developers are also encouraged to contribute new and
alternative ideas to improve this environment and potentially publish them, allowing future users to access and build upon their work.
This allows for rapid development and testing of ideas, especially valuable in research efforts.
To use the code, simply add the main folder and its contents to the MATLAB path. Feel free to play with examples in the examples directory.
Further usage and development instructions to follow.
To showcase the relevance, please cite the following reference if you use this package in your work
Shobhit Jain, Jacopo Marconi & Paolo Tiso (2020). YetAnotherFEcode. Zenodo. http://doi.org/10.5281/zenodo.4011281
Please report any issues/bugs to Shobhit Jain shobhit.jain@tudelft.nl or Jacopo Marconi jacopo.marconi@polimi.it
Release Notes:
- Introduced the procedure to add code associated to scientific publications (see “how to contribute” in the papers folder)
- Added code associated to the following publications:
- A nonlinear reduced order model with parametrized shape defects https://doi.org/10.1016/j.cma.2019.112785
- A higher-order parametric nonlinear reduced-order model for imperfect structures using Neumann expansion https://doi.org/10.1007/s11071-021-06496-y
- Sensitivity Analysis of Nonlinear Frequency Response of Defected Structures https://doi.org/10.21203/rs.3.rs-1707949/v1
- Bug fixes and plot function update for multi-element meshes.
YetAnotherFEcode
A simple MATLAB-based code for implementing the Finite Element method in an object oriented fashion.
The main idea behind this package is to enable rapid prototyping and reproducible research related to finite element applications
and/or reduced-order modeling in a user-friendly MATLAB environment.
On one hand, commercial packages lack the flexibility needed for testing new ideas essential for research, especially in the context of
reduced-order modeling, where FE problems are indeed just applications but still require mild intrusion/access to the functionality.
Open source packages, on the other hand, allow endless access to the implementation but tend to be very cumbersome to hack, and
require significant time and training to be able to test even the simplest of ideas. This code is particularly aimed towards
users/researchers who are interested in intrusive finite-element modeling without getting lost in gory details of open source FE packages.
A distinguishing aspect of this package is that apart from using exisiting elements in our library, one can program new elements with
relative ease and flexibility. These elements may also arise from multi-physics problems, e.g., thermo-mechanical
problems which involve the numerical solution of different partial differential equations governing heat and momentum balance
on the same physical domain.
Without worrying about the cumbersome details of finite-element assembly, a researcher can simply focus on the
element-level implementation to quickly obtain results. At the same time, developers are also encouraged to contribute new and
alternative ideas to improve this environment and potentially publish them, allowing future users to access and build upon their work.
This allows for rapid developement and testing of ideas, especially valuable in research efforts.
To use the code, simply add the main folder and its contents to the MATLAB path. Feel free to play with examples in the examples directory.
Further usage and development instructions to follow.
To showcase the relevance, please cite the following reference if you use this package in your work
Shobhit Jain, Jacopo Marconi & Paolo Tiso (2020). YetAnotherFEcode. Zenodo. http://doi.org/10.5281/zenodo.4011281
Please report any issues/bugs to Shobhit Jain shobhit.jain@tudelft.nl or Jacopo Marconi jacopo.marconi@polimi.it
Release Notes:
- We have added interface to treat meshes containing more than one type of elements.
- We have had a function that returns the stability characteristic of the periodic solutions obtained via the external package NLvib, around which yaFEc wraps.
v1.1.1
Update README.md
v1.1
Update README.md
v1.0
Update README.md