RadCluster
Graph-based cluster dynamics for irradiated materials
Loading...
Searching...
No Matches
Functions | Variables
sweep_loop100_and_network Namespace Reference

Functions

 run_one (T_C, t_end, n_points, I=1000, V=1000, i_mobile=20, v_mobile=5, rtol=1e-5, network_loss=True, conversion=True)
 
 run_conv (T_C, t_end=3e6, n_points=60, I=200, i_mobile=10, v_mobile=3, rtol=3e-3, timeout_s=4500, progress_path=None)
 
 summarize (T_C, r)
 

Variables

 ROOT = Path(__file__).resolve().parents[2]
 
 encoding
 
float T_STAR_CONV = 250.0
 
float E_A0_CONV = 1.6
 
float GAMMA_A_CONV = 0.02
 
 DH2_CONV = None
 
 PHI_MAX_JUNC = None
 
float RHO_D0 = 5.0e13
 
float RHO_MAX = 5.0e14
 
float LOOP_NET_WC = 3.72e-8
 
float LOOP_NET_KREC = 0.0
 
float LOOP_NET_CHI = 50.0
 
int LOOP_NET_NINC = 10
 
 ap = argparse.ArgumentParser()
 
 action
 
 help
 
 type
 
 float
 
 default
 
 str
 
 args = ap.parse_args()
 
tuple temps
 
 flush
 
list rows = []
 
 t0 = time.perf_counter()
 
dict _kw = {}
 
 r = run_conv(T_C, progress_path=args.progress, **_kw)
 
 dt = time.perf_counter() - t0
 
 f111 = float(np.asarray(r["f_111_loop"])[-1])
 
 dose = float(np.asarray(r["dose"])[-1])
 
 t_end
 
 n_points
 
 I
 
 row = summarize(T_C, r)
 

Detailed Description

sweep_loop100_and_network.py — exercise the two newest RadCluster_2_1 features
against experiment:

  (1) ½⟨111⟩ → ⟨100⟩ loop conversion — content-weighted f₁₁₁(T) crossover.
      Sweeps T ∈ {450, 500, 550} °C with the design-note-calibrated crossover
      T_star_conv_C = 340 °C, so the Dudarev unary driving force turns on and
      the large loops convert as T rises (⟨100⟩ becomes dominant at high T —
      the experimental high-T regime).

  (2) Loop → network-dislocation loss — dynamic ρ_net(dose).
      Enables LOOP_NETWORK_LOSS and drives ρ_net through run_adaptive's
      operator-split so it rises ~1 order of magnitude and saturates near the
      experimental EUROFER network density (~5×10¹⁴ m⁻²).

Run (from module root, needs a built solver.exe):
  python codes/Python_Testing/sweep_loop100_and_network.py [--quick] [--T 500]

Function Documentation

◆ run_conv()

sweep_loop100_and_network.run_conv (   T_C,
  t_end = 3e6,
  n_points = 60,
  I = 200,
  i_mobile = 10,
  v_mobile = 3,
  rtol = 3e-3,
  timeout_s = 4500,
  progress_path = None 
)
f_111(T) CROSSOVER point: loop conversion ON, network loss OFF, on a
reduced active_window/discrete grid so the (stiff) conversion runs complete.
f_100 is a growth-vs-conversion competition gated by the dF cutoff (T_star):
large loops convert fast at high T (gamma_a tuned) -> f_100->1, but stay
partial at low T where the dF cutoff caps the convertible size.

If ``progress_path`` is given, per-SEGMENT f_100 / loop concentrations are
appended live (via a wrapper on sim._merge_results) so an in-flight run's
progress is visible without waiting for the point to finish.

Definition at line 123 of file sweep_loop100_and_network.py.

◆ run_one()

sweep_loop100_and_network.run_one (   T_C,
  t_end,
  n_points,
  I = 1000,
  V = 1000,
  i_mobile = 20,
  v_mobile = 5,
  rtol = 1e-5,
  network_loss = True,
  conversion = True 
)
One temperature: conversion ON + (optionally) network loss, via
run_adaptive so ρ_net advances between segments. Returns the results dict.

Uses the efficient full_system + bin_moment + Woodbury path (the original
16-min config) so loops reach n≈200 — the size the network-loss channel
needs to activate (the capture switch needs χ·d_loop ≳ network spacing).

Definition at line 73 of file sweep_loop100_and_network.py.

◆ summarize()

sweep_loop100_and_network.summarize (   T_C,
  r 
)

Definition at line 192 of file sweep_loop100_and_network.py.

Variable Documentation

◆ _kw

dict sweep_loop100_and_network._kw = {}
protected

Definition at line 257 of file sweep_loop100_and_network.py.

◆ action

sweep_loop100_and_network.action

Definition at line 206 of file sweep_loop100_and_network.py.

◆ ap

sweep_loop100_and_network.ap = argparse.ArgumentParser()

Definition at line 205 of file sweep_loop100_and_network.py.

◆ args

sweep_loop100_and_network.args = ap.parse_args()

Definition at line 232 of file sweep_loop100_and_network.py.

◆ default

sweep_loop100_and_network.default

Definition at line 208 of file sweep_loop100_and_network.py.

◆ DH2_CONV

sweep_loop100_and_network.DH2_CONV = None

Definition at line 56 of file sweep_loop100_and_network.py.

◆ dose

sweep_loop100_and_network.dose = float(np.asarray(r["dose"])[-1])

Definition at line 267 of file sweep_loop100_and_network.py.

◆ dt

sweep_loop100_and_network.dt = time.perf_counter() - t0

Definition at line 263 of file sweep_loop100_and_network.py.

◆ E_A0_CONV

sweep_loop100_and_network.E_A0_CONV = 1.6

Definition at line 52 of file sweep_loop100_and_network.py.

◆ encoding

sweep_loop100_and_network.encoding

Definition at line 29 of file sweep_loop100_and_network.py.

◆ f111

sweep_loop100_and_network.f111 = float(np.asarray(r["f_111_loop"])[-1])

Definition at line 266 of file sweep_loop100_and_network.py.

◆ float

sweep_loop100_and_network.float

Definition at line 208 of file sweep_loop100_and_network.py.

◆ flush

sweep_loop100_and_network.flush

Definition at line 249 of file sweep_loop100_and_network.py.

◆ GAMMA_A_CONV

sweep_loop100_and_network.GAMMA_A_CONV = 0.02

Definition at line 53 of file sweep_loop100_and_network.py.

◆ help

sweep_loop100_and_network.help

Definition at line 207 of file sweep_loop100_and_network.py.

◆ I

sweep_loop100_and_network.I

Definition at line 280 of file sweep_loop100_and_network.py.

◆ LOOP_NET_CHI

float sweep_loop100_and_network.LOOP_NET_CHI = 50.0

Definition at line 69 of file sweep_loop100_and_network.py.

◆ LOOP_NET_KREC

float sweep_loop100_and_network.LOOP_NET_KREC = 0.0

Definition at line 68 of file sweep_loop100_and_network.py.

◆ LOOP_NET_NINC

int sweep_loop100_and_network.LOOP_NET_NINC = 10

Definition at line 70 of file sweep_loop100_and_network.py.

◆ LOOP_NET_WC

float sweep_loop100_and_network.LOOP_NET_WC = 3.72e-8

Definition at line 66 of file sweep_loop100_and_network.py.

◆ n_points

sweep_loop100_and_network.n_points

Definition at line 280 of file sweep_loop100_and_network.py.

◆ PHI_MAX_JUNC

sweep_loop100_and_network.PHI_MAX_JUNC = None

Definition at line 57 of file sweep_loop100_and_network.py.

◆ r

sweep_loop100_and_network.r = run_conv(T_C, progress_path=args.progress, **_kw)

Definition at line 262 of file sweep_loop100_and_network.py.

◆ RHO_D0

float sweep_loop100_and_network.RHO_D0 = 5.0e13

Definition at line 58 of file sweep_loop100_and_network.py.

◆ RHO_MAX

float sweep_loop100_and_network.RHO_MAX = 5.0e14

Definition at line 59 of file sweep_loop100_and_network.py.

◆ ROOT

sweep_loop100_and_network.ROOT = Path(__file__).resolve().parents[2]

Definition at line 26 of file sweep_loop100_and_network.py.

◆ row

sweep_loop100_and_network.row = summarize(T_C, r)

Definition at line 296 of file sweep_loop100_and_network.py.

◆ rows

list sweep_loop100_and_network.rows = []

Definition at line 250 of file sweep_loop100_and_network.py.

◆ str

sweep_loop100_and_network.str

Definition at line 215 of file sweep_loop100_and_network.py.

◆ t0

sweep_loop100_and_network.t0 = time.perf_counter()

Definition at line 256 of file sweep_loop100_and_network.py.

◆ t_end

sweep_loop100_and_network.t_end

Definition at line 280 of file sweep_loop100_and_network.py.

◆ T_STAR_CONV

sweep_loop100_and_network.T_STAR_CONV = 250.0

Definition at line 45 of file sweep_loop100_and_network.py.

◆ temps

list sweep_loop100_and_network.temps
Initial value:
1= ([args.T] if args.T is not None
2 else [350.0, 400.0, 450.0, 500.0, 550.0])

Definition at line 245 of file sweep_loop100_and_network.py.

◆ type

sweep_loop100_and_network.type

Definition at line 208 of file sweep_loop100_and_network.py.