Skip to content

Architectural items to address #3

@AgustinVallejo

Description

@AgustinVallejo

@jbphet I want us to meet and discuss the following items that we should agree upon before continuing to develop these two sims...

  • How should we split development work? We should also setup the monorepo workflow on your end.
  • Given that we have shred > nuclear-decay-common > alpha/beta decay. Where should we add common issues?
  • Given that AD and BD share the same screen names, should we name homonym files like AlphaDecaySingleAtomScreenView or just SingleAtomScreenView?
  • How to handle the selection of possible isotopes? I've created Isotope.ts to address this but more discussion is needed. Should we create classes for the specific isotopes we'll use (i.e. class Polonium extends Isotope)? Or just define them as we go? ( i.e. const polonium = new Isotope( 84, 127 ) )
    • Use AtomConfig for immutable protons.
    • Let's not call it Isotope, to NS that means the general configuration, and the atom is the thing that decays. Isotope is the idea of that... Should be IsotopeInstance or something like DecayingIsotope
    • startDecay should be a method on DecayingIsotope
  • How should we separate the possible isotopes available in each sim: AD - Polonium-211; BD - Hydrogen-3, Carbon-14. Make them options to be provided in the top level models? They should pass through to populate the Isotope selection box.
    • We're fine with hardcoding the decay products of the isotopes we'll use.
  • Multiple places list the selected isotope name. How will we handle dynamic locale there? Since we're listening to a Property but also listening to the name itself. I believe DynamicProperty is the way to go (see AtomIdentifier.createDynamicNameProperty). An alternative would be to rely on protonCountProperty and never change the Isotope instance, just change its number of protons.
    • We should move these into AtomIdentifier
  • How to handle the half-life and decay model... Should we set a time on creation of the atom? Or have it randomly test for decay during the stepping of the atom?
    • We'll ask designers if they care of the difference.
  • Should we add layers of safety for ensuring the created Isotopes will decay?
    • No

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions