Definition and Printing of Quantities
[ Construction of Engineering Quantities ]
[ Systems of Units ]
[ Quantity Constants and Variables ]
[ Printing a Quantity ]
[ Casting Quantity Output ]
[ Temperature ]
[ Forces and Pressure ]
[ Energy and Work ]
[ Plane Angle ]
[ Making a Quantity Dimensionless ]
ALADDIN makes extensive use of units as a means of clarifying matrix and finite element problem descriptions, and program output.
In ALADDIN, an engineering quantity is simply a numerical value followed by a set of units. The syntax for defining an engineering quantity is
number units
Here number is an integer or floating point number (e.g. 3, 3.0 or -3.1415926), and units
units = [Length]^a . [Mass]^b . [Time]^c . [Temp]^d
is a product of primary length, mass, time, and temperature units. The coefficients a, b, c, and d are exponents.
The multiply, divide, and exponentiation operators (i.e. *, * and ^) are used to build sets of units that are combinations of primary units.
Example 1 : The three statements
100 m^2; 2 m/sec; 2 kg*m^2;
define from left-to-right, an area 100 meters squared, a velocity of 2 meters per second, and a mass moment of inertia of 2 kilograms meters squared.
SI System of Units : The primary units for the SI system are:
SYSTEM BASIC UNIT SYMBOL EXAMPLE
=====================================================================
SI Length : meter m 2.3 m;
kilometer km 0.023 km;
centimeter cm 100 cm;
millimeter mm 1500 mm;
Mass : kilogram kg 1000 kg;
gram g 1500 g;
megagram Mg 1 Mg;
Time : second sec 10.0 sec;
millisecond ms 500 ms;
minute min 60 min;
hour hr 1 hr;
Temperature : centigrade deg_C 100 deg_C;
US System of Units : The primary units for the US system are:
SYSTEM BASIC UNIT SYMBOL EXAMPLE
=====================================================================
US Length : inch in 12 in;
foot ft 1 ft;
yard yard 80 yard;
mile mile 1 mile;
Mass : pound lb 2240 lb;
Time : second sec 10.0 sec;
millisecond ms 500 ms;
minute min 60 min;
hour hr 1 hr;
Temperature : fahrenheit deg_F
Supplementary Systems of Units : Planar angles measured in radians and degrees are supplementary units, and ALADDIN 2.0 will deal with them in a consistent way.
SYSTEM SUPPLEMENTARY UNIT SYMBOL EXAMPLE
=====================================================================
US and SI Planar Angle : radian rad 2*PI rad;
degree deg 360.0 deg;
Note : ALADDIN stores engineering quantities as unscaled values with respect to a set of reference units. By default, all quantities are stored internally in the SI system of units.
A quantity constant is simply a number followed by a set of units.
Example 2 : The statement
2 m
defines the quantity constant two meters.
A quantity variable is simply a quantity constant assigned to a variable name.
Example 3 : The statement
xAccel = 2 m/sec/sec;
assigns acceleration 2 m/sec^2 to the variable xAccel.
Note : Like most programming languages, the ALADDIN language has keywords and constants whose names are reserved for a special purposes -- keyword and constant names should not be used for variable names.
Basic output of quantity constants and quantity variables is handled by the print function.
Example 4 : The statement
print "The x coordinate is ", 2 m, "\n";
generates the output
The x coordinate is 2 m
In Version 1.0 of ALADDIN, the numerical component of a physical quantity will be written in the format 10.4g (this is a C programming convention). Roughly speaking, the g conversion specification will print a quantity as an integer when at all possible. Otherwise, the quantity will be printed as a floating point number, and if needed, in exponential format. Here are some examples:
Example 5 : The statement
print "Acceleration due to gravity is ", 32.2 ft/sec/sec , "\n";
generates the output
Acceleration due to gravity is 32.2 ft/sec^2
The command option
quantity ( < units > )
enables the printing of quantities with a desired scaling of units.
Example 6 : The script of code:
x = 30.5 m;
print "distance = ", x (ft), "\n";
generates the output:
distance = 100.1 ft
Example 7 : The script of code:
gravity = 9.81 m/sec^2;
print "gravity = ", gravity (ft/sec/sec), "\n";
generates the output:
gravity = 32.19 ft/sec/sec
Temperatures may be stored and manipulated in the SI and US systems of units.
SYSTEM BASIC UNIT SYMBOL EXAMPLE
============================================================
SI Centigrade deg_C 32 deg_C;
US Fahreheit deg_F 32 deg_F;
Example 8 : The statements
AverageTemp = 10 deg_C;
print "Average Daily Temperature = ", AverageTemp, "\n";
print "Average Daily Temperature = ", AverageTemp (deg_F), "\n";
generate the output
Average Daily Temperature = 10 deg_C
Average Daily Temperature = 50 deg_F
Example 9 : The statements
uniform_load = 40 N/m;
pressure_load = 20 kPa;
print "SI Units : Uniform loading = ", uniform_load, "\n";
print " Presure loading = ", pressure_load, "\n";
print "US Units : Uniform loading = ", uniform_load (lbf/ft), "\n";
print " Presure loading = ", pressure_load (psi), "\n"
generate the output
SI Units : Uniform loading = 40 N/m
Presure loading = 20 kPa
US Units : Uniform loading = 2.741 lbf/ft
Presure loading = 2.901 psi
Note : Text in this section applies to ALADDIN 2.0 (scheduled for release in July 1997).
In engineering terms, "work" is the dot product of a force moving through a distance.
SYSTEM BASIC UNIT SYMBOL EXAMPLE
============================================================
SI Joule Jou 100 Jou;
Example 10 : In this example we compute the potential energy and kinetic energy of a mass-spring system. The script of input:
distance = 2 cm; stiffness = 20 N/cm;
velocity = 1 m/sec; mass = 3 kg;
print "Potential Energy = ", 1/2*stiffness*distance^2 (Jou), "\n";
print "Kinetic Energy = ", 1/2*mass*velocity^2 (Jou), "\n";
generate the output
Potential Energy = 0.4 Jou
Kinetic Energy = 1.5 Jou
Units of N.m are compatible with Jou.
Note : Text in this section applies to ALADDIN 2.0 (scheduled for release in July 1997).
Planar angles are measured in units of radians and degrees.
Example 11 : The statements
w = 0.5*PI rad/sec;
print "Circular Freq = ", w, "\n";
print "Circular Freq = ", w (deg/sec), "\n";
print "Period = ", (2*PI rad)/w, "\n"
generate the output
Circular Freq = 1.571 rad/sec
Circular Freq = 90 deg/sec
Period = 4 sec
In the development of algorithms to solve engineering problems, sometimes it is necessary to remove the units from a physical quantity. That is why ALADDIN has a built in function QDimenLess() which removes units from quantities, as demonstrated by the following:
Example 12 : The script of code:
print "MAKE A QUANTITY DIMENSIONLESS \n";
x = 1 N; y = 1 cm/sec;
z = QDimenLess(x); u = QDimenLess(y);
print "x (with dimen) = ", x,"\n";
print "y (with dimen) = ", y,"\n";
print "x (without dimen) = ", z,"\n";
print "y (without dimen) = ", u,"\n";
generates the output:
MAKE A QUANTITY DIMENSIONLESS
x (with dimen) = 1 N
y (with dimen) = 0.01 m/sec
x (without dimen) = 1
y (without dimen) = 0.01