Class: AsciiChem::Model::ElectronConfiguration

Inherits:
Node
  • Object
show all
Defined in:
lib/asciichem/model/electron_configuration.rb

Overview

Orbital occupancy: 1s^2 2s^2 2p^6. Each entry is [orbital, occupancy] where orbital is the string label ("1s", "2p") and occupancy is the electron count as a string.

Term symbols (^multiplicityL_J) live on the optional term_symbol field.

Defined Under Namespace

Classes: TermSymbol

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#==, #accept, #children, #diagnostic_label, #hash, short_name, #to_cml, #to_html, #to_latex, #to_mathml, #to_svg, #to_text

Constructor Details

#initialize(orbitals:, term_symbol: nil) ⇒ ElectronConfiguration

Returns a new instance of ElectronConfiguration.



20
21
22
23
# File 'lib/asciichem/model/electron_configuration.rb', line 20

def initialize(orbitals:, term_symbol: nil)
  @orbitals = orbitals
  @term_symbol = term_symbol
end

Instance Attribute Details

#orbitalsObject

Returns the value of attribute orbitals.



18
19
20
# File 'lib/asciichem/model/electron_configuration.rb', line 18

def orbitals
  @orbitals
end

#term_symbolObject

Returns the value of attribute term_symbol.



18
19
20
# File 'lib/asciichem/model/electron_configuration.rb', line 18

def term_symbol
  @term_symbol
end

Instance Method Details

#to_sObject



29
30
31
32
33
# File 'lib/asciichem/model/electron_configuration.rb', line 29

def to_s
  parts = orbitals.map { |o, n| "#{o}^#{n}" }
  parts << term_symbol.to_s if term_symbol
  "ElectronConfig(#{parts.join(' ')})"
end

#value_attributesObject



25
26
27
# File 'lib/asciichem/model/electron_configuration.rb', line 25

def value_attributes
  { orbitals: orbitals, term_symbol: term_symbol }
end