| Frühere | Chronologischer Index | Spätere | ||
| Vorherige | Thematischer Index | Nächste |
Hallo Peter,natürlich kann man die Alphazerfälle auch direkt in den Zerfallsgraphen eintragen.
Wenn Sie mit aufgeräumten Funktionen
Clear[daughterNuclides, daughterNuclidesQ, AlphaDecayQ, \
AlphaDecayDownQ, ReachableNuclides]
daughterNuclides[s_List] :=
DeleteCases[
Union[Apply[Join,
Map[IsotopeData[#, "DaughterNuclides"] &,
DeleteCases[s, _Missing]]]], _Missing]
daughterNuclidesQ[s1_,
s2_] := (s1 =!= s2 && MemberQ[daughterNuclides[{s1}], s2])
AlphaDecayQ[s1_Entity, s2_Entity] :=
daughterNuclidesQ[s1, s2] &&
Abs[IsotopeData[s1, "MassNumber"] -
IsotopeData[s2, "MassNumber"]] == 4 &&
Abs[IsotopeData[s1, "AtomicNumber"] -
IsotopeData[s2, "AtomicNumber"]] == 2
AlphaDecayDownQ[s1_Entity, s2_Entity] :=
daughterNuclidesQ[s1, s2] &&
IsotopeData[s1, "MassNumber"] - IsotopeData[s2, "MassNumber"] == 4 &&
IsotopeData[s1, "AtomicNumber"] -
IsotopeData[s2, "AtomicNumber"] == 2
ReachableNuclides[s_List] :=
FixedPoint[Union[Join[#, daughterNuclides[#]]] &, s]
(* label doers *)
Clear[peterSchoen0, peterSchoen1, peterSchoen2]
peterSchoen0[s_Entity] := Rule[s, Row[{IsotopeData[s, "Symbol"]}]]
peterSchoen1[s_Entity] :=
Rule[s, Row[{IsotopeData[s, "FullSymbol"]}, Background -> LightBlue,
Frame -> True, RoundingRadius -> 2]]
peterSchoen2[s_Entity] :=
Rule[s, Column[{IsotopeData[s, "Symbol"],
IsotopeData[s, "HalfLife"]}, Background -> LightBlue,
Frame -> All]]
(* alpha decay edge selector *)
Clear[klamserEdge, klamserDecay]
klamserEdge[s1_Entity, s2_Entity] := If[AlphaDecayDownQ[s1, s2],
{s1, s2},(* else *)
Missing[]
]
klamserDecay[l_List?VectorQ] :=
Block[{res, x1, x2,
alphaP =
IsotopeData[
EntityClass["Isotope", "AlphaEmission"]] \[Intersection] l},
res = If[Length[Cases[alphaP, _Entity]] == 0,
Print["klamserDecay::given entities do not emit alpha particles"];
{}, (* else *)
DeleteMissing[Flatten[Outer[klamserEdge, alphaP, l], 1]]
]; (*
If you do not use DirectedEdge you catch unintelligible errors \
until you do! *)
res //. {x1_Entity, x2_Entity} :>
Rule[DirectedEdge[x1, x2], {Thick, Red}]
] /; Length[Cases[l, _Entity]] > 0
und
Clear[vertsPu241]
vertsPu241 = ReachableNuclides[{Entity["Isotope", "Plutonium241"]}]
folgendes
RelationGraph[daughterNuclidesQ, vertsPu241,
VertexLabels -> (peterSchoen2 /@ vertsPu241),
EdgeStyle -> klamserDecay[vertsPu241],
PlotRangePadding -> 0.85, ImageSize -> 500,
PlotTheme -> "Scientific"]
getippt hätten, dann hätten Sie das Bildchen im Anhang erhalten.
Grüsse
udo.
On Sun, 15 Sep 2019 11:29:33 +0200, Udo und Susanne Krause via demug
<demug@XXXXXXX.ch> wrote:
Hallo Peter, <snip>
Hallo, Ich würde gerne mit MMA12 über IsotopeData["Pu241", "HalfLife"] eine Liste der Zerfallsprodukte in der Zerfallskette mit der jeweiligen Halbwertszeit nur für Alphazerfälle erstellen. Die Beispiele bei wri.com sind sehr komplex. Weiß jemand wie das geht? Danke sagt Peter _______________________________________________ DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch http://www.mathematica.ch/mailman/listinfo/demug Archiv: http://www.mathematica.ch/archiv.html
klamser-pu241-alpha-in-edge.jpg
Description: JPEG image
klamserIsotopeData.nb
Description: application/vnd.wolfram.mathematica
_______________________________________________ DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch http://www.mathematica.ch/mailman/listinfo/demug Archiv: http://www.mathematica.ch/archiv.html
| Frühere | Chronologischer Index | Spätere | ||
| Vorherige | Thematischer Index | Nächste |
DMUG-Archiv, http://www.mathematica.ch/archiv.html