Orbitals and Electron Configuration Hunds Rule





package com.kamical.desgin.model;

import java.util.LinkedHashMap;
import java.util.Map.Entry;
/**
 * https://github.com/Ruegg/ElementConfiguration/blob/master/Java%20Source/src/ruegg/andre/OrbitalDiagram.java
 * @author kmandal
 *
 */
public class ElectronConfiguration {
 
 public static LinkedHashMap<String, Integer> orbital = new LinkedHashMap<String, Integer>();
 
 static String[] energyLevels = { "1s", "2s", "2p", "3s", "3p", "4s", "3d",
   "4p", "5s", "4d", "5p", "6s", "4f", "5d", "6p", "7s", "5f", "6d",
   "7p", "8s", "6f", "7d", "8p", "9s", "7f", "8d", "9p", "10s", "8f",
   "9d", "10p", "11s" };

 private static String getElectronConfiguration(int atomicNumber) {
  int countElectron = 0;
  int remainingElectorn = atomicNumber;
  for (String string : energyLevels) {
   String block = string.substring(1);
   if (atomicNumber > countElectron) {
    int blockData=getOrbitalValue(block);
    if (remainingElectorn > blockData) {
     orbital.put(string, blockData);
     countElectron += blockData;
     remainingElectorn = atomicNumber - countElectron;
    } else {
     orbital.put(string, remainingElectorn);
     countElectron += remainingElectorn;
     remainingElectorn = atomicNumber - countElectron;
     break;
    }
   }
  }
  StringBuffer sb = new StringBuffer();
  int count=1;
  for (Entry<String, Integer> entry : orbital.entrySet()) {
   if(orbital.size()>count){
   sb.append(entry.getKey() + entry.getValue()).append(',');
   count++;
   }else{
    sb.append(entry.getKey() + entry.getValue());
   }
  }

  return sb.toString();
 }

 public static int getOrbitalValue(String orbitalPath) {
  switch (orbitalPath) {
  case "s":
   return 2;
  case "p":
   return 6;
  case "d":
   return 10;
  case "f":
   return 14;
  }
  return 0;
 }

 public static void main(String s[]) {
  int atomicNumber = 81;
  String electronConfiguration = getElectronConfiguration(atomicNumber);
  System.out.println(electronConfiguration);

 }
}

1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2,4f14,5d10,6p1


   

If you find this post helpful, I would really appreciate if you can share it with your friends. Also you can check more questions and analysis here.





Previous
Next Post »