CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   Reversed Time Marching Method (RTMM) (https://www.cfd-online.com/Forums/fluent/90491-reversed-time-marching-method-rtmm.html)

 paillou July 12, 2011 06:45

Reversed Time Marching Method (RTMM)

Hey guys !

I'm trying to solve a time reversed scalar transport equation thanks to the Reversed Time Marching Method (RTMM), which implies that the solution of the scalar transport equation on the flow field is mathematically obtained with time integration in the negative direction. The purpose is to "go back in time" in order to find the source of a pollutant, for instance.

My goal is to solve it for a steady-state case.

Fortunately, there is a way to solve it with a time integration in the positive direction : the diffusion field is obtained from a virtual flow field with negative convection and diffusion; that is, from the virtual flow field with reversed flow direction and negative diffusion (coefficient).

To do so, first I solve the steady-state flow field (not reversed), then I reverse it, and finally I create a UDS in Fluent and specify a negative diffusion (via DEFINE_DIFFUSIVITY). So this way, I got a reversed flow direction and a negative diffusion for my UDS.

Since the diffusivity coefficient is negative, it can lead to cells with a negative concentration which leads to unstabilities when solving. To avoid it, I define a UDF (DEFINE_ADJUST) which find the minimum positive value of the concentration within the solution domain and applies it to cell which have a negative concentration.

I've tried upwind and power law discretization models (haven't found something else in Fluent which is a first or second order method), but nothing happens. The concentration stays at 0 within the domain during 2 or 3 iterations, then there is an error and I get residuals with letters like #QNBe+00 (which, if remember well my courses of programming, means that an operation on a double or float has gone wrong, like for instance a division by zero or an attempt to get the square root of a negative number.

Anyway I don't see why an error like this occur. I hope you guys can help me on this one ! (for the first one who find a solution: beers on me ^^)