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

Question about implement IQN-ILS algorithm in icoFsiElasticNonLinULSolidFoam

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 15, 2014, 09:02
Question Question about implement IQN-ILS algorithm in icoFsiElasticNonLinULSolidFoam
  #1
New Member
 
Jinbin Ge
Join Date: Mar 2013
Posts: 6
Rep Power: 13
gejiabin is on a distinguished road
icoFsiElasticNonLinULSolidFoam is available in foam-extend-3.0.
After reading the papar“performance of a new partitioned procedure versus a monolithic in fluid-structure interaction”.
http://web.mit.edu/kjb/www/Principal...nteraction.pdf
I try to implement IQN-ILS algorithm in icoFsiElasticNonLinULSolidFoam according to paper.Blow is my code.

1.Add two line into createInterfaceFields.H
Code:
SLList<scalarRectangularMatrix> deltaInput;
SLList<scalarRectangularMatrix> deltaOutput;
2.The main code is in setInterfaceDisplacement.H
Code:
  else if (couplingScheme == "IQN-ILS")
    {
     Info<< "IQN-ILS iteration: "<<endl;
     //if(outerCorr>20)
     //{
     // deltaInput.removeHead();
     // deltaOutput.removeHead();
    // }
     //-------------------------------------------------------------------------
     int numColumn(0);
     int dim=2;//3
     int numDegreeOfFreedom( dim*mesh.boundaryMesh()[fluidPatchID].nPoints() );
     scalarRectangularMatrix vMatrix(numDegreeOfFreedom,deltaInput.size()+1,0);
     scalarRectangularMatrix wMatrix(numDegreeOfFreedom,deltaInput.size()+1,0);
     scalarRectangularMatrix vVector(numDegreeOfFreedom,1,0);
     scalarRectangularMatrix temp(numDegreeOfFreedom,1,0);
     
     //1.Assemble vMatrix  
     for(int id=0;id<numDegreeOfFreedom;id=id+dim)
      for(int i=0;i<dim;i++)
       temp[id+i][0]=(fsiResidualOld[id/dim][i]-fsiResidual[id/dim][i]);
     //
     forAllIter(SLList<scalarRectangularMatrix>,deltaInput,iter)
     { 
       (*iter)=(*iter)+temp;
       for(int i=0;i<numDegreeOfFreedom;i++)    
        vMatrix[i][numColumn]=(*iter)[i][0];
       numColumn+=1;
     } 
     //
     deltaInput.append(temp);
     for(int i=0;i<numDegreeOfFreedom;i++) 
      vMatrix[i][numColumn]=temp[i][0];
     
     //2.Assemble vVecotr
     for(int id=0;id<numDegreeOfFreedom;id=id+dim)
      for(int i=0;i<dim;i++)
       vVector[id+i][0]=-fsiResidual[id/dim][i];
     
     //3.Assemble wMatrix 
     numColumn=0;
     for(int id=0;id<numDegreeOfFreedom;id=id+dim)
      for(int i=0;i<dim;i++)
       temp[id+i][0]=(fluidPatchPointsDisplOld[id/dim][i]-fluidPatchPointsDispl[id/dim][i]);
     //
     forAllIter(SLList<scalarRectangularMatrix>,deltaOutput,iter)
     {  
       (*iter)=(*iter)+temp;
       for(int i=0;i<numDegreeOfFreedom;i++)    
        wMatrix[i][numColumn]=(*iter)[i][0];
       numColumn+=1;
     } 
     //
     deltaOutput.append(temp);
     for(int i=0;i<numDegreeOfFreedom;i++) 
      wMatrix[i][numColumn]=temp[i][0];
       //4.Update fluidPatchPointsDispl
     fluidPatchPointsDisplOld = fluidPatchPointsDispl;
     multiply(temp,wMatrix,SVDinv(vMatrix),vVector);
     for(int id=0;id<numDegreeOfFreedom;id=id+dim)
      for(int i=0;i<dim;i++)
       fluidPatchPointsDispl[id/dim][i]+=(temp[id+i][0]-vVector[id+i][0]) ;
     
      Info<<"end:"<<endl;
     //-------------------------------------------------------------------------
     }
}
But the new solver can't convergence for the benchmark proposed in the Hron & Turek paper.









But I change the code line from:fluidPatchPointsDispl[id/dim][i]+=(temp[id+i][0]-vVector[id+i][0]);
to:fluidPatchPointsDispl[id/dim][i]+=(temp[id+i][0]);
Things get a little better,but it still can't meet convergence criteria.
[IMG]http://b170.photo.store.qq.com/psb?/V11dkwCX1wKa4a/GjfsQ*slhvGFcYuS46SR.znc5g*L*kXjlU4qiJ.g7og!/b/dEguYGVAKAAA&bo=1wKAAgAAAAADAHI![/IMG]

Last edited by gejiabin; April 17, 2014 at 03:31.
gejiabin is offline   Reply With Quote

Old   June 28, 2015, 08:05
Default
  #2
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
Hey,

did you find a solution?
I work with this benchmark too and I am really interessted in implementing the new algorithm in the HronTurekFsi Case.

I would be very grateful for your help.

Best regards,
Stephie
stephie is offline   Reply With Quote

Old   June 28, 2015, 12:00
Default
  #3
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Beijing, China
Posts: 838
Rep Power: 17
sharonyue is on a distinguished road
Sorry,

But actually its quite excited to see "image can not be cited from QQ without permission", um. In my primary language.
__________________
My OpenFOAM algorithm website: http://dyfluid.com
By far the largest Chinese CFD-based forum: http://www.cfd-china.com/category/6/openfoam
We provide lots of clusters to Chinese customers, and we are considering to do business overseas: http://dyfluid.com/DMCmodel.html
sharonyue is offline   Reply With Quote

Old   July 1, 2015, 05:44
Default
  #4
Member
 
Johan Lorentzon
Join Date: Mar 2009
Location: Lunds University, Sweden
Posts: 78
Rep Power: 23
pi06jl6 will become famous soon enough
I am currently working with this case, Stephie, keep us posted about your findings! Are you using the FSI-PFS-2A setting? I am using M. Breuers data as reference, what data are you using? Could you describe your case setting? Best Regards /Johan

FYI: IQN-ILS is implemented in icoFsiElasticNonLinULSolidFoam.
pi06jl6 is offline   Reply With Quote

Old   December 5, 2015, 02:44
Default
  #5
New Member
 
rasoul
Join Date: Mar 2015
Posts: 24
Rep Power: 11
rasool_soofi is on a distinguished road
Hello Dears
i am using this solver for my case.
in the tutorial case of this solver the properties of fluid and solid set to

fluid density = 1 kg/m3 kinemaic viscosity = 10e-3
solid density = 10 kg/m3

what is the meaning of this properties.?
when i set my real properties for blood and vessel

blood density = 1000 kg/m3
vessel density = 1200 kg/m3

my solution crashed by " complex eigenvalue detected for tensor ...." error.

best regards
rasool_soofi is offline   Reply With Quote

Old   December 28, 2015, 02:31
Default
  #6
New Member
 
anand sudhi
Join Date: Sep 2015
Posts: 16
Rep Power: 10
anandsudhi is on a distinguished road
Hi I know this is an old post. But could your give me a link to the implementation of IQN-ILS in icoFsiElasticNonLinULSolidFoam. I am not able to find it in foam extend 3.1 as that portion is commented.
Attached Files
File Type: h setInterfaceDisplacement.H (1.2 KB, 6 views)
anandsudhi is offline   Reply With Quote

Old   February 15, 2017, 12:27
Default
  #7
Member
 
Johan Lorentzon
Join Date: Mar 2009
Location: Lunds University, Sweden
Posts: 78
Rep Power: 23
pi06jl6 will become famous soon enough
Quote:
Originally Posted by anandsudhi View Post
Hi I know this is an old post. But could your give me a link to the implementation of IQN-ILS in icoFsiElasticNonLinULSolidFoam. I am not able to find it in foam extend 3.1 as that portion is commented.
setInterFaceDisplacement.H

I have implemented my own since the provided use explicit Q, i prefer Q free implementation using householder method.
pi06jl6 is offline   Reply With Quote

Reply

Tags
elasticnonlinulsolidfoam, icofsi, iqn-ils


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
On the pimpleFoam solution algorithm vkrastev OpenFOAM 1 February 1, 2011 08:25
Question on Pressure and Velocity Fields with SIMPLE algorithm Phiper Main CFD Forum 0 November 18, 2010 18:29
Question regarding the F2F particle tracking algorithm implementation. andrewryan OpenFOAM 2 October 22, 2009 01:55
Question to SIMPLE algorithm by Patankar's book. Rafal Main CFD Forum 2 December 21, 2005 03:48
SIMPLER Algorithm question Erik Main CFD Forum 1 May 23, 2004 03:57


All times are GMT -4. The time now is 09:28.