1. Awatif
  2. Data Structure

Awatif Data Structure

What sets Awatif apart is the significant challenge in our industry: the reliance on different apps for designing structures. Unfortunately, we still lack a unified data structure to interpolate between them. Awatif addresses this challenge by decomposing model complexity into its core primitives, which are geometry-based. Any structure geometry can be represented by a list of nodes and elements. All additional data required for analysis, design, or reporting is simply assigned to these nodes or elements.

Installation

The data structure is platform-agnostic; you can follow the same structure in Python or C#. Here, the types are defined in TypeScript, allowing you to import them into your algorithm. This enables smooth interpolation with other algorithms that adhere to the same data structure.

npm install awatif-data-structure

Usage

import { Element, Node, AnalysisInputs } from "awatif-data-structure";

const nodes: Node[] = [
  [0, 0, 0],
  [0, 5, 0],
  [5, 5, 0],
  [5, 0, 0],
];
const elements: Element[] = [
  [0, 1],
  [1, 2],
  [2, 3],
];

const analysisInputs: AnalysisInputs = {
  materials: new Map(),
  sections: new Map(),
  pointLoads: new Map(),
};

analysisInputs.materials?.set(0, { elasticity: 200 });
analysisInputs.sections?.set(1, { area: 10 });
analysisInputs.pointLoads?.set(1, [0, 0, -50, 0, 0, 0]);

Examples

Below are examples of a complete Finite Element Method (FEM) analysis using this data structure:

  1. Bars - view - source code
  2. Beams - view - source code
  3. More Examples

API Reference (not updated)

For Geometry

For Analysis

source code