JAVA program to calculate the electronic orbital of the Helium.

top page

If you copy and paste the program source code below into a text editor, you can easily compile and run this.
(This class file name is MathMethod, so save this text editor as "MathMethod.java", and compile it.)
In this program, we first input the initial x-coordinate r1 (in MM) of electron 1, and the absolute value of the total energy E (in eV) of Helium.
From the inputted values, this program outputs the y component of electron 1 velocity after a quarter of its orbit, and WN (the number of de Broglie's waves contained in one quarter of the orbital).
Here 1 SS = 1 × 10-25 second. The calculation takes a little time. So the inputted initial x-coordinate of the electron 1 is not automatically increased.
(In other programs, the speed is fast and, the initial x-coodinate is automatically increased per calculation until +100 . Try it, too.)


import java.util.Scanner;
class MathMethod {
 public static void main(String[] args) {
 
 Scanner stdIn=new Scanner(System.in);     // input r1 and |E|
 System.out.println("r1 between nucleus and electron 1 (MM) ?");  
 double r=stdIn.nextDouble();
 System.out.println("total energy |E| in the Herium (eV) ? ");  
 double E=stdIn.nextDouble();
 
 double me=9.1093826e-31; double nucle=6.64465650e-27;
                                          //nucle= alpha particle
                                          //rm=reduced mass
 double rm=(2*me*nucle)/(2*(2*me+nucle));
 
 double pai=3.141592653589793; double epsi=8.85418781787346e-12;
 double h=6.62606896e-34; double ele=1.60217653e-19;
                              
                             // calculation of initial VY from E and r1    
 double poten=-(2.0*ele*ele*2.0)/(4.0*pai*epsi*r)+(ele*ele)/(4.0*pai*epsi*2.0*r);
                             
                             //vya= total E-potential energy  
 double vya=-(E*1.60217646e-19)-poten*1.0e14; 
 if (vya > 0) {
                               // vyb=velocity from kinetic energy
 double vyb=Math.sqrt(vya/me); 
 double VY=vyb*1.0e-11;         // change m/sec to MM/SS
 
 double prexx=r; double VX=0.0; double WN=0.0; double preyy=0.0; 
 double xx,yy,vk,preVY,preWN,midWN;
  
 do {
    xx=prexx+VX; yy=preyy+VY;        //electron 1 position after 1SS
    preVY=VY;preWN=WN ;
    vk=VX*VX+VY*VY;                  //calculation of WN from VX,VY 
                                   
    WN=WN+(rm*vk*1.0e-3)/h;                        
                                   //calculation of VX,VY from Coulomb force
    double ra=Math.sqrt(prexx*prexx+preyy*preyy);       
    double rb=Math.sqrt(4.0*prexx*prexx+2.0*preyy*preyy);
    ra=ra*1.0e-14; rb=rb*1.0e-14; 
    prexx=prexx*1.0e-14; preyy=preyy*1.0e-14;
    double ac=(2.0*ele*ele)/(4.0*pai*epsi*rm);
                                         
    VX=VX+1.0e-36*ac*prexx*(-1.0/(ra*ra*ra)+1.0/(rb*rb*rb));   
                                         
    VY=VY+1.0e-36*ac*preyy*(-1.0/(ra*ra*ra)+0.5/(rb*rb*rb));
    prexx=xx;preyy=yy;
  
   } while (xx > 0);              //repeat above until electron 1 arive at y axis 
   if (VY > -0.000001 && VY < 0.000001) {    // last VY condition           
  System.out.print("r1: "+r+"   ");
  System.out.printf("VX:%.10f   ", VX);
  System.out.printf("VY:%.10f   ", VY);
  System.out.printf("preVY:%.10f  ", preVY);
  midWN=(preWN+WN)/2; System.out.printf("midWN:%.10f  \n", midWN);
    }
   }}}