Giter Site home page Giter Site logo

raphael-boichot / evolutionary-structural-optimisation-algorithm Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 7.59 MB

An Evolutionary Structural Optimisation (ESO) implementation for thermal science

License: GNU General Public License v3.0

MATLAB 100.00%

evolutionary-structural-optimisation-algorithm's Introduction

Evolutionary Structural Optimisation (ESO) algorithm for thermal science

This code is intended to solve the Area-to-point problem in thermal science with a bidirectionnal ESO algorithm. The results of this algorithm has never been published in any peer-reviewed journal, since it's very well-known and has been implemented many times before mine (or I guess ?).

It is very easy to use: enter the filling ratio and the ratio of conductivity of two materials on a heating surface linked to a localized heat sink and it makes the conductive matter (in dark) evolve following a very simple principle :

  • find the position of the least quantity (a pixel) of conductive matter that does not impede maximal temperature of the domain when it's removed;
  • find the position of the least quantity (a pixel) of conductive matter that decreases at most maximal temperature of the domain when it's added;
  • exchange the two cell properties so that quantity of draining (conductive) material is constant and continue. Adding a bit of randomness at this step, like taking the best swap among 5 possibilities for example, is better. Several cells can be exchanged at this step to speed up convergence in particular at the beginning;
  • the codes stops when repeated exchanges of positions are detected.

The shape obtained presents a very efficient (and optimal) design to cool a distributed heated surfaces like a computer chips, battery stacks, some parts of fuel cells, etc. The theoretical optimal solution to the problem must have equalized temperatures along the adiabatic borders. The code is very simple and super effective, but also quite slow to converge. Results are similar to the Genetic Algorithm case.

An improvement of this code is also available: the Progressive ESO (PESO)

Code free to use, please cite the author according to the license !

It is meant to be used with the Parallel computing toolbox of Matlab on multi-core processors. The code itself solves a Finite Difference approximation of the heat equation on unspecified shapes with a direct sparse solver. The test case converges in about one day on a desktop computer with 8 cores.

Test case

test case

Exemple of code output during convergence, max temperature minimization

code output

Exemple of converged shapes with kp/k0=10, filling ratio = 0.3 and various algorithms, max temperature minimization

Exemple of convergence with kp/k0=10 and filling ratio = 0.3 (20 steps per frame), max temperature minimization

Additional notes

ESO and Genetic algorithm gives very similar shapes in terms of thermal performances, with ESO being about 10 times faster than GA. Cellular Automaton, not an optimization algorithm stricto sensu, converges to an acceptable local minima only. These 3 algorithms are anyway state of the art to tackle the area-to-point problem.

evolutionary-structural-optimisation-algorithm's People

Contributors

raphael-boichot avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.