Take your parametric app to the next level by utilizing the advanced yet simple FEM solver that Awatif provides.
Runs anywhere, even in browsers without a backend.
Built using modern programming technologies.
Operates in both 2D and 3D spaces.
Rigorously tested and validated by clients.
Runs static analysis. Dynamic and non-linear on the way.
npm install awatif-fem
import { Node, Element, AnalysisInputs, AnalysisOutputs } from "awatif-data-structure";
import { analyze } from "awatif-fem";
const nodes: Node[] = [
[0, 0, 3],
[3, 0, 3],
[3, 0, 0],
];
const elements: Element[] = [
[0, 1],
[1, 2],
];
const analysisInputs: AnalysisInputs = {
materials: new Map(),
sections: new Map(),
pointSupports: new Map(),
pointLoads: new Map(),
};
analysisInputs.pointSupports?.set(0, [false, true, false, true, false, true]);
analysisInputs.pointSupports?.set(2, [false, true, false, true, false, true]);
analysisInputs.pointLoads?.set(1, [0, -22e3, 0, 0, 0, 0]);
elements.forEach((_, i) => {
analysisInputs.materials?.set(i, {
elasticity: 210e9,
shearModulus: 84e9,
});
analysisInputs.sections?.set(i, {
momentOfInertiaZ: 16.6e-5,
torsionalConstant: 4.6e-5,
});
});
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],
},
],
};
When you toggle the bending moment setting located at the top-left corner, you should see this: