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

Variables

 I
 
 DOSE
 
 i_d
 
 nb
 
str eq = I else "bin_moment"
 
 sim
 
dict cfg
 
 G = float(sim.input_data.reactions["G"])
 
dict scfg
 
 t0 = time.time()
 
 res
 
 w = time.time() - t0
 
 cfg2
 
 o = re_mod.observe(res, sim, cfg2, 1.0)
 
 neq = int(getattr(sim.rate_equations, "N_eq", -1))
 

Detailed Description

Does the d_111 deficit scale with i_discrete rather than with I_bin?

The M2R ladder held i_discrete = 50 and varied I_bin 2 -> 33.  The deficit was
flat at ~-5 to -7% across all of it, and B8 agrees with B32 far better than
either agrees with the exact arm.  An error that does not respond to the knob
being turned is controlled by a knob that was NOT turned -- and the one held
fixed is the discrete/bin interface at i_discrete.

The I_bin = 0 control passed to 0.000% precisely because i_discrete = I there,
i.e. no interface at all.  So: hold I_bin and sweep i_discrete.  If the
deficit collapses as i_discrete grows, the fault is at the interface (or in the
binned region's treatment of sizes just above it), not in bin resolution.

Variable Documentation

◆ cfg

dict check_idiscrete_convergence.cfg
Initial value:
1= {"equations": eq, "i_discrete": i_d, "v_discrete": i_d,
2 "I_bin": nb, "V_bin": nb, "shape_function": "linear"}

Definition at line 28 of file check_idiscrete_convergence.py.

◆ cfg2

check_idiscrete_convergence.cfg2
Initial value:
1= dict(cfg); cfg2.update({"I": I, "V": I, "dose": DOSE,
2 "C_floor": float(sim.input_data.reactions.get("C_floor", 1e-15))})

Definition at line 45 of file check_idiscrete_convergence.py.

◆ DOSE

check_idiscrete_convergence.DOSE

Definition at line 21 of file check_idiscrete_convergence.py.

◆ eq

str check_idiscrete_convergence.eq = I else "bin_moment"

Definition at line 23 of file check_idiscrete_convergence.py.

◆ G

check_idiscrete_convergence.G = float(sim.input_data.reactions["G"])

Definition at line 34 of file check_idiscrete_convergence.py.

◆ I

check_idiscrete_convergence.I

Definition at line 21 of file check_idiscrete_convergence.py.

◆ i_d

check_idiscrete_convergence.i_d

Definition at line 22 of file check_idiscrete_convergence.py.

◆ nb

check_idiscrete_convergence.nb

Definition at line 22 of file check_idiscrete_convergence.py.

◆ neq

check_idiscrete_convergence.neq = int(getattr(sim.rate_equations, "N_eq", -1))

Definition at line 48 of file check_idiscrete_convergence.py.

◆ o

check_idiscrete_convergence.o = re_mod.observe(res, sim, cfg2, 1.0)

Definition at line 47 of file check_idiscrete_convergence.py.

◆ res

check_idiscrete_convergence.res
Initial value:
1= sim.run_adaptive(solver_config=scfg, save_output=False, timeout_s=1800,
2 max_doublings=0)

Definition at line 42 of file check_idiscrete_convergence.py.

◆ scfg

dict check_idiscrete_convergence.scfg
Initial value:
1= {"t_span": (1e-6, DOSE / G), "n_points": 45, "log_time": True,
2 "required_times": (DOSE / G,), "rtol": 1e-5, "atol": 1e-20,
3 "timeout_s": 1800,
4 "solver_method": {"linsol": "gmres", "preconditioner": "woodbury",
5 "concentration_threshold": 1e-22},
6 "loop_conversion": 1}

Definition at line 35 of file check_idiscrete_convergence.py.

◆ sim

check_idiscrete_convergence.sim
Initial value:
1= RadClusterSimulation(I=I, V=I, solver_mode="full_system", equations=eq,
2 cascade="fission", he_kinetics="quasi_steady_state",
3 i_mobile=5, v_mobile=5)

Definition at line 25 of file check_idiscrete_convergence.py.

◆ t0

check_idiscrete_convergence.t0 = time.time()

Definition at line 41 of file check_idiscrete_convergence.py.

◆ w

check_idiscrete_convergence.w = time.time() - t0

Definition at line 44 of file check_idiscrete_convergence.py.