## Sumerian Workcrew & Payroll and eTCL Slot Calculator Demo Example edit

This page is under development. Comments are welcome, but please load any comments in the comments section at the bottom of the page. Please include your wiki MONIKER in your comment with the same courtesy that I will give you. Its very hard to reply intelligibly without some background of the correspondent. Thanks,goldPage contents

gold Here is some eTCL starter code for calculating workcrews and materials from dimensions of ancient Sumerian buildings. The impetus for these calculations was checking reed and mud brick construction in some accounts from UrIII. Most of the testcases involve replicas or models, using assumptions and rules of thumb.The eTCL calculator is using proportions from a family home or apartment of 8 sar bricks to develop a workcrew report. These workcrew reports appear to be issued on a daily basis for payment of workcrews, but do not present a complete picture of the property. Sometimes the deeds, wills, and court cases will give more details of the property walls and boundaries. Not all features or lines shown in the eTCL calculator may be found in an individual accounting report.The average Sumerian mudbrick house was about 90 sq. meters, and the average room size was 3 meters width by 3.65 meters length,3* 3.65, or about 10.95 square meters (from several excavations). The coefficient 20 E2 DU3.A (house build work in base 60) was 20/60 sar or 10.6 sqm, the size of a room or family home apartment. The Sumerian mudbrick houses generally contained rooms of 11 square meters built around a central courtyard. For a testcase, the general guidelines suggest about 6 rooms (3*3.6 m.) on both sides of a central courtyard about 5 meters wide.The standard room interior seems to be a rectangle of 1.2:1 ratio of sides. The room was 6by7 cubits. Possibly, the 1.2:1 was developed from the intervals of 7:6 bricks of square cubits. From the P. theorem, the diagonal would be sqrt(6*6+7*7) or 9.219 cubits. The coefficient igigub siliptum of 1_21 (base 60) seems to refer to the diagonal from a 1.2:1 rectangle or room. The siliptum coefficient converts to 1+21/60, 81/60, and decimal 1.35. The calculation 7*(81/60) gives 9.45 and 9.219*(60/81) gives 6.8, rough approximations to P. theorem. The approximations are about 1-(9.219/9.45), 2.4 percent off. The interior surface area was 6*7 , 42 square cubits. The coefficient was 20/60 sar or 48 square cubits. If one adds a brick width of 0.5 cubit to both sides of the room, then 6.6*7.5 gives 48.75, approximation of the coefficient. Possibly, 20/60 sar refers to the exterior of the room.The sig du brick cited in the text is probably the sun dried mud brick of L/W/T 0.5/0.5/.1 meters. With 8 sar of bricks from the text, the volume of sig du brick should be 8*720*0.5*0.5*.1 or 144 cubic meters. The brick volume can be checked from the number of 8 workers mixing the mortar and the rule that 1/6 times the volume of brick equals the volume of mortar. The "6 igi-gub iz-zi" is called the constant of the wall and inversed is the ratio of mortar volume to brick volume as 1/6 (noted by Robson). The mortar volume equals workers times mortar volume quota of 3 c.m. per day, 8*3 or 24 c.m. So the approximate brick volume would be workers times mortar volume quota divided by the mortar/brick volume ratio (1/6), (8*3)/(1/6) or 144 c.m. The volume formula derived from the workers*mortar quota/(brick/mortar ratio) is probably accurate +- 10 percent.After each line about reed bundles, there is line about mixing mud mortar which seems associated: <9 workers: 90 reed bundles for mats: 3 workers to mix mortar> and <18 workers: 180 reed bundles:6 workers to mix mortar>. These can be used to derive proportions for reed/clay uses. The daily quota for clay mixing was 3 cubic meters per workday. The reed mats may have been used in the foundation and spread with mud. 90 reed bundles approximates 90 mats of one square meter. As described the house was about 6.5*7.5 cubits exterior, 48 square meters. 90 mats would be 90/48, roughly a double layer of mats. The mat bundles/mud volume would be 90 bundles/(3 workers*3) or 10 bundles per cubic meter of mud. The loose reeds may have been used after a brick course of 3 cubits high and spread with mud to tie the bricks together. The loose reed bundles/mud volume would be 180 bundles/(6 workers*3) or 10 reed bundles per cubic meter of mud.Lets look at the coefficient "6_40 igi-gub e-kisib", the inverse capacity constant of a house, relating sars and gurs to the standard room. The gist of the problem is to find the correct power or value of 6_40 in base 60. In metric units, the volume of the standard room would be 6*7*6 meters, 252 cubic meters. Since a volume gur equals 0.3 c.m., the volume of the room would be 252/0.3 or 840 gurs. In Sumerian sar units, the volume sars would be (6/12)*(7/12)*6 or decimal 1.75 sars.### Pseudocode and Equations

area = [* length width ] # square meters Sumerian price in silver = [/ liters 300.] Sumerian price in liters grain = [* silver 300.] # 1 silver piece = 1 gur = 300 liters of grain liters = [* volume_in_cubic_cm .001] price? = raw materials + labor + profit price? = raw materials + heat process price? = raw materials + labor average price per unit = revenue / units sold

### Table 1,

### Testcases Section

In planning any software, it is advisable to gather a number of testcases to check the results of the program. The math for the testcases can be checked by pasting statements in the TCL console. Aside from the TCL calculator display, when one presses the report button on the calculator, one will have console show access to the capacity functions (subroutines).#### Testcase 1

small house | printed in | TCL WIKI format |
---|---|---|

testcase number: | 1 | |

building length: | 3.8 | |

building width meters: | 3.2 | |

building height meters: | 3. | |

building thickness meters: | 1.2 | |

material volume meters**3: | 50.4 | |

brick volume meters**3: | 0.00871 | |

number of bricks: | 5785.123 | |

8.034 | brick sars, 720 bricks per sar: |

### Sumerian Workcrew Report

24 | workers making bricks: 8 brick sar |

16 | workers carry bricks: 60 ninda original |

8 | workers mix clay for mortar: |

9 | workers carry reeds : 90 bundles original |

3 | workers mix clay for mortar: |

18 | workers carry reed bundles: 180 b. original |

6 | workers mix clay for mortar: |

84 | total workdays: |

House ordered by Lugal (prince) Lu-Sara | |

foreman Lu-Sinnar | |

scribe Ur-Kul | |

seal |

### Screenshots Section

#### figure 1.

### References:

- Cocquerillat, D. 1968. Palmearies et cultures de l’Enna d’Uruk (559–520).
- Cuneiform Digital Library Journal, search on Equivalency Values
- Ur III Equivalency Values[1]
- Especially, the Ur III Equivalency Values for dates sections.
- The Sumerian keywords search on the cdli
- are very effective, but major size files to download

## Appendix Code edit

### appendix TCL programs and scripts

# pretty print from autoindent and ased editor # Sumerian date tree production calculator # pretty print from autoindent and ased editor # Sumerian construction workcrew report calculator # written on Windows XP on eTCL # working under TCL version 8.5.6 and eTCL 1.0.1 # gold on TCL WIKI , 14jun2014 package require Tk namespace path {::tcl::mathop ::tcl::mathfunc} frame .frame -relief flat -bg aquamarine4 pack .frame -side top -fill y -anchor center set names {{} {length meters:} } lappend names {width meters:} lappend names {height meters : } lappend names {wall thickness meters: } lappend names {answer: material cubic meters} lappend names {vol of Sumerian bricks cubic meters:} lappend names {number of Sumerian bricks: } foreach i {1 2 3 4 5 6 7} { label .frame.label$i -text [lindex $names $i] -anchor e entry .frame.entry$i -width 35 -textvariable side$i grid .frame.label$i .frame.entry$i -sticky ew -pady 2 -padx 1 } proc volx { aa bb cc } { set volem [* $aa $bb $cc ] return $volem } proc about {} { set msg "Calculator for Sumerian Workcrew Report from TCL WIKI, written on eTCL " tk_messageBox -title "About" -message $msg } proc calculate { } { global answer2 global side1 side2 side3 side4 side5 global side6 side7 testcase_number global tlength global tlengthsq surfacearea global tlengthx global brick1 brick2 brick3 brick4 brick5 global brick6 brick6 brick7 brick8 brick9 global brick10 incr testcase_number set tlength [* $side1 1. ] set twidth [* $side2 1. ] set theight [* $side3 1. ] set tthickness [* $side4 1. ] set brickl 0.33 set brickw 0.33 set brickt 0.08 set brickvolx [volx 0.33 0.33 0.08] set wallside [volx $tlength $theight $tthickness] set wallfront [volx $twidth $theight $tthickness] set totalvolx [+ [* $wallside 2. ] [* $wallfront 2. ]] set brickvol [* 0.33 0.33 0.08] set bricknumx [/ $totalvolx $brickvol ] set bricksar [/ $bricknumx 720. ] set brick2 [int [* $bricksar [/ 24. 8. ]]] set brick1 $bricksar set brick3 [int [* $bricksar [/ 16. 8. ]]] set brick4 [int [* $bricksar [/ 8. 8. ]]] set brick5 [int [* $bricksar [/ 9. 8. ]]] set brick6 [int [* $bricksar [/ 3. 8. ]]] set brick7 [int [* $bricksar [/ 18. 8. ]]] set brick8 [int [* $bricksar [/ 6. 8. ]]] set brick10 [+ $brick2 $brick3 $brick4 $brick5 $brick6 $brick7 $brick8 ] set side5 $totalvolx set side6 $brickvol set side7 $bricknumx } proc fillup {aa bb cc dd ee ff gg} { .frame.entry1 insert 0 "$aa" .frame.entry2 insert 0 "$bb" .frame.entry3 insert 0 "$cc" .frame.entry4 insert 0 "$dd" .frame.entry5 insert 0 "$ee" .frame.entry6 insert 0 "$ff" .frame.entry7 insert 0 "$gg"} proc clearx {} { foreach i {1 2 3 4 5 6 7} { .frame.entry$i delete 0 end } } proc reportx {} { global side1 side2 side3 side4 side5 global side6 side7 testcase_number global tlengthsq surfacearea global tlength global brick1 brick2 brick3 brick4 brick5 global brick6 brick6 brick7 brick8 brick9 global brick10 console show; puts "%|table| printed in|TCL WIKI format |% " puts "&|testcase number:| $testcase_number| |& " puts "&|building length:| $side1| |& " puts "&|building width meters: |$side2| |& " puts "&|building height meters: |$side3| |& " puts "&|building thickness meters: | $side4| |& " puts "&|material volume meters**3: |$side5| |& " puts "&|brick volume meters**3: |$side6| |& " puts "&|number of bricks: | $side7| |& " puts "&|$brick1|brick sars, 720 bricks per sar:|& " puts "*** Sumerian Workcrew Report*** " puts "&|$brick2|workers making bricks:[int $brick1] brick sar|& " puts "&|$brick3|workers carry bricks: 60 ninda original|& " puts "&|$brick4|workers mix clay for mortar: |& " puts "&|$brick5|workers carry reeds : 90 bundles original|& " puts "&|$brick6|workers mix clay for mortar: |& " puts "&|$brick7|workers carry reed bundles: 180 b. original |& " puts "&|$brick8|workers mix clay for mortar: |& " puts "&|$brick10|total workdays: |& " puts "&| House ordered by Lugal (prince) Lu-Sara | |& " puts "&| foreman Lu-Sinnar | |& " puts "&| scribe Ur-Kul | |& " puts "&| seal | |& " } frame .buttons -bg aquamarine4 ::ttk::button .calculator -text "Solve" -command { calculate } ::ttk::button .test2 -text "Testcase1" -command {clearx;fillup 3.8 3.2 3. 1.2 50.4 .0087 5785. } ::ttk::button .test3 -text "Testcase2" -command {clearx;fillup 3.6 3. 3. 1.2 47.5 .0088 5454. } ::ttk::button .test4 -text "Testcase3" -command {clearx;fillup 30. 10. 3. 1.2 288. .0087 33050. } ::ttk::button .clearallx -text clear -command {clearx } ::ttk::button .about -text about -command about ::ttk::button .cons -text report -command { reportx } ::ttk::button .exit -text exit -command {exit} pack .calculator -in .buttons -side top -padx 10 -pady 5 pack .clearallx .cons .about .exit .test4 .test3 .test2 -side bottom -in .buttons grid .frame .buttons -sticky ns -pady {0 10} . configure -background aquamarine4 -highlightcolor brown -relief raised -border 30 wm title . "Sumerian Workcrew Report "

### Pushbutton Operation

For the push buttons, the recommended procedure is push testcase and fill frame, change first three entries etc, push solve, and then push report. Report allows copy and paste from console.For testcases in a computer session, the eTCL calculator increments a new testcase number internally, eg. TC(1), TC(2) , TC(3) , TC(N). The testcase number is internal to the calculator and will not be printed until the report button is pushed for the current result numbers (which numbers will be cleared on the next solve button.) The command { calculate; reportx } or { calculate ; reportx; clearx } can be added or changed to report automatically. Another wrinkle would be to print out the current text, delimiters, and numbers in a TCL wiki style table asputs " %| testcase $testcase_number | value| units |comment |%" puts " &| volume| $volume| cubic meters |based on length $side1 and width $side2 |&"

gold This page is copyrighted under the TCL/TK license terms, this license.

## Comments Section edit

Please place any comments here, Thanks.