Changeset - ec439fed4af8
[Not reviewed]
default
0 9 0
Michael Guravage - 15 years ago 2010-10-15 19:27:29
michael.guravage@cwi.nl
Synchronise leaf movie frame and cell export data timestep references.

--
user: Michael Guravage <michael.guravage@cwi.nl>
branch 'default'
changed doc/v1.html
changed doc/v1.pdf
changed doc/v1.rst
changed src/ChangeLog
changed src/VirtualLeaf.cpp
changed src/canvas.cpp
changed src/canvas.h
changed src/mainbase.h
changed src/mesh.h
9 files changed with 915 insertions and 239 deletions:
0 comments (0 inline, 0 general)
doc/v1.html
Show inline comments
 
@@ -556,7 +556,7 @@ LanguageError: IOError: [Errno 2] No tra
 
<li>make install</li>
 
<li>cd ..</li>
 
<li>wget <a class="reference external" href="http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-x11-gpl-4.7.7.tar.gz">http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-x11-gpl-4.7.7.tar.gz</a></li>
 
<li>tar xzf PyQt-x11-gpl-4.7.7</li>
 
<li>tar xzf PyQt-x11-gpl-4.7.7.tar.gz</li>
 
<li>cd PyQt-x11-gpl-4.7.7</li>
 
<li>python configure.py</li>
 
<li>make</li>
 
@@ -594,6 +594,80 @@ still be justified - though they become 
 
introduce the new schema changes.</p>
 
</div>
 
</div>
 
<div class="section" id="wednesday-13-october-2010">
 
<h1>Wednesday 13 October 2010</h1>
 
<p>Tweaked <tt class="docutils literal">.bashrc</tt> and <tt class="docutils literal">virtualenvwrapper.sh</tt> to facilitate
 
virtualenv and virtualenvwrapper - many unbound variables!</p>
 
<p>Pushed recent changes to repository from where Roeland can retrieve
 
and test them.</p>
 
<p>OK. RhodeCode RC4 works out of the box, excepting cutehg and PyQt4.</p>
 
</div>
 
<div class="section" id="friday-15-october-2010">
 
<h1>Friday 15 October 2010</h1>
 
<div class="section" id="id1">
 
<h2>Rhodecode</h2>
 
<p>Installing RhodeCode locally on the nhypnos is a real pain. In
 
addition to the previous list of dependencies, for the caterpie, add
 
these for the nhypnos:</p>
 
<ol class="arabic simple">
 
<li>Python</li>
 
<li>Bison (for sip)</li>
 
<li>Flex (for sip)</li>
 
<li>m4 (for Bison)</li>
 
<li>Qt (for PyQt)</li>
 
<li>GLIBCXX_3.4.9 (for Qt) - I draw the line at (re)installing GCC!</li>
 
</ol>
 
<p>OK. Forget sip bison, flex, m4, Qt and the rest. Let's install just
 
the minimum.</p>
 
<p>First, install sqlite; we'll see in a minute that Python requires
 
it. The sources are available at: <a class="reference external" href="http://www.sqlite.org/download.html">http://www.sqlite.org/download.html</a>.</p>
 
<p>Second, install Python. My initial attempt complained it was missing
 
the following bits and pieces:</p>
 
<pre class="literal-block">
 
Python build finished, but the necessary bits to build these modules were not found:
 
_bsddb             _sqlite3           _ssl
 
_tkinter           bsddb185           dl
 
imageop            readline           sunaudiodev
 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
 
</pre>
 
<p>So install sqlite first. And, since Python's configure script doesn't
 
have an option for it, I had to tweak <tt class="docutils literal">setup.py</tt> to enumerate the
 
path where it would find sqlite;</p>
 
<p>Third, install RhodeCode. I first installed it using easy_install, but
 
while the result worked, the changelog view did not display the
 
branch/merge graphics. I then cloned the code from its bitbucket repository:</p>
 
<pre class="literal-block">
 
clone https://litsol&#64;bitbucket.org/marcinkuzminski/rhodecode
 
</pre>
 
<p>Replacing the egg installed by easy_install by this code does display
 
the branch/merge graphics.</p>
 
<p>Fourth, setup and serve rhodecode. Following the instructions posted
 
online at: <a class="reference external" href="http://packages.python.org/RhodeCode/setup.html#setup">http://packages.python.org/RhodeCode/setup.html#setup</a> works as advertised:</p>
 
<pre class="literal-block">
 
paster make-config RhodeCode production.ini
 
paster setup-app production.ini
 
paster serve production.ini
 
</pre>
 
<p>All that's left is an apache rewrite rule directing
 
virtualleaf.project.cwi.nl/repository to port 5000, or whaterver we
 
change it to, on the nhypnos.</p>
 
</div>
 
<div class="section" id="id2">
 
<h2>The Virtual Leaf</h2>
 
<p>Added <tt class="docutils literal">incrementIterations()</tt>, <tt class="docutils literal">getIterations()</tt> and <tt class="docutils literal">int
 
iterations</tt> to mesh.h. <tt class="docutils literal">incrementIterations()</tt> is called in TIMESTEP in
 
VirtualLeaf.cpp. The actual counter, <tt class="docutils literal">iterations</tt> is initalized to
 
zero in the Mesh class constructor.</p>
 
<p>The iterations are inquired in two places: for the frame count in
 
<tt class="docutils literal"><span class="pre">MainBase::Plot</span></tt> in <tt class="docutils literal">VirtualLeaf.cpp` and for the export cell data
 
interval in <span class="pre">``Main::TimeStepWrap</span></tt> in <tt class="docutils literal">canvas.cpp</tt>.</p>
 
<p>The questions remain: Should we use this count, and if yes, where
 
should it be incremented? The previous count was incremented in
 
<tt class="docutils literal"><span class="pre">Main::TimeStepWrap</span></tt>. Or should we simply use
 
<tt class="docutils literal">(int)mesh.getTime()</tt>? Since this is not an ordinal count, the
 
results look strange.</p>
 
</div>
 
</div>
 
</div>
 
<div class="footer">
 
<hr class="footer" />
doc/v1.pdf
Show inline comments
 
@@ -28,12 +28,12 @@ endobj
 
% 'Page1': class PDFPage 
 
4 0 obj
 
% Page dictionary
 
<< /Contents 56 0 R
 
<< /Contents 63 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 55 0 R
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
@@ -56,12 +56,12 @@ endobj
 
% 'Page2': class PDFPage 
 
6 0 obj
 
% Page dictionary
 
<< /Contents 57 0 R
 
<< /Contents 64 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 55 0 R
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
@@ -187,12 +187,12 @@ 14 0 obj
 
 11 0 R
 
 12 0 R
 
 13 0 R ]
 
 /Contents 58 0 R
 
 /Contents 65 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 55 0 R
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
@@ -350,12 +350,12 @@ 24 0 obj
 
 21 0 R
 
 22 0 R
 
 23 0 R ]
 
 /Contents 59 0 R
 
 /Contents 66 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 55 0 R
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
@@ -381,16 +381,67 @@ 25 0 obj
 
 /Subtype /Link
 
 /Type /Annot >>
 
endobj
 
% 'Annot.NUMBER18': class PDFDictionary 
 
26 0 obj
 
<< /A << /S /URI
 
 /Type /Action
 
 /URI (http://www.sqlite.org/download.html) >>
 
 /Border [ 0
 
 0
 
 0 ]
 
 /Rect [ 62.69291
 
 123.5936
 
 219.9729
 
 135.5936 ]
 
 /Subtype /Link
 
 /Type /Annot >>
 
endobj
 
% 'Page5': class PDFPage 
 
26 0 obj
 
27 0 obj
 
% Page dictionary
 
<< /Annots [ 25 0 R ]
 
 /Contents 60 0 R
 
<< /Annots [ 25 0 R
 
 26 0 R ]
 
 /Contents 67 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 55 0 R
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
 /ImageB
 
 /ImageC
 
 /ImageI ] >>
 
 /Rotate 0
 
 /Trans <<  >>
 
 /Type /Page >>
 
endobj
 
% 'Annot.NUMBER19': class PDFDictionary 
 
28 0 obj
 
<< /A << /S /URI
 
 /Type /Action
 
 /URI (http://packages.python.org/RhodeCode/setup.html#setup) >>
 
 /Border [ 0
 
 0
 
 0 ]
 
 /Rect [ 62.69291
 
 547.1262
 
 318.3929
 
 559.1262 ]
 
 /Subtype /Link
 
 /Type /Annot >>
 
endobj
 
% 'Page6': class PDFPage 
 
29 0 obj
 
% Page dictionary
 
<< /Annots [ 28 0 R ]
 
 /Contents 68 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 62 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
@@ -401,345 +452,395 @@ 26 0 obj
 
 /Trans <<  >>
 
 /Type /Page >>
 
endobj
 
% 'R27': class PDFCatalog 
 
27 0 obj
 
% 'R30': class PDFCatalog 
 
30 0 obj
 
% Document Root
 
<< /Outlines 29 0 R
 
 /PageLabels 61 0 R
 
<< /Outlines 32 0 R
 
 /PageLabels 69 0 R
 
 /PageMode /UseNone
 
 /Pages 55 0 R
 
 /Pages 62 0 R
 
 /Type /Catalog >>
 
endobj
 
% 'R28': class PDFInfo 
 
28 0 obj
 
% 'R31': class PDFInfo 
 
31 0 obj
 
<< /Author ()
 
 /CreationDate (D:20101013132920-01'00')
 
 /CreationDate (D:20101015155138-01'00')
 
 /Keywords ()
 
 /Producer (ReportLab http://www.reportlab.com)
 
 /Subject (\(unspecified\))
 
 /Title (The Virtual Leaf) >>
 
endobj
 
% 'R29': class PDFOutlines 
 
29 0 obj
 
<< /Count 28
 
 /First 30 0 R
 
 /Last 52 0 R
 
% 'R32': class PDFOutlines 
 
32 0 obj
 
<< /Count 33
 
 /First 33 0 R
 
 /Last 59 0 R
 
 /Type /Outlines >>
 
endobj
 
% 'Outline.0': class OutlineEntryObject 
 
30 0 obj
 
33 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 717.0236
 
 0 ]
 
 /Next 31 0 R
 
 /Parent 29 0 R
 
 /Next 34 0 R
 
 /Parent 32 0 R
 
 /Title (Friday 11 June 2010) >>
 
endobj
 
% 'Outline.1': class OutlineEntryObject 
 
31 0 obj
 
34 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 393.0236
 
 0 ]
 
 /Next 32 0 R
 
 /Parent 29 0 R
 
 /Prev 30 0 R
 
 /Next 35 0 R
 
 /Parent 32 0 R
 
 /Prev 33 0 R
 
 /Title (Friday 24 September 2010) >>
 
endobj
 
% 'Outline.2': class OutlineEntryObject 
 
32 0 obj
 
35 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 273.0236
 
 0 ]
 
 /Next 33 0 R
 
 /Parent 29 0 R
 
 /Prev 31 0 R
 
 /Next 36 0 R
 
 /Parent 32 0 R
 
 /Prev 34 0 R
 
 /Title (Monday 27 September 2010) >>
 
endobj
 
% 'Outline.3': class OutlineEntryObject 
 
33 0 obj
 
36 0 obj
 
<< /Count 11
 
 /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 174.0236
 
 0 ]
 
 /First 34 0 R
 
 /Last 44 0 R
 
 /Next 45 0 R
 
 /Parent 29 0 R
 
 /Prev 32 0 R
 
 /First 37 0 R
 
 /Last 47 0 R
 
 /Next 48 0 R
 
 /Parent 32 0 R
 
 /Prev 35 0 R
 
 /Title (Tuesday 5 October 20010) >>
 
endobj
 
% 'Outline.26.0': class OutlineEntryObject 
 
34 0 obj
 
% 'Outline.30.0': class OutlineEntryObject 
 
37 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 141.0236
 
 0 ]
 
 /Next 35 0 R
 
 /Parent 33 0 R
 
 /Next 38 0 R
 
 /Parent 36 0 R
 
 /Title (tutorial0.pro) >>
 
endobj
 
% 'Outline.26.1': class OutlineEntryObject 
 
35 0 obj
 
% 'Outline.30.1': class OutlineEntryObject 
 
38 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 753.0236
 
 0 ]
 
 /Next 36 0 R
 
 /Parent 33 0 R
 
 /Prev 34 0 R
 
 /Next 39 0 R
 
 /Parent 36 0 R
 
 /Prev 37 0 R
 
 /Title (auxingrowthplugin.h) >>
 
endobj
 
% 'Outline.26.2': class OutlineEntryObject 
 
36 0 obj
 
% 'Outline.30.2': class OutlineEntryObject 
 
39 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 693.0236
 
 0 ]
 
 /Next 37 0 R
 
 /Parent 33 0 R
 
 /Prev 35 0 R
 
 /Next 40 0 R
 
 /Parent 36 0 R
 
 /Prev 38 0 R
 
 /Title (VirtualLeaf.cpp) >>
 
endobj
 
% 'Outline.26.3': class OutlineEntryObject 
 
37 0 obj
 
% 'Outline.30.3': class OutlineEntryObject 
 
40 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 633.0236
 
 0 ]
 
 /Next 38 0 R
 
 /Parent 33 0 R
 
 /Prev 36 0 R
 
 /Next 41 0 R
 
 /Parent 36 0 R
 
 /Prev 39 0 R
 
 /Title (canvas.h) >>
 
endobj
 
% 'Outline.26.4': class OutlineEntryObject 
 
38 0 obj
 
% 'Outline.30.4': class OutlineEntryObject 
 
41 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 585.0236
 
 0 ]
 
 /Next 39 0 R
 
 /Parent 33 0 R
 
 /Prev 37 0 R
 
 /Next 42 0 R
 
 /Parent 36 0 R
 
 /Prev 40 0 R
 
 /Title (canvas.cpp) >>
 
endobj
 
% 'Outline.26.5': class OutlineEntryObject 
 
39 0 obj
 
% 'Outline.30.5': class OutlineEntryObject 
 
42 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 395.8236
 
 0 ]
 
 /Next 40 0 R
 
 /Parent 33 0 R
 
 /Prev 38 0 R
 
 /Next 43 0 R
 
 /Parent 36 0 R
 
 /Prev 41 0 R
 
 /Title (mesh.h) >>
 
endobj
 
% 'Outline.26.6': class OutlineEntryObject 
 
40 0 obj
 
% 'Outline.30.6': class OutlineEntryObject 
 
43 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 250.4814
 
 0 ]
 
 /Next 41 0 R
 
 /Parent 33 0 R
 
 /Prev 39 0 R
 
 /Next 44 0 R
 
 /Parent 36 0 R
 
 /Prev 42 0 R
 
 /Title (mesh.cpp) >>
 
endobj
 
% 'Outline.26.7': class OutlineEntryObject 
 
41 0 obj
 
% 'Outline.30.7': class OutlineEntryObject 
 
44 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 753.0236
 
 0 ]
 
 /Next 42 0 R
 
 /Parent 33 0 R
 
 /Prev 40 0 R
 
 /Next 45 0 R
 
 /Parent 36 0 R
 
 /Prev 43 0 R
 
 /Title (modelcatalogue.cpp) >>
 
endobj
 
% 'Outline.26.8': class OutlineEntryObject 
 
42 0 obj
 
% 'Outline.30.8': class OutlineEntryObject 
 
45 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 705.0236
 
 0 ]
 
 /Next 43 0 R
 
 /Parent 33 0 R
 
 /Prev 41 0 R
 
 /Next 46 0 R
 
 /Parent 36 0 R
 
 /Prev 44 0 R
 
 /Title (simplugin.h) >>
 
endobj
 
% 'Outline.26.9': class OutlineEntryObject 
 
43 0 obj
 
% 'Outline.30.9': class OutlineEntryObject 
 
46 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 611.8236
 
 0 ]
 
 /Next 44 0 R
 
 /Parent 33 0 R
 
 /Prev 42 0 R
 
 /Next 47 0 R
 
 /Parent 36 0 R
 
 /Prev 45 0 R
 
 /Title (simplugin.cpp) >>
 
endobj
 
% 'Outline.26.10': class OutlineEntryObject 
 
44 0 obj
 
% 'Outline.30.10': class OutlineEntryObject 
 
47 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 530.6236
 
 0 ]
 
 /Parent 33 0 R
 
 /Prev 43 0 R
 
 /Parent 36 0 R
 
 /Prev 46 0 R
 
 /Title (xmlwrite.cpp) >>
 
endobj
 
% 'Outline.4': class OutlineEntryObject 
 
45 0 obj
 
48 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 482.6236
 
 0 ]
 
 /Next 46 0 R
 
 /Parent 29 0 R
 
 /Prev 33 0 R
 
 /Next 49 0 R
 
 /Parent 32 0 R
 
 /Prev 36 0 R
 
 /Title (Wednesday 6 October 2010) >>
 
endobj
 
% 'Outline.5': class OutlineEntryObject 
 
46 0 obj
 
49 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 431.6236
 
 0 ]
 
 /Next 47 0 R
 
 /Parent 29 0 R
 
 /Prev 45 0 R
 
 /Next 50 0 R
 
 /Parent 32 0 R
 
 /Prev 48 0 R
 
 /Title (Thursday 7 October 2010) >>
 
endobj
 
% 'Outline.6': class OutlineEntryObject 
 
47 0 obj
 
50 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 368.6236
 
 0 ]
 
 /Next 48 0 R
 
 /Parent 29 0 R
 
 /Prev 46 0 R
 
 /Next 51 0 R
 
 /Parent 32 0 R
 
 /Prev 49 0 R
 
 /Title (Friday 8 October 2010) >>
 
endobj
 
% 'Outline.7': class OutlineEntryObject 
 
48 0 obj
 
51 0 obj
 
<< /Count 3
 
 /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 299.6236
 
 0 ]
 
 /First 49 0 R
 
 /Last 51 0 R
 
 /Next 52 0 R
 
 /Parent 29 0 R
 
 /Prev 47 0 R
 
 /First 52 0 R
 
 /Last 54 0 R
 
 /Next 55 0 R
 
 /Parent 32 0 R
 
 /Prev 50 0 R
 
 /Title (Monday 11 October 2010) >>
 
endobj
 
% 'Outline.27.0': class OutlineEntryObject 
 
49 0 obj
 
% 'Outline.31.0': class OutlineEntryObject 
 
52 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 266.6236
 
 0 ]
 
 /Next 50 0 R
 
 /Parent 48 0 R
 
 /Next 53 0 R
 
 /Parent 51 0 R
 
 /Title (Mercurial hooks) >>
 
endobj
 
% 'Outline.27.1': class OutlineEntryObject 
 
50 0 obj
 
% 'Outline.31.1': class OutlineEntryObject 
 
53 0 obj
 
<< /Dest [ 14 0 R
 
 /XYZ
 
 62.69291
 
 170.6236
 
 0 ]
 
 /Next 51 0 R
 
 /Parent 48 0 R
 
 /Prev 49 0 R
 
 /Next 54 0 R
 
 /Parent 51 0 R
 
 /Prev 52 0 R
 
 /Title (Mercurial Repositories) >>
 
endobj
 
% 'Outline.27.2': class OutlineEntryObject 
 
51 0 obj
 
% 'Outline.31.2': class OutlineEntryObject 
 
54 0 obj
 
<< /Dest [ 24 0 R
 
 /XYZ
 
 62.69291
 
 401.7994
 
 0 ]
 
 /Parent 48 0 R
 
 /Prev 50 0 R
 
 /Parent 51 0 R
 
 /Prev 53 0 R
 
 /Title (RE-INSTALL) >>
 
endobj
 
% 'Outline.8': class OutlineEntryObject 
 
52 0 obj
 
55 0 obj
 
<< /Count 2
 
 /Dest [ 26 0 R
 
 /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 606.0236
 
 0 ]
 
 /First 53 0 R
 
 /Last 54 0 R
 
 /Parent 29 0 R
 
 /Prev 48 0 R
 
 /First 56 0 R
 
 /Last 57 0 R
 
 /Next 58 0 R
 
 /Parent 32 0 R
 
 /Prev 51 0 R
 
 /Title (Tuesday 12 October 2010) >>
 
endobj
 
% 'Outline.28.0': class OutlineEntryObject 
 
53 0 obj
 
<< /Dest [ 26 0 R
 
% 'Outline.32.0': class OutlineEntryObject 
 
56 0 obj
 
<< /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 573.0236
 
 0 ]
 
 /Next 54 0 R
 
 /Parent 52 0 R
 
 /Next 57 0 R
 
 /Parent 55 0 R
 
 /Title (RhodeCode) >>
 
endobj
 
% 'Outline.28.1': class OutlineEntryObject 
 
54 0 obj
 
<< /Dest [ 26 0 R
 
% 'Outline.32.1': class OutlineEntryObject 
 
57 0 obj
 
<< /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 525.0236
 
 0 ]
 
 /Parent 52 0 R
 
 /Prev 53 0 R
 
 /Parent 55 0 R
 
 /Prev 56 0 R
 
 /Title (SED-ML L1V1RC1) >>
 
endobj
 
% 'R55': class PDFPages 
 
55 0 obj
 
% 'Outline.9': class OutlineEntryObject 
 
58 0 obj
 
<< /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 441.0236
 
 0 ]
 
 /Next 59 0 R
 
 /Parent 32 0 R
 
 /Prev 55 0 R
 
 /Title (Wednesday 13 October 2010) >>
 
endobj
 
% 'Outline.10': class OutlineEntryObject 
 
59 0 obj
 
<< /Count 2
 
 /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 342.0236
 
 0 ]
 
 /First 60 0 R
 
 /Last 61 0 R
 
 /Parent 32 0 R
 
 /Prev 58 0 R
 
 /Title (Friday 15 October 2010) >>
 
endobj
 
% 'Outline.33.0': class OutlineEntryObject 
 
60 0 obj
 
<< /Dest [ 27 0 R
 
 /XYZ
 
 62.69291
 
 309.0236
 
 0 ]
 
 /Next 61 0 R
 
 /Parent 59 0 R
 
 /Title (Rhodecode) >>
 
endobj
 
% 'Outline.33.1': class OutlineEntryObject 
 
61 0 obj
 
<< /Dest [ 29 0 R
 
 /XYZ
 
 62.69291
 
 442.3562
 
 0 ]
 
 /Parent 59 0 R
 
 /Prev 60 0 R
 
 /Title (The Virtual Leaf) >>
 
endobj
 
% 'R62': class PDFPages 
 
62 0 obj
 
% page tree
 
<< /Count 5
 
<< /Count 6
 
 /Kids [ 4 0 R
 
 6 0 R
 
 14 0 R
 
 24 0 R
 
 26 0 R ]
 
 27 0 R
 
 29 0 R ]
 
 /Type /Pages >>
 
endobj
 
% 'R56': class PDFStream 
 
56 0 obj
 
% 'R63': class PDFStream 
 
63 0 obj
 
% page stream
 
<< /Length 8892 >>
 
stream
 
@@ -1292,8 +1393,8 @@ Q
 
endstream
 
 
endobj
 
% 'R57': class PDFStream 
 
57 0 obj
 
% 'R64': class PDFStream 
 
64 0 obj
 
% page stream
 
<< /Length 4804 >>
 
stream
 
@@ -1473,8 +1574,8 @@ Q
 
endstream
 
 
endobj
 
% 'R58': class PDFStream 
 
58 0 obj
 
% 'R65': class PDFStream 
 
65 0 obj
 
% page stream
 
<< /Length 6652 >>
 
stream
 
@@ -1805,10 +1906,10 @@ Q
 
endstream
 
 
endobj
 
% 'R59': class PDFStream 
 
59 0 obj
 
% 'R66': class PDFStream 
 
66 0 obj
 
% page stream
 
<< /Length 14133 >>
 
<< /Length 14140 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
@@ -2297,7 +2398,7 @@ q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (tar xzf PyQt-x11-gpl-4.7.7) Tj T* ET
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (tar xzf PyQt-x11-gpl-4.7.7.tar.gz) Tj T* ET
 
Q
 
Q
 
q
 
@@ -2514,10 +2615,10 @@ Q
 
endstream
 
 
endobj
 
% 'R60': class PDFStream 
 
60 0 obj
 
% 'R67': class PDFStream 
 
67 0 obj
 
% page stream
 
<< /Length 3604 >>
 
<< /Length 7872 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
@@ -2673,6 +2774,239 @@ BT 1 0 0 1 0 40.82 Tm /F1 10 Tf 12 TL 1.
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 420.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Wednesday 13 October 2010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 390.0236 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm .521976 Tw 12 TL /F1 10 Tf 0 0 0 rg (Tweaked ) Tj /F3 10 Tf (.bashrc ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (virtualenvwrapper.sh ) Tj /F1 10 Tf (to facilitate virtualenv and virtualenvwrapper - many) Tj T* 0 Tw (unbound variables!) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 372.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Pushed recent changes to repository from where Roeland can retrieve and test them.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 354.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (OK. RhodeCode RC4 works out of the box, excepting cutehg and PyQt4.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 321.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Friday 15 October 2010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 291.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (Rhodecode) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 261.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL 4.18186 Tw (Installing RhodeCode locally on the nhypnos is a real pain. In addition to the previous list of) Tj T* 0 Tw (dependencies, for the caterpie, add these for the nhypnos:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 261.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 261.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 243.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (1.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Python) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 243.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 246.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 228.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (2.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Bison \(for sip\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 228.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 231.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 213.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (3.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Flex \(for sip\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 213.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 216.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 198.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (4.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (m4 \(for Bison\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 198.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 201.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 183.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (5.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Qt \(for PyQt\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 183.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 186.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 168.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (6.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (GLIBCXX_3.4.9 \(for Qt\) - I draw the line at \(re\)installing GCC!) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 168.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 168.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 150.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (OK. Forget sip bison, flex, m4, Qt and the rest. Let's install just the minimum.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 120.0236 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 3.99561 Tw 12 TL /F1 10 Tf 0 0 0 rg (First, install sqlite; we'll see in a minute that Python requires it. The sources are available at:) Tj T* 0 Tw 0 0 .501961 rg (http://www.sqlite.org/download.html) Tj 0 0 0 rg (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 102.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Second, install Python. My initial attempt complained it was missing the following bits and pieces:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 773.1969 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 205.6499 0 Td 12 TL /F1 10 Tf 0 0 0 rg (The Virtual Leaf) Tj T* -205.6499 0 Td ET
 
@@ -2689,52 +3023,203 @@ Q
 
endstream
 
 
endobj
 
% 'R61': class PDFPageLabels 
 
61 0 obj
 
% 'R68': class PDFStream 
 
68 0 obj
 
% page stream
 
<< /Length 4572 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
1 0 0 1 62.69291 688.7562 cm
 
q
 
q
 
.87797 0 0 .87797 0 0 cm
 
q
 
1 0 0 1 6.6 7.517338 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 534 72 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 53.71 Tm /F3 10 Tf 12 TL (Python build finished, but the necessary bits to build these modules were not found:) Tj T* (_bsddb             _sqlite3           _ssl) Tj T* (_tkinter           bsddb185           dl) Tj T* (imageop            readline           sunaudiodev) Tj T* (To find the necessary bits, look in setup.py in detect_modules\(\) for the module's name.) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 656.7562 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 1.528876 Tw 12 TL /F1 10 Tf 0 0 0 rg (So install sqlite first. And, since Python's configure script doesn't have an option for it, I had to tweak) Tj T* 0 Tw /F3 10 Tf (setup.py ) Tj /F1 10 Tf (to enumerate the path where it would find sqlite;) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 626.7562 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL .757318 Tw (Third, install RhodeCode. I first installed it using easy_install, but while the result worked, the changelog) Tj T* 0 Tw (view did not display the branch/merge graphics. I then cloned the code from its bitbucket repository:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 593.5562 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 24 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 5.71 Tm /F3 10 Tf 12 TL (clone https://litsol@bitbucket.org/marcinkuzminski/rhodecode) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 573.5562 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Replacing the egg installed by easy_install by this code does display the branch/merge graphics.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 543.5562 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 12.02698 Tw 12 TL /F1 10 Tf 0 0 0 rg (Fourth, setup and serve rhodecode. Following the instructions posted online at:) Tj T* 0 Tw 0 0 .501961 rg (http://packages.python.org/RhodeCode/setup.html#setup ) Tj 0 0 0 rg (works as advertised:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 486.3562 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 48 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 29.71 Tm /F3 10 Tf 12 TL (paster make-config RhodeCode production.ini) Tj T* (paster setup-app production.ini) Tj T* (paster serve production.ini) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 454.3562 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL 3.12229 Tw (All that's left is an apache rewrite rule directing virtualleaf.project.cwi.nl/repository to port 5000, or) Tj T* 0 Tw (whaterver we change it to, on the nhypnos.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 424.3562 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (The Virtual Leaf) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 382.3562 cm
 
q
 
BT 1 0 0 1 0 28.82 Tm 7.784252 Tw 12 TL /F1 10 Tf 0 0 0 rg (Added ) Tj /F3 10 Tf (incrementIterations\(\)) Tj /F1 10 Tf (, ) Tj /F3 10 Tf (getIterations\(\) ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (int iterations ) Tj /F1 10 Tf (to mesh.h.) Tj T* 0 Tw .443976 Tw /F3 10 Tf (incrementIterations\(\) ) Tj /F1 10 Tf (is called in TIMESTEP in VirtualLeaf.cpp. The actual counter, ) Tj /F3 10 Tf (iterations) Tj T* 0 Tw /F1 10 Tf (is initalized to zero in the Mesh class constructor.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 340.3562 cm
 
q
 
BT 1 0 0 1 0 28.82 Tm 7.118443 Tw 12 TL /F1 10 Tf 0 0 0 rg (The iterations are inquired in two places: for the frame count in ) Tj /F3 10 Tf (MainBase::Plot ) Tj /F1 10 Tf (in) Tj T* 0 Tw .209974 Tw /F3 10 Tf (VirtualLeaf.cpp` and for the export cell data interval in ``Main::TimeStepWrap) Tj T* 0 Tw /F1 10 Tf (in ) Tj /F3 10 Tf (canvas.cpp) Tj /F1 10 Tf (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 298.3562 cm
 
q
 
BT 1 0 0 1 0 28.82 Tm 2.41061 Tw 12 TL /F1 10 Tf 0 0 0 rg (The questions remain: Should we use this count, and if yes, where should it be incremented? The) Tj T* 0 Tw 9.067976 Tw (previous count was incremented in ) Tj /F3 10 Tf (Main::TimeStepWrap) Tj /F1 10 Tf (. Or should we simply use) Tj T* 0 Tw /F3 10 Tf (\(int\)mesh.getTime\(\)) Tj /F1 10 Tf (? Since this is not an ordinal count, the results look strange.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 773.1969 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 205.6499 0 Td 12 TL /F1 10 Tf 0 0 0 rg (The Virtual Leaf) Tj T* -205.6499 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 56.69291 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 238.1649 0 Td (6) Tj T* -238.1649 0 Td ET
 
Q
 
Q
 
 
 
endstream
 
 
endobj
 
% 'R69': class PDFPageLabels 
 
69 0 obj
 
% Document Root
 
<< /Nums [ 0
 
 62 0 R
 
 70 0 R
 
 1
 
 63 0 R
 
 71 0 R
 
 2
 
 64 0 R
 
 72 0 R
 
 3
 
 65 0 R
 
 73 0 R
 
 4
 
 66 0 R ] >>
 
 74 0 R
 
 5
 
 75 0 R ] >>
 
endobj
 
% 'R62': class PDFPageLabel 
 
62 0 obj
 
% 'R70': class PDFPageLabel 
 
70 0 obj
 
% None
 
<< /S /D
 
 /St 1 >>
 
endobj
 
% 'R63': class PDFPageLabel 
 
63 0 obj
 
% 'R71': class PDFPageLabel 
 
71 0 obj
 
% None
 
<< /S /D
 
 /St 2 >>
 
endobj
 
% 'R64': class PDFPageLabel 
 
64 0 obj
 
% 'R72': class PDFPageLabel 
 
72 0 obj
 
% None
 
<< /S /D
 
 /St 3 >>
 
endobj
 
% 'R65': class PDFPageLabel 
 
65 0 obj
 
% 'R73': class PDFPageLabel 
 
73 0 obj
 
% None
 
<< /S /D
 
 /St 4 >>
 
endobj
 
% 'R66': class PDFPageLabel 
 
66 0 obj
 
% 'R74': class PDFPageLabel 
 
74 0 obj
 
% None
 
<< /S /D
 
 /St 5 >>
 
endobj
 
% 'R75': class PDFPageLabel 
 
75 0 obj
 
% None
 
<< /S /D
 
 /St 6 >>
 
endobj
 
xref
 
0 67
 
0 76
 
0000000000 65535 f
 
0000000113 00000 n
 
0000000233 00000 n
 
@@ -2761,55 +3246,64 @@ 0000005249 00000 n
 
0000005551 00000 n
 
0000005797 00000 n
 
0000006185 00000 n
 
0000006436 00000 n
 
0000006738 00000 n
 
0000006897 00000 n
 
0000007125 00000 n
 
0000007251 00000 n
 
0000007430 00000 n
 
0000007629 00000 n
 
0000007828 00000 n
 
0000008072 00000 n
 
0000008248 00000 n
 
0000008445 00000 n
 
0000008638 00000 n
 
0000008824 00000 n
 
0000009012 00000 n
 
0000009196 00000 n
 
0000009382 00000 n
 
0000009579 00000 n
 
0000009769 00000 n
 
0000009962 00000 n
 
0000010135 00000 n
 
0000010335 00000 n
 
0000010534 00000 n
 
0000010731 00000 n
 
0000010974 00000 n
 
0000011153 00000 n
 
0000011354 00000 n
 
0000011525 00000 n
 
0000011754 00000 n
 
0000011927 00000 n
 
0000012086 00000 n
 
0000012228 00000 n
 
0000021221 00000 n
 
0000026126 00000 n
 
0000032879 00000 n
 
0000047114 00000 n
 
0000050823 00000 n
 
0000050968 00000 n
 
0000051045 00000 n
 
0000051122 00000 n
 
0000051199 00000 n
 
0000051276 00000 n
 
0000006451 00000 n
 
0000006691 00000 n
 
0000007016 00000 n
 
0000007274 00000 n
 
0000007576 00000 n
 
0000007735 00000 n
 
0000007963 00000 n
 
0000008089 00000 n
 
0000008268 00000 n
 
0000008467 00000 n
 
0000008666 00000 n
 
0000008910 00000 n
 
0000009086 00000 n
 
0000009283 00000 n
 
0000009476 00000 n
 
0000009662 00000 n
 
0000009850 00000 n
 
0000010034 00000 n
 
0000010220 00000 n
 
0000010417 00000 n
 
0000010607 00000 n
 
0000010800 00000 n
 
0000010973 00000 n
 
0000011173 00000 n
 
0000011372 00000 n
 
0000011569 00000 n
 
0000011812 00000 n
 
0000011991 00000 n
 
0000012192 00000 n
 
0000012363 00000 n
 
0000012607 00000 n
 
0000012780 00000 n
 
0000012955 00000 n
 
0000013157 00000 n
 
0000013385 00000 n
 
0000013558 00000 n
 
0000013719 00000 n
 
0000013870 00000 n
 
0000022863 00000 n
 
0000027768 00000 n
 
0000034521 00000 n
 
0000048763 00000 n
 
0000056736 00000 n
 
0000061413 00000 n
 
0000061571 00000 n
 
0000061648 00000 n
 
0000061725 00000 n
 
0000061802 00000 n
 
0000061879 00000 n
 
0000061956 00000 n
 
trailer
 
<< /ID 
 
 % ReportLab generated PDF document -- digest (http://www.reportlab.com) 
 
 [(\002\015b\216\002\016\216\222,\316k\030\021\317\316@) (\002\015b\216\002\016\216\222,\316k\030\021\317\316@)] 
 
 [(\216\375C\374\237e3\302\016\020\3752\364q\006\373) (\216\375C\374\237e3\302\016\020\3752\364q\006\373)] 
 
 
 /Info 28 0 R
 
 /Root 27 0 R
 
 /Size 67 >>
 
 /Info 31 0 R
 
 /Root 30 0 R
 
 /Size 76 >>
 
startxref
 
51323
 
62003
 
%%EOF
doc/v1.rst
Show inline comments
 
@@ -292,19 +292,19 @@ 6. python build.py prepare
 
7. python configure.py
 
8. make
 
9. make install
 
10. cd ..
 
10. cd \.\.
 
11. wget http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-x11-gpl-4.7.7.tar.gz
 
12. tar xzf PyQt-x11-gpl-4.7.7
 
12. tar xzf PyQt-x11-gpl-4.7.7.tar.gz
 
13. cd PyQt-x11-gpl-4.7.7
 
14. python configure.py
 
15. make
 
16. make install
 
17. cd ..
 
17. cd \.\.
 
18. hg clone https://litsol@bitbucket.org/bfrog/cutehg
 
19. cd cutehg
 
20. python setup.py build
 
21. python setup.py install
 
22. cd ..
 
22. cd \.\.
 
23. easy_install rhodecode, http://pypi.python.org/pypi/RhodeCode/1.0.0rc2
 

	
 

	
 
@@ -350,3 +350,81 @@ and test them.
 

	
 
OK. RhodeCode RC4 works out of the box, excepting cutehg and PyQt4.
 

	
 

	
 

	
 
Friday 15 October 2010
 
----------------------
 

	
 
Rhodecode
 
+++++++++
 

	
 
Installing RhodeCode locally on the nhypnos is a real pain. In
 
addition to the previous list of dependencies, for the caterpie, add
 
these for the nhypnos:
 

	
 
1. Python
 
2. Bison (for sip)
 
3. Flex (for sip)
 
4. m4 (for Bison)
 
5. Qt (for PyQt)
 
6. GLIBCXX_3.4.9 (for Qt) - I draw the line at (re)installing GCC!
 

	
 
OK. Forget sip bison, flex, m4, Qt and the rest. Let's install just
 
the minimum.
 

	
 
First, install sqlite; we'll see in a minute that Python requires
 
it. The sources are available at: http://www.sqlite.org/download.html.
 

	
 
Second, install Python. My initial attempt complained it was missing
 
the following bits and pieces::
 

	
 
 Python build finished, but the necessary bits to build these modules were not found:
 
 _bsddb             _sqlite3           _ssl            
 
 _tkinter           bsddb185           dl              
 
 imageop            readline           sunaudiodev     
 
 To find the necessary bits, look in setup.py in detect_modules() for the module's name.
 

	
 
So install sqlite first. And, since Python's configure script doesn't
 
have an option for it, I had to tweak ``setup.py`` to enumerate the
 
path where it would find sqlite;
 

	
 
Third, install RhodeCode. I first installed it using easy_install, but
 
while the result worked, the changelog view did not display the
 
branch/merge graphics. I then cloned the code from its bitbucket repository::
 

	
 
 clone https://litsol@bitbucket.org/marcinkuzminski/rhodecode
 

	
 
Replacing the egg installed by easy_install by this code does display
 
the branch/merge graphics.
 

	
 
Fourth, setup and serve rhodecode. Following the instructions posted
 
online at: http://packages.python.org/RhodeCode/setup.html#setup works as advertised::
 

	
 
 paster make-config RhodeCode production.ini
 
 paster setup-app production.ini
 
 paster serve production.ini
 

	
 
All that's left is an apache rewrite rule directing
 
virtualleaf.project.cwi.nl/repository to port 5000, or whaterver we
 
change it to, on the nhypnos.
 

	
 

	
 
The Virtual Leaf
 
++++++++++++++++
 

	
 
Added ``incrementIterations()``, ``getIterations()`` and ``int
 
iterations`` to mesh.h. ``incrementIterations()`` is called in TIMESTEP in
 
VirtualLeaf.cpp. The actual counter, ``iterations`` is initalized to
 
zero in the Mesh class constructor.
 

	
 
The iterations are inquired in two places: for the frame count in
 
``MainBase::Plot`` in ``VirtualLeaf.cpp` and for the export cell data
 
interval in ``Main::TimeStepWrap`` in ``canvas.cpp``.
 

	
 
The questions remain: Should we use this count, and if yes, where
 
should it be incremented? The previous count was incremented in
 
``Main::TimeStepWrap``. Or should we simply use
 
``(int)mesh.getTime()``? Since this is not an ordinal count, the
 
results look strange.
 

	
 

	
src/ChangeLog
Show inline comments
 
2010-10-15    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* mesh.h (Mesh): Added iterations. incrementIterations() and
 
	getIterations().
 

	
 
	* VirtualLeaf.cpp (Plot): Replaced local frame counter with
 
	mesh.incrementIterations().
 

	
 
	* canvas.cpp (TimeStepWrap): Replaced local counter with
 
	mesh.incrementIterations().
 

	
 
2010-10-14    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* VirtualLeaf.pro: Turned debug off to make all profiles must be
 
@@ -14,10 +25,15 @@ 2010-10-14    <guravage@caterpie.sen.cwi
 

	
 
2010-10-14    <merks@cwi.nl>
 

	
 
	* mesh.cpp: In response to referees' comments, added new parameter "yield_threshold" instead of fixed parameter '4' for yield threshold. 
 
	* mesh.cpp: In response to referees' comments, added new parameter
 
	"yield_threshold" instead of fixed parameter '4' for yield
 
	threshold.
 

	
 
	* wallitem.cpp: when clicking a wall, both the wall type was cycled and the transporterdialog popped up. Corrected this - for wall type cycling, hold the Control button while left clicking. TransporterDialog only pops up for left click. Also made sure the wall is redrawn after changing the transporter values.
 
	
 
	* wallitem.cpp: when clicking a wall, both the wall type was
 
	cycled and the transporterdialog popped up. Corrected this - for
 
	wall type cycling, hold the Control button while left
 
	clicking. TransporterDialog only pops up for left click. Also made
 
	sure the wall is redrawn after changing the transporter values.
 

	
 
	* cell.cpp (DivideWalls): accomodated for rename of Circumference -> WallCircumference
 

	
src/VirtualLeaf.cpp
Show inline comments
 
@@ -180,7 +180,7 @@ void MainBase::Plot(int resize_stride)
 

	
 
  if ( ( batch || MovieFramesP() )) {
 

	
 
    static int frame = 0;
 
     static int frame = 0;
 
    // frame numbers are sequential for the most frequently written file type.
 
    // for the less frequently written file type they match the other type
 
    if (!(count%par.storage_stride) )  {
 
@@ -192,7 +192,8 @@ void MainBase::Plot(int resize_stride)
 

	
 
      fname << frame << ".jpg";
 
      if (par.storage_stride <= par.xml_storage_stride) {
 
	frame++;
 
	//frame = (int)mesh.getTime();
 
	frame = mesh.getIterations();
 
      }
 

	
 
      // Write high-res JPG snapshot every plot step
 
@@ -207,7 +208,8 @@ void MainBase::Plot(int resize_stride)
 
      fname << frame << ".xml";
 

	
 
      if (par.xml_storage_stride < par.storage_stride) {
 
	frame++;
 
	//frame = (int)mesh.getTime();
 
	frame = mesh.getIterations();
 
      }
 
      // Write XML file every ten plot steps
 
      mesh.XMLSave(fname.str().c_str(), XMLSettingsTree());
 
@@ -282,6 +284,7 @@ TIMESTEP {
 
    Plot(par.resize_stride);
 
  }
 
  i++;
 
  mesh.incrementIterations(); // WHERE SHOULD THIS GO?!
 
  return mesh.getTime();
 
}
 

	
src/canvas.cpp
Show inline comments
 
@@ -584,6 +584,7 @@ Main::Main(QGraphicsScene& c, Mesh &m, Q
 

	
 
  infobar = new InfoBar();
 
  addDockWindow(infobar);
 

	
 
}
 

	
 
void Main::RefreshInfoBar(void)
 
@@ -1165,13 +1166,16 @@ void Main::print()
 

	
 
void Main::TimeStepWrap(void)
 
{
 
  static int t=0;
 
  static int t;
 
  stringstream fname;
 

	
 
  TimeStep();
 
  t++;
 

	
 
  if ((par.export_interval > 0) && ((t % par.export_interval) == 0)){
 
  //mesh.incrementIterations();
 
  t = mesh.getIterations();
 
  //t = (int)mesh.getTime();
 

	
 
  if ((par.export_interval > 0) && !(t%par.export_interval)){
 
    fname << par.datadir << "/" << par.export_fn_prefix;
 
    fname.fill('0');
 
    fname.width(6);
 
@@ -1180,7 +1184,7 @@ void Main::TimeStepWrap(void)
 
  }
 

	
 
  // check number of timesteps
 
  if (t==par.nit) {
 
  if (t == par.nit) {
 
    emit SimulationDone();
 
  }
 
}
src/canvas.h
Show inline comments
 
@@ -136,7 +136,6 @@ class Main : public Q3MainWindow, public
 
  void FitCanvasToWindow();
 
  void FitLeafToCanvas(void);
 

	
 

	
 
  public slots:
 

	
 
  void about();
src/mainbase.h
Show inline comments
 
@@ -108,10 +108,13 @@ class MainBase  {
 
  Mesh &mesh;
 
  QTransform viewport;
 

	
 

	
 
 protected:
 
  QGraphicsScene &canvas;
 
  virtual xmlNode *XMLSettingsTree(void) const;
 
  virtual xmlNode *XMLViewportTree(QTransform &transform) const;
 

	
 

	
 
  
 
 protected:
 
  bool showcentersp;
src/mesh.h
Show inline comments
 
@@ -83,6 +83,7 @@ class Mesh {
 
    time = 0.;
 
    plugin = 0;
 
    boundary_polygon=0;
 
    iterations = 0;
 
  };
 
  ~Mesh(void) {
 
    if (boundary_polygon) {
 
@@ -391,6 +392,10 @@ class Mesh {
 
  
 
  Node* findNextBoundaryNode(Node*);
 

	
 
  int iterations;
 
  int getIterations(){return this->iterations;}
 
  void incrementIterations(){this->iterations++;}
 

	
 
 private:
 

	
 
  // Data members
0 comments (0 inline, 0 general)