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.


Primary units may be specified in both the SI and US systems.

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.


   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:

    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:

    x (with dimen)    =          1 N 
    y (with dimen)    =       0.01 m/sec 
    x (without dimen) =          1 
    y (without dimen) =       0.01 

Developed in April 1996 by Mark Austin
Last Modified February 14, 1997
Copyright © 1996-1997, Mark Austin, Department of Civil Engineering, University of Maryland