MetalicaRap will be a software machine. Fast computers (and progamers) are easily avaliable where as high precision machining and calibration of components is relatively much harder. We hope to be able to control the build process to a high level of precision through software tracking, abarration correction and feedback. Belowe we have listed some of the processes that will require software control.
- Electron gun beam focus model: To highlight resolution operational compromises between; the higher the gun cathode voltage the tighter gun focus, so the smaller the beam spot size on the metal powder giving rise to a higher XY minimum feature size (lens adjustment can alleviate.  See lens simulation), yet also the higher cathode voltage the faster the electrons go, so the deeper the electron energy deposition/giving rise to deeper vaporization holes, giving less vertical Z resolution, (used during Z axis error correction mode). Also surface tension is correlated with temperature, and works in opposition to wetting effects flattening the surface of the melt pool (if the melt pool diameter is small compared to the thickness of the metal layer it may appear as a molten blob of metal). This model will receive an energy profile of the beam by pulling two wire prongs through the beam in the X and Y direction, The wire prongs attached to the end of the sensor ring will be pulled through the beam by the XY motor drives, thereby sensing the energy cross section through the electron beam, which will be radioed back to Unified accelerator Library control system, enabling automatic adjustment of beam focus, beam strength and beam spot size. This will also be used to compensate for ripple in the power supply and operational loss of beam alignment from for example filament variation and magnetic interference. All except the last of these effects should be predictable so most calculations for build can be done by the model prior to build in offline mode.
- Thermal Real Time Model: This allows us to keep track of the thermal changes across the build chamber or cooling path, as the electron gun pulses strike the build volume powder. Cooling rate controls the micro-structure which determins the mechanical properties of the final part. Defects include residual stress that can only be removed by removing the part from the chamber and heat treating before continuation of the build, so it is best avoided by temperature management. In vacuum there is no convection, only non air heat conduction and a little radiative cooling. The conduction path is only through metal to metal contact so as parts builds the cooling path changes continuously. Also each layer melts part of the previous layer.
We will have to consider the following 4 situations conduction rates:
- Metal powder and solid metal volumes experiencing direct electron energy deposition (i.e. heat around electron penetrated regions, the depth of these volumes increases with electron gun accelerating voltage and vary with metal type). See electron penetration model .
- Solid metal thermal conduction volumes (the completed elements of final metal part under construction).
- Metal powder conduction volumes (the surrounding powder).
- Chamber/boundary thermal conditions (vacuum region, build box). See electron strike model for different metals and different cathode voltages.
In general for any unit volume receiving an amount of energy per second, from a distant energy source, to increase in temperature by 1K (the metals specific heat capacity), the amount of energy (W or J/s) arriving from that energy source (the electron beam) via a path; The paths energy transit rate (the conduction rate) is dependent on the cross sectional area of path, the length of path and the temperature difference between the ends of the path, (thermal conductivity in units of W/K). The volume changes size by the surrounding pressure (atmospheric pressure, indicating the density of the material). So from known initial temperature conditions combining the specific heat capacity, thermal conductivity and density to calculate paths, then summing these paths leads to knowing the temperature of a specific unit piece of metal and its physical state, solid or liquid or vaporized (temperature above or below its melting point or vaporization point at any particular time). The following should be considered; variation of mass with scan speed, bed preheating scans. See for more background technical information. (Clarification needed)  .
- We may need a network structure to combine the different hardware elements.
"Unified accelerator library"
Our electron beam focus model and control software choice
Those looking for entertainment might look at the open source Unified Accelerator Library (UAL) that has a 30yr track record of simulation and control of electron beam movement , a Electron beam focus model and a Control/Simulation approach. But UAL lacks thermal models and metal powder melting modeling so it's main use may be to get the beam spot landing on the powder at the correct position and with the desired diameter defined in the G code from skeinforge. (You can down load UAL here ,  Introduction here, 
Manuel for UAL's Design Toolkit called MADX where you can enter a hardware definition i.e. collection of coils along a beam start with two solenoids at 0.1m and -6 m, beam at 0m along latticeset, at 3kW 100 micron diameter (MetalicaRap will likely have 3 XY deflector coils for beam deflection, 2 "Solenoid" for beam lenses) then run simulation of beam with OFFLINE MODEL UAL 1.9 here.
The hardware definition of coil positions is called the "lattice". The control ONLINE UAL 1.11 will them apply this simulation to the control of the electron guns in real time. Ignore the following elements we don't have them in MetalicaRap: BeamBean, electric kicker,Kicker, RF cavity, taylor map, wake, wriggler .
This has the advantage of being a closed loop system, which while simulating the beam movement simultaneously records models coils, guns, motors inputs; voltage values, current values etc. Then when you run the real world machine these form the drive instructions to the machine, any sensors picking up deviations are resolved through alarms or the software "reality checking" and thus improving the model. It also is designed as a multi user, multi platform software environment. Some draw backs may be over complexity of the system.
Main Deflector Coil driver options; a.) Raster 30cmx30cm b.) point and shoot
- An open source network software Fast Network "EPICS" for running UAL on, see  this More Info here
Our thermal modeling software choice
Quick start instructions on thermal modeling software:
- Open Source thermal real time model software Code_aster Introduction here,
- Download code-aster software (Windows) here ,
- Download extra element GetDP.exe here (put GetDP.exe in c:\ASTER\OUTILS\gmsh\),
- Download code-aster software (Linux to compile) here,
- Download extra element GetDP.exe here (put GetDP.exe in c:\ASTER\OUTILS\gmsh\) once it is installed and extra element has been copied then as it finishs select option to run code aster.
First select your problem type definition files from the wiki i.e.Thermal program example See here (Use login user: getdp password: getdp) 
Second build your mesh of shape you require to be tested, with code_aster sub module Gmsh: you can find it In ASTK prg window under menu item Tools Gmsh \\\ then in Gmsh window select GEO in drop down sub menu //// or import shape via .stl file In ASTK prg window, menu item Tools, Gmsh , then in Gmsh window select; MESH submenu
Third run solver to solve the problem you have defined above by selecting the SOLVER submenu in the GetDP window and hit GetDP button. In GetDP window choose source files for problem; name.PRO file(the problem defined in an example text file from GetDP wiki ) Choose name.MSH ( mesh file defining geometry) Then in GetDP window select options and tick "display client messages" option, then hit Pre then Cal then Pos buttons and then see window called message console window and it will tell you what happened, the output results files name.PRE name.RES name.POS will be in the same directory as the name.PRO file you selected for input.
General info;(Gmsh is a three-dimensional finite element grid generator with a build-in CAD engine and post-processor) See here  Can access Gmsh through Graphic user interface or directly through unix or TCPIP socket via code_aster sub module getDP Download GetDP.exe here (put GetDP.exe in c:\ASTER\OUTILS\gmsh\ or specify path to existing location) Overview here See here GetDP documentation here , Thermal program example See here (Use login user: getdp password: getdp)  Documentation for relevant thermal model calculations See Thermics module R5.02 booklet: / General Architecture D00301a.pdf In DDocsHTML (Down load following two links, unzip to same folder)  , Complete Guide to code_aster documentation here , Software Principles explained here ,Aster documentation source here  , home page here  wiki,