Extracting nuleation positions
Extracting nuleation positions
Dear all,
for a specific research topic, regarding different nucleation sites in a solidifing melt pool, I am very interested in the exact positions of nucleation and parameters of the nuclei.
I there any possibility to extract a dataset after the simulation, which contains infomation about the position and size of nuclei set or forming in the simulation?
Also, when using a very high seed density (in the range of E14), the output in the log-file for the resulting seed density distribution looks like the image attached. What is the reason behind the **** entry and is this pointing towards a problem with the simulation?
As always, thank you all very much for your help and the discussions!
Best regard,
Moritz
for a specific research topic, regarding different nucleation sites in a solidifing melt pool, I am very interested in the exact positions of nucleation and parameters of the nuclei.
I there any possibility to extract a dataset after the simulation, which contains infomation about the position and size of nuclei set or forming in the simulation?
Also, when using a very high seed density (in the range of E14), the output in the log-file for the resulting seed density distribution looks like the image attached. What is the reason behind the **** entry and is this pointing towards a problem with the simulation?
As always, thank you all very much for your help and the discussions!
Best regard,
Moritz
Re: Extracting nuleation positions
We will introduce a tabular output for nucleation events in the next version of MICRESS. In the current version, I am afraid you have to parse the standard or logfile output.I there any possibility to extract a dataset after the simulation, which contains infomation about the position and size of nuclei set or forming in the simulation?
Code: Select all
Seed number 11 set at time t = 6.00000E-02 s
--------------------------------------------
in the bulk, zp = 221321
Phase: 1 (FCC_A1)
Seed type: 1 (10: 4/4)
Local temperature = 914.15 K
Undercooling = 1.2865 K
Nucleus curvature undercooling = 1.2785 K
Grain number = 11
You can calculate the coordinates from the cell pointer zp. We should add this x/y/z position in the output.
zp = 1 + x + (dimX+2) * y + (dimX+2)*(dimY+2) * z
The format definition is too small (4 digits) to hold your number. This is only an I/O error which does not influence your simulation.Also, when using a very high seed density (in the range of E14), the output in the log-file for the resulting seed density distribution looks like the image attached. What is the reason behind the **** entry and is this pointing towards a problem with the simulation?
Best,
Ralph
Re: Extracting nuleation positions
Hello Ralph,
thank you so much for your reply, which is very helpful to me!
I have one follow up question: In the logfile output, what is the correct interpretation of this line:
Seed type: 1 (10: 4/4)
Am I correct, when I assume it is:
Seed type 1 (Seed type)
10 (class of seed of this type)
4/4 (fourth seed of all in all 4 seeds of this type)
Best regards,
Moritz
thank you so much for your reply, which is very helpful to me!
I have one follow up question: In the logfile output, what is the correct interpretation of this line:
Seed type: 1 (10: 4/4)
Am I correct, when I assume it is:
Seed type 1 (Seed type)
10 (class of seed of this type)
4/4 (fourth seed of all in all 4 seeds of this type)
Best regards,
Moritz
Re: Extracting nuleation positions
Hi Moritz,
This is correct.
Bernd
This is correct.
Bernd
Re: Extracting nuleation positions
Hi Ralph,
I would like to ask a follow up question. Today I wanted to calculate some seed positions. Unfortunately, I don't understand how to do that. The way I see it, your formula contains at least 3 unknown variables: x,y and z.
Can you maybe please explain how to calculate the seed position again?
Thank you for your help!
Best regards,
Moritz
I would like to ask a follow up question. Today I wanted to calculate some seed positions. Unfortunately, I don't understand how to do that. The way I see it, your formula contains at least 3 unknown variables: x,y and z.
Can you maybe please explain how to calculate the seed position again?
Thank you for your help!
Best regards,
Moritz
Re: Extracting nuleation positions
EDITED: Sorry. It's not the modulo funktion. It is an integer division.
Hi Moritz,
you can calculate the coordinates backwards by using the modulo function.
Best,
Ralph
Hi Moritz,
you can calculate the coordinates backwards by using the modulo function.
Code: Select all
zp = 1 + x + (dimX+2) * y + (dimX+2)*(dimY+2) * z
zp = zp - 1
z = zp / [(dimX+2)(dimY+2)]
zp = zp - z * [(dimX+2)(dimY+2)]
y = zp / (dimX+2)
zp = zp - y * (dimX+2)
x = zp
Ralph
Re: Extracting nuleation positions
Hi Ralph,
thank you very much for this additional information.
I hope my multiple questions don't get annoying. I would like to explain in my own word, how I understood this calculation, to make sure, that I can conduct it correctly:
First, all the variables:
zp = zell pointer as it is in the .log file stated for every seed (for example something like 13187)
dimX = the dimension of the simulation domain in x direction
dimY = the dimension of the simulation domain in y direction
x = x-coordinate of one particular seed
y = y-coordinate of one particular seed
z = z-coordinate of one particular seed
As far as I understood, the zell pointer has to be modified with a calculation, before the calculation of the coordinates.
For z:
zp = zp - 1
With this new zp:
z = zp / [(dimX+2)(dimY+2)]
For y:
zp = zp - z * [(dimX+2)(dimY+2)]
With this new zp:
y = zp / (dimX+2)
For x:
zp = zp - y * (dimX+2)
With this new zp:
x = zp
The question is: Do I use zell numbers for the dimensions or the lengths, depending on the grid spacing? For example for dimX=100, as I used 100 cells or dimX=50, as I used a grid spacing of 0.5 (0.5*100=50)?
I tried both ways, so it seems I misunderstood something, as I got this as a result, when I tried to plot seed positions:
I expected more of a point cloud type of graph.
Best regards,
Moritz
EDIT: Also what is irritating to me: In the calculation the dimension in z direction does not seem to play a role. Is that correct? In the current calculation, changing the value for z for the simulation domain has no influence on the results, but I should have, because seeds can be placed in differend "heights" of the simulation domain.
thank you very much for this additional information.
I hope my multiple questions don't get annoying. I would like to explain in my own word, how I understood this calculation, to make sure, that I can conduct it correctly:
First, all the variables:
zp = zell pointer as it is in the .log file stated for every seed (for example something like 13187)
dimX = the dimension of the simulation domain in x direction
dimY = the dimension of the simulation domain in y direction
x = x-coordinate of one particular seed
y = y-coordinate of one particular seed
z = z-coordinate of one particular seed
As far as I understood, the zell pointer has to be modified with a calculation, before the calculation of the coordinates.
For z:
zp = zp - 1
With this new zp:
z = zp / [(dimX+2)(dimY+2)]
For y:
zp = zp - z * [(dimX+2)(dimY+2)]
With this new zp:
y = zp / (dimX+2)
For x:
zp = zp - y * (dimX+2)
With this new zp:
x = zp
The question is: Do I use zell numbers for the dimensions or the lengths, depending on the grid spacing? For example for dimX=100, as I used 100 cells or dimX=50, as I used a grid spacing of 0.5 (0.5*100=50)?
I tried both ways, so it seems I misunderstood something, as I got this as a result, when I tried to plot seed positions:
I expected more of a point cloud type of graph.
Best regards,
Moritz
EDIT: Also what is irritating to me: In the calculation the dimension in z direction does not seem to play a role. Is that correct? In the current calculation, changing the value for z for the simulation domain has no influence on the results, but I should have, because seeds can be placed in differend "heights" of the simulation domain.
Re: Extracting nuleation positions
Hi Moritz,
if we are going 2D, we do not store boundary cells in Y direction (dimY+2 = 3).
If you omit the 2 steps for the Y coordinate, it should work.
Of course, you can scale the array coordinate by the grid spacing for your plot.
Best,
Ralph
if we are going 2D, we do not store boundary cells in Y direction (dimY+2 = 3).
If you omit the 2 steps for the Y coordinate, it should work.
Of course, you can scale the array coordinate by the grid spacing for your plot.
Best,
Ralph
Re: Extracting nuleation positions
Hi Ralph,
thanks for the reply.
If I skip the 2 steps for the y coordinate, do I use the z value for the calculation of the zp-value for x? Like: zp = zp - z * (dimX+2)?
Best regards,
Moritz
thanks for the reply.
If I skip the 2 steps for the y coordinate, do I use the z value for the calculation of the zp-value for x? Like: zp = zp - z * (dimX+2)?
Best regards,
Moritz
Re: Extracting nuleation positions
Yes, indeed.
The zp is just an linear index for a 2D or 3D array.
e.g. in the second line of code, you count the number of full x rows (2D) which is the z coordinate.
2D:
Best,
Ralph
The zp is just an linear index for a 2D or 3D array.
e.g. in the second line of code, you count the number of full x rows (2D) which is the z coordinate.
2D:
Code: Select all
zp = zp - 1
z = zp / (dimX+2)
zp = zp - z * (dimX+2)
x = zp
Ralph