CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM CC Toolkits for Fluid-Structure Interaction (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/)
-   -   [solids4Foam] problem in Aitken and IQILNS algorithm (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/223419-problem-aitken-iqilns-algorithm.html)

Hgholami January 10, 2020 00:55

problem in Aitken and IQILNS algorithm
 
Dear Foamer
In solids4Foam, in Aitken and IQILNS algorithm, after three iteration, we have
Quote:

forAll(fluid().globalPatches(), i)
{
aitkenRelaxationFactors_[i] =
-aitkenRelaxationFactors_[i]
*(
sum
(
residualsPrev()[i]
& (residuals()[i] - residualsPrev()[i])
)
/(
sum
(
(residuals()[i] - residualsPrev()[i])
& (residuals()[i] - residualsPrev()[i])
)
)
);
In multi Interfaces case, I have problem after three iteration. the solver give floating point that seen due to above part of code. As the solver try to divide to
Quote:

sum
(
(residuals()[i] - residualsPrev()[i])
& (residuals()[i] - residualsPrev()[i])
)
the floating point occurs. Why we sure this part is always nonZero?
may need to add "VSmall" to this part to avoid floating point?

Hgholami January 12, 2020 09:17

I add VSMALL in AitkenCouplingInterface as:
Quote:

forAll(fluid().globalPatches(), i)
{
aitkenRelaxationFactors_[i] =
-aitkenRelaxationFactors_[i]
*(
sum
(
residualsPrev()[i]
& (residuals()[i] - residualsPrev()[i])
)
/( VSMALL +
sum
(
(residuals()[i] - residualsPrev()[i])
& (residuals()[i] - residualsPrev()[i])
)
)
);


All times are GMT -4. The time now is 00:04.