Hi I am a computer scientist working on MHD code for astrophysics simulation. We use a finite difference scheme where we first solve the spatial derivatives and with them solve the right hand side and take timestep forward.

Now I am interested in looking into adding AMR into our code. However most AMR material concerns Finite Volume Method or at least it seems so. In most cases this is not a problem but I am having difficulties understanding how to implement refluxing step in Finite Difference case, or is that even possible. To give a concrete example let's say we want to solve simple equation: u_t = f_x, in 1d where u_t means time derivative and f_x spatial derivative. Now f_x can be calculated with f_x(x) = (f(x+h)-f(x-h))/2h.

Okay we can solve all of these equations on the coarse and fine level, using coarse level values as boundary value problems for the fine level and then averaging the fine level values and overwriting the coarse level with them where the fine and coarse level overlap.

However there usually is presented the refluxing step where one should calculate the flux on the coarse/fine-boundary with the coarse values and fine values. Then the difference of the fine flux and the coarse flux should be spread evenly on the boundary to ensure conservation.

The problem I am having that what is supposed to be the flux this case? In cell-centered Finite Volume methods the flux is easier to implicitly see on the faces of the control volumes. Does refluxing in finite difference context mean that we have to recalculate the f as f(x) =(f_x(x+h0.5)-f_x(x-h0.5))/h where h is the grid distance on the coarse level and we have the finer f_x(x+h0.5) from the finer level.

Again not really sure what would be the corresponding operation to refluxing in this case. In case someone understood my not best formulated question all answers are appreaciated :)



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.