DMUG-Archiv 2019

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: [Dmug] IsotopeData["Pu241", "HalfLife"]

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

Attachment: klamser-pu241-alpha-in-edge.jpg
Description: JPEG image

Attachment: 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
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html