Giter VIP home page Giter VIP logo

somp's Introduction

SOMP

Solid Orthotropic Material with Penalisation

SOMP

The code is based on top99: less efficient, restricted to 2D. But More readable for beginners ;)

Tutorial

main.m

main.m : main programm setup the constrained optimization problem and solve it with interior-point method (fmincon)

x0 is the initial design vector x0 = [rho0(:);theta0(:)];

global nelx nely vol volfrac ang angle penal rmin % global variable

check.m

function [dcn]=check(nelx,nely,rmin,x,dc) : top99 MESH-INDEPENDENCY FILTER

top_obj.m

[c, dt]=top_obj(x) : output compliance c and dc/drho, dc/dtheta

myConstrFcn.m

function [cneq, ceq, gradc, gradceq] = myConstrFcn(x) : output nonlinear constraints and derivative

lk0d.m

function [KE,dKE]=lkOd(angle); CLT for 1-layer composite membrane fully integrated KE(8x8 matrix), and derivative with respect to angle dKE, called in FE.m Orthotropic equivalent function to TOP99 lk.m

For a fixed material: Ex=1; Ey=5; nuxy = 0.3; nuyx = 0.3;

lk0d_laminate.m

function [KE,dKE]=lkOd_laminate(angle); CLT for 1-layer composite membrane fully integrated Ke (8x8 matrix), and derivative with respect to angle, called in FE.m with fixed material:

Ex=44.8e+03; % longitudinal Elastic modulus [MPa] Ey=4.2e+03; % transversal Elastic modulus [MPa] %Glt=1.9e+03; % Shear Modulus [MPa] nuxy=0.49; % Poisson ratio nuyx=nuxy*Ey/Ex;

integK_laminate.m

Symbolic integration of Ke for a fixed material. Not used in Optimization

FE.m

function [U]=FE(nelx,nely,vol,ang,penal); output displacement as a function of the actual iteration (and x vector) similar to TOP99 FE.m

myOutputFcn.m

needed for output of the objective function

OBJ

Postprocessing

Convolution filter to smooth fiber orientation

HEATMAP

TO GO FURTHER

use top88.m for vectorization/speed/memory demo

use top88_fmincon.m to compare with this code

use top88_MMA.m with MMA (need svanberg's files mmasub, subsolv) to see the ability of MMA to tackle the XO sensitivity ?

use to88_heaviside_MMA.m for stress constrained and MMA demo

use top99neo.m with MMA for 3D problem code

Bibliography

Begineer's guide in FE with matlab and abaqus

Topology and printing orientation optimization of orthotropic material for additive manufacturing https://yorkspace.library.yorku.ca/xmlui/handle/10315/38783

An Anisotropic Topology Optimization Method For Carbon Fiber-Reinforced Fused Filament Fabrication https://baylor-ir.tdl.org/handle/2104/9821

Three dimensional topology optimization with orthotropic material orientation design for additive manufacturing structures. https://baylor-ir.tdl.org/handle/2104/10163

Jiang's journal paper https://www.mdpi.com/2079-6439/7/2/14/htm

somp's People

Contributors

jomorlier avatar muhamadamani avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

somp's Issues

Extension to cos/sin

Thanks to a discussion with Edouard:

consider cos and sin instead of orientation
in top_obj line 5,6 :

vol = x(1:length(x)/3);

cos = x((length(x)/3+1):2*(length(x)/3));

sin = x((2*length(x)/3+1):end);

ang=arctan(sin./cos); % rad?

in main line 36-56:

cos0=ones(nely,nelx);

sin0=ones(nely,nelx);

x0 = [rho0(:);cos0(:);sin0(:)];

lb = [1E-6ones(length(rho0(:)),1);-1ones(2*length(cos0(:)),1)];

ub = [ones(length(rho0(:)),1);ones(2*length(cos0(:))1)];

Aeq = [ones(1,length(rho0(:))) zeros(1,2*length(cos0(:)))];

  • after x is updated....for the postproccessing

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.