continuous static recrystallization (CSRX)

ripening phenomena, dislocations, grainboundary topology
Post Reply
vincent00811
Posts: 4
Joined: Mon Mar 09, 2026 8:10 am
anti_bot: 333

continuous static recrystallization (CSRX)

Post by vincent00811 » Mon Apr 20, 2026 10:52 am

Hi, I am currently trying to simulate the annealing process of copper to reproduce the CSRX (Continuous Static Recrystallization) mechanism, and I have encountered the following two issues:

1. MICRESS fundamentally employs a discrete nucleation model. To approximate the "continuous and gradual" behavior of CSRX within this framework, should we significantly shorten the nucleation time interval and couple it with local gradient differences? This would allow nucleation events to be distributed across different times and spatial locations, rather than having the entire global domain cross the nucleation threshold simultaneously.

2. Since CSRX relies on the heterogeneity of strain gradients to provide local differences in driving force, is it necessary to change the Phase 1 setting to recrystall mean_disloc or local_disloc, and fully enable Dislocation Coupling in the phase interactions? Would this be required for the system to truly "see" and utilize the spatial gradients provided by the VTK input?
You do not have the required permissions to view the files attached to this post.

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

Re: continuous static recrystallization (CSRX)

Post by Bernd » Tue Apr 21, 2026 4:44 pm

Dear vincent00811,

Unfortunately, I am not so much familiar with recrystallisation in Cu, and also not to the CSRX-model. However, what I understood from literature (https://www.sciencedirect.com/science/a ... via%3Dihub) is that with CSRX there is no overgrowth of unrecrystallized grains by new "recrystallized" grains at all, i.e. that during transformation there is no mixture of both types of regions, but that the process is rather continuous inside each grain. At the subgrain level this means that there is no abnormal subgrain growth, which as a new "grain" can overgrow other unrecrystallized grains like in "normal" ReX. Instead - that at least is what I understood - through an extended recovery process the low-angle subgrain boundaries change to high-angle subgrain boundaries by orientation change, due to dislocation movements. I.e. subgrains transform continuously to normal grains, thus enabeling grain growth. This cannot be reasonably modelled as a "nucleation" in MICRESS, but perhaps would have to be treated on the subgrain level.

Maybe I am wrong - as I said I am not really an expert - and maybe I also misunderstand the approach you want to take. Can you explain in more detail how you understand CSRX and what is different to "normal" static recrystallisation (DSRC)? I think this is important for me to propose a proper way how that process can be best simulated in MICRESS.

Bernd

vincent00811
Posts: 4
Joined: Mon Mar 09, 2026 8:10 am
anti_bot: 333

Re: continuous static recrystallization (CSRX)

Post by vincent00811 » Tue Apr 21, 2026 9:20 pm

Dear Bernd,

Thank you very much for your thoughtful reply — your description of CSRX matches my understanding well, and I think it is exactly the right framing for the problem I am facing.

To answer your question about how I understand CSRX and how it differs from "normal" (discontinuous) SRX:

In my case, the driving force is not cold work but thermally-induced shear strain from the CTE mismatch between Cu and the surrounding glass (TGV structure). During heat treatment, geometrically necessary dislocations (GNDs) accumulate preferentially near the Cu/glass interface. Instead of new HAGB-bounded nuclei forming in a deformation-free matrix and sweeping it out (as in classical DSRX), the experimental EBSD evidence (Wang et al., ACS Appl. Electron. Mater. 2025) (https://pubs.acs.org/doi/10.1021/acsael ... r1&ref=pdf)shows that:

- Dislocations accumulate around existing subgrain boundaries within the deformed grains.
- Low-angle grain boundaries (LAGBs) progressively absorb more dislocations and rotate into high-angle grain boundaries (HAGBs).
- No new grain sweeps across unrecrystallized material; the refinement happens in-situ inside each parent grain.
- The result is a spatial gradient: finer grains near the interface (high GND) and coarser grains at the pillar center (low GND).

So I fully agree with your point that this cannot be modelled as classical nucleation-and-growth in MICRESS. My current v9 setup uses interface-based nucleation with `parent_relation` (0–15° rotation) precisely as an approximation of the LAGB → HAGB rotation, driven by a spatially graded dislocation density field (higher at the X edges, lower at the center). I am aware this is a compromise: MICRESS treats each rotation as a discrete nucleation event, whereas physically it should be continuous at the subgrain level.

This is where I would very much value your advice. Specifically:

1. Would `split_from_grain` be a more physically appropriate mechanism for CSRX than interface-based nucleation? My reading is that it produces new orientations from within the parent grain rather than at its boundary, which seems closer to the subgrain-level picture you described — subgrains continuously transforming into full grains inside the parent.
2. In the same spirit, would you recommend `local_disloc` over `mean_disloc`? My concern with `mean_disloc` is that averaging dislocation density within each grain may wash out the spatial gradient I need to preserve (interface vs. center).
3. Is the 0–15° `parent_relation` rotation range reasonable as a proxy for the LAGB → HAGB transition, or would you suggest a different treatment?

Any guidance — even to tell me which direction is more defensible — would be extremely helpful.

Best regards,
vincent

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

Re: continuous static recrystallization (CSRX)

Post by Bernd » Wed Apr 22, 2026 6:36 pm

Dear vincent,

Thanky you for telling me that I was not completely wrong with my understanding of CSRX :)

To sum it up in my words: Due to the embedding of your samples, you have a gradient in dislocation density. Due to the higher dislocation density at the metal-glass surface, the transformation of LAGBs to HAGBs at the subgrain level is faster, leading to a higher probability of subgrains to develop to a "normal" grain and become visible. For the simulation model this means that new grains should be produced with a probability which increases with increasing dislocation density. Subsequent grain ripening can perhaps be neglected, at least in a first step.

For a simulation model, this leads to the following challenges:

- An initial microstructure must be defined which contains of a grain or subgrain structure, and which represents a dislocation density gradient.
- New grains which form by a continuous transition from subgrains must be introduced. Their shape is not defined by a growth process but by the shape of the former subgrain.
- Formation of new grains should be triggered by dislocation density, but not by a threshold mechanism but somehow probabilistic to be more realistic.

The approach which you propose, as I understand, does only treat normal grains and no subgrains. New grains are approximated by nucleation and growth (which has the disadvantage that they will be sherical or semispherical in a first place). Defining a dislocation density per grain of the initial microstructure could be too coarse to describe the gradient of deslocation densities. Using a continuous dislocation density field using "local_disloc" could be helpful, however this model is (by now) designed only for use in single-phase materials (but I guess you use two phases in your approach only for sake of more simple evaluation). Probabilistic nucleation can be introduced by "nucleation_noise" and by definition of several seed types with different checking interval and critical dislocation density.

This type of modelling you propose in principle is possible with MICRESS. However, I personally would prefer a model which is closer to the physical background and directly works on the subgrain level. The distinction of grains and subgrains could be only by the value of misorientation. I would propose to rather use the Read-Shockley and Humphreys model instead of a 15° threshold. By using the "add_to_grain" function of nucleation it is further possible to perform a "pseudo-nucleation", which does not create a new grain but changes the properties of an already existing (sub-)grain, e.g. the orientation and the dislocation density. Maybe, this is similar to the idea you thought to address with "split_from_grain" (which, however, only works for disjunct parts of a grain which exists at several locations simulataneously). With the current MICRESS implementation, the "rotation" of a subgrain by this "add_to_grain" mechanism by small steps is easily possible via the "parent_relation" function. A step-wise reduction of the dislocation density in a similar way would be more complex by now, but, maybe, could be implemented on our side in future...

Bernd

vincent00811
Posts: 4
Joined: Mon Mar 09, 2026 8:10 am
anti_bot: 333

Re: continuous static recrystallization (CSRX)

Post by vincent00811 » Mon Apr 27, 2026 9:12 am

Re: continuous static recrystallization (CSRX)
Dear Bernd,
Thank you again for your detailed suggestions. Following your advice, I have attempted to incorporate a subgrain structure into the initial microstructure using the random positioning mode.
My current approach uses 9 grain types organized into 3 orientation families (A: 0–9°, B: 30–39°, C: 60–69°), with each family subdivided into 3 subtypes separated by ~3° (intended to represent subgrain boundaries via Read-Shockley + Humphreys). The domain is 100×1×100 cells (50×50 µm), with ~67 grains per type and radius 1.0–1.3 µm.
However, the resulting initial microstructure in Display MICRESS does not show the expected clear Voronoi grain structure with distinguishable subgrain boundaries. Instead, the grain ID map (korn.mcr) and phase map (phas.mcr) appear fragmented and irregular, which does not resemble a realistic polycrystalline Cu microstructure.
My specific questions are:

Is the random + voronoi mode with multiple orientation-grouped types the correct approach to represent a subgrain hierarchy in the initial microstructure? Or would deterministic_infile with a manually defined grain list be more appropriate?
In the 2D grain orientation map (orie.mcr), how can I verify that the subgrain boundaries (LAGB, < 15°) are being properly distinguished from high-angle grain boundaries (HAGB)? Is there an output variable that directly shows misorientation angle between neighboring grains?
Would you recommend adjusting the low_angle_limit parameter in the misorientation setting to better control the LAGB/HAGB distinction for this subgrain design?

I am attaching screenshots of the current initial microstructure output for your reference.
Best regards,
Vincent
You do not have the required permissions to view the files attached to this post.

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

Re: continuous static recrystallization (CSRX)

Post by Bernd » Mon Apr 27, 2026 5:33 pm

Dear Vincent,

Yes, is is like you assume. It is not possible to use different types of random grains in MICRESS for this purpose, because you would have to group them spatially, so that each grain type is used exclusively on the area of each major grain. This is only possible within rectangular regions, using the minimum and maximum coordinates of each grain type. This would be too far from reality.

Please understand that what you are planning to do is nothing which has been done before in a similar way in MICRESS, so there is no pre-designed methodology available yet. However, I can imagine several ways how you probably can get there:

1.) Using a deterministic grain setting with manual assignment of orientations and grain positions (with "voronoi") it is always possible to create an appropriate initial microstructure. Of course, this would be an annoying and fully manual way. A further disadvantage is that the high-angle grain boundaries, in a first place, will be not straight - one would have to subject it to some grain-growth to get them straight.

2.) By reading the subgrain microsstructure from a file (created from a picture or another MICRESS output), all orientations could be assigned as a list. It would still be necessary to check which grain numbers belong to each major grain, and to define them in the list. Using "deterministic_infile" would also be such a "semi-automatic" method. Still, high-angle boundaries would not be straight as above...

3.) A completely different approach would be to "simulate" the inital microstructure. If you start a pre-simulation with only the major grains with different orientation and a fixed value reX-energy or dislocation energy, and you use "bulk"-nucleation for normal recrystallisation with "parent-relation" for the orientation of the new grains, then, after recrystallisation ended, you have the microstructure which you need for your CSRX-simulation! Due to the "growing together" of the subgrains, the grain substructures will be Voronoi-like, and the high-angle-grain boundaries will be straight. I think, this probably is the most simple and straight-forward approach. The only disadvantage which remains is maybe that the subgrain structure will be isotropic. It is not so simple to achieve e.g. elongated subgrains by this method.

4.) By reading the initial microstructure from a restart file for each major grain, you can make the grain- and subgrain structures completely independent. You would have to run a pre-simulation for each of the 9 major grains which just creates a proper subgrain structure on the whole domain and stops after initialisation (writing the .rest-file output for time 0s). This method also allows for elongated voronoi-structures, and the subgrain sizes could also be different for each grain. I your CSRX-simulation, afterwards, you just create the major grain structure (9 grains with arbitrary orientation) as initial microstructure and subsequently overwrite each grain by its corresponding substructure which you created individually for each of the 9 grains (using microstructure from restart). This method gives you the highest flexibility, but would be less suitable for a large number of major grains.

In DP_MICRESS there is the color scale "cyclic LAGB" which can be used to distinguish LAGBs (<15°) from other boundaries when looking at the .orie-output. But please note that when using "Read-Shockley" and "Humphreys" these categories are only for display, and do not have a direct impact on the behaviour of the grain boundaries.

Bernd

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

Re: continuous static recrystallization (CSRX)

Post by Bernd » Mon Apr 27, 2026 6:24 pm

Correction:

Sorry, the last statement was not correct: Of course, the default distinction of LAGB < 15° remains also active for the "Read-Shockley" and "Humphreys" models!

Bernd

vincent00811
Posts: 4
Joined: Mon Mar 09, 2026 8:10 am
anti_bot: 333

Re: continuous static recrystallization (CSRX)

Post by vincent00811 » Tue Apr 28, 2026 8:53 am

Dear Bernd,

Thank you for your previous suggestion. I am currently implementing Method 3 (pre-simulation to generate the initial subgrain microstructure) and have encountered the following issues.

**Setup summary:**
- Single phase (cu_asdeposited), recrystall with mean_disloc
- 9 grain types (3 orientation families × 3 subtypes), 150 grains per type, radius 0.6–0.9 μm, domain 100×1×100 cells (50×50 μm, 0.5 μm/cell)
- Grain positioning: random + voronoi + stabilisation
- Nucleation: bulk, seed_density, parent_relation (0–15°)
- Fixed stored energy: 1.5×10⁻³ – 4.5×10⁻³ J/cm³ per grain type

**Issue 1: What do the colors in phas.mcr represent?**

At t = 0s, the phase map shows three colors: red, blue, and white. Could you clarify what each color represents? Does the large red region correspond to Phase 1 (cu_asdeposited), and does the blue region represent Phase 0 (matrix)? I am attaching a screenshot of the phase map for reference.

**Issue 2: Domain not filled at t = 0s**

Inspection of korn.mcr at t = 0s shows that approximately 61% of the domain has grain ID = 0 (matrix), and only ~317 out of the expected 1350 grains were placed. It appears that the stabilisation option prevents grains from growing to fill the domain, so the Voronoi criterion cannot tile the entire space.

Should I switch from stabilisation to analytical_curvature so that grains grow and fill the domain before the simulation begins? Or is there a better approach to ensure full domain coverage at t = 0s?

**Issue 3: Access violation crash at t = 0s**

After initialisation, MICRESS crashes immediately at t = 0s with the following error:

```
Time t = 0.0000000 s
CPU-time: 8 s
Current phase-field solver time step = 1.00E+18 s
Temperature at the bottom = 300.00 K
Temperature gradient = 0.00000 K/cm
forrtl: severe (157): Program Exception - access violation
Image PC Routine Line Source
MICRESS_par_TQ.ex 00007FF6A97C265C Unknown Unknown Unknown
MICRESS_par_TQ.ex 00007FF6A95B3FC1 Unknown Unknown Unknown
MICRESS_par_TQ.ex 00007FF6A9547CAE Unknown Unknown Unknown
MICRESS_par_TQ.ex 00007FF6A9CA95D0 Unknown Unknown Unknown
KERNEL32.DLL 00007FFAF1FA7374 Unknown Unknown Unknown
ntdll.dll 00007FFAF3FBCC91 Unknown Unknown Unknown

```

Could this be related to Issue 2 (large matrix regions causing an unphysical initial state), or is it more likely caused by a parameter conflict in the mean_disloc or seed_density nucleation setup?

I am attaching the driving file for your reference.

Best regards,
Vincent
You do not have the required permissions to view the files attached to this post.

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

Re: continuous static recrystallization (CSRX)

Post by Bernd » Tue Apr 28, 2026 9:59 am

Hi Vincent,

You did'nt get the point - the initial microstructure in case of method 3) should consist of only 9 grains, no subgrains. So, you need only one single type of grains which produces 9 single grains.

Bernd

Post Reply