CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   pimpleDyMfoam simulation keeps blowing up (https://www.cfd-online.com/Forums/openfoam/99920-pimpledymfoam-simulation-keeps-blowing-up.html)

lovecraft22 April 18, 2012 06:34

Have you already downloaded the case about my cube linemann posted above?

linnemann April 18, 2012 06:42

Use the mergeMeshes command.

kid April 18, 2012 06:49

Yes i did, but since the upper folder roCube/ has no mesh points it does not know what to merge. Where should this command be used and how?
Sorry this is a basic doubt.

lovecraft22 April 18, 2012 06:50

I'm a little bit stuck there…
I meshed both the stator and the rotor then I moved back in the case folder and tried to run this:

Code:

mergeMeshes Mesh/stator/ Mesh/rotor/
All I got was a 1e-05 within the stator folder… I'll try some other options…

kid April 18, 2012 06:57

@linnemann @lore
When i executed same command i got some result i suppose mergeMesh ran successfully but where did it create the files.

Note: I was in Mesh/ folder and executed this command:
mergeMeshes rotor stator

Output**********************
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.1.0-0bc225064152
Exec : mergeMeshes rotor stator
Date : Apr 18 2012
Time : 16:21:35
Host : "chandra-desktop"
PID : 2465
Case : /home/chandra/Documents/open-foam/roCube/Mesh
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Master: "rotor" region region0
mesh to add: "stator" region region0

Create Times
Reading master mesh for time = 0
Create mesh

Reading mesh to add for time = 3e-05
Create mesh

Writing combined mesh to 1e-05
patch names:
8
(
uWall
inlet
outlet
btmWall
fWall
bakWall
cube_patch0
cylinder_region0
)

patch types:
8
(
symmetryPlane
patch
patch
symmetryPlane
symmetryPlane
symmetryPlane
wall
wall
)

point zone names:
0
(
)

face zone names:
1
(
cylinder
)

cell zone names:
1
(
cylinder
)


End

kid April 18, 2012 07:16

Hello
Merged mesh was created in rotor/1e-5/polymesh/ folder according to the command i gave i.e "mergeMeshes rotor stator" if i had given "mergeMeshes stator rotor" then the mesh would have been created in stator folder. I suppose the final merged mesh is created in the first folder we give(if this understanding is right).

Then i moved th complete new polyMesh from rotor/1e-5/ folder to upper directory and in paraView it show both the mesh ie cube and AMI.

Is this right people ?
Suggest more clearification .
Is it ready to be run now using pimpleDyFoam?

lovecraft22 April 18, 2012 07:58

Nope, is not enough… there's also a sets folder within polyMesh you won't get this way… don't know where it comes from…

linnemann April 18, 2012 08:18

you get it from this command.

splitMeshRegions -makeCellZones -overwrite

@kid

No your case is far from ready. You need to manually add the AMI entries in the boundary file and then you have to match all the boundary names in the 0/k,omega,nut,p,U etc files, and set the correct BC types.

lovecraft22 April 18, 2012 10:30

I'm a little bit lost now…

To summarize, one needs to:
1. create to separated meshes, one for the rotor and one for the stator;
2. run mergeMeshes to merge the two. The output of which needs to be copied in your case folder, correct?
3. what about splitMergeRegions? What's that supposed to accomplish? Shall it be run after mergeMeshes in the case directory?
4. what about the boundary file? Does it need to be edited by the user? I always thought it was something generated by openFoam…

Sorry about all of these questions and thank you very much for your time!

trandrit April 18, 2012 11:05

Hi Foamers,

I have been using OpenFoam for a month now, so i'm quite new in it.
I would like to use OF for the simulation of a centrifugation device.
To begin with a simple 3D case i slightly modified the propeller case so as to simulate a stirrer rotating in a cylinder.
I meshed the geometry with Gambit and used fluent3DMeshtoFoam for the conversion.
As Bcs i put AMI on the faces at the interface between both meshes and walls on remaining faces.

Is the writeInterval variable supposed to have an influence on the simulation's stability?
my simulation blows up as long as i put a writeInterval bigger than the time step.
I could keep it as it is but the amont of data rapidly becomes uncomfortable.

Something must be wrong somewhere but i don't know what.
Could someone help me?

I can upload some files if it can help.

kid April 23, 2012 03:08

@linnemann
splitMeshRegions -makeCellZones -overwrite .This command ran successfully .
After this i tried running pimpleDyFoam but it gives error.

The "ami" patches were named accordingly as you told.

Plz have a look at my case for rotating cube.
And suggest accordingly.

http://db.tt/59ubLm1j

Regards.

linnemann April 23, 2012 03:50

1 Attachment(s)
Code:

        type            cyclicAMI;
        nFaces          0;
        startFace      208901;
        matchTolerance  0.0001;
        neighbourPatch  cylinder_region0;
        transform      noOrdering;


the nFaces 0; is most likely the issue here.

This means that there are no face-cells at that BC.

Also this is not a 2D mesh so it must be treated as such.



The inlet has only 1 cell in thickness and the cube/cylinder has 8.
Consider adding cells in the z-dir in the blockMeshDict if you want to run it as a 3D case.

kid April 23, 2012 04:13

@linnemann

Well the second part i understood, I need to make same elements on inlet (z direction on each face of Boundary) as on cylindrical ie 8 in z direction.
But the first part i.e nFaces 0;
I have used searchAbleCylinder in snappyhexMesh to build that . What should be done to extract faces? or to overcome this problem?

I had run surfaceFeatureExtract command for stl cube. But this was done before executing snappyHexMesh.
Should i run surfaceFeatureExtract again or is there some other method? ( these were done while generating separate meshes of rotor and stator ie before mergeMeshes) ?
Regards.

linnemann April 23, 2012 04:26

You have this name in the boundary file for both meshes before you do the mergeMeshes

Code:

cylinder_region0
mergeMeshes puts all patches with the same name into one patch.

for it to work you need to rename one of the names in the rotor/stator meshes.

you could rename both to describe what it actually is.

Code:

ami1
and the other the name

Code:

ami2
this way you will always know that the patches starting with ami is and AMI.

Similar you could name all the other patches based on their BC type. eg. the cube is a wall and naming it "wallCube" would make sense.

also the symmetryPlanes could be named "symFront".

It wont fix you case but it's easier to remember if you have a consistent naming convention.

kid April 23, 2012 04:46

@linnemann

Valuable pointer man, going to redo the whole process.

kid April 25, 2012 03:04

@linnemann
"splitMeshRegions -makeCellZones -overwrite"

Above command gives error now!!!!!
Folder here:

http://db.tt/dV7qC7xO

ERROR:
*******************************************
roCube$ splitMeshRegions -makeCellZones -overwrite
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.1.0-0bc225064152
Exec : splitMeshRegions -makeCellZones -overwrite
Date : Apr 25 2012
Time : 12:20:56
Host : "chandra-desktop"
PID : 21327
Case : /home/chandra/Documents/open-foam/roCube
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Creating single patch per inter-region interface.

Trying to match regions to existing cell zones.


Number of regions:2

Writing region per cell file (for manual decomposition) to "/home/chandra/Documents/open-foam/roCube/constant/cellToRegion"

Writing region per cell as volScalarField to "/home/chandra/Documents/open-foam/roCube/0/cellToRegion"

Region Cells
------ -----
0 88195
1 42145

Region Zone Name
------ ---- ----
0 -1 domain0
1 -1 domain1

Sizes of interfaces between regions:

Interface Region Region Faces
--------- ------ ------ -----

Reading volScalarField cellToRegion
Reading volScalarField p
AMI: Creating addressing and weights between 30192 source faces and 10688 target faces


--> FOAM FATAL ERROR:
Unable to set source and target faces

From function void Foam::cyclicAMIPolyPatch::setNextFaces(label&, label&, const primitivePatch&, const primitivePatch&, const boolList&, labelList&, const DynamicList<label>&) const
in file lnInclude/AMIInterpolation.C at line 878.

FOAM aborting

#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::error::abort() in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 at cyclicAMIPolyPatch.C:0
#3 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::update(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so"
#4 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::AMIInterpolation(Foam::PrimitivePatch<Foam::fac e, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::autoPtr<Foam::searchableSurface> const&, Foam::faceAreaIntersect::triangulationMode const&, bool

kid April 27, 2012 05:08

Hello Again,
Thank you for previous hepls but i suppose a bit more is required.
Tried and tried few questions for you. ( Work is still on to get a rotating cube executed)

1. topoSets // ( source: tutorial/propeller/)
2. mergeOrSplitBaffle or split.// ( source: tutorial/propeller/)
3. splitMeshRegions -makeCellZones -overwrite // ( sorce : linnemann's cubo case here : http://dl.dropbox.com/u/15968063/cubo.tar.gz )

Well, as you can see these three commands above.

Does 3rd command takes care of both 1st and 2nd ie creating "sets" and spliting Baffles? ( where is Baffle in "rotating Cube" though it might be in propeller case)

Or my question should be, what sequence one should use these?

And linnemann did you at all use 1st and 2nd command, as used in propeller? Though i can't locate any suitable Dict file for 1st and 2nd command.

And depending on the above question anyother suggestion?

kid April 27, 2012 08:33

Hi ,
Please find latest rotating cube case here:

http://dl.dropbox.com/u/70019943/roCube.tar.gz

Work flow for successful commands:
blockMesh
snappyHexMesh
mergeMeshes
changeDictionary
splitMeshRegions -makeCellZones -overwrite
Everything went fine till here, but when i intend to execute Solver , it gives following error.

pimpleDyFoam


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Selecting dynamicFvMesh solidBodyMotionFvMesh
Selecting solid-body motion function rotatingMotion
Applying solid body motion to cellZone region0
Reading field p

Reading field U

Reading/calculating face flux field phi

AMI: Creating addressing and weights between 0 source faces and 0 target faces
AMI: Patch source weights min/max/average = 1e+300, -1e+300, #0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/libc.so.6"
#3 at cyclicAMIPolyPatch.C:0
#4 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::update(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so"
#5 Foam::AMIInterpolation<Foam::PrimitivePatch<Foam:: face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> >, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > >::AMIInterpolation(Foam::PrimitivePatch<Foam::fac e, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::autoPtr<Foam::searchableSurface> const&, Foam::faceAreaIntersect::triangulationMode const&, bool) in "/opt/openfoam210/platforms/linux64GccDPOpt/lib/libmeshTools.so"

EDIT---------------------------------------------1
Hello Everyone,
With some struggle the solver pimpleDyFoam is running now.

Error was with mesh created for stator. After a bit refinement using sHM it works fine.
Though results are awaitted.

vasava May 2, 2013 04:45

I am making a simulation for mixing processs with an impeller. I have been following the example describing rotating cube in a flow field. Here is what I did

1. I divided the domain in to two parts: a. Region close to the impeller blades. b. The mixing tank (minus the region described by 'a').
2. Created two meshes.
3. Use mergeMesh operation to merge the mesh.

Now, I have following problem/questions.
1. The method I followed did not generate any AMI. What could be wrong?
2. Is it necessary to have conformal meshes to generate AMI?
3. Is there any separate process/file/command to generate AMI?

A.Wendy May 2, 2013 08:56

Quote:

Originally Posted by vasava (Post 424583)
I am making a simulation for mixing processs with an impeller. I have been following the example describing rotating cube in a flow field. Here is what I did

1. I divided the domain in to two parts: a. Region close to the impeller blades. b. The mixing tank (minus the region described by 'a').
2. Created two meshes.
3. Use mergeMesh operation to merge the mesh.

Now, I have following problem/questions.
1. The method I followed did not generate any AMI. What could be wrong?
2. Is it necessary to have conformal meshes to generate AMI?
3. Is there any separate process/file/command to generate AMI?

can you upload the case you have created yet. maybe we can help you...

andy


All times are GMT -4. The time now is 22:34.