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/)
-   -   LES with moving mesh solver (https://www.cfd-online.com/Forums/openfoam-solving/59553-les-moving-mesh-solver.html)

gtg627e July 18, 2007 10:33

Hello everyone, I am trying
 
Hello everyone,

I am trying to write a new solver which includes oddles and the ability to handle moving meshes in OpenFOAM 1.4. I have installed OpenFOAM a week ago, so I'm still trying to understand its innerworkings.

Looking at the files icoDyFoam.C and oodles.C the only difference (besides the sgs correction) is

fvc:makeAbsolute(phi, U);
# include "setDeltaT.H"

...
...

bool meshChanged = mesh.update()

if (mesh.moving || meshChanged)
{
# include "correctPhi.H"
}

fvc::makeRelative(phi, U);

# include "UEqn.H"

I see that the content of UEqn.H is the representation of the P.D.E that governs the fluid, and in the oodles case is explicitly written in oodles.C.

My questions are:

-- what are the implications of making the flux absolute?
-- is it ok the make the flux absolute and then adjusting it for the mesh motion in oodles?
-- has anybody tried this before? are there any pre-compiled cases which include LES and moving mesh capabilities?
-- has # include "setDeltaT.H" something to do with making sure that the mesh motion is acceptable?

I also experience compiling problems:

here is the output that I get after issuing wmake,

-----------------------------------------------

spadoni@pc-sc01:~/OpenFOAM/spadoni-1.4/applications/Alexsolvers/movingMeshIncoLES$ wmake
SOURCE=movingMeshIncoLES.C ; g++ -m32 -Dlinux -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-40 -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/LESmodels -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/LESmodels/LESdeltas/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/transportModels -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/dynamicFvMesh/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/dynamicMesh/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/finiteVolume/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/meshTools/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/sampling/lnInclude -IlnInclude -I. -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/OpenFOAM/lnInclude -fPIC -pthread -c $SOURCE -o Make/linuxGcc4DPOpt/movingMeshIncoLES.o
correctPhi.H: In function 'int main(int, char**)':
correctPhi.H:31: error: 'rAU' was not declared in this scope
make: **[Make/linuxGcc4DPOpt/movingMeshIncoLES.o] Error 1
spadoni@pc-sc01:~/OpenFOAM/spadoni-1.4/applications/Alexsolvers/movingMeshIncoLES$

-------------------------------------------------

I see that correctPhi.H needs the variable rAU which in oodles is declared inside the PISO loop, which follows the above mesh commands (however in icoDyFoam rAU is also declared inside the PISO loop). So I don't understand how this variable is available before the PISO loop in icoDyFoam either.

Finally, in trying to get familiar with compiling new solvers I tried turbFoam as suggested in the UserGuide. and this is the output of launching wmake inside app/solvers/incompressible/turbFoam:

-------------------------------------------------

spadoni@pc-sc01:~/OpenFOAM/OpenFOAM-1.4/applications/solvers/incompressible/turbFoam$ wmake
Making dependency list for source file turbFoam.C
SOURCE=turbFoam.C ; g++ -m32 -Dlinux -DDP -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast -O3 -DNoRepository -ftemplate-depth-40 -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/finiteVolume/lnInclude -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/turbulenceModels -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/transportModels -IlnInclude -I. -I/users/spadoni/OpenFOAM/OpenFOAM-1.4/src/OpenFOAM/lnInclude -fPIC -pthread -c $SOURCE -o Make/linuxGcc4DPOpt/turbFoam.o
/tmp/cct6E8Em.s: Assembler messages:
/tmp/cct6E8Em.s:5: Warning: setting incorrect section attributes for .text._ZN4Foam6indentERNS_7OstreamE
/tmp/cct6E8Em.s:32: Warning: setting incorrect section attributes for .text._ZN4Foam10incrIndentERNS_7OstreamE
....
....
....
tmp/cct6E8Em.s:104064: Error: unknown pseudo-op: `.weakref'
/tmp/cct6E8Em.s:104065: Error: unknown pseudo-op: `.weakref'
....
....
....
/tmp/cct6E8Em.s:113732: Warning: setting incorrect section attributes for .text.__i686.get_pc_thunk.cx
/tmp/cct6E8Em.s:113739: Warning: setting incorrect section attributes for .text.__i686.get_pc_thunk.bx
make: *** [Make/linuxGcc4DPOpt/turbFoam.o] Error 1
spadoni@pc-sc01:~/OpenFOAM/OpenFOAM-1.4/applications/solvers/incompressible/turbFoam$

-------------------------------------------------
PLEASE NOTE THAT I ADDED ... .... TO SIGNIFY THAT I GET A LIST OF SIMILAR ERRORS.

I saw a posted message which indicated that such errors may be due to outdated binutils....
Is this the cause?

Thank you in advance,

Alessandro Spadoni

gtg627e July 20, 2007 04:56

Hello again, I am working o
 
Hello again,

I am working on a new solver (oodles + moving mesh in OpenFOAM 1.4) as explained in the previous message in this tread.
I was able to resolve compilation problems.

In the file oodles.C (in application/solvers/DNSandLES) I added the moving mesh calls present in the icoDyMFoam.C file. During the compilation I had no errors or warnings. Nonetheless I still have the following doubts:

-- what are the implications of making the flux absolute?
-- is it ok the make the flux absolute and then adjusting it for the mesh motion in oodles?
-- has anybody tried this before? are there any pre-compiled cases which include LES and moving mesh capabilities?
-- has # include "setDeltaT.H" something to do with making sure that the mesh motion is acceptable?

Furthermore, my ultimate goal is to simulate a vibrating structure immersed in air. In particular, I've carried out a modal analysis and I have the mode shapes of my structure as nodal displacements. I understand that my fluid mesh is going to be different than the structural mesh, as I will need many more points for the former one.

I saw the tread http://www.cfd-online.com/OpenFOAM_D...ges/1/190.html, but it is not clear to me how one would include such file (setBoundaryMotion.H) in a case (inside the directory 0/ for example).

Finally, I would like to ask if anybody knows a way to interpolate a displacement field, say the exterior surfaces of a structure, to the boundary patches or nodes of the fluid mesh. In practice, if I were able to map such displacements onto the boundary patches I could then set the boundary motion by multipling such displacements by exp(w*time - phase).

I understand there may be no answer or pre-made solver/routine for such case, but I am really stuck, and I was wondering if anybody had any hint or has attempted anything like this.

Thank you,

Alessandro Spadoni

gtg627e July 23, 2007 10:40

Hello again, This topic may
 
Hello again,

This topic may have already been discussed.....
From the threads I read though I could get any details on how to manipulate the geometry besides imposing rigid-body motion or a simple sine wave.

I would appreciate any hint or link to wiki pages or threads that may deal with this subject.

Alessandro Spadoni


All times are GMT -4. The time now is 10:36.