CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Dynamic moving mesh (https://www.cfd-online.com/Forums/openfoam-solving/58817-dynamic-moving-mesh.html)

hjasak June 6, 2005 11:12

My automatic mesh motion solve
 
My automatic mesh motion solver does not need the crank angle - have a look at the icoFoamAutoMotion or moveMesh applications on how to set up a moving mesh problem. Once you specify the motion of the boundary, the rest will be done automatically.

As for the flow solver, you do not have any topological changes (right?), so any compressible code with mesh motion should be a good starting point.

Enjoy,

Hrv

albi80 June 6, 2005 13:25

Can I apply moveMesh utilities
 
Can I apply moveMesh utilities at the oodles solver too??

henry June 6, 2005 13:27

Is your flow compressible or i
 
Is your flow compressible or incompressible?

albi80 June 6, 2005 13:33

I can consider incompressible
 
I can consider incompressible ...

henry June 6, 2005 13:38

In which case you can either a
 
In which case you can either add the LES model construction and calls from oodels to icoFoamAutoMotion or add the mesh-motion calls from icoFoamAutoMotion to oodles. You might also want to consider how you want to move the mesh; if you only want to move in by extension and contraction you might find the mesh-motion solver over-kill and it might be better for you to move the points directly and call mesh.movePoints with the new point locations you compute yourself.

albi80 June 8, 2005 11:23

Hi, I'm always me .... I add
 
Hi,
I'm always me .... I add the mesh-motions calls and costructions of icoFoamAutoMotion to oodles and I simulate a test "in a box" with a moving wall. For the moment it's ok, the cell move in extension, but is it possible to create other cell or destroy it (rezone ...???) ?
Thanks

henry June 8, 2005 11:32

Take a look at icoTopoFoam.
 
Take a look at icoTopoFoam.

albi80 June 8, 2005 11:59

Now I've tried with the tutori
 
Now I've tried with the tutorial for icoTopoFoam, blockMesh ok, but when I launch the simulation (icoTopoFoam . mixer2D), it stops and give me Segmentation fault... For what is it icoTopoFoam ? What are and how do I set the file cellToRegion, mixerProperties ecc.. ??

hjasak June 8, 2005 12:06

In order to do cell addition/r
 
In order to do cell addition/removal, sliding interface, you need my dynamic mesh stuff. The details have been described in one of the threads in this discussion group in detail and Pei has promised to make a tutorial from the examples I've sent him a while back (any news?).

As for the functionality, you can take a look at the pictures on my private web site:

http://www.h.jasak.dial.pipex.com under FOAM development or

http://www.foamcfd.org (same thing, I am migrating the contents).

This is not trivial and for a better version with new stuff, some bug fixes and more pre-implemented functionality you'll need a new version of FOAM.

Enjoy,

Hrv

henry June 8, 2005 12:06

There have already been lots o
 
There have already been lots of discussions about running with topology change, you should be able to find the threads using the search facility.

albi80 June 8, 2005 12:33

Thank Henry and Hrv, probabl
 
Thank Henry and Hrv,
probably for the moment it's enough what I've done (I have spoken five minutes ago with the professor......) so now I try oodles with the call of mesh-motion..... and probably I disturb you later....
Bye
Alberto

albi80 June 9, 2005 06:37

Hi , Anyone can help me ? Ho
 
Hi ,
Anyone can help me ?
How can I set for my movingWall (in motionU file) a motion law (for example a piston motion, simple harmonic) ?

Thanks
Alberto

henry June 9, 2005 06:43

Take a look at engineFoam and
 
Take a look at engineFoam and the mesh-motion used by it in OpenFOAM-1.1/src/engine/include/movePiston.H

You will probably find the simple approach for layered meshes at the top of this file adequate but if your mesh is not layered then you will have to use the more complex and expensive mesh-motion solver.

albi80 June 9, 2005 08:22

But isn't it possible to set d
 
But isn't it possible to set directly in the Umotion file, instead "fixedValue" for movingWall, something like ... "variableValue" and I can specify the exact law motion ?

Thanks Alberto

hjasak June 9, 2005 14:09

In order to do that, you will
 
In order to do that, you will need your own boundary condition type - the function that described the motion needs to exist is C++ and only the parameters can be read in. Search for my oscillating fixed value boundary condition, posted on this group a while back.

Hrv

albi80 June 10, 2005 06:20

So -I should add #include
 
So
-I should add
#include "setBoundaryMotion.H"

in the moveMesh.C file.
-I create the setBoundaryMotion.H file, I compile it ... and... it's ok?

The amplitude and frequency I can set directly in the setBoundaryMotion.H file?

What should I set in the motionU file in the /0 directory?

gschaider June 10, 2005 09:27

@Hrvs posting from the 8th:
 
@Hrvs posting from the 8th:

Some days ago I copied the descriptions Hrv was refering to to the Wiki (with some very minor editing). It's the first How-To on the Wiki that really deserves that name:

http://openfoamwiki.net/index.php/HowTo_setting_u p_dynamic_mesh_cases

(I know it's a bit off topic here, but I wanted to say it)

albi80 June 10, 2005 11:30

Thanks a lot Bernhard, but in
 
Thanks a lot Bernhard,
but in the page that you give me I haven't found any example of "oscillating fixed value boundary condition" that Hrv has posted February 19. Do you know how to "create" step by step the boundary oscillating of which Hrv told me??
Thanks Alberto.

gschaider June 14, 2005 07:45

Sorry Alberto! Personally I
 
Sorry Alberto!

Personally I don't have any experience with dynamic meshes. I just copied Hrvs explanation to the Wiki because I thought it was an excellent start for a How-To (The original thread is referenced at the top of the page, there are some examples there - don't know if they apply to your problem - which I havn't edited to the Wiki yet; I plan to do that when I have some time, but I wouldn't mind if somebody who actually tried them did that)

stefanke December 1, 2006 17:50

I have tried to implement the
 
I have tried to implement the layer addition/removal things into an existing engine solver. So far in the compression stroke all works fine but as soon as there is a layer addition in the expansion stroke some strange things happen:

...
Added all cells. Final cell count = 600

Added zone points: untouched = 0() modified = 0() added = 0(). Points per zone = 0()
Added zone faces: untouched = 1(0) modified = 1(100) added = 1(0). Faces per zone = 1(100)
Added zone cells: untouched = 0() modified = 0() added = 0(). Cells per zone = 0()
void polyMesh::clearGeom() : clearing geometric data
void polyMesh::clearAddressing() : clearing topology
void polyMesh::setInstance(const fileName& inst) : Resetting file instance to "69"
void polyMesh::initMesh() : calculating faceCells
Foam::polyMesh::morph
(
const polyTopoChange& ref
) : completed topological change.


From function void polyTopoChanger::update(const mapPolyMesh& m)
in file polyTopoChange/polyTopoChanger/polyTopoChanger.C at line 247
Updating mesh modifiers
layerAdditionRemoval::updateMesh(const mapPolyMesh&) for object pistonLayer : Clearing addressing on external request. Pointers not set.
void polyMesh::setInstance(const fileName& inst) : Resetting file instance to "69"
Mapping field meshPhi
Mapping field meshPhi_0
Piston layering mode
tmp<scalarfield> polyMesh::movePoints(const pointField&) : Moving points for time 0.00575 index 249
bool primitiveMesh::checkMeshMotion(const pointField& newPoints, const bool report) const: checking mesh motion
Min volume = 3.90451e-08. Total volume = 2.63342e-05. Cell volumes OK.
Zero or negative face area detected for internal face 1400 between cells 500 and 501. Face area magnitude = 0
--> FOAM Warning :
From function primitiveMesh::checkMeshMotion(const pointField& newPoints, const bool report) const
in file meshes/primitiveMesh/primitiveMeshCheckMotion.C at line 200
Severe non-orthogonality in mesh motion for face 1400 between cells 500 and 501: Angle = 90 deg.
Zero or negative face area detected for internal face 1401 between cells 500 and 510. Face area magnitude = 0
...

Has anyone an idea what is going wrong here. The strange thing is that the layer removement in the compression stroke works perfectly !?!


All times are GMT -4. The time now is 21:24.