Monday, 10 March 2008

Posters

Well, from the content of the blog I do nothing more than mechanical optimization as done with the 99-lines code of Sigumnd (with the minor extensions to the force inverter). In fact, I wait for the paper, I'm currently writing, to be submitted before posting about piezoelectric optimization stuff.

Well, there recently was kind of a publication I can blog: I participated at the poster exhibition at ASIM08. Concurrently I had to prepare a poster for one of my employing chairs: AM3. So I also present the draft here. In both cases the credits for the layout don't belong to me and the posters contain a contribution of my project partner Fabian Schury.



The first poster was created using CorelDraw - and as much as I hate pixel pushing and using texpoint to import tex-formulas, the much faster Latex version simply looks far less fancy.

Saturday, 2 February 2008

Force Inverter

Well, I didn't blog for quite some time due to some reasons:

  • lack of time

  • I don't think one reads actually what I write :(

  • I wanted to show pictures next :)


I did the force inverter, which is a optimization for selected
solution variables (e.g. max where l=(0 0 0 0 1 0 0)^T
(I call the objective "output") already in Denmark the last
summer in Matlab and shortly later in C++ in our own academic
FEM solver.

This requires the solution of the adjoint pde, technically
one only solves for another right hand side (l).

To optimize for the solution variable is a really interesting
objective, but the
optimization becomes quite challenging (in mechanics):

  • IPOPT can't do it (at least the simple example I show)

  • With SCPIP I had quite some problems but finally I found out
    with the help of SCPIP's author, Christian Zillober, that
    it was my fault. I compiled SCPIP with -O2 (g77) what was fine for
    compliance but led to wrong results here.

  • As mentioned in the book by Bendsoe and Sigmund, one can adopt the optimality condition
    method. It is not that easy but works ok in an ugly way
    (implementation and performance) but doing it nicer cost me
    already too much time w/o good results. In the end I much prefer
    SCPIP


So finally: Here is the force inverter, the standard example we
did in Denmark within a very nice lecture by Ole Sigmund: We press
on the left and want the point on the right to move against the
input force direction. There is a small spring added the the output
node for regularization.




And the movie

Wednesday, 19 September 2007

New link to C++SCPIP and more stuff

I consider to publish more C++ code like C++SCPIP. I hope for
a C++ILUPACK version, maybe a C++MMA and then there is a FEM code in C++ I wrote 2 years ago together with Michael Tesch, which could serve educational purpose (C++FEM).

Therefore I renamed the Sourforge project to C++Math. As a matter of fact most academic state of the art code is written in Fortran, runs
excellent but often lacks ease of use. On the other side is this my contribution to bring more object oriented techniques into the academic community.

The next post will have some pictures again! :)

Thursday, 16 August 2007

Battle of the tools

As I worked for 5 years as a software developer after my
diploma degree before I did my master in computational engineering, I got used to work with tools. I shall add that I do a lot of object oriented stuff - always in the seek of a balance between framework generalization and pragmatism.

What I miss is Together, one of the best (an for non-academic used most expensive) UML tools for visual supported designing,
refactoring or simply navigation within the code. I was not able yet to make it parse the huge C++ finite element simulation code from my institute.

What I really find a big boost ist Eclipse with the C/C++ plugin. It is state of the arte and has a lot of features lightyears away from emacs and vi. For users I suggest the blog of Doug, the CDT project lead. Contact me first if you want to try it with Linux on a 64bit system (Code2, Opteron, ...)!

It integraties smooth with our version control sytem subversion. And if you ever worked with one you will never want to miss it. It is open source, fast to set-up and supported my many tools on all platforms.

For finding memory leaks we use valgrind, with the profiling tool chachegrind (which simulates the cache!). To be used with valkyrie (very important!) and kcachegrind.

For bugtracking, wiki and web-browsing our repository we use trac, a feature rich web-tool.

So it is at least my personal experience, that object oriented software and tools is good for this kind of academic, high-performance oriented software done at the universities. I simply don't belive, that FORTRAN is significantly faster. Hey, FORTRAN77 is 3 years younger than the Intel 4004! But it is on the other side true, that the learning curve for OO takes years, but this is also true for math actually for every profession.

Friday, 10 August 2007

C++SCPIP published

I finally managed to publish my open source C++ interface to the SQP/MMA optimizer SCPIP from Chrisitan Zillober. The current entry point is cppmath.wiki.sourceforge.net.

I want to thank Christian Zillober for providing me the code of SCPIP for my thesis and Andreas Wächter from whom I took a lot of ideas and code from his IPOPT.

I hope C++SCPIP is for use of some optimizers out there. If so, please let me know :)

Thursday, 12 July 2007

DCAMM Advanced school

I participated at the DCAMM Advanced school from June 20 - 26, 2007. This was offered by the DTU in Denmark.

This international course for Ph.D. students provided a good introduction to the SIMP
method with exercises based on the 99 lines code. DTU is full of SIMP experts (to start
with Martin Bendsoe and Ole Sigmund - who are really nice!!)

It was really inspiring and it helped me a lot to talk to the people there. Especially
Jakob Søndergaard Jensen :)

I had a good time there, met nice people and I enjoyed it to talk to so many people working
on similar problems as I do. There is an picture of the final presentation of the group results.



So, if you have an option then I advice you to attend this course the next time. One learns a lot!

Thursday, 15 March 2007

Maximizing the compliance

I was wondering what would happen if I maximize the compliance - in other words to minimize stiffness. Note that the compliance is defined as the scalar product of force (externaly applied in the center of this bridge) and the displacement. <f, u>. When minimizing compliance I mininimize the mechanical energy which is <u, Ku> what is equivalent. Here the first formulation is more interesting, as our force is applied in the example only at a single node. The simulation is done with IPOPT as optimizer, the animation shows, that in a first attempt IPOPT weakens the material at the fix points - but removing the material at the load point allows clearly the highest displacement at this single load point.