GB tracking in Phase Field simulations #31269
-
|
Hello! I'm a new user to MOOSE(and simulation environments in general), and I've been getting hang of using the Phase Field module through the provided examples. The Polycyrstal/GrainTracker systems make use of BndsCalcAux to track grain boundaries with a value threshold, but I was wondering what the best way is to narrow down the specific location of a boundary on each step for e.g, calculating GB velocity. Relatedly, I'm also interested if there's any algorithms that could convert Diffuse Interfaces into more discrete ones, and vice versa. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
|
Hello
Do you need a point? A subset of the boundary?
|
Beta Was this translation helpful? Give feedback.
-
|
A grain boundary velocity field is best calculated using |
Beta Was this translation helpful? Give feedback.
-
|
As far as computing a discrete interface from a diffuse interface, the most common method for doing this is the marching cubes algorithm: https://en.wikipedia.org/wiki/Marching_cubes. I believe this is what is used in for example the Paraview contour filter, which allows you to extract a polygonal surface that lies at a particular value of the diffuse interface. If you use this functionality in Paraview you can perform further operations/calculations on it, such as calculating surface areas (this can also be done in MOOSE from the diffuse interface 3D data directly, but since you asked about a discrete surface representation...) |
Beta Was this translation helpful? Give feedback.
A grain boundary velocity field is best calculated using
v_i = deta_i/dt / (|grad(eta_i)| + epsilon)(epsilon for regularization). This gives you a GB velocity map for the entire domain (for GB order parameter i). You can combine those from all OPs, but you need to take into account that the velocity is taken in the normal directon of teh OP gradient, and that neighboring grains cancel out unless you do(v = (|v_i| + |v_j|) / 2