finite difference formulas

Exchange about the physics background, diffuse interface theory, etc..
Posts: 14
Joined: Fri Feb 10, 2017 8:20 am
anti_bot: 333

finite difference formulas

Hi there,

What is the exact formulation for finite difference method in MICRESS? Is it centered finite difference method?
What about time integration? is it Explicit or implicit formulation?

Best,
Ali

Bernd
Posts: 936
Joined: Mon Jun 23, 2008 9:29 pm

Re: finite difference formulas

Dear Ali,

I don't think there is a simple answer to your question. The finite differences approach is used in MICRESS in many places for different solvers and under different conditions.
What can be easily said is that the solute diffusion solver and the phase-field solver are fully explicit. I you mean by "centered finite differences method" that we use central differences, then this should be mostly the case. Of course, as we consider the interfaces and the phase regions as spatially limited, there are always the boundary regions which cannot be treated symmetrically...

Bernd

Posts: 14
Joined: Fri Feb 10, 2017 8:20 am
anti_bot: 333

Re: finite difference formulas

Hi Bernd,

Thanks for your quick reply. Does it mean that if I want to do a simulation on a bigger domain or if I want to decrease the grid size to very small sizes, then I will have severe stability condition? Is there any implicit version of MICRESS? Because I think it will be more computationally suitable if I use an implicit method.

Thanks,

Ali

Bernd
Posts: 936
Joined: Mon Jun 23, 2008 9:29 pm

Re: finite difference formulas

Dear Ali,

explicit and implicit solvers have both their advantages and disadvantages. The main advantage and, at the same time, disadvantage of the explicit solver is its clearly defined stability criterion (you probably mean that with "severe stability condition") which requires to use small time step values which are below a well-defined critical value. If this limit is exceeded, the solution diverges, otherwise it is fully correct. This means, if you go to finer grid resolution, that smaller time steps must be used (which is done automatically in MICRESS).

In implicit methods, it is possible to use considerably bigger time-steps, however at the cost of an iterative solution scheme for each time step. This means, it may be faster, but it may also require more time because of excessive iterations. Furthermore, the quality of results depends on the time-step value, and the user is required to provide values for convergence criteria which are needed to control quality of the results. This is very user-unfriendly, because he is responsible make sure that the results are trustful - which he is already responsible for in sufficient other respects in MICRESS, and which he would have to do furthermore for each additional implicit solver...

On the other hand, the performance advantage can be considerable in certain cases, especially when stationary or close to stationary problems are calculated. For this reason we have implicit solvers in MICRESS for stress/strain, fluid flow and temperature coupling. However, implicit solvers also have a problem with systems which do not respond linearly, especially if getting response requires complex time-costly calls to libraries like in case of TQ-coupling. This is the main reason why the phase-field and solute diffusion solvers have an explicit formulation in MICRESS - and I really cannot imagine to switch them to implicit!

Bernd

Bernd
Posts: 936
Joined: Mon Jun 23, 2008 9:29 pm

Re: finite difference formulas

Dear Ali,

explicit and implicit solvers have both their advantages and disadvantages. The main advantage and, at the same time, disadvantage of the explicit solver is its clearly defined stability criterion (you probably mean that with "severe stability condition") which requires to use small time step values which are below a well-defined critical value. If this limit is exceeded, the solution diverges, otherwise it is fully correct. This means, if you go to finer grid resolution, that smaller time steps must be used (which is done automatically in MICRESS).

In implicit methods, it is possible to use considerably bigger time-steps, however at the cost of an iterative solution scheme for each time step. This means, it may be faster, but it may also require more time because of excessive iterations. Furthermore, the quality of results depends on the time-step value, and the user is required to provide values for convergence criteria which are needed to control quality of the results. This is very user-unfriendly, because he alone is responsible make sure that the results are trustful - which he is already responsible for in sufficient other respects in MICRESS, and which he would have to do furthermore for each additional implicit solver...

On the other hand, the performance advantage can be considerable in certain cases, especially when stationary or close to stationary problems are calculated. For this reason we have implicit solvers in MICRESS for stress/strain, fluid flow and temperature coupling. However, implicit solvers also have a problem with systems which do not respond linearly, especially if getting response requires complex time-costly calls to libraries like in case of TQ-coupling. This is the main reason why the phase-field and solute diffusion solvers have an explicit formulation in MICRESS - and I really cannot imagine to switch them to implicit!

Bernd

Posts: 14
Joined: Fri Feb 10, 2017 8:20 am
anti_bot: 333

Re: finite difference formulas

Dear Bernd,

Thanks for the comprehensive explanation. Actually, I need to do anisotropic grain growth and I really do not need to couple TQ or any diffusion with my calculation for now. However, I need fine grid size on a large domain as I have many grains with relatively small size in the microstructure and I also want to do all my analysis in both 2D and 3D domains. Do you think that the computational time for explicit and implicit would be the same for my special case?

I know that there are some fully implicit phase field models for solidifications of binary alloys and they always conclude that implicit method works better. I am not sure about my case.

By the way, I get some kind of warning on this page("The connection is not secure"). Is this a problem for my system or it is something in general?

Thanks,

Ali

Bernd
Posts: 936
Joined: Mon Jun 23, 2008 9:29 pm

Re: finite difference formulas

Dear Ali,

I haven't thought too much about implicit phase-field solvers, but I cannot imagine that this would make grain growth simulation in MICRESS faster. The phase-field is a non-conserved variable, therefore there is not a sharp time step criterion like for the explicit concentration solver: The time step criterion we use in MICRESS is a multi-level criterion which also depends on the interface velocity. Therefore, in grain growth simulations, the time step typically increases in the course of grain growth because interface velocities decrease.

Apart from that, MICRESS is already much faster in comparison to phase-field models which solve the phase fields on the whole domain - which is a huge overkill. In such a scenario, I could imagine, as the phase-field parameters do practically not change in almost all the simulation domain, that they greatly profit from increasing the time step in those regions in an implicit code because no iterations are necessary in those regions. But this is not relevant for MICRESS as we do not do this overkill at all. However, I am not aware of all types of implicit phase-field models in literature, so I cannot exclude that there are other smart methods around.

Anyway, the next MICRESS version 6.4 which will come soon certainly has a very interesting option for you: Now it is possible to "categorize" grains already in the initial structure, so that you can e.g. assign all grains with less than 1 degree misorientation to the same grain number. This allows you to use a really high number of initial grains (which is essential to get the correct statistics in grain growth) without killing performance. Before, it was hard to get much over an estimated 10000 grains...

Bernd

Posts: 14
Joined: Fri Feb 10, 2017 8:20 am
anti_bot: 333

Re: finite difference formulas

Dear Bernd;

Thanks for your kind reply. Just to verify my understanding, MICRESS solves phase field equation grain by grain and it doesn't solve phase field equation on whole domain. Right?
Another question, To solve phase field equation using finite difference when you want to calculate the spatial derivatives i.e. Laplace operator, Do you store current order parameter for each node in a temporary variable and calculate the new values of each node based on the values of order parameter of adjacent points in the previous time step or you just use updated values of the order parameter in the current time at adjacent nodes to calculate a specific node? (Sorry to ask this question, but I am trying to compare MICRESS result with a code. I have some doubts about that code, so I just want to verify that with MICRESS. I know that code followed the same outlines as your publications and used the same free energy functional at least in case of pure grain growth).

It is a good News for me. I really need this kind of feature that helps me increase the number of grains in my domain. Thanks!
By the way, I still have the warning about the secure connection to MICRESS board. I would appreciate it if you can help me with that as well.
Thanks,

Ali

Posts: 14
Joined: Fri Feb 10, 2017 8:20 am
anti_bot: 333

Re: finite difference formulas

Dear Bernd;

I forgot to ask you a question in the previous reply. For now, I choose fixed time increment for the simulations. Is it modified based on your multi-level criterion during the course of grain growth simulation?

Thanks,

Ali

Bernd
Posts: 936
Joined: Mon Jun 23, 2008 9:29 pm

Re: finite difference formulas

Dear Ali,

If you chose fixed time steps, they will not be modified. The mentioned time step criterion will only be used if you select "automatic" or "automatic_limited".

Just to verify my understanding, MICRESS solves phase field equation grain by grain and it doesn't solve phase field equation on whole domain. Right?

It is essentially done interface by interface.

To solve phase field equation using finite difference when you want to calculate the spatial derivatives i.e. Laplace operator, Do you store current order parameter for each node in a temporary variable and calculate the new values of each node based on the values of order parameter of adjacent points in the previous time step or you just use updated values of the order parameter in the current time at adjacent nodes to calculate a specific node?

It would be simply wrong to use (partially) updated values of the order parameter, because the result would depend on the execution order. Thus, old and new values (or increments) must be stored in separate lists.

By the way, I still have the warning about the secure connection to MICRESS board. I would appreciate it if you can help me with that as well.

You get this warning because our website is a "http://" and not a "https://" site. I hope this will change soon when we update to our new web presence.
The consequence for now is that your password could theoretically be compromised because it is transferred unencrypted when you log in. For your MICRESS Forum account this is probably not critical, however you should perhaps not reuse a password from another more critical login meanwhile.

Bernd