RadCluster
Graph-based cluster dynamics for irradiated materials
Loading...
Searching...
No Matches
radcluster_code
py_utils
core
__init__.py
Go to the documentation of this file.
1
"""
2
RadCluster_2_1 — Layer 1: abstract, host-independent cluster-dynamics core.
3
4
This package implements the host-independent algorithmic core of the
5
generalized graph-based cluster-dynamics framework of
6
7
Ghoniem, N.M. (2026), "A Generalized Graph-Based Cluster Dynamics
8
Framework for Irradiated Materials"
9
(docs/Formulation/cluster_dynamics_framework/Generalized_Cluster_Dynamics.pdf).
10
11
It defines the two algorithmic primitives that make a generic CD
12
formulation possible:
13
14
* the polarity index chi in {-1, +1} that splits the cluster state
15
space into vacancy-type and SIA-type sub-spaces without any
16
host-specific taxonomy (``cluster_identifier``); and
17
18
* the reaction admissibility graph (RAG) G = (V, E, nu, k) whose
19
edges encode every elementary reaction with stoichiometric tuples
20
and rate kernels (``rag``, ``edge_classes``).
21
22
The master equation reduces to the host-independent graph-walking
23
accumulator
24
25
dc_a/dt = G_a + sum_r S_ar J_r(c) - D_a c_a
26
27
applied edge-by-edge over E (``graph_walker``).
28
29
Nothing in this package references a specific host material. A host
30
(e.g. EUROFER-97) is introduced as an *instantiation* under
31
``py_utils/materials/`` — a declaration of the admissible vertex set,
32
population set, edge set, and rate-kernel library — never a rewrite of
33
this core. This is the abstract-base-class / subclass split described
34
in the paper's introduction.
35
"""
36
from
.cluster_identifier
import
(
37
Polarity,
38
Population,
39
ClusterIdentifier,
40
)
41
from
.edge_classes
import
(
42
EdgeClass,
43
EdgeClassSpec,
44
EDGE_CLASS_SPEC,
45
spec_of,
46
)
47
from
.rag
import
(
48
Edge,
49
ReactionAdmissibilityGraph,
50
)
51
from
.state_layout
import
(
52
Block,
53
StateLayout,
54
)
55
from
.graph_walker
import
(
56
GraphWalker,
57
)
58
from
.reductions
import
(
59
BinMomentReduction,
60
HeReductionMode,
61
)
62
63
# Diagnostics only. networkx is imported lazily INSIDE these functions, so
64
# re-exporting them here adds no import-time dependency for the solver path.
65
from
.to_networkx
import
(
66
to_networkx,
67
structural_report,
68
write_graphml,
69
vertex,
70
)
71
72
__all__ = [
73
"Polarity"
,
74
"Population"
,
75
"ClusterIdentifier"
,
76
"EdgeClass"
,
77
"EdgeClassSpec"
,
78
"EDGE_CLASS_SPEC"
,
79
"spec_of"
,
80
"Edge"
,
81
"ReactionAdmissibilityGraph"
,
82
"Block"
,
83
"StateLayout"
,
84
"GraphWalker"
,
85
"BinMomentReduction"
,
86
"HeReductionMode"
,
87
"to_networkx"
,
88
"structural_report"
,
89
"write_graphml"
,
90
"vertex"
,
91
]
Generated by
1.9.8