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 perpen, so save this text editor as "perpen.java", and compile it.)
In this program, first we input the initial y-coordinate r2 (in MM) of electron 1 (= the electron-1 starts from y-axis, and electron-2 start from z-axis ), and the absolute value of the total energy E (in eV) of helium atom.
↑ This initial input r2 value increases per calculation of the electron's 1/4 orbit until r2 + 30.
From the inputted values, this program computes electrons' 1/4 orbits (= electron-1 moves from y-axis to x-axis on x-y place, while electron-2 moves from z-axis to x-axis on the perpendicular x-z plane symmetrically ) by rigorously calculating Coulomb forces among two electrons and a nucleus, de Broglie wavelength, updating electrons' positions, velocities at short time intervals of 1SS (= 1 × 10-23 second ) like in this.
Then, this program outputs electron-1's x (= VX ) and y (= VY ) components of last velocity, last-x-coordinate after the electron has moved a quarter of its orbits from y-axis to x-axis (= electron-1 must cross the x-axis perpendicularly with the last VX velocity being zero to form the most stable symmetrical orbit around the nucleus = so we should choose the uniquely-determined r2 which gives the zero last VX in each different helium total energy E ).
This program also outputs WN (= the number of de Broglie's waves included in one quarter of the orbital, which should be 0.250000 when one orbit is 1 × de Broglie wavelength, which case uniquely gives the predicted helium energy by this real helium model's program ).
Here we use new convenient units of time = 1 SS = 1 × 10-23 second, distance = 1 MM = 1 × 10-14, velocity = 1MM/SS = 1 × 109 m/s, acceleration = 1MM/SS^2 = 1032 m/s^2.
The initial x-coordinate is automatically increased per calculation until +30 (= these different initial y-coordinates give different orbits, out of which we can uniquely determine only one initial y-coordinate that gives a symmetrical orbit around a nucleus with zero x-component of electron-1's last velocity (= VX = 0.000000 ) after electron-1 moves a quarter of its orbit ).
import java.util.Scanner;
class perpen {
public static void main(String[] args) {
// elecron-1 = e1 electron-2 = e2
// start from e1-nucleus-e2 = the right angle
// electron-1 moves from y to x axis
Scanner stdIn=new Scanner(System.in);
// 1MM = 10^-14 meter
// input e1's initial y-coordinate r2 (MM)
System.out.println("r2 between nucleus and electron 1 (MM) ?");
double r=stdIn.nextDouble();
// input absolute value of helium energy
System.out.println("absolute value of total energy |E| of the herium (eV) ? ");
double E=stdIn.nextDouble();
// me = electrons mass (kg)
double me=9.1093826e-31;
//nucle = helium nuclear mass (kg)
double nucle=6.64465650e-27;
// rm = reduced mass
double rm=(2.0*me*nucle)/(2.0*me+nucle);
rm= rm*0.5;
// pai = pi, epsi = electric constant
// h = Planck constant
// ele = electron's charge
double pai=3.141592653589793;
double epsi=8.85418781787346e-12;
double h=6.62606896e-34;
double ele=1.60217653e-19;
for (int i=1;i < 30;i++) {
// repeat until r2=initial r2+30
// poten = initial Coulomb potential energy
double poten=-(2.0*ele*ele*2.0)/(4.0*pai*epsi*r)+(ele*ele)/(4.0*pai*epsi*r*Math.sqrt(2));
// vya = total energy E - potential energy (J)
double vya=-(E*1.60217646e-19)-poten*1.0e14;
if (vya > 0) {
// vyb = electron's initial velocity
double vyb=Math.sqrt(vya/me);
// VX,VY= electron-1's x,y-velocity
// VX (= unit MM/SS = 10^9 m/s )
double VX=-vyb*1.0e-9; double VY=0.0;
// prexx,preyy = electron-1's x,y-coordinate
double prexx=0.0; double preyy=r;
// WN = number of de Broglie wave
double WN=0.0;
double xx,yy,vk,leng,wav;
do {
// time unit = 1SS = 10^-23 second
// xx,yy= electron-1's coordinate after 1SS
xx=prexx+VX; yy=preyy+VY;
vk=VX*VX+VY*VY;
//calculation of WN from VX,VY
// leng = electron moving length for 1SS (m)
leng=Math.sqrt(vk)*1.0e-14;
// wav = de Broglie wavelength = h/mv (m)
wav=h/(rm*Math.sqrt(vk)*1.0e9);
// WN = sum of de Broglie wavelength
WN=WN+leng/wav;
// ra = distance between electron and nucleus
double ra=Math.sqrt(prexx*prexx+preyy*preyy);
// rb = distance between two electrons
double rb=Math.sqrt(4.0*prexx*prexx+2.0*preyy*preyy);
// change length unit from MM to meter
ra=ra*1.0e-14; rb=rb*1.0e-14;
prexx=prexx*1.0e-14; preyy=preyy*1.0e-14;
double ac=(ele*ele)/(4*pai*epsi*rm);
// computing acceleration from Coulomb force
// update x-velocity VX, acceleration (MM/SS^2)
VX=VX+1.0e-32*ac*prexx*(-2.0/(ra*ra*ra)+2.0/(rb*rb*rb));
// update y-velocity VY from acceleration
VY=VY+1.0e-32*ac*preyy*(-2.0/(ra*ra*ra)+1.0/(rb*rb*rb));
prexx=xx;preyy=yy;
} while (yy > 0);
// repeat until electron-1 has moved 1/4 orbit
// repeat until electron-1 reaches x-asis
// display initial e1's y-coordinate r1
System.out.print("r2: "+r+" ");
// display electron-1's x,y-velocity VX,VY
System.out.printf("VY:%.6f ", VY);
System.out.printf("VX:%.6f ", VX);
// display electron-1's last x-coordinate
System.out.printf("last-x:%.2f ", xx);
// WN = total de Broglie wavelength of 1/4 orbit
System.out.printf("WN: %.6f \n", WN);
} r=r+1;
}}}