Design#

        block-beta
  columns 2

  block:user:2
    columns 1
    userLabel["User Layer"]
    driver["MolOrient driver"]
  end

  space:2

  block:standards:2
    columns 1
    stdLabel["Standards Layer"]
    sno["SNO"]
    nwchem["NWChem"]
  end

  space:2

  block:chemistry
    columns 1
    chemLabel["Chemistry Layer"]
    atom["Atom"]
    inertia["Inertia tensor builder"]
  end

  block:math
    columns 2
    mathLabel["Math Layer"]:2
    linalg["Vector / SquareMatrix"]
    eig["Eigensolver"]
    rotmat["Rotation matrix builder"]
    trig["Trig functions"]
  end

  user --> standards
  standards --> chemistry
  standards --> math

  style user fill:#dbeafe,stroke:#1e40af
  style userLabel fill:#dbeafe,stroke:none
  style driver fill:#93c5fd,stroke:#1e40af
  style standards fill:#dcfce7,stroke:#166534
  style stdLabel fill:#dcfce7,stroke:none
  style sno fill:#86efac,stroke:#166534
  style nwchem fill:#86efac,stroke:#166534
  style chemistry fill:#ede9fe,stroke:#5b21b6
  style chemLabel fill:#ede9fe,stroke:none
  style atom fill:#c4b5fd,stroke:#5b21b6
  style inertia fill:#c4b5fd,stroke:#5b21b6
  style math fill:#fef3c7,stroke:#92400e
  style mathLabel fill:#fef3c7,stroke:none
  style linalg fill:#fcd34d,stroke:#92400e
  style eig fill:#fcd34d,stroke:#92400e
  style rotmat fill:#fcd34d,stroke:#92400e
  style trig fill:#fcd34d,stroke:#92400e