|
[Sponsors] |
[solids4Foam] developing overPimpleFluid for solids4Foam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 13, 2022, 07:08 |
developing overPimpleFluid for solids4Foam
|
#1 | ||
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
Hi
I interest to develop overset version of solids4Foam for ESI openFOAM. I develop some code for it, but have error in some parts. The code as below src/solids4FoamModels/fluidModels/overPimpleFluid/overPimpleFluid.C overPimpleFluid.C Quote:
overPimpleFluid.H Quote:
|
|||
February 14, 2022, 06:59 |
|
#2 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Hi Hojatollah,
I suggest you start with an existing fluid model class that does compile and then add small bits of code at a time, where you compile each time. Then you will know which code exactly is causes compilation errors. If the definition of a class or function is missing then you will ned to add this, e.g. via #include header file, and/or by defining the required object. If you report compilation errors here, then give the full compilation error. |
|
February 15, 2022, 11:43 |
|
#3 | |||||
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
Hi Philip
Thank you for your reply. The pimpleOversetFluid of Fe41, uses Quote:
So, I pattenting from overPimpleFoam (ESI version). In overPimpleFoam that uses Quote:
Quote:
Quote:
Quote:
|
||||||
February 23, 2022, 07:30 |
|
#4 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
createCellMask.H seems to be a header file to be included inside the main function of an overset solver, as opposed to a header file with function/class definitions, i.e. createCellMask.H actually creates objects, rather than just defining them. So you cannot include this at the top of a file; the errors you are getting are related to this file being included outside the Foam scope but in any case, you need to copy the code from within that file to be executed within your new fluid model class. Anything that happens before the time loop in the normal OpenFOAM solver should be called in the constructor of the fluid model class.
|
|
March 2, 2022, 06:14 |
|
#5 | |
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
the problem of solver was in createCellMask.H and createInterpolatedCells.H that I extract the files and added to constructor.
Now the constructor modify and the bellow code added to it Quote:
|
||
March 2, 2022, 07:07 |
|
#6 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
If you get it working, feel free to fork solids4foam and make a pull request to add the new code; it sounds like it will be generally useful. |
||
March 2, 2022, 07:44 |
|
#7 |
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
Dear Philip
I compile the solver successfully, but the major problem exist in dynamicMotion. In openfoam1912, the overset patch is different from interface. So the displacement in fluidSolidInterface.H only apply to interface and overset patch is stationary. It seen, we should modify the fluidSolidInterface.H |
|
March 2, 2022, 08:10 |
|
#8 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
|
||
March 2, 2022, 14:48 |
|
#9 | |
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
Quote:
As the moveFluidMesh() class only calculate the interface displacement, I think, this class should modify or new boundary condition for overset mesh derives. Last edited by Hgholami; March 3, 2022 at 23:07. Reason: adding additional test |
||
March 2, 2022, 19:26 |
|
#10 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
moveFluidMesh essentially just sets the FSI interface mesh boundary condition and then calls mesh.update() to update the mesh (e.g. solve mesh motion equations). For overset, it should be the same as the overset patch is away from the FSI interface and not directly affect by it.
|
|
March 4, 2022, 00:11 |
|
#11 | ||
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
Quote:
As you say, moveFluidMesh() first moves The FSI interface and then, the "bool meshChanged = fluidMesh().update();" calls mesh.update() and move internal nodes. In the other hand, in openfoam1912, the movement of overset patch first calculated and then transfer to whole mesh, So available dynamicMesh method for this problem not applicable. Base on restriction of dynamicMesh in moveFluidMesh(), the available is "fvMeshsolver". So, we need to calculate overset patch movement base on FSI interface movement or transfer velocityLaplacian calculation to overset patch boundary. The velocityLaplacian that uses in dynamicMeshDict is Quote:
Thanks Hojatollah Last edited by Hgholami; March 4, 2022 at 04:56. Reason: adding additional info |
|||
March 4, 2022, 08:29 |
|
#12 |
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 |
For example
for velocityLaplacian (fvMeshSolver) only move internal nodes and the boundary is fixed. each boundary type that test are fixedValue, slip, zeroGradient, calculated, etc. how we can corporate the overset boundary to Laplacian equation? |
|
Tags |
esi openfoam, overset, solids4foam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Calculation of Developing Flow Friction Factor | arkie87 | Main CFD Forum | 0 | September 25, 2015 11:23 |
Repeat in developing turbulent pipe | hnemati | Main CFD Forum | 2 | November 1, 2014 17:33 |
Error printStack(Foam::Ostream&) at ??:? - developing a new fluidity model | heliana60 | OpenFOAM Programming & Development | 1 | October 18, 2014 14:33 |
Fully Theramlly developing How find | Emad | FLUENT | 0 | January 22, 2009 10:15 |
Developing flow in channels benchmark | Ted | Main CFD Forum | 0 | July 24, 2003 16:59 |