giovannacandrade / RBF-Topology-Optimization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RBF-Topology-Optimization

This repository provides a level-set-based topology optimization strategy using radial basis functions for solution of the compliance minimization problem. It consists of one main file named RBFtopOpt.ipynb, in which the parameters and the optimization loop are defined; and three auxiliary files: plsf.py, in which the class PLSF is defined to handle all operations related to the parametrized level set function; structure.py, in which the class STRUCTURE is defined to handle all operations related to the structural model; and _aux.py, in which auxiliary functions are defined.

The code was developed to work mainly a Hilbertian velocity extension, based on the boundary expression of the shape derivative of the cost function [1]. However, alternatives are also provided to work with the volume expression of the shape derivative and natural extension. Also, the user can choose between five different benchmark test-problems: "cantilever1", "cantilever2", "half wheel", "bridge" and "MBB-beam" (see [Section 1, 1] for details on corresponding boundary conditions). Structures are assumed to be in static equilibrium, under plane stress state and built with isotropic linear elastic materials and all operations associated to the structural model are executed using FEniCS project resources [2].

[1] G. C. Andrade, S. A. Santos. A level-set based topology optimization strategy using radial basis functions and a Hilbertian velocity extension. Submmited, 2022. Preprint availible in http://www.optimization-online.org/DB_HTML/2022/04/8870.html

[2] A. Logg, K.-A. Mardal, G. N. Wells, Automated Solution of Differential Equations by the Finite Element Method - The FEniCS Book, Lecture Notes in Computational Science and Engineering (LNCSE,volume 84), Springer-Verlag, Berlin Heidelberg, 2012. doi:10.1007/978-3-642-23099-8.

About

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 98.9%Language:Python 1.1%