|
[Sponsors] |
June 5, 2013, 12:19 |
AMI interDyMFoam for mixer
|
#1 |
Senior Member
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 15 |
Hello,
I am trying to set up a case using interphase coupled with AMI (kind of a mixer). There is a tutorial for a mixervessel for pimpleDymFoam, which works having a single phase. I used this case (but different mesh) and generated a alpha1 file that shall represent a fill level. Insteads of the setFields utility, I generated that file myself since it seems pretty simple. There are some others changes as the additional file g and p_rgh instead of p, but nothing complicated. However, I am not sure about the cyclic patch implimentation. I copied the cyclic patch AMI1 and AMI2 definition from the mixervessel tutorial into alpha1 file, but this does not seem to work. I get the following error while decomposing the case: dw@PC83U:~$ cd $HOME/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam dw@PC83U:~/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam$ decomposePar /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.1.x-92812fe8fd9e Exec : decomposePar Date : Jun 05 2013 Time : 15:22:03 Host : "PC83U" PID : 3206 Case : /home/dw/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam 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 Calculating distribution of cells Selecting decompositionMethod scotch Finished decomposition in 0.1 s Calculating original mesh data Distributing cells to processors Distributing faces to processors Distributing points to processors Constructing processor meshes Processor 0 Number of cells = 3690 Number of faces shared with processor 1 = 64 Number of faces shared with processor 2 = 94 Number of faces shared with processor 3 = 92 Number of faces shared with processor 4 = 46 Number of faces shared with processor 5 = 88 Number of processor patches = 5 Number of processor faces = 384 Number of boundary faces = 2878 Processor 1 Number of cells = 3718 Number of faces shared with processor 0 = 64 Number of faces shared with processor 2 = 193 Number of processor patches = 2 Number of processor faces = 257 Number of boundary faces = 2779 Processor 2 Number of cells = 3700 Number of faces shared with processor 0 = 94 Number of faces shared with processor 1 = 193 Number of processor patches = 2 Number of processor faces = 287 Number of boundary faces = 2707 Processor 3 Number of cells = 3736 Number of faces shared with processor 0 = 92 Number of faces shared with processor 4 = 130 Number of faces shared with processor 5 = 50 Number of processor patches = 3 Number of processor faces = 272 Number of boundary faces = 2820 Processor 4 Number of cells = 3742 Number of faces shared with processor 0 = 46 Number of faces shared with processor 3 = 130 Number of faces shared with processor 5 = 136 Number of processor patches = 3 Number of processor faces = 312 Number of boundary faces = 3142 Processor 5 Number of cells = 3734 Number of faces shared with processor 0 = 88 Number of faces shared with processor 3 = 50 Number of faces shared with processor 4 = 136 Number of processor patches = 3 Number of processor faces = 274 Number of boundary faces = 2846 Number of processor faces = 893 Max number of cells = 3742 (0.591398% above average 3720) Max number of processor patches = 5 (66.6667% above average 3) Max number of faces between processors = 384 (29.0034% above average 297.667) Time = 0 --> FOAM FATAL IO ERROR: compound has already been transfered from token on line 20 the empty compound of type List<scalar> file: /home/dw/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam/0/alpha1::boundaryField::AMI1::value at line 20. From function token::transferCompoundToken(const Istream& is) in file lnInclude/token.C at line 99. FOAM aborting #0 Foam::error:rintStack(Foam::Ostream&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #1 Foam::IOerror::abort() in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #2 Foam::token::transferCompoundToken(Foam::Istream const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" #3 Foam::Istream& Foam:perator>><double>(Foam::Istream&, Foam::List<double>&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #4 Foam::Field<double>::Field(Foam::word const&, Foam::dictionary const&, int) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #5 Foam::fvPatchField<double>::fvPatchField(Foam::fvP atch const&, Foam:imensionedField<double, Foam::volMesh> const&, Foam::dictionary const&, bool) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #6 Foam::cyclicAMIFvPatchField<double>::cyclicAMIFvPa tchField(Foam::fvPatch const&, Foam:imensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #7 Foam::fvPatchField<double>::adddictionaryConstruct orToTable<Foam::cyclicAMIFvPatchField<double> >::New(Foam::fvPatch const&, Foam:imensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/lib/libfiniteVolume.so" #8 Foam::fvPatchField<double>::New(Foam::fvPatch const&, Foam:imensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #9 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricBoundaryField::GeometricB oundaryField(Foam::fvBoundaryMesh const&, Foam:imensionedField<double, Foam::volMesh> const&, Foam::dictionary const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #10 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::dictionary const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #11 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::readField(Foam::Istream&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #12 Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>::GeometricField(Foam::IOobject const&, Foam::fvMesh const&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #13 in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #14 in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" #15 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #16 in "/home/dw/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64GccDPOpt/bin/decomposePar" Abgebrochen (Speicherabzug geschrieben) dw@PC83U:~/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam$ ^C dw@PC83U:~/OpenFOAM/dw-2.1.x/run/MooneyMeter_AMI_interDymFoam$ The line 20 in my alpha1 file is the following: internalField nonuniform List<scalar> The boundary definition in the same file is the following: boundaryField { rotor { type zeroGradient; } stator { type zeroGradient; } AMI1 { type cyclicAMI; value $internalField; } AMI2 { type cyclicAMI; value $internalField; } } Is there anybody who can help? Thanks, Daniel |
|
June 10, 2013, 07:25 |
|
#2 |
New Member
Join Date: Jun 2009
Posts: 22
Rep Power: 17 |
Hi!
I suspect that the error you get can have something to do with the way you set your initial field for alpha1. Try using the setFields utility instead. I'm working om something quite similar and I can confirm that parallel execution of interDyMFoam with rotation and cyclicAMI works. However, I have a problem with mass conservation in my setup which is believe i connected to the AMI bcs. Good luck! //Olle |
|
June 10, 2013, 09:02 |
|
#3 |
Senior Member
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 15 |
Hi otm,
Thanks for the input. I may try. However this is not obvious since all examples decribed in OpenFoam tuorials are very simple cuboids full of alpha1. A mixer has a round structure and therefore it is not obvious filling it up with a cuboid. There is an utility called "funkysetFields", which supposely can do, what I want, but I am not sure if it works for OpenFoam 2.1 (or 2.2). I used a simple technique so far just using the blocks (of blockMeshDic) and assigning each of them an alpha. This is quite simple. Setfields seems to do the same thing. I can distribute alpha1 evenly over my grid, which would be very cumbersome using setfields. Regards, Daniel |
|
June 10, 2013, 10:21 |
|
#4 |
New Member
Join Date: Jun 2009
Posts: 22
Rep Power: 17 |
Hi Danny!
There are ways to define also cylindrical initial fields see below for an annular example. At http://openfoamwiki.net/index.php/TopoSet you can see all avaliable "shapes" that can be used. There is no requirements that the region should "fit" your domain. The inital alpha field will be the intersection of the toposet shape and your mesh domain. Code:
FoamFile { version 2.0; format ascii; class dictionary; location "system"; object setFieldsDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // defaultFieldValues ( volScalarFieldValue alpha1 0 ); regions ( cylinderAnnulusToCell { p1 (0 0 -100); p2 (0 0 0.045); outerRadius 100.0; innerRadius 0.028; fieldValues ( volScalarFieldValue alpha1 1 ); } ); //Olle |
|
June 19, 2013, 05:49 |
|
#5 |
Senior Member
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 15 |
Hi OTM,
Your suggestion worked, at least the error reported above is gone. Setfields created a alpha1 file, which looks identical to the one I created manually except the boudary part at the bottom of the file. I had created an alpha1 file, which looked the following: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.7.1 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object alpha1; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { rotor { type zeroGradient; } stator { type zeroGradient; } AMI1 { type cyclicAMI; value $internalField; } AMI2 { type cyclicAMI; value $internalField; } } // ************************************************** *********************** // This file was overwritten, as it should. Only the condition stator { type zeroGradient; } remained the other conditions (rotor, AMI1 and 2) were deleted. decomposePar then worked ok (no error message). I do not understand the logic behind this though. Regards, Daniel |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
dynamic Mesh is faster than MRF???? | sharonyue | OpenFOAM Running, Solving & CFD | 14 | August 26, 2013 08:47 |
mixerVesselAMI2D's mass is not balancing | sharonyue | OpenFOAM Running, Solving & CFD | 6 | June 10, 2013 10:34 |
Problem with inconsistent patches (AMI, interDyMFoam) | jrrygg | OpenFOAM Running, Solving & CFD | 3 | February 1, 2013 04:23 |
[Other] Problem when case with AMI | A.A. | OpenFOAM Meshing & Mesh Conversion | 1 | October 4, 2012 12:54 |
error using interDyMFoam with kOmegaSST to simulate sloshing | anmartin | OpenFOAM Running, Solving & CFD | 0 | July 20, 2010 14:21 |