CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Programming & Development

cyclic boundary conditions for FSI

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   April 16, 2013, 17:52
Default cyclic boundary conditions for FSI
  #1
New Member
 
Kanuk
Join Date: Oct 2010
Posts: 24
Rep Power: 6
kanuk is on a distinguished road
Hi All,

I've found out that the current 1.6-ext doesn't support cyclic boundary conditions for adaptive mesh motion (i.e. FSI). As such, I've spent a bit of time trying to figure out how to get around this issue....

At this point, I'm stuck and would really appreciate any insight into my problem. I *think* I'm fairly close, and have based my library off of what's found in src/tetDecompositionFiniteElement. Allwmake runs fine, no complaints.

However, when I include the relevant libs in my controlDict I get the following error:

Code:
...
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

--> FOAM Warning : 
    From function dlLibraryTable::open(const fileName& functionLibName)
    in file db/dlLibraryTable/dlLibraryTable.C at line 86
    could not load /home/dave/OpenFOAM/dave-1.6-ext/lib/linux64Gcc46DPOpt/libfaceDecompTetCyclic.so: undefined symbol: _ZTIN4Foam28cyclicTetPolyPatchFaceDecompE
--> FOAM Warning : 
    From function dlLibraryTable::open(const fileName& functionLibName)
    in file db/dlLibraryTable/dlLibraryTable.C at line 86
    could not load /home/dave/OpenFOAM/dave-1.6-ext/lib/linux64Gcc46DPOpt/libcellDecompTetCyclic.so: undefined symbol: _ZTVN4Foam28cyclicTetPolyPatchCellDecompE
Create dynamic mesh for time = 0

Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: laplaceFaceDecomposition


--> FOAM FATAL ERROR: 
Unknown faceTetPolyPatchFaceDecomp type cyclic.  Valid faceTetPolyPatchFaceDecomp types are :

7
(
wall
processor
wedge
patch
empty
ggi
symmetryPlane
)


    From function faceTetPolyPatchFaceDecomp::New(const polyPatch&, const tetPolyBoundaryMeshFaceDecomp&)
    in file tetPolyMeshFaceDecomp/tetPolyPatches/faceTetPolyPatch/newFaceTetPolyPatchFaceDecomp.C at line 59.

FOAM exiting
Attached is what I have as of now, take a look if you want. I've been learning c++ the past while to make sense of it all, so I'm sure there's something I'm missing. Hopefully it's not too far off....

Cheers,
Dave
Attached Files
File Type: gz cyclicBC.tar.gz (4.3 KB, 9 views)
kanuk is offline   Reply With Quote

Old   April 17, 2013, 03:55
Default
  #2
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,594
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
Hi David,

In the beginning of your run, it tells you the following:

Quote:
--> FOAM Warning : From function dlLibraryTable:pen(const fileName& functionLibName) in file db/dlLibraryTable/dlLibraryTable.C at line 86 could not load /home/dave/OpenFOAM/dave-1.6-ext/lib/linux64Gcc46DPOpt/libfaceDecompTetCyclic.so: undefined symbol: _ZTIN4Foam28cyclicTetPolyPatchFaceDecompE

--> FOAM Warning : From function dlLibraryTable:pen(const fileName& functionLibName) in file db/dlLibraryTable/dlLibraryTable.C at line 86 could not load /home/dave/OpenFOAM/dave-1.6-ext/lib/linux64Gcc46DPOpt/libcellDecompTetCyclic.so: undefined symbol: _ZTVN4Foam28cyclicTetPolyPatchCellDecompE
So there seems to be an incompatibility problem with the additional libraries and the solver you are using. If you can get it working, I would be very much interested, as I am facing similar problems; that is periodic domains and mesh motion. I thought I had a robust (and explicit) approach, but it is producing really bad mesh quality Therefore, I have decided to start looking at an implicit implementation of the cyclic boundary condition for the tetFem-framework.

Kind regards

Niels
ngj is offline   Reply With Quote

Old   April 17, 2013, 16:02
Default
  #3
New Member
 
Kanuk
Join Date: Oct 2010
Posts: 24
Rep Power: 6
kanuk is on a distinguished road
Thanks Niels for your input.

After checking, I indeed did find the undefined symbols in my user libbin:

Code:
$ nm -u $FOAM_USER_LIBBIN/libCyclicBC* | grep cyclic
                 U _ZN4Foam15cyclicPolyPatch8typeNameE
                 U _ZTIN4Foam15cyclicPolyPatchE
                 U _ZTIN4Foam28cyclicTetPolyPatchCellDecompE
                 U _ZTVN4Foam28cyclicTetPolyPatchCellDecompE
                 U _ZN4Foam15cyclicPolyPatch8typeNameE
                 U _ZTIN4Foam15cyclicPolyPatchE
                 U _ZTIN4Foam28cyclicTetPolyPatchFaceDecompE
                 U _ZTVN4Foam28cyclicTetPolyPatchFaceDecompE
However, upon checking if there were any problems with the standard libfaceDecompFiniteElement.so library, I also found the following, related to the processor type BC:

Code:
$nm -u $FOAM_LIBBIN/libfaceDecompFiniteElement.so | grep processor
                 U _ZN4Foam18processorPolyPatch8typeNameE
                 U _ZTIN4Foam18processorPolyPatchE
So, maybe I've based my cyclic BC on a base class that already isn't compatible? If so, I'm not sure how to move forwards with this....
kanuk is offline   Reply With Quote

Old   April 18, 2013, 01:30
Default
  #4
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,594
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
Hi David,

I will give your code a try myself later today (if the time allows), so could you tell me, what solver you have been using?

I have a vague feeling of the reason for your problems, but it is too vague for me to put in words

Kind regards

Niels
ngj is offline   Reply With Quote

Old   April 18, 2013, 04:55
Default
  #5
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,594
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
Hi David,

I can reproduce the error, if I am using moveDynamicMesh.

On the other hand, if I use a small tool for mesh motion, which I made myself, then it does recognise your cyclic boundary condition and subsequently crashes with another error

I have tried looking around and changing the include-statements and the linking properties of moveDynamicMesh.C and Make/options, though, I have not been able to isolate the problem. Though, if I were you, I would start to add a lot of include-statements related to the tetFem-framework to the solver, which you are using and test, whether this resolves your problem.

I can unfortunately not share my successful code with you, as it hinges on a large internal development project.

Kind regards

Niels
ngj is offline   Reply With Quote

Old   April 19, 2013, 03:36
Default
  #6
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,594
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
Hi David,

It occurred to me that my include statements in the project development could be helpful. Below are those related to the 1.6-ext release; all includes related to the project have been removed:

Code:
#include "addToRunTimeSelectionTable.H"
#include <algorithm>
#include "autoPtr.H"
# include <cassert>
#include "cellSet.H"
#include "cellZone.H"
#include "coordinateSystem.H"
#include "cyclicFvPatch.H"
#include "displacementFvMotionSolver.H"
#include "dynamicFvMesh.H"
#include "edgeInterpolationScheme.H"
#include "elementFields.H"
#include "faceTetPolyPatchFaceDecomp.H"
#include "faCFD.H"
#include "faMesh.H"
#include "fieldTypes.H"
#include "fixedValueFvPatchFields.H"
#include "fixedValuePointPatchFields.H"
#include "fixedValueTetPolyPatchFields.H"
#include "fvCFD.H"
#include "fvcMeshPhi.H"
#include "fvMesh.H"
#include "fvMeshSubset.H"
#include "fvPatchField.H"
#include "fvPatchFieldMapper.H"
#include "fvPatchFields.H"
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_multiroots.h>
#include <gsl/gsl_vector.h>
#include "hydrodynamicProperties.H"
#include "incompressible/RAS/RASModel/RASModel.H"
#include "interpolateXY.H"
#include "IOdictionary.H"
#include "IOList.H"
#include "lduMatrix.H"
#include "mapPolyMesh.H"
#include "mathematicalConstants.H"
#include "mixedFvPatchFields.H"
#include "motionDiff.H"
#include "objectRegistry.H"
#include "pointPatchFields.H"
#include "polyMesh.H"
#include "regIOobject.H"
#include "runTimeSelectionTables.H"
#include "scalarSquareMatrix.H"
#include "SortableList.H"
#include "subCycle.H"
#include "surfaceFields.H"
#include "Switch.H"
#include "tetDecompositionMotionSolver.H"
#include "tetFec.H"
#include "tetFem.H"
#include "tetFemMatrices.H"
#include "tetFemMatrix.H"
#include "tetPointFields.H"
#include "tetPolyMesh.H"
#include "tetPolyMeshMapper.H"
#include "tetPolyPatchFields.H"
#include "Time.H"
#include "Tuple2.H"
#include "uniformDimensionedFields.H"
#include "volFields.H"
#include "wallFvPatch.H"
#include "wallPolyPatch.H"
Have a nice weekend

Niels
ngj is offline   Reply With Quote

Old   April 19, 2013, 14:54
Default
  #7
New Member
 
Kanuk
Join Date: Oct 2010
Posts: 24
Rep Power: 6
kanuk is on a distinguished road
Hi Niels,

Thanks for providing your included header files!

Unfortunately though, after including them in my solver (icoFsiFoam) I still end up with the same error as stated previously.

And, without a more verbose error message (and my limited c++ experience) it may take awhile to find where the problem is...

Regardless, I'm still looking into it. Will let you know if I come up with anything.
Cheers
Dave
kanuk is offline   Reply With Quote

Old   April 25, 2013, 14:29
Default
  #8
New Member
 
Kanuk
Join Date: Oct 2010
Posts: 24
Rep Power: 6
kanuk is on a distinguished road
It's a shot in the dark, but here's a newer version of the cyclic BC. Basically I replaced a few member functions from the processor type BC with the ones needed for the cyclic type BC, and with some changing of class names, it still compiles fine.

Unfortunately though, I still get the same error message about undefined symbols. I was hoping it worked for your case though, Niels...

Like I said, likely this is a no. But maybe worth a try.

cyclicBC_V2.tar.gz
kanuk is offline   Reply With Quote

Old   May 3, 2013, 03:28
Default
  #9
ngj
Senior Member
 
Niels Gjoel Jacobsen
Join Date: Mar 2009
Location: Rotterdam, The Netherlands
Posts: 1,594
Rep Power: 24
ngj will become famous soon enoughngj will become famous soon enough
Hi David,

I am sorry that I have not answered before, though, I have been busy and will also be so in the coming time, thus I do not think that I will have time to take a look on the code.

Good luck,

Niels
ngj is offline   Reply With Quote

Old   March 7, 2014, 04:44
Default
  #10
Member
 
Join Date: Jan 2014
Posts: 58
Rep Power: 3
hxaxtma is on a distinguished road
I am struggling with the same case, need to use cyclicGgi BCs, you got any solution on that?
hxaxtma is offline   Reply With Quote

Old   April 25, 2014, 02:52
Default
  #11
Member
 
Jiri
Join Date: Mar 2014
Location: Czech Republic
Posts: 53
Rep Power: 3
Jiricbeng is on a distinguished road
Do you have an example for cyclic BC of a rotating segment of rotor domain, just an example..
Jiricbeng is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Error finding variable "THERMX" sunilpatil CFX 8 April 26, 2013 07:00
Water subcooled boiling Attesz CFX 7 January 5, 2013 04:32
snnappyHexMesh with cyclic boundary conditions longamon OpenFOAM 2 May 9, 2011 12:28
periodic and cyclic boundary conditions Hadi Main CFD Forum 2 June 29, 2007 07:19
A problem about setting boundary conditions lyang Main CFD Forum 0 September 19, 1999 18:29


All times are GMT -4. The time now is 02:39.