//============================================================+
// AWG calculator              || Author:                     |
// A JavaScript Program        ||-----------------------------|
//                             || Nicola Asuni                |
//                             || Via Della Pace, 11          |
// ----------------------------|| 09044 Quartucciu (CA)       |
// start          : 2001-01-31 || info@technick.net           |
// last update    : 2009-03-17 || www.technick.net            |
//============================================================+
// (c) Copyright 1999-2009 Nicola Asuni -Tecnick.com s.r.l.

//variables and arrays
var conv = 0.0254; // 1 mils in mm
var awg = 0;
var temperature = 20;
var T0 = 20; 

// Error message  ----------------------------------------------------------
function InputError() {alert("INPUT ERROR: Please check values");}

// Check input values
// --------------------------------------------------------------------------
function Check_A()
{
	if(isNaN(document.awgform.awg.value)) return(0); 
	awg = document.awgform.awg.value;
	return(1);
}

function Check_T()
{
	if(isNaN(document.awgform.temperature.value)) return(0); 
	temperature = document.awgform.temperature.value;
	return(1);
}

// Calculate Diameter -----------------------------------------
function Diameter(AWG)
{
 var d1 = 5;
 var d2 = 460;
 var g1 = 36;
 var g2 = -3;
 return(conv*(Math.pow( d1 , (AWG - g2) / (g1 - g2) ) * Math.pow( d2 , (g1 - AWG) / (g1 - g2) )) );
}

// Calculate Diameter -----------------------------------------
function CalculateAWG()
{
 var diameter = 0;
 var area = 0;
 var resistance = 0;
 var rho = 0; //resistivity at temperature of interest [Ohm * meter]
 var rhoT0 = 0; //resistivity at reference temperature [Ohm * meter]
 var a = 0; //temperature coefficient of resistivity [1/deg Celsius] at 20 degree Celsius
 
 switch(document.awgform.material.options[document.awgform.material.selectedIndex].value) //at 20 degree Celsius
 {
 	case "Copper"    : {rhoT0=0.0000000172;  a=0.0039;   break;} 
	case "Silver"    : {rhoT0=0.0000000159;  a=0.0038;   break;}
	case "Gold"      : {rhoT0=0.0000000244;  a=0.0034;   break;}
	case "Aluminium" : {rhoT0=0.0000000282;  a=0.0039;   break;} 
	case "Tungsten"  : {rhoT0=0.0000000560;  a=0.0045;   break;}
	case "Iron"      : {rhoT0=0.00000010;    a=0.005;    break;}
	case "Platinum"  : {rhoT0=0.00000011;    a=0.00392;  break;}
	case "Lead"      : {rhoT0=0.00000022;    a=0.0039;   break;}
	case "Constantan": {rhoT0=0.00000049;    a=0.00001;  break;}
	case "Manganin"  : {rhoT0=0.000000482;   a=0.000002; break;}
	case "Mercury"   : {rhoT0=0.00000098;    a=0.0009;   break;} 
	case "Nichrome"  : {rhoT0=0.0000011;     a=0.0004;   break;}
	case "Tin"       : {rhoT0=0.000000109;   a=0.0045;   break;} 
	case "Carbon"    : {rhoT0=0.000035;      a=-0.0005;  break;} 
	case "Germanium" : {rhoT0=0.46;          a=-0.048;   break;} 
	case "Silicon"   : {rhoT0=640;           a=-0.075;   break;}
 }
 
 if ( Check_A() && Check_T() )
 	{
 	diameter = Diameter(awg);
 	area = diameter * diameter * Math.PI / 4;
	rho =  rhoT0 * (1 + a*(temperature - T0));               
	resistance = rho/(area/1000000);

 	document.awgform.diameter.value = diameter;
 	document.awgform.area.value = area;
 	document.awgform.resistance.value = resistance;
 	}
 return;
}

// -------------------------------------------------------------------------
// END OF SCRIPT
// -------------------------------------------------------------------------




