Skip to content

An implementation of Force Density Method (FDM) in Python

Notifications You must be signed in to change notification settings

sevamoo/Force_Density_Method

Repository files navigation

Force Density Method

A Python implementation of the Force Density Method (FDM), introduced by Schek (1974).

  • FDM is an algebraic approach for finding the shape (geometry) of structures under equilibrium of forces.
  • The FDM methods requires a connectivity graph (a given topology with fixed and free nodes), external loadings on the nodes (Vectors in 3 dimensions) and force densities on the edges as the main inputs.
  • The solver then simply solves a system of linear equations and provides the 3-dimensional coordinates of the nodes under equilibrium.

Implemented by: Vahid Moosavi

  • Implementation is the same as described in Schek (1974).

  • Schek, H. J. (1974). The force density method for form finding and computation of general networks. Computer methods in applied mechanics and engineering, 3(1), 115-134.

  • Works easily with mesh-based structures or graphs (in Networkx format)

  • As shown in examples, can be mixed with any machine learning algorithms, optimization methods (either gradient based or evolutionary strategies.)

  • Look at the examples here

  • Some sample results:

    • Meshed shell structures

    • Parametrizing the force densities based on network centrality measures

    • A case of roof where the fixed nodes are on a circle with fixed radius.

    • Clustering of 10K generated geometries based on the distribution of forces, edge length and load-paths.

To-Dos:

  • Integrating the FDM solver with an auto-differentiation framework such as JAX or Tensorflow.
  • Integrating the FDM solver with rule based subdivision systems and parametric topologies in addition to parametric force densities.
  • Integrating the FDM solver into an agent-based framework and Reinforcement Learning (RL) set up, where the agent will explore the design space toward a given goal. The goal could be any from optimization concepts or based on other aspects such as maximizing the chance of finding unseen geometries!

About

An implementation of Force Density Method (FDM) in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published