CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

AMI speed performance

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

Like Tree5Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 31, 2012, 12:36
Default AMI speed performance
  #1
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello,

I am using the AMI feature of OF 2.1 to simulated a special mixer type application. I have my grid (using blockmesh separate on rotor and stator area and merging them) and I can view it and run pimpledymfoam on the case. After 8 ms of total time of 6 s, OpenFoam stalls on a stackoverflow. So, I decided to use smaller time steps, which works, but the performance is that slow, that calculation will take 20 years to finish for one case. This is too slow for me. I found out that the first couple 1/1000 s are calculated rather quickly, then the time steps become very small. My idea now is the following: maybe it is not good to start the rotor at nominal speed, but use a ramp or better some cos function, whereas the speed starts at zero and ends at nominal speed and having zero gradient at start and at the end of the ramp.

I looked into the forum for ramp programming, but they all refer to parameters like U, p and the like, not of the angular speed. This angular speed is defined in dynamicMeshDict as "radialVelocity" parameter (kind of confusing sind an angular speed is not a radial velocity). The unit is deg/s thus I think this is the angular speed. There is no reference to "fixedvalue", as one would see it in U or the like, which I could change to "table" or "polynominal" or the like.

Is there anybody who has an idea?

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   August 31, 2012, 14:11
Default
  #2
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings Daniel,

I took a look at the code and the only solution seems to be that you will have to create your own rotating motion dynamic mesh function! This is only if you want to use a simple dictionary.

For that you can use as basis the following folders:
Code:
src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/rotatingMotion
src/dynamicFvMesh/solidBodyMotionFvMesh/solidBodyMotionFunctions/oscillatingRotatingMotion
As you can see, they hard-code the calculation for the absolute time position for each time step.

Nonetheless, if you don't want to code such a library, you can use instead the generic "tabulated6DoFMotion", which allows most control over the 6 degrees of freedom!
An example is shown in the tutorial "multiphase/interDyMFoam/ras/sloshingTank3D6DoF"; it even comes with application source code for generating the table with the 3D positions !!

Have fun! Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   September 3, 2012, 06:33
Default
  #3
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno,

Thanks for helping out again. I looked into what you suggested. Looks doable. I Let you know when it works.

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   September 5, 2012, 12:15
Default
  #4
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno,

I did what you suggested and and created a new function, which is in a folder called "RampCosRotatingMotion" located in solidBodyMotionFunctions folder. The .C and .H files are attached. The .dep wouldnot download, but I replaced just the name to RampCosRotatingMotion.

The dynamic mesh file now lokks like this:

dynamicFvMesh solidBodyMotionFvMesh;

motionSolverLibs ( "libfvMotionSolvers.so" );

solidBodyMotionFvMeshCoeffs
{
cellZone rotor;

solidBodyMotionFunction RampCosRotatingMotion;
RampCosRotatingMotionCoeffs
{
CofG (0 0 0);
endrampvalue (0 0 120);// deg/s
endramptime 4; // s
}
}

The endrampvalue is the angular velocity at the specified endramptime. From thereon the velocity is constant.

Do I need to recompile Openfoam to take effect? Anything else to do?

Regards,

Daniel
Attached Files
File Type: c RampCosRotatingMotion.C (3.3 KB, 53 views)
File Type: h RampCosRotatingMotion.H (3.2 KB, 21 views)
danny123 is offline   Reply With Quote

Old   September 5, 2012, 16:49
Default
  #5
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Daniel,

To get the library working:
  1. Unpack the attached file:
    Code:
    tar xf RampCosRotatingMotion.tar.gz
  2. Enter the unpacked folder:
    Code:
    cd RampCosRotatingMotion
  3. Build the new library:
    Code:
    wmake libso
To use the library, you'll need to also add this line to your case's "system/controlDict":
Code:
libs ("libRampCosRotatingMotion.so");
I think the rest you have under control


By the way, a few notes on the creation of the contents of the attached file:
  • I created a "Make" folder and added two files:
    • "files" - which indicates the file to be compiled and the library location and name.
    • "options" - the list of header inclusion folders and the libraries to link with.
  • There was a missing parenthesis at the end of this line of code:
    Code:
    vector eulerAngles = endrampvalue_/2*(t-endramptime_/pi*sin(t*pi/endramptime_));
  • I didn't rename the class name you created, but OpenFOAM's standard code convention is to use first letter upper-case classes as templates and lower-case for normal classes. In other words, according to the convention, you're class should be named "rampCosRotatingMotion".
    But that is merely an aesthetics thing.

Have fun!
Bruno
Attached Files
File Type: gz RampCosRotatingMotion.tar.gz (2.0 KB, 105 views)
fsifsi likes this.
__________________
wyldckat is offline   Reply With Quote

Old   September 6, 2012, 09:06
Default
  #6
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Brun,

I did what you suggested. I copied the packed file into .../solidBodyMotionFunctions folder, unpacked it and ran make lbso within that newly created folder. I altered my controldict file as you suggested.

However, I get following error message:

dw@PC83U:~$ cd OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp
dw@PC83U:~/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp$ decomposePar
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / 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-bd7367f93311
Exec : decomposePar
Date : Sep 06 2012
Time : 13:50:58
Host : "PC83U"
PID : 3050
Case : /home/dw/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp
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

Time = 0
Create mesh

Calculating distribution of cells
Selecting decompositionMethod scotch

Finished decomposition in 3.13 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 = 274868
Number of faces shared with processor 1 = 2584
Number of faces shared with processor 2 = 2186
Number of processor patches = 2
Number of processor faces = 4770
Number of boundary faces = 90820

Processor 1
Number of cells = 276991
Number of faces shared with processor 0 = 2584
Number of faces shared with processor 2 = 2953
Number of processor patches = 2
Number of processor faces = 5537
Number of boundary faces = 54791

Processor 2
Number of cells = 277221
Number of faces shared with processor 0 = 2186
Number of faces shared with processor 1 = 2953
Number of processor patches = 2
Number of processor faces = 5139
Number of boundary faces = 116717

Processor 3
Number of cells = 278351
Number of faces shared with processor 5 = 1405
Number of processor patches = 1
Number of processor faces = 1405
Number of boundary faces = 77092

Processor 4
Number of cells = 277194
Number of faces shared with processor 5 = 1415
Number of processor patches = 1
Number of processor faces = 1415
Number of boundary faces = 71126

Processor 5
Number of cells = 275995
Number of faces shared with processor 3 = 1405
Number of faces shared with processor 4 = 1415
Number of processor patches = 2
Number of processor faces = 2820
Number of boundary faces = 100050

Number of processor faces = 10543
Max number of cells = 278351 (0.571232% above average 276770)
Max number of processor patches = 2 (20% above average 1.66667)
Max number of faces between processors = 5537 (57.5548% above average 3514.33)


Processor 0: field transfer
Processor 1: field transfer
Processor 2: field transfer
Processor 3: field transfer
Processor 4: field transfer
Processor 5: field transfer

End.

dw@PC83U:~/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp$ mpirun -np 6 pimpleDyMFoam -parallel > log &
[1] 3051
dw@PC83U:~/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp$ [0] [1]
[1]
[1] --> FOAM FATAL ERROR:
[1] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[1]
[1]
[1] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[1] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[1]
FOAM parallel run exiting
[1]
[2]
[2]
[2] --> FOAM FATAL ERROR:
[2] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[2]
[2]
[2] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[2] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[2]
FOAM parallel run exiting
[2]
[4]
[4]
[4] --> FOAM FATAL ERROR:
[4] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[4]
[4]
[4] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[4] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[4]
FOAM parallel run exiting
[4]

[0]
[0] --> FOAM FATAL ERROR:
[0] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[0]
[0]
[0] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[0] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[0]
FOAM parallel run exiting
[0]
[3]
[3]
[3] --> FOAM FATAL ERROR:
[3] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[3]
[3]
[3] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[3] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[3]
FOAM parallel run exiting
[3]
[5]
[5]
[5] --> FOAM FATAL ERROR:
[5] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[5]
[5]
[5] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[5] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[5]
FOAM parallel run exiting
[5]
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun has exited due to process rank 5 with PID 3057 on
node PC83U exiting improperly. There are two reasons this could occur:

1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.

2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
[PC83U:03051] 5 more processes have sent help message help-mpi-api.txt / mpi-abort
[PC83U:03051] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages

As you can see, the decomposePar utility worked, but the newly created function is not found.

Did I something wrong?

By the way, thanks for the correction of the bracket.

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   September 6, 2012, 09:21
Default
  #7
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Daniel,

I forgot to mention that the attached file is meant to be unpacked in your personal area! This acts as an independent library, in the sense that it doesn't affect OpenFOAM's code directly!

Try again, but on a folder of yours as normal user, not as root.

If it still has problems:
  • Check if the library is where we expect it to be:
    Code:
    ls -l $FOAM_USER_LIBBIN/libRampCosRotatingMotion.so
  • Attach your "controlDict" file, so I can confirm everything is OK

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   September 6, 2012, 09:40
Default
  #8
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno,

I copied the tar-file into my user folder. OpenFoam is compiled on that user level as well.

This is what I got:

dw@PC83U:~$ tar xf RampCosRotatingMotion.tar.gz
dw@PC83U:~$ cd RampCosRotatingMotion
dw@PC83U:~/RampCosRotatingMotion$ wmake libso
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file RampCosRotatingMotion.C
SOURCE=RampCosRotatingMotion.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/triSurface/lnInclude -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/meshTools/lnInclude -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/dynamicMesh/lnInclude -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/finiteVolume/lnInclude -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/dynamicFvMesh/lnInclude -IlnInclude -I. -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/OpenFOAM/lnInclude -I/home/dw/OpenFOAM/OpenFOAM-2.1.0/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/RampCosRotatingMotion.o
'/home/dw/OpenFOAM/dw-2.1.0/platforms/linux64GccDPOpt/lib/libRampCosRotatingMotion.so' is up to date.
dw@PC83U:~/RampCosRotatingMotion$ ls -l $FOAM_USER_LIBBIN/libRampCosRotatingMotion.so
-rwxr-xr-x 1 dw dw 30838 2012-09-06 14:28 /home/dw/OpenFOAM/dw-2.1.0/platforms/linux64GccDPOpt/lib/libRampCosRotatingMotion.so
dw@PC83U:~/RampCosRotatingMotion$ cd ..
dw@PC83U:~$ cd OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp
dw@PC83U:~/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp$ mpirun -np 6 pimpleDyMFoam -parallel > log &
[1] 3643
dw@PC83U:~/OpenFOAM/dw-2.1.0/run/DTB6_3_kurz_tot_ramp$ [0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[0]
[0]
[0] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[0] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[0]
FOAM parallel run exiting
[0]
[1] [2]
[2]
[2] --> FOAM FATAL ERROR:
[2] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[2]
[2]
[2] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[2] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[2]
FOAM parallel run exiting
[2]
[4]
[4]
[4] --> FOAM FATAL ERROR:
[4] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[4]
[4]
[4] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[4] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[4]
FOAM parallel run exiting
[4]
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 2 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------

[1]
[1] --> FOAM FATAL ERROR:
[1] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[1]
[1]
[1] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[1] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.[3]
[3]
[3] --> FOAM FATAL ERROR:
[3] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[3]
[3]
[3] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[3] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[3]
FOAM parallel run exiting
[3]

[1]
FOAM parallel run exiting
[1]
[5]
[5]
[5] --> FOAM FATAL ERROR:
[5] Unknown solidBodyMotionFunction type RampCosRotatingMotion

Valid solidBodyMotionFunctions are :

7
(
SDA
linearMotion
multiMotion
oscillatingLinearMotion
oscillatingRotatingMotion
rotatingMotion
tabulated6DoFMotion
)
[5]
[5]
[5] From function solidBodyMotionFunction::New( const dictionary& SBMFCoeffs, const Time& runTime)
[5] in file solidBodyMotionFvMesh/solidBodyMotionFunctions/solidBodyMotionFunction/solidBodyMotionFunctionNew.C at line 52.
[5]
FOAM parallel run exiting
[5]
--------------------------------------------------------------------------
mpirun has exited due to process rank 3 with PID 3647 on
node PC83U exiting improperly. There are two reasons this could occur:

1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.

2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
[PC83U:03643] 5 more processes have sent help message help-mpi-api.txt / mpi-abort
[PC83U:03643] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages

As you can see, the error message is about the same as previously.

Attached is my ControlDic and log file.

Regards,

Daniel
Attached Files
File Type: gz Controldict and log file.tar.gz (1.3 KB, 17 views)
danny123 is offline   Reply With Quote

Old   September 6, 2012, 10:23
Default
  #9
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
I suspected as much... and I didn't detail properly this:
  1. You have this:
    Code:
    libs ("libRampCosRotatingMotion.so");
    
    libs ("libforces.so");
  2. It should be this instead:
    Code:
    libs ("libRampCosRotatingMotion.so" "libforces.so");
Because the one you were using implies that only the second entry is read. OpenFOAM doesn't merge dictionary blocks/parameters by default.
louisgag likes this.
__________________
wyldckat is offline   Reply With Quote

Old   September 7, 2012, 05:31
Default
  #10
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno,

Now it seems to work . Thanks a lot for your help. It would have taken much longer to figger out myself.

For those who want to do the same:

This new function means that the angular speed of the shaft is not constant, but starts with 0 at time zero to change to a constant endrampvalue at time endramptime. From thereon, it is constant. In order to describe the behavior of the angular speed between 0 and endramptime, I use a the function:

endrampvalue/2 x (1 - cos(time/endramptime*pi))

This means that at time 0 and at time endramptime the gradient of the angular speed in time is 0. This is more realistic for a physical drive system and you get a smooth transition at both time = 0 and time = endramptime.

In OpenFOAM the angular speed is not used, but the angular position. This is the angular speed integrated over time. It is called "Eulerangle" in the source code. This is why one get a sinus and not a cos function in the code.

Bruno: I let you know if it helps, but that will take a couple days.

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   September 10, 2012, 04:08
Default
  #11
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno or whoever may help,

The ramp worked over the weekend. So far, so good. However, the acceleration of speed I had hoped for is only partial. I am now at 0.012 s after 3 days of calculation, whereas before it did a week for 0.006 s. Here some strange observation: As soon as there is a time where data is written, the time step for further calculation significantly slows down. Is this a coincidence, or does writeprecision influence how the next time step is calculated?

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   September 10, 2012, 04:25
Default
  #12
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Daniel,

Mmm... OK, there are a few details to point out:
  1. You better use "binary" instead of "ascii" for saving snapshots.
  2. After each snapshot is saved, it shouldn't reload the snapshot once again, so it shouldn't be affected by write precision.
  3. But if I understand you correctly, the "deltaT" (delta-time) between each iteration changes drastically when it saves a snapshot, correct? It's probably because it has to adjust "deltaT" for hitting the desired time snapshot. This might be throwing the solver off from the optimum deltaT and take a while to recover.
  4. Another possibility is if you are using more than one machine and the NFS system is hogging resources while it is saving data.
Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   September 18, 2012, 09:01
Default
  #13
Senior Member
 
stephane sanchi
Join Date: Mar 2009
Posts: 314
Rep Power: 18
openfoam_user is on a distinguished road
Hi Daniel,

are you satisfied with your method (ramp) ?

What is your maximum Courant Number reached ?

Regards,
Stephane.
openfoam_user is offline   Reply With Quote

Old   September 24, 2012, 09:02
Default
  #14
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Stephane,

The ramp method did increase the area of fast iteration from 0.006 to 0.03 s, however, again the speed thereafter was as slow as before. After 3 weeks of calculation I am now at 0.04 s. This is still a lot to go until 6 s, the ultimate time that I thought to be sufficient.

I changed the setting "writeControl = adjustableRunTime" to "writeControl = RunTime". This may also have helped somewhat.

Max. Courant number is around 1 to 1.2. Mean Courant number is around 0.1. One iteration step takes about 34 s, which, I think, is reasonable. The time difference between 2 iteration step is 4 x 10^-7 s. So, I think, this small change is the main problem.

Using MRF solver on the same mesh, the time difference between 2 iteration steps was 0.0025 s. This corresponds to deltaT in ControlDic. Now I get a much smaller value. I do not understand why that is and still have to find out.

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   October 4, 2012, 10:20
Default AMI high viscosity problem + AMI paraview problem
  #15
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello everybody,

It took me some time, but I finally found the error (if it is an error). One also can reproduce it in the AMI tutorial case in OF 2.1.0. (mixerVesselAMI2D) to a certain extent.

I did 2 changes to that case: 1. I switched to 6 processors in decomposParDic (should not matter and indeed does not since I ran the case without problem). 2. I changed the viscosity from 1e-5 to 20 in transportProperties. My orginal model had a Cross model implemented, but the problem seems to be the viscosity value, not the model. This is what I get on the screen:


dw@PC83U:~/OpenFOAM/dw-2.1.0/run/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D$ mpirun -np 6 pimpleDyMFoam -parallel > log &
[1] 3766
dw@PC83U:~/OpenFOAM/dw-2.1.0/run/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D$ [2] #0 Foam::error:rintStack(Foam::Ostream&) in "/home/dw/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[2] #1 Foam::sigSegv::sigHandler(int) in "/home/dw/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[2] #2 in "/lib/x86_64-linux-gnu/libc.so.6"
[2] #3 in "/home/dw/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
[PC83U:03769] *** Process received signal ***
[PC83U:03769] Signal: Segmentation fault (11)
[PC83U:03769] Signal code: (-6)
[PC83U:03769] Failing at address: 0x3e800000eb9
[PC83U:03769] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x33d80) [0x7f20cf2a5d80]
[PC83U:03769] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f20cf2a5d05]
[PC83U:03769] [ 2] /lib/x86_64-linux-gnu/libc.so.6(+0x33d80) [0x7f20cf2a5d80]
[PC83U:03769] [ 3] /home/dw/OpenFOAM/OpenFOAM-2.1.0/platforms/linux64GccDPOpt/lib/libOpenFOAM.so(+0x154ba0) [0x7f20d0103ba0]
[PC83U:03769] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 1 with PID 3768 on node PC83U exited on signal 11 (Segmentation fault).
--------------------------------------------------------------------------

This is not all too much information, but the log file:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / 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-bd7367f93311
Exec : pimpleDyMFoam -parallel
Date : Oct 04 2012
Time : 14:30:49
Host : "PC83U"
PID : 3767
Case : /home/dw/OpenFOAM/dw-2.1.0/run/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D
nProcs : 6
Slaves :
5
(
"PC83U.3768"
"PC83U.3769"
"PC83U.3770"
"PC83U.3771"
"PC83U.3772"
)

Pstream initialized with:
floatTransfer : 0
nProcsSimpleSum : 0
commsType : nonBlocking
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

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

Reading field U

Reading/calculating face flux field phi

AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1, 1, 1
AMI: Patch target weights min/max/average = 1, 1, 1
Selecting incompressible transport model Newtonian
Selecting turbulence model type laminar
Reading field rAU if present

No field sources present


PIMPLE: Operating solver in PISO mode


Starting time loop

Courant Number mean: 0 max: 0
deltaT = 0.00119048
Time = 0.00119048

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00119048 transformation: ((0 0 0) (0.999993 (0 0 0.00373998)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00011, 1.00011, 1.00011
AMI: Patch target weights min/max/average = 1.00011, 1.00011, 1.00011
smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 9.89935e-07, No Iterations 959
smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 9.88893e-07, No Iterations 957
GAMG: Solving for p, Initial residual = 1, Final residual = 0.00479908, No Iterations 4
time step continuity errors : sum local = 2.22674e-05, global = -2.30088e-12, cumulative = -2.30088e-12
GAMG: Solving for p, Initial residual = 0.66542, Final residual = 4.64086e-07, No Iterations 15
time step continuity errors : sum local = 2.74341e-09, global = -1.7588e-12, cumulative = -4.05968e-12
ExecutionTime = 0.07 s ClockTime = 1 s

Courant Number mean: 0.0213134 max: 0.0859294
deltaT = 0.00141156
Time = 0.00260204

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00260204 transformation: ((0 0 0) (0.999967 (0 0 0.00817446)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.0002, 1.0002, 1.0002
AMI: Patch target weights min/max/average = 1.0002, 1.0002, 1.0002
smoothSolver: Solving for Ux, Initial residual = 0.439544, Final residual = 9.8903e-07, No Iterations 909
smoothSolver: Solving for Uy, Initial residual = 0.431886, Final residual = 9.90487e-07, No Iterations 911
GAMG: Solving for p, Initial residual = 0.946645, Final residual = 0.00870339, No Iterations 4
time step continuity errors : sum local = 0.000153512, global = 4.45486e-10, cumulative = 4.41426e-10
GAMG: Solving for p, Initial residual = 0.808819, Final residual = 6.05234e-07, No Iterations 16
time step continuity errors : sum local = 1.13353e-08, global = 2.94758e-11, cumulative = 4.70902e-10
ExecutionTime = 0.12 s ClockTime = 1 s

Courant Number mean: 0.0621628 max: 0.321154
deltaT = 0.0016233
Time = 0.00422534

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00422534 transformation: ((0 0 0) (0.999912 (0 0 0.0132739)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.602385, Final residual = 9.94768e-07, No Iterations 966
smoothSolver: Solving for Uy, Initial residual = 0.573202, Final residual = 9.98762e-07, No Iterations 985
GAMG: Solving for p, Initial residual = 0.984534, Final residual = 0.00554229, No Iterations 5
time step continuity errors : sum local = 0.000431707, global = -5.72948e-09, cumulative = -5.25858e-09
GAMG: Solving for p, Initial residual = 0.819924, Final residual = 5.87123e-07, No Iterations 17
time step continuity errors : sum local = 5.13713e-08, global = -1.29828e-10, cumulative = -5.38841e-09
ExecutionTime = 0.18 s ClockTime = 1 s

Courant Number mean: 0.301265 max: 2.26565
deltaT = 0.000357368
Time = 0.00458271

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00458271 transformation: ((0 0 0) (0.999896 (0 0 0.0143965)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.751013, Final residual = 9.88153e-07, No Iterations 956
smoothSolver: Solving for Uy, Initial residual = 0.735669, Final residual = 9.87807e-07, No Iterations 989
GAMG: Solving for p, Initial residual = 0.990684, Final residual = 0.00650009, No Iterations 5
time step continuity errors : sum local = 0.000509248, global = 2.66927e-09, cumulative = -2.71913e-09
GAMG: Solving for p, Initial residual = 0.813236, Final residual = 6.65535e-07, No Iterations 17
time step continuity errors : sum local = 5.9741e-08, global = -2.34012e-11, cumulative = -2.74254e-09
ExecutionTime = 0.24 s ClockTime = 1 s

Courant Number mean: 0.317377 max: 2.61718
deltaT = 6.82527e-05
Time = 0.00465096

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00465096 transformation: ((0 0 0) (0.999893 (0 0 0.0146109)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.76333, Final residual = 9.98143e-07, No Iterations 816
smoothSolver: Solving for Uy, Initial residual = 0.745112, Final residual = 9.95495e-07, No Iterations 851
GAMG: Solving for p, Initial residual = 0.989607, Final residual = 0.00765601, No Iterations 5
time step continuity errors : sum local = 0.000490211, global = -2.72399e-09, cumulative = -5.46652e-09
GAMG: Solving for p, Initial residual = 0.808288, Final residual = 7.31555e-07, No Iterations 17
time step continuity errors : sum local = 5.452e-08, global = 3.99324e-10, cumulative = -5.0672e-09
ExecutionTime = 0.29 s ClockTime = 1 s

Courant Number mean: 0.250697 max: 2.39666
deltaT = 1.42376e-05
Time = 0.0046652

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.0046652 transformation: ((0 0 0) (0.999893 (0 0 0.0146556)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.759908, Final residual = 9.85478e-07, No Iterations 484
smoothSolver: Solving for Uy, Initial residual = 0.748035, Final residual = 9.75601e-07, No Iterations 499
GAMG: Solving for p, Initial residual = 0.982752, Final residual = 0.00903248, No Iterations 5
time step continuity errors : sum local = 0.000355217, global = 9.61383e-09, cumulative = 4.54663e-09
GAMG: Solving for p, Initial residual = 0.798385, Final residual = 8.24123e-07, No Iterations 17
time step continuity errors : sum local = 3.88442e-08, global = -1.48283e-09, cumulative = 3.0638e-09
ExecutionTime = 0.33 s ClockTime = 1 s

Courant Number mean: 0.131347 max: 1.50616
deltaT = 4.72633e-06
Time = 0.00466992

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00466992 transformation: ((0 0 0) (0.999892 (0 0 0.0146705)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.746931, Final residual = 9.80699e-07, No Iterations 247
smoothSolver: Solving for Uy, Initial residual = 0.732334, Final residual = 9.78183e-07, No Iterations 249
GAMG: Solving for p, Initial residual = 0.966193, Final residual = 0.00452068, No Iterations 6
time step continuity errors : sum local = 9.99138e-05, global = -5.3034e-08, cumulative = -4.99702e-08
GAMG: Solving for p, Initial residual = 0.780619, Final residual = 9.04658e-07, No Iterations 17
time step continuity errors : sum local = 2.41156e-08, global = -1.85016e-09, cumulative = -5.18203e-08
ExecutionTime = 0.35 s ClockTime = 1 s

Courant Number mean: 0.052603 max: 0.749533
deltaT = 3.15276e-06
Time = 0.00467308

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00467308 transformation: ((0 0 0) (0.999892 (0 0 0.0146804)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.755097, Final residual = 9.77339e-07, No Iterations 186
smoothSolver: Solving for Uy, Initial residual = 0.747234, Final residual = 9.64879e-07, No Iterations 186
GAMG: Solving for p, Initial residual = 0.953089, Final residual = 0.00467884, No Iterations 6
time step continuity errors : sum local = 8.88558e-05, global = 1.14776e-07, cumulative = 6.29552e-08
GAMG: Solving for p, Initial residual = 0.766035, Final residual = 4.75245e-07, No Iterations 18
time step continuity errors : sum local = 1.81398e-08, global = 8.27909e-09, cumulative = 7.12343e-08
ExecutionTime = 0.38 s ClockTime = 1 s

Courant Number mean: 0.0385493 max: 0.596893
deltaT = 2.64093e-06
Time = 0.00467572

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00467572 transformation: ((0 0 0) (0.999892 (0 0 0.0146887)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00026, 1.00026, 1.00026
AMI: Patch target weights min/max/average = 1.00026, 1.00026, 1.00026
smoothSolver: Solving for Ux, Initial residual = 0.761018, Final residual = 9.37494e-07, No Iterations 165
smoothSolver: Solving for Uy, Initial residual = 0.758367, Final residual = 9.33205e-07, No Iterations 164
GAMG: Solving for p, Initial residual = 0.946305, Final residual = 0.004664, No Iterations 6
time step continuity errors : sum local = 8.67558e-05, global = -1.16425e-07, cumulative = -4.51907e-08
GAMG: Solving for p, Initial residual = 0.75411, Final residual = 5.03327e-07, No Iterations 18
time step continuity errors : sum local = 1.72173e-08, global = -7.20542e-09, cumulative = -5.23962e-08
ExecutionTime = 0.4 s ClockTime = 1 s

Courant Number mean: 0.0348658 max: 0.555812
deltaT = 2.37568e-06
Time = 0.00467809

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00467809 transformation: ((0 0 0) (0.999892 (0 0 0.0146961)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00027, 1.00027, 1.00027
AMI: Patch target weights min/max/average = 1.00027, 1.00027, 1.00027
smoothSolver: Solving for Ux, Initial residual = 0.763691, Final residual = 9.86891e-07, No Iterations 152
smoothSolver: Solving for Uy, Initial residual = 0.761843, Final residual = 9.28687e-07, No Iterations 152
GAMG: Solving for p, Initial residual = 0.944857, Final residual = 0.00462645, No Iterations 6
time step continuity errors : sum local = 8.56649e-05, global = 1.52025e-07, cumulative = 9.96289e-08
GAMG: Solving for p, Initial residual = 0.74314, Final residual = 5.10274e-07, No Iterations 18
time step continuity errors : sum local = 2.28576e-08, global = 1.28568e-08, cumulative = 1.12486e-07
ExecutionTime = 0.43 s ClockTime = 1 s

Courant Number mean: 0.0320238 max: 0.52445
deltaT = 2.26488e-06
Time = 0.00468036

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00468036 transformation: ((0 0 0) (0.999892 (0 0 0.0147033)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00027, 1.00027, 1.00027
AMI: Patch target weights min/max/average = 1.00027, 1.00027, 1.00027
smoothSolver: Solving for Ux, Initial residual = 0.768179, Final residual = 9.37427e-07, No Iterations 148
smoothSolver: Solving for Uy, Initial residual = 0.769832, Final residual = 9.28849e-07, No Iterations 147
GAMG: Solving for p, Initial residual = 0.946618, Final residual = 0.00445217, No Iterations 6
time step continuity errors : sum local = 8.64819e-05, global = -1.34464e-07, cumulative = -2.19782e-08
GAMG: Solving for p, Initial residual = 0.737939, Final residual = 4.94694e-07, No Iterations 18
time step continuity errors : sum local = 1.83379e-08, global = -8.23249e-09, cumulative = -3.02107e-08
ExecutionTime = 0.45 s ClockTime = 1 s

Courant Number mean: 0.0319341 max: 0.531503
deltaT = 2.13062e-06
Time = 0.00468249

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00468249 transformation: ((0 0 0) (0.999892 (0 0 0.0147099)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00027, 1.00027, 1.00027
AMI: Patch target weights min/max/average = 1.00027, 1.00027, 1.00027
smoothSolver: Solving for Ux, Initial residual = 0.76855, Final residual = 9.48595e-07, No Iterations 141
smoothSolver: Solving for Uy, Initial residual = 0.76757, Final residual = 9.92723e-07, No Iterations 140
GAMG: Solving for p, Initial residual = 0.947305, Final residual = 0.00429991, No Iterations 6
time step continuity errors : sum local = 8.32842e-05, global = 1.83223e-07, cumulative = 1.53013e-07
GAMG: Solving for p, Initial residual = 0.736467, Final residual = 4.78067e-07, No Iterations 18
time step continuity errors : sum local = 2.79401e-08, global = 1.82932e-08, cumulative = 1.71306e-07
ExecutionTime = 0.47 s ClockTime = 1 s

Courant Number mean: 0.0290166 max: 0.49155
deltaT = 2.16724e-06
Time = 0.00468466

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.00468466 transformation: ((0 0 0) (0.999892 (0 0 0.0147168)))
AMI: Creating addressing and weights between 96 source faces and 96 target faces
AMI: Patch source weights min/max/average = 1.00027, 1.00027, 1.00027
AMI: Patch target weights min/max/average = 1.00027, 1.00027, 1.00027
smoothSolver: Solving for Ux, Initial residual = 0.774479, Final residual = 9.87718e-07, No Iterations 143
smoothSolver: Solving for Uy, Initial residual = 0.77668, Final residual = 9.24456e-07, No Iterations 143
GAMG: Solving for p, Initial residual = 0.950157, Final residual = 0.00418523, No Iterations 6
time step continuity errors : sum local = 8.74868e-05, global = -1.34313e-07, cumulative = 3.69933e-08
GAMG: Solving for p, Initial residual = 0.735541, Final residual = 9.74853e-07, No Iterations 17
time step continuity errors : sum local = 2.85132e-08, global = -7.27165e-09, cumulative = 2.97216e-08
ExecutionTime = 0.49 s ClockTime = 1 s



The file is much bigger, I did cut most of it off. The program does even write the 1st time folder after 0. As can be see, as for my own case, the program reduces deltaT down to a ridicolous small value (2e-6). Then the iteration takes forever. The Co number iteration seems fine, around 0.5 as specified.

Back on my own case: this I have analyzed more in detail. I found that OpenFoam calculates velocities (U file) that are 1000 times the maximal speed that theoretically can happen anywhere in the mixer (the maximal velocity is the tip speed of the rotor blades). For low viscosities, the program does fine.

My question: how this can be?? If the solver iterates in U, how does it do? In MRF the solver does just fine (no viscosity problem), why AMI?

Unrelated question: I cannot visualize AMI p,U or the like in ParaView, just the rotating mesh. Is this normal or some bug?

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   October 5, 2012, 08:19
Default
  #16
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Daniel,

Quote:
Originally Posted by danny123 View Post
My question: how this can be?? If the solver iterates in U, how does it do? In MRF the solver does just fine (no viscosity problem), why AMI?
I thought you were already using OpenFOAM 2.1.1! I should have mentioned that several bugs have been fixed in AMI since 2.1.0 was released!
I haven't tested these high-viscosity parameters, but I still suggest that you try out OpenFOAM 2.1.1 or even 2.1.x before doing more tests on 2.1.0!

Quote:
Originally Posted by danny123 View Post
Unrelated question: I cannot visualize AMI p,U or the like in ParaView, just the rotating mesh. Is this normal or some bug?
I haven't (re-)tried this myself, but did you turn on the "Read zones" check box?

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   October 8, 2012, 11:59
Default
  #17
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello Bruno,

Thanks for the tip. I got it working in 2.1.0, though not quite right:

1.) The divergence of the calculation by relaxing U in fvSolution to 0.01. This did the trick and my calculation time is reduced to 1 day (my case). The tutorial case mixerVesselAMI is also reasonable now (a couple s). My case also works for Cross model for viscosity. So far so good.

2.) The paraView by unchecking "internal fields" and all volume fields, then checking "rotor patch" (then push "apply" button). You will see the rotor patch. Then uncheck "rotor patch" and check "internal fields" and "Volume fields" (followed by "apply"). Then change to "display" and select the field you want as usual.

It turns out that the stator though "turns" together with the rotor although they have been meshed independently and merged by mergeMeshes. There is a velocity field calculated. Somehing is definetly very wrong.

I will now install 2.1.x and hope the best. Is this new version so much better?

Regards,

Daniel
danny123 is offline   Reply With Quote

Old   October 8, 2012, 13:35
Default
  #18
Senior Member
 
Kent Wardle
Join Date: Mar 2009
Location: Illinois, USA
Posts: 219
Rep Power: 21
kwardle is on a distinguished road
Quote:
Originally Posted by danny123 View Post
Is this new version so much better?
Depends if the new bugs that have been introduced are more friendly than the old ones that have been fixed. ;-)
wyldckat likes this.
kwardle is offline   Reply With Quote

Old   October 8, 2012, 18:01
Default
  #19
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
By what I've seen in the bug reports and from the fixes made on 2.1.x, I think the bug fixes out-weight any new bugs that might have been introduced

But then again, I don't have much experience with AMI... closest I know/understand is that the tutorial "incompressible/pimpleDyMfoam/propeller" was broken some time ago and it's working again: http://www.openfoam.org/mantisbt/view.php?id=593 - I don't know when it stopped working in the first place
__________________
wyldckat is offline   Reply With Quote

Old   October 24, 2012, 08:44
Default
  #20
Senior Member
 
Daniel Witte
Join Date: Nov 2011
Posts: 148
Rep Power: 14
danny123 is on a distinguished road
Hello again,

I think this threads can be closed since I found out the problem myself. When you use the tutorial AMI case, delete all files in polymesh folder or at least the file "cellZones" for the static mesh. The folder "set" is useless. Running BlockMesh on the rotating part will create a new "cellZones" file, but on the static part, that file will be missing.

While merging the rotating with the static mesh, mergeMeshes adds the the "cellZones" of each mesh together. This is what happened to my case, increasing the number of blocks rotating that a part of the static parts did rotate too. There is no error message created and even the case may be calculated, but obviously the solution is no good. So, an existing "cellZones" file is overwritten by blockMesh if there is an existing zone, but is not removed if there is none.

Thanks everybody for the help.

Regards,

Daniel
wyldckat and FrankFlow like this.
danny123 is offline   Reply With Quote

Reply

Tags
ami angular speed ramp

Thread Tools Search this Thread
Search this Thread:

Advanced Search
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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
OpenFOAM on Amazon Elastic Compute Cloud (Amazon EC2) piina OpenFOAM Running, Solving & CFD 14 November 11, 2015 14:17
[Other] Problem when case with AMI A.A. OpenFOAM Meshing & Mesh Conversion 1 October 4, 2012 12:54
Train Speed yeo FLUENT 5 February 14, 2012 09:38
parallel performance on BX900 uzawa OpenFOAM Installation 3 September 5, 2011 16:52
Linux kernel performance enhancement ConnClark OpenFOAM 0 January 17, 2011 19:18


All times are GMT -4. The time now is 03:50.