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

OF 4.1 + Helyx-OS v2.4.0 AMI Simulation blows up after 0.4 seconds

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 21, 2018, 11:03
Question OF 4.1 + Helyx-OS v2.4.0 AMI Simulation blows up after 0.4 seconds
  #1
Member
 
Join Date: Apr 2011
Posts: 56
Rep Power: 15
Ruonin is on a distinguished road
Hello Everyone,

Just for some context, I'm trying to move one of the impellers of a reactor using AMI.
I'm using OF4.1 and Helyx-OS v2.4.0.

I've read some of the posts regarding convergence issues with sliding mesh (AMI) and I believe I have tackled most of issues that could hinder convergence.

I verify the mesh is indeed sliding, however, after some type I get the dreaded error:

MI: Creating addressing and weights between 52300 source faces and 54593 target faces
[0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Unable to set source and target faces
[0]
[0] From function void Foam::faceAreaWeightAMI<SourcePatch, TargetPatch>::setNextFaces(Foam::label&, Foam::label&, Foam::label&, const boolList&, Foam::labelList&, const Foam::DynamicList<int>&, bool) const [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; Foam::label = int; Foam::boolList = Foam::List<bool>; Foam::labelList = Foam::List<int>]
[0] in file lnInclude/faceAreaWeightAMI.C at line 287.
[0]
FOAM parallel run aborting
[0]
[0] #0 Foam::error::printStack(Foam::Ostream&) at ??:?
[0] #1 Foam::error::abort() at ??:?
[0] #2 Foam::faceAreaWeightAMI<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> > >::calcAddressing(Foam::List<Foam::DynamicList<int , 0u, 2u, 1u> >&, Foam::List<Foam::DynamicList<double, 0u, 2u, 1u> >&, Foam::List<Foam::DynamicList<int, 0u, 2u, 1u> >&, Foam::List<Foam::DynamicList<double, 0u, 2u, 1u> >&, int, int) at ??:?
[0] #3 Foam::faceAreaWeightAMI<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> > >::calculate(Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, int, int) at ??:?
[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&) at ??:?
[0] #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> > >::constructFromSurface(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&, Foam::autoPtr<Foam::searchableSurface> const&) at ??:?
[0] #6 Foam::cyclicAMIPolyPatch::resetAMI(Foam::AMIInterp olation<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> > >::interpolationMethod const&) const at ??:?
[0] #7 Foam::cyclicAMIPolyPatch::AMI() const at ??:?
[0] #8 Foam::cyclicAMIPolyPatch::applyLowWeightCorrection () const at ??:?
[0] #9 Foam::cyclicAMIFvPatchField<Foam::Vector<double> >::patchNeighbourField() const at ??:?
[0] #10 Foam::coupledFvPatchField<Foam::Vector<double> >::evaluate(Foam::UPstream::commsTypes) at ??:?
[0] #11 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::Boundary::evaluate() at ??:?
[0] #12 Foam::multiSolidBodyMotionFvMesh::update() at ??:?
[0] #13 ? at ??:?
[0] #14 __libc_start_main in "/lib64/libc.so.6"
[0] #15 ? at /home/abuild/rpmbuild/BUILD/glibc-2.22/csu/../sysdeps/x86_64/start.S:121
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

[IMG]file:///home/hovione/Desktop/mesh1.png[/IMG]

I understand the mesh could use some fine tuning but could this be the cause?
No errors or warnings in checkMesh.
This seem odd since I would have gotten the error sooner...

I can't seem to understand why the simulation blows up.
Can anyone detect any errors or provide some insight?

Log
Courant Number mean: 0.003791078666 max: 1.967136809
deltaT = 0.0005555555556
Time = 0.401667

AMI: Creating addressing and weights between 52300 source faces and 54593 target faces
AMI: Patch source sum(weights) min/max/average = 0, 1.506151533, 1.007932604
AMI: Patch source identified 9 faces with weights less than 0.2
AMI: Patch target sum(weights) min/max/average = 0, 1.455095879, 1.001904928
AMI: Patch target identified 15 faces with weights less than 0.2
GAMG: Solving for pcorr, Initial residual = 1, Final residual = 0.006262864683, No Iterations 72
GAMG: Solving for pcorr, Initial residual = 0.2674973684, Final residual = 0.002601096384, No Iterations 28
time step continuity errors : sum local = 9.684025466e-10, global = 7.955442223e-10, cumulative = -1.610408404e-07
PIMPLE: iteration 1
smoothSolver: Solving for Ux, Initial residual = 0.0004328596307, Final residual = 1.77369777e-05, No Iterations 1
smoothSolver: Solving for Uy, Initial residual = 0.000419783604, Final residual = 1.721121331e-05, No Iterations 1
smoothSolver: Solving for Uz, Initial residual = 0.0002945661384, Final residual = 1.182454377e-05, No Iterations 1
GAMG: Solving for p, Initial residual = 0.4609984327, Final residual = 0.003167119338, No Iterations 3
GAMG: Solving for p, Initial residual = 0.02578119572, Final residual = 0.000247318199, No Iterations 28
time step continuity errors : sum local = 1.803082199e-09, global = -9.57286632e-10, cumulative = -1.619981271e-07
smoothSolver: Solving for epsilon, Initial residual = 0.0003327351328, Final residual = 8.315218439e-06, No Iterations 1
smoothSolver: Solving for k, Initial residual = 0.0007650400529, Final residual = 2.672913661e-05, No Iterations 1
PIMPLE: iteration 2
smoothSolver: Solving for Ux, Initial residual = 0.0003442167062, Final residual = 7.320810545e-07, No Iterations 3
smoothSolver: Solving for Uy, Initial residual = 0.000336613188, Final residual = 7.382960511e-07, No Iterations 3
smoothSolver: Solving for Uz, Initial residual = 0.0002487474601, Final residual = 5.985640355e-07, No Iterations 3
GAMG: Solving for p, Initial residual = 0.4505889049, Final residual = 0.00291997857, No Iterations 3
GAMG: Solving for p, Initial residual = 0.06539827074, Final residual = 7.307976183e-07, No Iterations 98
time step continuity errors : sum local = 9.574142553e-10, global = -9.559433288e-10, cumulative = -1.629540704e-07
smoothSolver: Solving for epsilon, Initial residual = 0.0001625167787, Final residual = 5.564326877e-07, No Iterations 2
smoothSolver: Solving for k, Initial residual = 0.000390723251, Final residual = 6.081068895e-07, No Iterations 3
PIMPLE: not converged within 2 iterations
ExecutionTime = 6737.33 s ClockTime = 6758 s
Thank is advance.

BR.
Ruonin
Attached Images
File Type: jpg mesh1.jpg (194.2 KB, 13 views)
File Type: jpg mesh2.jpg (195.0 KB, 14 views)
Attached Files
File Type: txt fvSchemes.txt (2.6 KB, 3 views)
File Type: txt fvSolution.txt (11.3 KB, 3 views)
File Type: txt controlDict.txt (1.1 KB, 2 views)
Ruonin is offline   Reply With Quote

Old   July 23, 2018, 01:59
Default
  #2
Senior Member
 
harshawardhank
Join Date: Mar 2014
Posts: 209
Rep Power: 13
harsha_kulkarni is on a distinguished road
[QUOTE=Ruonin;700002]Hello Everyone,

Just for some context, I'm trying to move one of the impellers of a reactor using AMI.
I'm using OF4.1 and Helyx-OS v2.4.0.

I've read some of the posts regarding convergence issues with sliding mesh (AMI) and I believe I have tackled most of issues that could hinder convergence.

I verify the mesh is indeed sliding, however, after some type I get the dreaded error:

MI: Creating addressing and weights between 52300 source faces and 54593 target faces
[0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Unable to set source and target faces
[0]
[0] From function void Foam::faceAreaWeightAMI<SourcePatch, TargetPatch>::setNextFaces(Foam::label&, Foam::label&, Foam::label&, const boolList&, Foam::labelList&, const Foam:ynamicList<int>&, bool) const [with SourcePatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; TargetPatch = Foam::PrimitivePatch<Foam::face, Foam::SubList, const Foam::Field<Foam::Vector<double> >&>; Foam::label = int; Foam::boolList = Foam::List<bool>; Foam::labelList = Foam::List<int>]
[0] in file lnInclude/faceAreaWeightAMI.C at line 287.
[0]
FOAM parallel run aborting
[0]
[0] #0 Foam::error:rintStack(Foam::Ostream&) at ??:?
[0] #1 Foam::error::abort() at ??:?
[0] #2 Foam::faceAreaWeightAMI<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> > >::calcAddressing(Foam::List<Foam:ynamicList<int , 0u, 2u, 1u> >&, Foam::List<Foam:ynamicList<double, 0u, 2u, 1u> >&, Foam::List<Foam:ynamicList<int, 0u, 2u, 1u> >&, Foam::List<Foam:ynamicList<double, 0u, 2u, 1u> >&, int, int) at ??:?
[0] #3 Foam::faceAreaWeightAMI<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> > >::calculate(Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, Foam::List<Foam::List<int> >&, Foam::List<Foam::List<double> >&, int, int) at ??:?
[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&) at ??:?
[0] #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> > >::constructFromSurface(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&, Foam::autoPtr<Foam::searchableSurface> const&) at ??:?
[0] #6 Foam::cyclicAMIPolyPatch::resetAMI(Foam::AMIInterp olation<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> > >::interpolationMethod const&) const at ??:?
[0] #7 Foam::cyclicAMIPolyPatch::AMI() const at ??:?
[0] #8 Foam::cyclicAMIPolyPatch::applyLowWeightCorrection () const at ??:?
[0] #9 Foam::cyclicAMIFvPatchField<Foam::Vector<double> >:atchNeighbourField() const at ??:?
[0] #10 Foam::coupledFvPatchField<Foam::Vector<double> >::evaluate(Foam::UPstream::commsTypes) at ??:?
[0] #11 Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>::Boundary::evaluate() at ??:?
[0] #12 Foam::multiSolidBodyMotionFvMesh::update() at ??:?
[0] #13 ? at ??:?
[0] #14 __libc_start_main in "/lib64/libc.so.6"
[0] #15 ? at /home/abuild/rpmbuild/BUILD/glibc-2.22/csu/../sysdeps/x86_64/start.S:121
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

[IMG]file:///home/hovione/Desktop/mesh1.png[/IMG]

I understand the mesh could use some fine tuning but could this be the cause?
No errors or warnings in checkMesh.
This seem odd since I would have gotten the error sooner...

I can't seem to understand why the simulation blows up.
Can anyone detect any errors or provide some insight?

Log
Courant Number mean: 0.003791078666 max: 1.967136809
deltaT = 0.0005555555556
Time = 0.401667

AMI: Creating addressing and weights between 52300 source faces and 54593 target faces
AMI: Patch source sum(weights) min/max/average = 0, 1.506151533, 1.007932604
AMI: Patch source identified 9 faces with weights less than 0.2
AMI: Patch target sum(weights) min/max/average = 0, 1.455095879, 1.001904928
AMI: Patch target identified 15 faces with weights less than 0.2
GAMG: Solving for pcorr, Initial residual = 1, Final residual = 0.006262864683, No Iterations 72
GAMG: Solving for pcorr, Initial residual = 0.2674973684, Final residual = 0.002601096384, No Iterations 28
time step continuity errors : sum local = 9.684025466e-10, global = 7.955442223e-10, cumulative = -1.610408404e-07
PIMPLE: iteration 1
smoothSolver: Solving for Ux, Initial residual = 0.0004328596307, Final residual = 1.77369777e-05, No Iterations 1
smoothSolver: Solving for Uy, Initial residual = 0.000419783604, Final residual = 1.721121331e-05, No Iterations 1
smoothSolver: Solving for Uz, Initial residual = 0.0002945661384, Final residual = 1.182454377e-05, No Iterations 1
GAMG: Solving for p, Initial residual = 0.4609984327, Final residual = 0.003167119338, No Iterations 3
GAMG: Solving for p, Initial residual = 0.02578119572, Final residual = 0.000247318199, No Iterations 28
time step continuity errors : sum local = 1.803082199e-09, global = -9.57286632e-10, cumulative = -1.619981271e-07
smoothSolver: Solving for epsilon, Initial residual = 0.0003327351328, Final residual = 8.315218439e-06, No Iterations 1
smoothSolver: Solving for k, Initial residual = 0.0007650400529, Final residual = 2.672913661e-05, No Iterations 1
PIMPLE: iteration 2
smoothSolver: Solving for Ux, Initial residual = 0.0003442167062, Final residual = 7.320810545e-07, No Iterations 3
smoothSolver: Solving for Uy, Initial residual = 0.000336613188, Final residual = 7.382960511e-07, No Iterations 3
smoothSolver: Solving for Uz, Initial residual = 0.0002487474601, Final residual = 5.985640355e-07, No Iterations 3
GAMG: Solving for p, Initial residual = 0.4505889049, Final residual = 0.00291997857, No Iterations 3
GAMG: Solving for p, Initial residual = 0.06539827074, Final residual = 7.307976183e-07, No Iterations 98
time step continuity errors : sum local = 9.574142553e-10, global = -9.559433288e-10, cumulative = -1.629540704e-07
smoothSolver: Solving for epsilon, Initial residual = 0.0001625167787, Final residual = 5.564326877e-07, No Iterations 2
smoothSolver: Solving for k, Initial residual = 0.000390723251, Final residual = 6.081068895e-07, No Iterations 3
PIMPLE: not converged within 2 iterations
ExecutionTime = 6737.33 s ClockTime = 6758 s
Thank is advance.

BR.

Initialy
Try to run it on single core
harsha_kulkarni is offline   Reply With Quote

Old   July 23, 2018, 11:38
Default
  #3
Member
 
Join Date: Apr 2011
Posts: 56
Rep Power: 15
Ruonin is on a distinguished road
Hello harsha_kulkarni,

thanks for the input.

I did try running it on a single core and using moveDynamicMesh to get a general sense if there is an issue with the AMI or just the problem physics.

Initially the Patch Target Sum weights start to diminish and after a while just go to zero for the minimum. I used a constant time step o 2.0E-4 to get a Co number below 1. Still no luck and the simulations blows up around 0.145 seconds.

Any suggestions?
Maybe I need to make a coarser mesh? I've seen some suggestions on the forum.
Or maybe have the same number of faces for both sides of AMI...

I would like to start from scratch rather than using the mapFields from the MRF case.
Going further into the future I would like to use 6DOF where I don't know the impeller speed but I'm still stuck in moving mesh convergence.

BR.
Ruonin.
Ruonin is offline   Reply With Quote

Old   July 23, 2018, 11:59
Default
  #4
Senior Member
 
harshawardhank
Join Date: Mar 2014
Posts: 209
Rep Power: 13
harsha_kulkarni is on a distinguished road
Quote:
Originally Posted by Ruonin View Post
Hello harsha_kulkarni,

thanks for the input.

I did try running it on a single core and using moveDynamicMesh to get a general sense if there is an issue with the AMI or just the problem physics.

Initially the Patch Target Sum weights start to diminish and after a while just go to zero for the minimum. I used a constant time step o 2.0E-4 to get a Co number below 1. Still no luck and the simulations blows up around 0.145 seconds.

Any suggestions?
Maybe I need to make a coarser mesh? I've seen some suggestions on the forum.
Or maybe have the same number of faces for both sides of AMI...

I would like to start from scratch rather than using the mapFields from the MRF case.
Going further into the future I would like to use 6DOF where I don't know the impeller speed but I'm still stuck in moving mesh convergence.

BR.
Ruonin.
If I get you your problem
You have used dynamic mesh and single core.

Instead if I will suggest to use single core without dynamic
Mesh
harsha_kulkarni is offline   Reply With Quote

Old   July 23, 2018, 13:49
Default
  #5
Member
 
Join Date: Apr 2011
Posts: 56
Rep Power: 15
Ruonin is on a distinguished road
Thanks for the reply, harsha_kulkarni.

I've already solved this case using MRF and multiple cores.

Now, I'm trying to use dynamic mesh and AMI to perform a mixing time study.
So, I'll need the movement enforced by dynamic mesh.

So, in essence, I suppose my issue is how to set up my dynamic mesh properly.
I see the mesh moves, so I assume the patches and interfaces are well defined.
Probably, is just my meshing strategy that need some fine tuning.

Any thoughts?

BR.
Ruonin
Ruonin is offline   Reply With Quote

Reply

Tags
ami, helyx-os, openfoam 4.1, sliding mesh


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
Compressor Simulation using rhoPimpleDyMFoam Jetfire OpenFOAM Running, Solving & CFD 107 December 9, 2014 14:38
AMI simulation unstable within first few timesteps craig0a OpenFOAM Running, Solving & CFD 0 February 24, 2014 13:09
AMI simulation with VOF Ya_Squall2010 OpenFOAM Running, Solving & CFD 29 May 13, 2013 04:19
rhoPorousMRFSimpleFoam/compressor simulation blows up mpat OpenFOAM Running, Solving & CFD 2 August 10, 2012 10:52
Overflow problem in steady simulation ReeKo CFX 11 October 8, 2008 18:57


All times are GMT -4. The time now is 14:12.