TopOpt.jl icon indicating copy to clipboard operation
TopOpt.jl copied to clipboard

Nonlinear FEA - material and geometric nonlinearity

Open mohamed82008 opened this issue 2 years ago • 6 comments

We should be able to support material and geometric nonlinearity using a combination of NLSolve.jl and ImplicitDifferentiation.jl. We just need to define the equilibrium equations as a differentiable function of the decision variables.

mohamed82008 avatar Sep 08 '22 11:09 mohamed82008

Is there anything I can do about this?

I'm working on concrete topology optimization, so I have to deal with nonlinearity properties of concrete. I might use this function in the near future.

Also buckling :)

pitipatw avatar Mar 06 '23 20:03 pitipatw

Sounds great! My current plan is to use something like https://github.com/gdalle/ImplicitDifferentiation.jl for defining an implicit function for the NLSolve. So we just need to define our equilibrium conditions using TopOpt.jl function. The main missing piece is defining a differentiable function for the element stiffness matrices given a ground mesh, design x and displacement field u. Once you have K(x, u), we can write the equilibrium as K(x, u) u = f and use NLsolve.jl with ImplicitDifferentiation.jl to compute and differentiate the nonlinear displacement u.

mohamed82008 avatar Mar 07 '23 03:03 mohamed82008

For buckling we already have it for trusses https://github.com/JuliaTopOpt/TopOpt.jl/blob/master/test/truss_topopt_problems/test_buckling_optimize.jl. For continuum it needs some work.

mohamed82008 avatar Mar 07 '23 03:03 mohamed82008

nonlinear buckling is a separate beast though if that's what you mean

mohamed82008 avatar Mar 07 '23 03:03 mohamed82008

I've a very minor experience with non linear buckling shape optimization, but I could start looking into this.

pitipatw avatar Mar 10 '23 21:03 pitipatw

if you find any readings useful in your learning, feel free to open a PR here https://github.com/JuliaTopOpt/EducationalResources and add them

mohamed82008 avatar Mar 10 '23 23:03 mohamed82008