# Definition and Printing of Quantities

ALADDIN makes extensive use of units as a means of clarifying matrix and finite element problem descriptions, and program output.

### CONSTRUCTION OF ENGINEERING QUANTITIES

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.

### SYSTEMS OF UNITS

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.

```   SYSTEM        SUPPLEMENTARY UNIT       SYMBOL           EXAMPLE
=====================================================================

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.

### QUANTITY CONSTANTS AND VARIABLES

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.

### PRINTING QUANTITIES

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
```

### CASTING QUANTITY OUTPUT

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
```

### TEMPERATURE

Temperatures may be stored and manipulated in the SI and US systems of units.

```    SYSTEM     BASIC UNIT              SYMBOL            EXAMPLE
============================================================

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
```

### FORCES AND PRESSURE

Example 9 : The statements

```    uniform_load  = 40 N/m;

```

generate the output

```    SI Units : Uniform loading =         40 N/m
```

### ENERGY AND WORK

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.

### PLANE ANGLE

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
```

### MAKING A QUANTITY DIMENSIONLESS

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
```

Developed in April 1996 by Mark Austin