Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.
Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.
Transient 3D Moving Mesh
Posted Feb 20, 2012, 6:26 p.m. EST Mesh Version 4.2a 10 Replies
Please login with a confirmed email address before reporting spam
I also eventually want a unit cell of cylinders with periodic boundary conditions, but that's another problem for another day...
Thanks to anyone in advance!
RAC
Attachments:
Please login with a confirmed email address before reporting spam
You have an interesting model there ;) and not that trivial, from my understanding.
You are choosing the apporach physics by physics, one way, you could also consider NITF that combines SPF and HT (seen from the fluid side)
Then with v4.2a, now the order of the "physics" in the node tree have some importance, I have not fully got the feeling for this yet, but I know that when combining moving mesh ALE with SOLID you should set the ALE physics FIRST in the node tree (just drag it on the top of the physics nodes) it might not be relevant for you here, as your two other physics do not split the material/reference and spatial frames (resp. Mesh frame), but one never know.
Then to some model subtilities. If I read you correctly your cylinder is moving (or draged by the fluid, in which case it is FSI physics that is required and that will definitively interact with your ALE as there is already an ALE in the FSI, but no HT). But your upper block/surface is fixed. You have defined geometry "union mode" that is that the cylinder and the top Silicon block have a common boundary (circle surface where the cylinder touches the top block) but as the cylinder is moving the boundary will too, so your fixee Si block would need a moving mesh too with this arrangement.
One way around is to consider geometry "assembly mode" and dedouble the two boundary (without inprints but with identity pairs) and define a HT continuity or contact resistance, which allows for a fixed mesh on the fixed block and a "moving" continuity boundary where the two parts touch.
Another way to approach the issue si to set up the physics one by one and solve them separately, in that way you get each correctly set up, then you combine them in one model. As, enabling and disabling so many physics imply quite some changes to the solver nodes each time. So long you do not edit the solver nodes COMSOl mostly manage to follow, but if you also changes elements deeper in the solver node tree, then COMSOl may loose track and then you must redefine your solver sequences manaully. That is the main reason why I make 2-3 models separate, then I rebuild the full model.
OK I'm not giving you "THE" solution but I hope these hints can bring you further, it would also take me quite some time to test and build your model, time that I unfortunately do not have now. But I'm eager (and probably other out here too) to hear how it goes
--
Good luck, and have fun COMSOLING
Ivar
Please login with a confirmed email address before reporting spam
Thank you so much for your quick reply and helpful hints. The cylinder in my case is not being moved by the fluid (it's vice versa) so fsi might not be the best choice especially since, as you said, there is no HT incorporated. I did try fsi previously though, unsuccessfuly. So I'm sticking with 1) moving mesh (ale), 2) laminar flow (spf), and 3) heat transfer in solids (ht).
I figured out my moving mesh problem! The "Zero Normal Mesh Displacement" at the bottom boundary was causing the failure to obtain consistent initial values. Oddly, when I replaced it with a "Prescribed Mesh Displacement" with only z checked as zero displacement, it worked. I thought that would have been saying the same thing, but I guess not. The "form assembly" option you mentioned works great for the heat transfer physics (with identity pair heat continuity), but when I tried assembly with the moving mesh, the cylinder moved perfectly but without affecting the mesh of the surrounding fluid. They basically overlapped each other since I guess they are viewed as separate entities in assembly mode. So for moving mesh, I have chosen "form union". I don't suppose you can define certain parts of your geometry to be "assembly" and others "union"...? wishful thinking!
Another thing, since I have boundary elements around the cylinder for the fluid flow, the mesh element quality is inherently lower. So when I added automatic remeshing, I had to lower the minimum element quality to something like 0.03 (instead of the default 0.2) in order for the solver to work. Having fluid elements in transient moving mesh makes the solver very slow though... oh well. I have attached a gif file to show the moving mesh results, which took about an hour an 15 minutes to run.
Eventually I want to have a unit cell of cylinders that I'd like to move in unison, so I'll need periodic boundary conditions on the top/bottom x-z planes. for a situation like this, do you know if it is possible to use linear extrusion on mesh displacement at periodic boundaries?
Rebecca
Attachments:
Please login with a confirmed email address before reporting spam
Attachments:
Please login with a confirmed email address before reporting spam
Well that looks nice, you seem to have controlled well the ALE there ;)
Concerning the physics it's worth to take a look at the doc about NITF compared to SPF + HT, but the three you have choosen should work, provided the adequate knitting of linked variables.
Geometry assembly allows for combined cases, it basically dedoubles all common boundaries of independent entities, that otherwise would be made unique. Also if you have overlapping volumes you might get overlapping entities, except if you use the "imprint" option when the common domains are separated, or common boundaries of different shapes are cut out. But in union mode, if you have three cubes each on top (adjacent) of the others, and then you make an explicit union of two adjacent, then the "assembly" and common boundary spliting will only occure between the "non-union" boundary parts, this means you do not need to have all boundaries dedoubled, useful for complex geoemtries where you want to have an assemly boundary only for a few boundaries. (I hope you cathed my explanation, the easiest is to try it out with 1-3 cubes adjacent or intersecting, with or without imprints and with or without internal union among some.
I'm not astonised you need to lower the mesh uality, even "boundry mesh elements are often thin and long, and thend to lower te "quality" that from what I understand is a measure of the "roundness" or ability to enter perfectly with all external nodes onto a sphere. Another way is to mesh separately the cylinder with a rather fine mesh, and leave the external part ina coarser mode.
3D CFD is RAM and comuter intensive, so its rather nomal it takes time, getting worse when you mix in T too.
Then comes the issue segregated or fully coupled solver ? I prefer often fully coupled (comsol by default proposes mostly segregated, today) and then the order: first the fluid or then the heat or the opposite, consider the heat diffusivity versus fluid velocity to help for the choice.
Another comment, if you have two material in contact with a rather high heat flux across the boundary, one with low heat diffusivity, the other with high diffusivity, then consider to use also boundary mesh elements on the "low" heat diffusivity side, in transient analysis. It all depends on the gradient of T you observe, the erfc() solution is ather steep for t=> 0 hence requires a fine mesh to be resolved for small devices (in size) and small time steps
Normally you should be able to apply periodic BC conditions to your fluid sides, so long the topology does not change it's OK (i.e the cylinder remains within your model, not touching any external borders)
Have fun COMSOLING
--
Ivar
Please login with a confirmed email address before reporting spam
Our mesaages are crossing I see, I'm not by my COMSOL WS so I'll have to wait to tomorrow to take a quick look. But normally you need to use the same transient solver node with either segregated steps or (if you have enough RAAM) try/add a fully coupled node to solve all three physics in one go often more stable
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
I don't have the HT module (only structural mechanics), so I can't use NITF unfortunately :-/
I didn't know the assembly/union trick, but I understood your explanation and got it now.
The fluid flow does not depend strongly on the temperature, so I think I would solve first for fluid flow, and then for heat transfer. The sharp temperature gradients occur mostly at the fluid walls, where there are already boundary elements. I can play around with this later if I'm still not capturing the gradients (in time or space) well enough.
I realize that 3D CFD/HT is pretty intense, but I've got 32 GB of RAM, so hopefully it will be okay. I'm trying to counter balance this by only simulating a unit cell (see attached). The fluid periodic boundaries are not a problem, it's the solid cylinders that are moving in the positive y-direction (periodically) that I don't know how to handle. I need the cylinders to move in +y (disappearing on one end and reappearing on the other), while the fluid relaxes around the void spaces created by the cylinders. Both the fluid and cylinders should always remain within the bounds of the rectangular domain. Is that even possible? I tried setting a linear extrusion boundary condition for the ale.y_free parameter on the cylinder boundaries, but the elements wouldn't de-couple so the mesh looked all crazy. I realize this is also complicated by the fact that in doing this I have boundaries appearing and disappearing at the edges. The only other option I can think of is to do a parameter sweep on the geometry, but then I loose the time dependence. Let me know if you have any suggestions.
Thanks again!
Rebecca
Attachments:
Please login with a confirmed email address before reporting spam
well then, from my understanding you ahve a serious issue as standard FEM (inclusive COMSOL) does not accept changes in topology, without remeshing (but that you already do) and reordering if entity number and ID's which means change of Domain and BC set-up. I do not know how to handle such things "dynamically"
But there are still another aproach you should then look into: the phase level and what I call "virtual solid" approaches used typically in the chemistry module, probably you can adapt that to your case, with some equation writing though. But I have never tried anything like that
Even if you do not have the HT module, probably you can get hold of the related pdf doc. That helps to look into how its implementeed, even if all the details are not included therein.
You have a wise approach, start simple and complexify by steps once the previous is working, absolutely the best approach for multi-physics
One more. in your model you said the cylinder was moving the fluid, in that case when you mix ALE and spf, you should use a periodic condition betwenn the inlet outlet. Note that if you remove the inlet outlet, you need to add a point pressure somewhere with a gauge pressure of i.e. "0"
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
I really appreciate your time and insight. I did some reading on the level set method you mentioned to create a "virtual solid", but I'm not really sure I want to go to that level of complexity (not yet, at least). I was afraid I was asking too much of COMSOL to do periodic moving mesh, so instead, I've made the system bigger, allowing for the movement of one unit cell of fluid + cylinders to pass underneath the plate while the original underlying unit is pushed through (see gif file attached).
I did stationary laminar flow and then transient heat transfer + ale. The laminar flow worked fine (I did with and without the periodic boundaries you mentioned with a point pressure constraint). However, the heat transfer solution looked funny to me at the boundary heat source, and this brings me back to the issue of identity pairs again. I added a pair heat continuity (with the identity pair created in assembly mode) in addition to a heat boundary source that is only supposed to occur under the plate. The heat generation is supposed to be from friction, so it should only occur underneath the plate. From the solution, it seems the identity pair created (which is plate bottom + cylinder tops) still does not allow for heat continuity between the plate and the cylinders that weren't originally in contact with the plate. Secondly, the boundary heat source is only supposed to occur underneath the wafer; instead, the cylinders that were originally underneath the plate (but are no longer) still are generating heat.
My question is: what do I have wrong with my identity pair definition, or my boundary condition definition that is causing this odd thing to happen?
Rebecca
Attachments:
Please login with a confirmed email address before reporting spam
Indded it looks like that the heat is continuously transferred by the cylinders onto the fixed bulk block region, as the "imprinted" region is not moving, and even when the cylinders are far away (have you turned OFF the create imprint on the Finish Assembly node ? I would have tried)
Anyhow, you have an issue here when the cylinders leave the bulk Si you have a change in topology and the entities ID's are renumbered, with the risk that COMSOL misses the correct reconnection of the BC values. Ideally the bulk part should cover the full liquid range, but then you need to adapt the material properties with some Boolean values such that the material "vanishes" (almost totally) outside the region of the true bulk Si. In this way you have no geometrical transition region and no topology change hence no element renumbering. But probably you need to use the boolean variables also on conditionally changeing the BC for the heat transfer.
Tricky case, I feel somewhat short of ideas, hopefully someone else can give some tips too (and I'm not by my COMSOL WS so I cannot test anything out like that, just now ,)
Still, have fun Comsoling
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
by the way you should turn on the "Plot while solving" (solver node tab, its "closed" by default), and perhaps at each solver steps, not only "yours". As well as using Probe plots, helps to see how the solver evolves. And allows us to stop the sover when it derives off. Just the green sand bar is slightly frustrating for long runs ;)
The first time you create a solver, before having solved you do not know which plot to select (if turned on COMSOL will grab the first in the list.) What I mostly do is to generate the default solution tree manually (right click in the Study node Show Default Solver) And then solve for the initial condition =select Dependent variables nodes and select Compute to selected. Then you can analyse your initial conditions and generate the default graphs, adjust their scales etc Before you run a full simulation
--
Good luck
Ivar
Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.
Suggested Content
- FORUM Moving Mesh for Transient Navier-Strokes Analysis
- KNOWLEDGE BASE Resolving Time-Dependent Waves
- BLOG Intro to Modeling Transient Heating of Solids in COMSOL Multiphysics®
- KNOWLEDGE BASE Improving Convergence of Transient Models
- BLOG Part 2: Model a Linear Electromagnetic Plunger with a Blocker