CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Heat transfer in a FSI simulation by OpenFoam (https://www.cfd-online.com/Forums/openfoam/219086-heat-transfer-fsi-simulation-openfoam.html)

peyman.havaej July 15, 2019 04:30

Heat transfer in a FSI simulation by OpenFoam
 
1 Attachment(s)
Dear Formers
I want to simulate fluid flow and heat transfer in a FSI case. I use Foam-extend 4.0 and FSI - package provided in openfoamwiki.
An appropriate form of Energy equation was added to the fluid solver, and it works correctly. Also, for the solid region, Energy equation for solving Temperature was implemented in the main solver, named fsiFoam.
Now, my problem is related to boundary condition between the fluid/solid interface for Temperature. After I searched a lot, I found that I can use ggi method for interpolating data between solid and fluid interface, especially in the non-conformal mesh. However, it did not work for me, since when I set ggi condition in /constant/polyMesh/boundary, the shadowPatch for the fluid interface, located in the solid folders, and the code can not access the boundary and faceZone which was in the solid part.
Could someone give me a suggestion, please?
I appreciate that. Thank you.


Here is the boundaries for fluid:

6
(
inlet
{
type patch;
nFaces 40;
startFace 23570;
}
outlet
{
type patch;
nFaces 40;
startFace 23610;
}
bottumWalls
{
type wall;
nFaces 360;
startFace 23650;
}
topWalls
{
type wall;
nFaces 280;
startFace 24010;
}
interface_fluid
{
type ggi;
nFaces 140;
startFace 24290;
shadowPatch interface_solid;
zone interface-zone;
bridgeOverlap false;
}
frontAndBack
{
type empty;
nFaces 24000;
startFace 24430;
}
)



And here for solid


3
(
topWalls
{
type wall;
nFaces 75;
startFace 4925;
}
interface_solid
{
type ggi;
nFaces 75;
startFace 5000;
shadowPatch interface_fluid;
zone interface-zone;
bridgeOverlap false;
}
frontAndBack
{
type empty;
nFaces 5000;
startFace 5075;
}




After running program, this error was appeared:


Create time

Create dynamic mesh for time = 0

Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance


--> FOAM FATAL ERROR:
Shadow patch name interface_solid not found. Please check your GGI interface definition.

From function label ggiPolyPatch::shadowIndex() const
in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 774.

FOAM aborting

Aborted (core dumped)







Attachment 71060

Daniel_Khazaei July 16, 2019 09:09

Dear Peyman,

I have done exactly what you are trying to do before!
You are right about using GGI interpolation, but it's not that easy.

I have implemented everything needed in solids4Foam toolkit with a simple tutorial. But it's not yet validated nor completed. For now it is limited to the one of the fluid models but extending it to the other models should be easy and straightforward:

1- fluidModel: buoyantBoussinesqPimpleFluid
2- solidModel: thermalLinGeomSolid (fsi) and thermalSolid (no-fsi)

Meanwhile I would suggest you contact Dr. Philip Cardiff (@bigphil) and request for access to the toolkit. There you can check "feature-coupledTemperatureField" branch for more information.


Regards,
D. Khazaei

Hgholami October 25, 2019 01:01

Dear All
I wanna to add a fixed solid region into fluid region of fsi problem to study heat transfer. For coupling heat transfer from fixed solid to fluid and invert, the chtMultiRegionFoam solver algorithm uses a loop and set fluidField, solve fluid region, set solidField and solve solid region for nOuterCorr times without calculating interface residual. As
Quote:

for (int oCorr=0; oCorr<nOuterCorr; oCorr++)
{
forAll(fluidRegions, i)
{
Info<< "\nSolving for fluid region "
<< fluidRegions[i].name() << endl;
#include "setRegionFluidFields.H"
#include "readFluidMultiRegionPIMPLEControls.H"
#include "solveFluid.H"
}

forAll(solidRegions, i)
{
Info<< "\nSolving for solid region "
<< solidRegions[i].name() << endl;
#include "setRegionSolidFields.H"
#include "readSolidMultiRegionPIMPLEControls.H"
#include "solveSolid.H"
}
}
I think, this solver can work with conformal interface mesh.
In fsiFoam solver, we have elastic solid region and fluid region. the fluid region mesh in runTime will changes and the fixed solid region will have fixed mesh. So the mesh of two conjugate regions will be different.
my opinion is to modify fluid solver of fsiFoam, as after solving UEqn and PEqn, start a loop with 3 times and calculate energy equation of fixed solid region, save T boundary, calculate energy equation in fluid region and save T boundary. But as the interface of fluid and solid regions will be different, we should use ggi mapping.
My questions are, is it better suggestion? or if I want to use this algorithm, how can I implement ggi class?

Hgholami November 27, 2019 01:26

Dear Khazaei
for your recommend solvers, as there aren't any tutorial. I wanna to use coupled condition for solid and fluid regions. For example, for HronTurek benchmark which condition is suitable for plate of solid region and plate of fluid region?
I think fixedValue, zeroGradient is not suitable. chtRcTemperature is not work. Thanks.

Quote:

Originally Posted by Daniel_Khazaei (Post 739100)
Dear Peyman,

I have done exactly what you are trying to do before!
You are right about using GGI interpolation, but it's not that easy.

I have implemented everything needed in solids4Foam toolkit with a simple tutorial. But it's not yet validated nor completed. For now it is limited to the one of the fluid models but extending it to the other models should be easy and straightforward:

1- fluidModel: buoyantBoussinesqPimpleFluid
2- solidModel: thermalLinGeomSolid (fsi) and thermalSolid (no-fsi)

Meanwhile I would suggest you contact Dr. Philip Cardiff (@bigphil) and request for access to the toolkit. There you can check "feature-coupledTemperatureField" branch for more information.


Regards,
D. Khazaei


Hgholami December 8, 2019 02:56

Dear peyman
Do you solve this problem?


All times are GMT -4. The time now is 08:17.