CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   DdtPhiCorr (https://www.cfd-online.com/Forums/openfoam-solving/60096-ddtphicorr.html)

luca January 17, 2006 05:52

Hi all, I'd like to know mo
 
Hi all,

I'd like to know more about DdtPhicorr term. I have not clear in mind the theoretical derivation of this operator. It's similar to Rhie-Chow interpolation for Co-located variable arrangement?!

Moreover, it's possible to use it in steady simulations?!

Thanks in advance

Luca

hjasak January 17, 2006 18:10

This term accounts for the div
 
This term accounts for the divergence of the face velocity field by taking out the difference between the interpolated velocity and the flux. Have a look at:

finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C

in the main library:

rDeltaT*fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
(
fvc::interpolate(rA)*phi.oldTime()
- (fvc::interpolate(rA*U.oldTime()) & mesh().Sf())
)


Unfortunately, I don't think there's anything written about it.

Enjoy,

Hrv

sampaio February 13, 2006 14:03

Does this add more numeric dis
 
Does this add more numeric dissipation to the scheme?

What should I expect if I remove this from the oodles main code? Can I live without it? Or what were you guys trying to achieve when you come up with this?

(I m running incompr LES)

Thanks a lot!
luiz

rolando July 27, 2006 11:12

Hello everyone, I detected so
 
Hello everyone,
I detected some inconsistency, while experimenting with the term "fvcDdtPhiCoeff" in "ddtPhiCorr".
Probing the pressure signal of a LES yielded different results depending on using the present calculation of "fvcDdtPhiCoeff" or using a constant value, as was done in FOAM version 1.1.
If I use the present version the signal looks a bit wavy (f~1/deltaT) with small amplitude.
If I use a constant value then the signal looks smoother.
I´m not sure, if it is numerical noise in the one case or a wrongly smoothed signal in the other case.
Can anyone give me a hint?

Thanks in advance
Rolando

aldo.iannetti October 18, 2010 02:52

ddtPhiCorr meaning
 
Could you explane me why in turbDyMFoam (OF 1.5-dev) I have:


phi = (fvc::interpolate(U) & mesh.Sf());
//+ fvc::ddtPhiCorr(rUA, U, phi);

Can you explane me better the meaning of ddtPhiCorr term? why in some solvers is commented and in other (es. pisoFoam) is not?

thanks
Aldo

ville December 13, 2012 14:52

Quote:

Originally Posted by sampaio (Post 204045)
Does this add more numeric dissipation to the scheme?
(I m running incompr LES)

Thanks a lot!
luiz

I have quite interesting experiences regarding the flux interpolation in PISO:

phi = (fvc::interpolate(U) & mesh.Sf())
+ fvc::ddtPhiCorr(rAU, U, phi);

In lid driven cavity and turbulent channel flow (DNS) this calculation of phi
works very well. However, for a laminar, inviscid Taylor-Green vortex the term
+ fvc::ddtPhiCorr(rAU, U, phi); turned out to dissipate kinetic energy very strongly.
On fine grids about 10% of the initial energy within a few eddy turnaround times.
When I removed the + fvc::ddtPhiCorr(rAU, U, phi) term things seemed to work
much better.
My solution: Runge-Kutta 4 and the projection method - I implemented the solver. I would very much appreciate comments regarding the necessity of
+ fvc::ddtPhiCorr(rAU, U, phi) in PISO!

Best, Ville

malaboss October 28, 2013 16:22

I have been investigating this issue too.
I think ddtPhiCorr is approximately equal to : UfaceOld*Area - phiOld, (if we assume that this difference is close to zero, for the simplest case).
You can look at this link which sums it up :
http://www.scribd.com/doc/48195039/ddtPhiCorr

So why would we need to carry this difference in the computation of phi ?

My guess is that in the piso algortihm you correct for the non orthogonalities and do not have phi = Uface*Surface anymore after the correction.
Forcing phi to be equal to this on the next iteration would be a bit silly so you want to keep that correction. This is the ddtPhiCorr.

Thus it should not appear where no correction that we want to keep is done.

However this doesn't explain why Ville found an excessive dissipation of kinetic energy when ddtPhiCorr is there. Could you give more details about how you figure this out ? During your simulation did you correct non orthogonalities ? Was your grid non orthogonal ?


Regards,

zhouzhipeng77 April 20, 2014 22:52

Hello everyone ,
I am new to OpenFOAM , and I am working on a melting problem , but I can understand the following code
Quote:

{
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rAUf("(1|A(U))", fvc::interpolate(rAU));

U = rAU*UEqn.H();

phi = (fvc::interpolate(U) & mesh.Sf())
+ fvc::ddtPhiCorr(rAU, U, phi);

surfaceScalarField buoyancyPhi(rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf( ));
phi -= buoyancyPhi;

while (pimple.correctNonOrthogonal())
{
fvScalarMatrix p_rghEqn
(
fvm::laplacian(rAUf, p_rgh) == fvc::div(phi)
);

p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));

p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.fin alInnerIter())));

if (pimple.finalNonOrthogonalIter())
{
// Calculate the conservative fluxes
phi -= p_rghEqn.flux();

// Explicitly relax pressure for momentum corrector
p_rgh.relax();

// Correct the momentum source with the pressure gradient flux
// calculated from the relaxed pressure
U -= rAU*fvc::reconstruct((buoyancyPhi + p_rghEqn.flux())/rAUf);
U.correctBoundaryConditions();
}
}
Can anybody help me to explain this , or introduce me some papers I should read ?
Thanks
Zhipeng

alundilong July 24, 2014 11:02

Quote:

Originally Posted by zhouzhipeng77 (Post 487196)
Hello everyone ,
I am new to OpenFOAM , and I am working on a melting problem , but I can understand the following code

Can anybody help me to explain this , or introduce me some papers I should read ?
Thanks
Zhipeng

Hi Zhipeng:

I think you may read through this to have some basic idea. http://openfoamwiki.net/index.php/Op...hm_in_OpenFOAM

and also go through how governing equations(especially pressure equation, in OF, we solve "real pressure equation" instead of "pressure correction equation") discretization is realized in jasak's PhD theis. http://www.h.jasak.dial.pipex.com/

for the buoyancy approximation, you may read through any material found online.

Best.,

ville July 28, 2014 03:59

Hi,
in this paper some OpenFOAM related matters are discussed including syntax. Also
the adhoc ddtPhiCorr term is discussed from effect point of view although its origin remains unclear. I noted that the extra term has actually been removed in some newer solvers.

On the implementation of low-dissipative Runge–Kutta projection methods for time dependent flows using OpenFOAM®, Computers & Fluids, Volume 93, 10 April 2014, Pages 153-163, V. Vuorinen, J.-P. Keskinen, C. Duwig, B.J. Boersma

eugene October 29, 2014 11:48

ddtPhiCorr is a form of Choi correction and was originally intended to remove time step size dependency from Rhie-Chow interpolation.

http://nht.xjtu.edu.cn/paper/en/2002206.pdf

In FOAM there is however an additional ad-hoc component fvcDdtPhiCoeff that appears to be purely empirical in nature.

The Choi correction is dissipative in nature, but it is consistent. There appears to be an issue with the FOAM implementation in that setting fvcDdtPhiCoeff to 1 (full Choi correction) results in instabilities. So it might very well be the case that the implementation is flawed in some way. Investigations are ongoing.

ssss October 30, 2014 06:01

Quote:

Originally Posted by eugene (Post 516511)
ddtPhiCorr is a form of Choi correction and was originally intended to remove time step size dependency from Rhie-Chow interpolation.

http://nht.xjtu.edu.cn/paper/en/2002206.pdf

In FOAM there is however an additional ad-hoc component fvcDdtPhiCoeff that appears to be purely empirical in nature.

The Choi correction is dissipative in nature, but it is consistent. There appears to be an issue with the FOAM implementation in that setting fvcDdtPhiCoeff to 1 (full Choi correction) results in instabilities. So it might very well be the case that the implementation is flawed in some way. Investigations are ongoing.

Does this mean that ddtCorr is influenced by this supposed bug? Will results differ much because of this possible flaw?

Thank you very much for answer.

pi06jl6 November 2, 2014 04:19

Since this thread dates back to previous version of OF, which one do we talk about, since in the bugreport someone has pointed out the Uf to be an issue and DPhiDtCorr involves this variable? I am not an expert on this subject so I am looking forward the outcome of this "investigation".

Tushar@cfd December 10, 2014 23:08

Dear All,

I am also confused with the additional term "fvc::ddtPhiCorr(rUA, U, phi)" for the phi formulation. Did anyone dig into it? What is the actual significance of it?

-
Best Regards!

ville December 11, 2014 07:06

It is an ad hoc term which is probably added to stabilize some certain flow situations.
Sometimes it does not matter, sometimes it has a strong effect. There are more
questions than answers but please see

On the implementation of low-dissipative Runge–Kutta projection methods for time dependent flows using OpenFOAM®, Computers & Fluids, Volume 93, 10 April 2014, Pages 153-163, V. Vuorinen, J.-P. Keskinen, C. Duwig, B.J. Boersma

where we demonstrated what happens if it is there and what if it is not.

Best,Ville


Tushar@cfd December 11, 2014 07:12

Quote:

Originally Posted by ville (Post 523461)
It is an ad hoc term which is probably added to stabilize some certain flow situations.
Sometimes it does not matter, sometimes it has a strong effect. There are more
questions than answers but please see

On the implementation of low-dissipative Runge–Kutta projection methods for time dependent flows using OpenFOAM®, Computers & Fluids, Volume 93, 10 April 2014, Pages 153-163, V. Vuorinen, J.-P. Keskinen, C. Duwig, B.J. Boersma

where we demonstrated what happens if it is there and what if it is not.

Best,Ville


Thank you very much, this information is really helpful.

-
Best Regards!

gu1 October 8, 2018 17:01

Hi

Based on the topics written by each one of you, I would like to ask two questions...

1) If I want to remove the extra term of phi (related below) from my pisoFoam (OF 5.0) should I remove the highlighted term? I would like to do tests with the original PISO algorithm...

Quote:

"phiHbyA",
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)
2) The increase in the number of correctors on the PISO algorithm (nCorrectors) will influence the accuracy (and perhaps dissipation) of my study?

Best.


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