awatif-fem
v0.0.11
Published
Awatif Finite Element Method (FEM) Solver
Downloads
301
Maintainers
Readme
Awatif FEM Solver
Take your parametric app to the next level by utilizing the advanced yet simple FEM solver that Awatif provides.
- Built for the Web: Runs anywhere, even in browsers without a backend.
- Fast and Lightweight: Built using modern programming technologies.
- In 3D: Operates in both 2D and 3D spaces.
- Validated and Trusted: Rigorously tested and validated by clients.
- Comprehensive: Runs static analysis. Dynamic and non-linear on the way.
Installation
npm install awatif-fem
Usage
import {
analyze,
Node,
Element,
AnalysisInput,
AnalysisOutputs,
} from "awatif-fem";
const nodes: Node[] = [
[0, 0, 3],
[3, 0, 3],
[3, 0, 0],
];
const elements: Element[] = [
[0, 1],
[1, 2],
];
const analysisInputs: AnalysisInput[] = [
{
node: 0,
support: [false, true, false, true, false, true],
},
{
node: 2,
support: [false, true, false, true, false, true],
},
...elements.map((_, i) => ({
element: i,
elasticity: 210e9,
shearModulus: 84e9,
momentOfInertiaZ: 16.6e-5,
torsionalConstant: 4.6e-5,
})),
{
node: 1,
load: [0, -22e3, 0, 0, 0, 0],
},
];
const analysisOutputs = analyze(nodes, elements, analysisInputs);
const expectedAnalysisOutputs: AnalysisOutputs = {
default: [
{
node: 0,
reaction: [
0, 11000.000000000004, 0, -1646.4208242950122, 0, 31353.579175705014,
],
},
{
node: 1,
deformation: [
0, -0.002627398344540233, 0, 0.0012782770374961275, 0,
-0.0012782770374961275,
],
},
{
element: 0,
normal: [0, 0],
shearY: [11000.000000000004, -11000.000000000004],
shearZ: [0, 0],
torsion: [-1646.4208242950122, 1646.4208242950122],
bendingY: [0, 0],
bendingZ: [31353.579175705014, 1646.4208242950117],
},
],
};
Examples
- Portal frame - view - source code
- 2D truss - view - source code
- Two bars - view - source code
- Examples from the book: A First Course in the Finite Element Method by Daryl L. Logan 6th edition - source code
When you toggle the bending moment setting located at the top-left corner, you should see this: