moose
FEM
moose | FEM | |
---|---|---|
4 | 2 | |
1,815 | 25 | |
1.9% | - | |
10.0 | 2.8 | |
4 days ago | about 1 month ago | |
C++ | Python | |
GNU Lesser General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
moose
-
Open-source FEA software
GitHub Discussions as their forum: https://github.com/idaholab/moose/discussions
-
Okay, let's end this Tabs vs Space debate once and for all
In our codebase ( https://github.com/idaholab/moose ) tabs are the first thing looked for in our continuous integration system. A tab will be an INSTANT fail.
- Nuclear Technology Devotes Entire Issue to MOOSE
-
Build Loop from SCM not Updating
git --version # timeout=10 git --version # 'git version 2.32.0' git ls-remote -h -- https://github.com/idaholab/moose.git # timeout=10 Found 7 remote heads on https://github.com/idaholab/moose.git [poll] Latest remote head revision on refs/heads/master is: 1d1b703aef983bb75174883f145cd0d26f10d167 Done. Took 0.18 sec Changes found ```
FEM
- Jacobian matrix for a 4 node rectangular elements
-
Finite Element Heat Transfer Analysis with MATLAB
I apologize in advance for my English, it's not my main language. Do you want to code this exact problem in MATLAB? If you need this specific problem just write the global matrix and global force vector. If you want to implement a full program for heat transfer is not hard either. You must create single element matrices and vectors. Then, using a for loop you can create the global matrix just adding small matrices. Border conditions are very important. You can create a matrix of border conditions. The first column is the node in which the border condition is applied and the second column is the border condition value. You can create both essential, natural and convective border condition matrices. In the computational implementation it is not very useful to remove rows and columns of the global matrix. The reason is that your solution vector size will be different to the number of degree of freedom. That makes the process harder (and slower) (source Reddy's book). There are several methods to assign the border conditions. For example, you can extract the column with the same number of the border condition degree of freedom. Then multiply the whole column by the border condition value and subtract it to the force global vector. Last is to modify the column and row of the global matrix to 0 except the diagonal value which have to be changed to 1. The row of the force vector with the same degree of freedom has to be the border condition value. When you solve the equation system you end with the node solution. You can create graphs with these values or create better graphs using the shape functions. You can create a heat flux graph using shape functions too!! I made a Python FEM package, it has a heat transfer option. It's not Matlab, but maybe you can find it useful. Link https://github.com/ZibraMax/FEM
What are some alternatives?
mfem - Lightweight, general, scalable C++ library for finite element methods
scikit-fem - Simple finite element assemblers
gtoolkit - Glamorous Toolkit is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.
anaStruct - 2D structural analysis in Python
elmerfem - Official git repository of Elmer FEM software
Kratos - Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
preCICE - A coupling library for partitioned multi-physics simulations, including, but not restricted to fluid-structure interaction and conjugate heat transfer simulations.
libmesh - libMesh github repository
difftaichi - 10 differentiable physical simulators built with Taichi differentiable programming (DiffTaichi, ICLR 2020)
section-properties - Analysis of an arbitrary cross-section in python using the finite element method.