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