Jump to content
wumindao

Classic thermal compliance optimization

Recommended Posts

Hi,

I am trying to do a simple optimization, refer to the following  example.

I have make a fixed temperature at the top middle edge, but have error to run.

How can I make a flux input to the entire surface?  I am thinking that the flux input can't applied on Design_Space domain , right? 

 

 

I also attached my FEM file, for your reference.

 

snipaste_20170421_165132.png.55441f5d6326c88803afac82e1047d08.png

classic thermal compliance optimization.fem

Share this post


Link to post
Share on other sites
Guest

@wumindao

 

You will end up with this message when you have CHBDYE on design space

CHBDYE can't be applied in topology or free-size design domain.

Share this post


Link to post
Share on other sites

Hi Prakash,

 

Is there another method to set the Flux input to the entire plate (topology domain)

As refer to the example above, that comes from attached paper, the optimization can be done by using Optistruct.

 

Can I add heat flux to nodes/ elements without using CHBDYE  ?

 

 

Thermal Topology Optimization in OptiStruct Software.pdf

Share this post


Link to post
Share on other sites

Hi Prakash,

 

Thanks.

Furthermore, is it possible to apply the heat flux on 3D solid elements (including outside surfaces and inside elements), so I can solve topology optimization in 3D domain.

Following photos are showing the 2D and 3D domain model descriptions and results.

 

snipaste_20170424_215752.png

Share this post


Link to post
Share on other sites

Hi Prakash,

 

But the same problem is still there that CHBDYE can't be applied in topology design domain. 

For both 2D and 3D models, the flux need to be applied in the entire design domain.

 

Do you have any other method to solve this problem? 

 

Share this post


Link to post
Share on other sites
Guest
19 hours ago, wumindao said:

is it possible to apply the heat flux on 3D solid elements (including outside surfaces and inside elements),

Yes it is possible to apply heat flux on 3D elements but they need to be in non design space. 

Share this post


Link to post
Share on other sites

Hi Prakash,

 

Thanks.

I have change the heat flux type to QVOL, thus this type flux can be used to applied in design space domain.

Take the 2D problem as example,  I got a different optimal result (following photo) compare to the tree like structure optimal.

Attached file is my model file.

Appreciate if you could help me to check my model and see how can I change the setting to get a tree like structure optimal result.

snipaste_20170425_191200.png

2D classic.fem

Share this post


Link to post
Share on other sites
Guest

@wumindao

 

In the attached pdf, I see the analysis formulation is based on convection and conduction. 

 

To have a fixed temperature you can constrain the nodes without any Dofs and edit the SPCs to provide temperature boundary condition. 

 

It is a little difficult to such a structure just based on assumed values.

Share this post


Link to post
Share on other sites

Hi Prakash,

 

Can you please let me know how to give Internal heat generation to 3D body. I know how to add heat flux from surface through conduction.

 

THANKS

Share this post


Link to post
Share on other sites
On 4/25/2017 at 7:18 AM, wumindao said:

Hi Prakash,

 

Thanks.

I have change the heat flux type to QVOL, thus this type flux can be used to applied in design space domain.

Take the 2D problem as example,  I got a different optimal result (following photo) compare to the tree like structure optimal.

Attached file is my model file.

Appreciate if you could help me to check my model and see how can I change the setting to get a tree like structure optimal result.

snipaste_20170425_191200.png

2D classic.fem

How are you able to get that? 
When I do the optimization process, all elements get removed.
What I did was add a 0 temp boundary condition on the middle nodes, and then added a QVOL flux over all elements. I then set the Obj function to min thermal compliance under a volume constraint of 30%. The entire mesh was set as design variables. But it still ends up trying to remove all elements.

Share this post


Link to post
Share on other sites

Sure.

I've also checked wumindao's file. He set the temperature to 1 instead of 0. That gave me some results, but it still doesn't match with the one in the paper that wumindao linked in his first post. I also noticed when I zoomed into the pictures, that the elements seem to have a convection elements included, which isn't allowed for topology optmization.

Also, according to another paper https://www.sciencedirect.com/science/article/pii/S0168874X08000905 I should be able to optimize the structure with 0 temp boundary condition on the outer edge without convection included (like in the image below). 

image.thumb.png.57594259c1048d94fea69f3d36c4c053.png

Planar.fem

Share this post


Link to post
Share on other sites

Thanks, Prakash!

The model is working fine now. I do however wonder about the two cards OPTI_DEBUG and CASE_UNSUPPORTED_CARDS. What is the use of these cards?
Also, if I wanted to do the same for a 3d model. It wouldn't be possible to add the conduction elements in between the internal elements.

Share this post


Link to post
Share on other sites

So I ran a 100x100x100 3d model  with an element size of 2mm and I had to manually add the surface elements one layer at a time just to ensure that I have conduction elements at least touching one face of the internal elements (So not all faces if an element has those elements attached). And I did get the results I was expecting as you can see below from the mid section view and full view.

image.png.799662e1d5f88098137aaf58a3c3b159.png

But, this was a time consuming process. Is there an efficient way to do this?

If I was to only add the surface elements to the outside face, and add Qvol to the internal elements, I end up getting the shape shown below.

image.png.1d88c6f685359739c644fb5197a77fcf.png

If I was only to add the surface elements on the outside faces (Without internal QVol), I get the shape below. And it doesn't match what I should be getting.
image.png.ed0f907718e835522161a0e5a9edfbb6.png

Thanks

 

Share this post


Link to post
Share on other sites

Hi @Alucard

Can you get the same result as the paper for 2D case? (My first post) Like this. image.png.894610ddc2a5011e3906d857010e8d70.png I have tried several times and still could not get this and then I gave up. After that I use Top3d and got a quite similar optimal tree-like geometry both for 2D and 3D cases. For your 100x100x100 model, maybe you can try Top3d and see which one run fast. 

 

By the way, could you share your 100x100x100 model with me?  my email is wumindao@gmail.com

Thanks. 

 

 

 

Share this post


Link to post
Share on other sites
9 hours ago, Prakash Pagadala said:

reducing the number of nodes (coarse mesh), more memory may help?!!

 

My issue isn't about memory or computational time though. It's about manually having to add the conduction elements internally to get the result that I wanted. If I Was to select all elements, Hypermesh will only add the elements to the external faces of the mesh. So in the case of my 100x100x100, I had to mask every other column and then added the conduction elements. This allowed me to have at least one face in every element that is attached to a conduction element. If I didn't do this, I wouldn't get the results that I'm looking for. Is there another efficient way I can do this?

@wumindao
Yes, the file Prakash shared with me is able to obtain the same results. QBDY1 load has to be applied to the slave conduction elements. And two cards needs to be defined (OPTI_DEBUG and CASE_UNSUPPORTED_CARDS). I sent you both the 2d and 3d files.
I did try Top3d but Matlab ran out of memory when I tried to run a larger model.

Share this post


Link to post
Share on other sites

@Alucard I too am working on a 3D model for this. Were you able to create conduction internally too without masking each row/column. Also do you have any alternate way of contacting you? Also, you are modelling conduction internally and not any convection conditions on the outer surface of the cubes right?

 

Thanking You,

Amogh Taraikar

Share this post


Link to post
Share on other sites
On 10/14/2018 at 6:36 PM, Alucard said:

So I ran a 100x100x100 3d model  with an element size of 2mm and I had to manually add the surface elements one layer at a time just to ensure that I have conduction elements at least touching one face of the internal elements (So not all faces if an element has those elements attached). And I did get the results I was expecting as you can see below from the mid section view and full view.

image.png.799662e1d5f88098137aaf58a3c3b159.png

But, this was a time consuming process. Is there an efficient way to do this?

If I was to only add the surface elements to the outside face, and add Qvol to the internal elements, I end up getting the shape shown below.

image.png.1d88c6f685359739c644fb5197a77fcf.png

If I was only to add the surface elements on the outside faces (Without internal QVol), I get the shape below. And it doesn't match what I should be getting.
image.png.ed0f907718e835522161a0e5a9edfbb6.png

Thanks

 

Hey @Alucard @Prakash Pagadala

I am interested in the work you guys have done. Do you have any tutorial video or user guide to generate thermal topology of 3d objects? if not can you show me how you did it for this problem? My email address is aa.sutaria@gmail.com.

 

Thanks

Ankit Sutaria

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...