yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #04236
[Branch ~yade-dev/yade/trunk] Rev 2191: 1. Make controller a little more compact
------------------------------------------------------------
revno: 2191
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Sun 2010-05-02 18:02:29 +0200
message:
1. Make controller a little more compact
2. JumpChangeSe3->StepDisplacer (does it sound ok, Chia?), MomentEngine->TorqueEngine
3. Fix a few docs
4. Disable building of CapillaryPressureEngine, it cannot work.
renamed:
pkg/common/Engine/PartialEngine/JumpChangeSe3.cpp => pkg/common/Engine/PartialEngine/StepDisplacer.cpp
pkg/common/Engine/PartialEngine/JumpChangeSe3.hpp => pkg/common/Engine/PartialEngine/StepDisplacer.hpp
pkg/common/Engine/PartialEngine/MomentEngine.cpp => pkg/common/Engine/PartialEngine/TorqueEngine.cpp
pkg/common/Engine/PartialEngine/MomentEngine.hpp => pkg/common/Engine/PartialEngine/TorqueEngine.hpp
modified:
gui/qt3/QtGeneratedSimulationController.ui
gui/qt3/SimulationController.cpp
pkg/common/Engine/PartialEngine/PressTestEngine.hpp
pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp
pkg/dem/Engine/Functor/Ip2_FrictMat_FrictMat_FrictPhys.hpp
pkg/dem/Engine/GlobalEngine/UniaxialStrainer.cpp
pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.cpp
pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.hpp
py/system.py
scripts/NormalInelasticityTest.py
scripts/chain-distant-interactions.py
pkg/common/Engine/PartialEngine/StepDisplacer.cpp
pkg/common/Engine/PartialEngine/StepDisplacer.hpp
pkg/common/Engine/PartialEngine/TorqueEngine.cpp
pkg/common/Engine/PartialEngine/TorqueEngine.hpp
--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription
=== modified file 'gui/qt3/QtGeneratedSimulationController.ui'
--- gui/qt3/QtGeneratedSimulationController.ui 2010-04-25 15:46:26 +0000
+++ gui/qt3/QtGeneratedSimulationController.ui 2010-05-02 16:02:29 +0000
@@ -8,8 +8,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>266</width>
- <height>558</height>
+ <width>279</width>
+ <height>439</height>
</rect>
</property>
<property name="sizePolicy">
@@ -21,7 +21,7 @@
</sizepolicy>
</property>
<property name="caption">
- <string>Simulation Controller</string>
+ <string>Yade</string>
</property>
<property name="frameShape">
<enum>NoFrame</enum>
@@ -36,14 +36,93 @@
<property name="margin">
<number>0</number>
</property>
- <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="3">
+ <widget class="QLayoutWidget" row="0" column="0">
<property name="name">
- <cstring>layout8</cstring>
+ <cstring>layout13</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
+ <widget class="QLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLineEdit" row="1" column="1">
+ <property name="name">
+ <cstring>leTimestep</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>layout8</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>rbFixed</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>fixed</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>rbTimeStepper</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>time stepper</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>labelStep</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Ît</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>labelIter</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>iter #0, 0/s</string>
+ </property>
+ </widget>
<widget class="QLabel" row="0" column="0">
<property name="name">
<cstring>labelRealTime</cstring>
@@ -60,70 +139,6 @@
<string>real 0:00:00.000</string>
</property>
</widget>
- <widget class="QLabel" row="3" column="0">
- <property name="name">
- <cstring>labelStep</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>step 4e-3</string>
- </property>
- </widget>
- <widget class="QLabel" row="2" column="0">
- <property name="name">
- <cstring>labelIter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>iter #0, 0/s</string>
- </property>
- </widget>
- <widget class="QLabel" row="5" column="0">
- <property name="name">
- <cstring>labelEstimationTime</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>estimation 00:00:00</string>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="0">
- <property name="name">
- <cstring>labelStopAtIter</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>stopAtIter #0</string>
- </property>
- </widget>
<widget class="QLabel" row="1" column="0">
<property name="name">
<cstring>labelSimulTime</cstring>
@@ -142,134 +157,7 @@
</widget>
</grid>
</widget>
- <widget class="QPushButton" row="2" column="2">
- <property name="name">
- <cstring>pbCenterScene_2</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Center</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="2">
- <property name="name">
- <cstring>pbZXY</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>50</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="pixmap">
- <pixmap>image0</pixmap>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="1">
- <property name="name">
- <cstring>pbYZX</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>25</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="pixmap">
- <pixmap>image1</pixmap>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="1">
- <property name="name">
- <cstring>pbReference</cstring>
- </property>
- <property name="text">
- <string>Reference</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="0">
- <property name="name">
- <cstring>pbXYZ</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>25</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="pixmap">
- <pixmap>image2</pixmap>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="0">
- <property name="name">
- <cstring>pbNewView_2</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>New 3D</string>
- </property>
- </widget>
- <widget class="QTabWidget" row="1" column="0" rowspan="1" colspan="3">
+ <widget class="QTabWidget" row="1" column="0">
<property name="name">
<cstring>tabWidget</cstring>
</property>
@@ -296,6 +184,143 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
+ <widget class="QLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>layout15</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>pbYZX</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="2">
+ <property name="name">
+ <cstring>pbCenterScene_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Center</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="0">
+ <property name="name">
+ <cstring>pbNewView_2</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>New 3D</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="1">
+ <property name="name">
+ <cstring>pbReference</cstring>
+ </property>
+ <property name="text">
+ <string>Reference</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="0">
+ <property name="name">
+ <cstring>pbXYZ</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>25</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image1</pixmap>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="2">
+ <property name="name">
+ <cstring>pbZXY</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>50</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image2</pixmap>
+ </property>
+ </widget>
+ </grid>
+ </widget>
<widget class="QLayoutWidget" row="0" column="0">
<property name="name">
<cstring>layout8</cstring>
@@ -527,79 +552,6 @@
</widget>
</vbox>
</widget>
- <widget class="QButtonGroup">
- <property name="name">
- <cstring>timestep</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>3</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShadow">
- <enum>Sunken</enum>
- </property>
- <property name="lineWidth">
- <number>1</number>
- </property>
- <property name="title">
- <string>timestep</string>
- </property>
- <property name="flat">
- <bool>false</bool>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QRadioButton">
- <property name="name">
- <cstring>rbTimeStepper</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Time stepper</string>
- </property>
- <property name="buttonGroupId">
- <number>0</number>
- </property>
- </widget>
- <widget class="QRadioButton">
- <property name="name">
- <cstring>rbFixed</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Fixed step</string>
- </property>
- <property name="buttonGroupId">
- <number>2</number>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout7</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>leTimestep</cstring>
- </property>
- </widget>
- </hbox>
- </widget>
</vbox>
</widget>
</grid>
@@ -807,13 +759,13 @@
</widget>
<images>
<image name="image0">
- <data format="PNG" length="435">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d0000017a494441545885edd83f6a1b411480f19f8250e20b5827100494c22e5df8023e415aa74f2a1b7289fca98c5ddbe02b1877ae0de99d4689c1100c714292328952684416696777c55a9a35ec07034fc3e3e99b3768060df39c6184c7618cc25c6318e237f6b01fe26152a31c0ef12d8ca3c42eb9ace3077ea29f52a41b997f825e88d756e4b210c7f812c64962973936f0172ff12ac49b498d6638c727932dee85f83ca1cfc3659c5a001ea51628a313991f57c859098def60e305f3b62fefc7916c9b1bdfc122da63a60aad605d5ac1bab482756905eb32bd6317b93592dccb5505577efde56df1253e9b74aa83eb30b72cc691319734e545f8bc85ed10efe6e42d2a50853e6e705524b8863bbcc701befaffba504730da9d401717f88ea74582f0d66425b77853f26575469677f8839dd82ab30c324506057955a8d2c1e761fe75519158e1b2bc4504f378865f382d2b122b5c9657978ff820f28a963da8670fe0f14c4e2caf2eb14577aa24552db634b20f988df893d472dffc03abb374caa8555fb90000000049454e44ae426082</data>
+ <data format="PNG" length="434">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d00000179494441545885edd8b14a1c4118c0f1df8928be8076218d2068114b0b5fc027486b7a5345c84b68ac24d60a798560672df800369a4040021ad11416ea59ec1c6c74766f8e3d7737b07ff860f8e6dbbbffceccceb0dbf3927e2407bd82fcab3219c9e545e67082bff5e88cc6248e708d85865da27cc103d69a1689f15eb6163f372d126349b6e6be352d52c4a9ecc198695a84f8d6d1aa6de6bfa668246b65a269816114adab7e424d2db47e045b2f98bacd3436cdad1fc132ba6d26854eb02a9d60553ac1aa748255199cb1a39c1a8d9ccba982b51f7fb129fe8e334c87380bb9d7e2183f6433d3c3cf90fb87fcc82ce21e9fb019da8b91ba54fa43aefb10fa57b01adaeb6582f0157f42ec95d48d22988f3c33b8c20e767129f24efefca259dce056f685abeccfaac4806dfcc26f6c15dd659e37b80bf1b6a42e85612308f3b9bef914c17d5c843818a3604a5d61e7807778c4063e86f67205c15492050f718ea910e721f7bc6edc240b0efb915ac97fa36ec54b52c7b879020c2e72e95070cdb80000000049454e44ae426082</data>
</image>
<image name="image1">
- <data format="PNG" length="434">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d00000179494441545885edd8b14a1c4118c0f1df8928be8076218d2068114b0b5fc027486b7a5345c84b68ac24d60a798560672df800369a4040021ad11416ea59ec1c6c74766f8e3d7737b07ff860f8e6dbbbffceccceb0dbf3927e2407bd82fcab3219c9e545e67082bff5e88cc6248e708d85865da27cc103d69a1689f15eb6163f372d126349b6e6be352d52c4a9ecc198695a84f8d6d1aa6de6bfa668246b65a269816114adab7e424d2db47e045b2f98bacd3436cdad1fc132ba6d26854eb02a9d60553ac1aa748255199cb1a39c1a8d9ccba982b51f7fb129fe8e334c87380bb9d7e2183f6433d3c3cf90fb87fcc82ce21e9fb019da8b91ba54fa43aefb10fa57b01adaeb6582f0157f42ec95d48d22988f3c33b8c20e767129f24efefca259dce056f685abeccfaac4806dfcc26f6c15dd659e37b80bf1b6a42e85612308f3b9bef914c17d5c843818a3604a5d61e7807778c4063e86f67205c15492050f718ea910e721f7bc6edc240b0efb915ac97fa36ec54b52c7b879020c2e72e95070cdb80000000049454e44ae426082</data>
+ <data format="PNG" length="409">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d00000160494441545885edd8cf2a05511cc0f1cf95c80bb0916c9462c1d2c20b7801b6ec59515e025bb628af203b6b65cfe6a2946c08c502d762ce2dae3b7f34cc8c9a6ffdea77a6697edf39bf9973eaf095135ca211e22a5cab0c4b686106b3215f2c53a8d1311ec03576d187790ce3b960af44364592b7d828d9a52b63a2d6b6425e49da82a5d353b6401a9517fcd7d4df60163a17ea36ad0cf71442e567b0f282dddad7ede728adcd959fc124ea65260bb5605e6ac1bcd48279a905f3d2de637fb26b94b22f67152c7cfbeb6c712b26fe924334d11fa219ae7d13eb644874c27096725f1a692f398157ac622de4136982bd38c63dc67f4930a923dbb80bb113f790cf6ce10d73198ae589368378c0a3a87389820b61bc9ee145b290650647f01262344970124f3848289647308e3ddc84d84f2a7c8e53d139e16f09a63185772c6325e4d37185d3be95bf103cc285e8c0b42fe44771826914be50f79659bca6083e00acfe78c833f5cc8f0000000049454e44ae426082</data>
</image>
<image name="image2">
- <data format="PNG" length="409">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d00000160494441545885edd8cf2a05511cc0f1cf95c80bb0916c9462c1d2c20b7801b6ec59515e025bb628af203b6b65cfe6a2946c08c502d762ce2dae3b7f34cc8c9a6ffdea77a6697edf39bf9973eaf095135ca211e22a5cab0c4b686106b3215f2c53a8d1311ec03576d187790ce3b960af44364592b7d828d9a52b63a2d6b6425e49da82a5d353b6401a9517fcd7d4df60163a17ea36ad0cf71442e567b0f282dddad7ede728adcd959fc124ea65260bb5605e6ac1bcd48279a905f3d2de637fb26b94b22f67152c7cfbeb6c712b26fe924334d11fa219ae7d13eb644874c27096725f1a692f398157ac622de4136982bd38c63dc67f4930a923dbb80bb113f790cf6ce10d73198ae589368378c0a3a87389820b61bc9ee145b290650647f01262344970124f3848289647308e3ddc84d84f2a7c8e53d139e16f09a63185772c6325e4d37185d3be95bf103cc285e8c0b42fe44771826914be50f79659bca6083e00acfe78c833f5cc8f0000000049454e44ae426082</data>
+ <data format="PNG" length="435">89504e470d0a1a0a0000000d49484452000000280000002808060000008cfeb86d0000017a494441545885edd83f6a1b411480f19f8250e20b5827100494c22e5df8023e415aa74f2a1b7289fca98c5ddbe02b1877ae0de99d4689c1100c714292328952684416696777c55a9a35ec07034fc3e3e99b3768060df39c6184c7618cc25c6318e237f6b01fe26152a31c0ef12d8ca3c42eb9ace3077ea29f52a41b997f825e88d756e4b210c7f812c64962973936f0172ff12ac49b498d6638c727932dee85f83ca1cfc3659c5a001ea51628a313991f57c859098def60e305f3b62fefc7916c9b1bdfc122da63a60aad605d5ac1bab482756905eb32bd6317b93592dccb5505577efde56df1253e9b74aa83eb30b72cc691319734e545f8bc85ed10efe6e42d2a50853e6e705524b8863bbcc701befaffba504730da9d401717f88ea74582f0d66425b77853f26575469677f8839dd82ab30c324506057955a8d2c1e761fe75519158e1b2bc4504f378865f382d2b122b5c9657978ff820f28a963da8670fe0f14c4e2caf2eb14577aa24552db634b20f988df893d472dffc03abb374caa8555fb90000000049454e44ae426082</data>
</image>
<image name="image3">
<data format="PNG" length="252">89504e470d0a1a0a0000000d4948445200000015000000150806000000a917a596000000c349444154388dadd4310e82401046e1b78462e8f61cda6187e7974ebabdc7764e870d2460609d59a5217f80f0e58510d2944001015545447ede4dd60c02593322c276df867e2e5d3fdb214de9f48dd7fe32033cc72978c44d5100c0cb2d0ea5a6ab743dace262d355ea15375122aa4a94080abb0d40b73bdf87613ebd7fd9a6a65e71537ae391d4227635b58add4d2de2aaa6dbf3631cc3e7f36d6d53e896eff68f4d8f84eb6e6b9a9e09ab9b9684554dbf09dd4d2d425753abd0dcd42334fd4f6bf71b0403e127c7dd51090000000049454e44ae426082</data>
@@ -905,12 +857,6 @@
<slot>pbSaveClicked()</slot>
</connection>
<connection>
- <sender>timestep</sender>
- <signal>clicked(int)</signal>
- <receiver>QtGeneratedSimulationController</receiver>
- <slot>bgTimeStepClicked(int)</slot>
- </connection>
- <connection>
<sender>pbReference</sender>
<signal>clicked()</signal>
<receiver>QtGeneratedSimulationController</receiver>
@@ -946,16 +892,7 @@
<receiver>QtGeneratedSimulationController</receiver>
<slot>pbGenerate_clicked()</slot>
</connection>
- <connection>
- <sender>leTimestep</sender>
- <signal>returnPressed()</signal>
- <receiver>QtGeneratedSimulationController</receiver>
- <slot>leTimestep_returnPressed()</slot>
- </connection>
</connections>
-<includes>
- <include location="local" impldecl="in implementation">QtGeneratedSimulationController.ui.h</include>
-</includes>
<forwards>
<forward>class GLViewer;</forward>
</forwards>
=== modified file 'gui/qt3/SimulationController.cpp'
--- gui/qt3/SimulationController.cpp 2010-04-25 11:58:30 +0000
+++ gui/qt3/SimulationController.cpp 2010-05-02 16:02:29 +0000
@@ -363,9 +363,6 @@
labelSimulTime->setText(string(""));
labelRealTime->setText(string(""));
labelIter->setText(string(""));
- labelStep->setText(string(""));
- labelEstimationTime->setText(string(""));
- labelStopAtIter->setText(string(""));
tlCurrentSimulation->setText("[loading]");
pbStartSimulation->setEnabled(false);
pbStopSimulation->setEnabled(false);
@@ -423,8 +420,15 @@
char strReal[64];
if(days>0) snprintf(strReal,64,"real %dd %02d:%02d:%03d.%03d",days,hours,minutes,seconds,mseconds);
else snprintf(strReal,64,"real %02d:%02d:%03d.%03d",hours,minutes,seconds,mseconds);
- labelRealTime->setText(string(strReal));
-
+ string s(strReal);
+ // update estimation time
+ if (scene->stopAtIteration>0 && iterPerSec>0){
+ char strEstimation[64];
+ estimation=duration+time_duration(boost::posix_time::seconds((scene->stopAtIteration-scene->currentIteration)/iterPerSec));
+ snprintf(strEstimation,64," (ETA %02d:%02d:%02d)",estimation.hours(),estimation.minutes(),estimation.seconds());
+ s+=strEstimation;
+ }
+ labelRealTime->setText(s);
}
// update iterations per second - only one in a while (iterPerSec_TTL_ms)
// does someone need to display that with more precision than integer?
@@ -434,27 +438,15 @@
iterPerSec_LastIter=scene->currentIteration;
iterPerSec_LastLocalTime=microsec_clock::local_time();
}
- char strIter[64];
+ char strIter[128];
/* print 0 instead of bogus values (at startup) */
- snprintf(strIter,64,"iter #%ld, %.1f/s",Omega::instance().getCurrentIteration(),(iterPerSec<1e9 && iterPerSec>0)?iterPerSec:0.);
+ float perSec=(iterPerSec<1e9 && iterPerSec>0)?iterPerSec:0.;
+ if(scene->stopAtIteration<=0) snprintf(strIter,64,"iter #%ld, %.1f/s",scene->currentIteration,perSec);
+ else snprintf(strIter,64,"iter #%ld / %ld, %.1f/s",scene->currentIteration,scene->stopAtIteration,perSec);
labelIter->setText(strIter);
- // update estimation time
- char strEstimation[64];
- if (scene->stopAtIteration>0 && iterPerSec>0 ) estimation=duration+time_duration(seconds((scene->stopAtIteration-scene->currentIteration)/iterPerSec));
- snprintf(strEstimation,64,"estimation %02d:%02d:%02d",estimation.hours(),estimation.minutes(),estimation.seconds());
- labelEstimationTime->setText(strEstimation);
-
- char strStopAtIter[64];
- snprintf(strStopAtIter,64,"stopAtIter #%ld",scene->stopAtIteration);
- labelStopAtIter->setText(strStopAtIter);
-
if(sbRefreshTime->value()!=refreshTime) sbRefreshTime->setValue(refreshTime);
- char strStep[64];
- snprintf(strStep,64,"step %g",(double)scene->dt);
- labelStep->setText(string(strStep));
-
//changeSkipTimeStepper = false;
//changeTimeStep = false;
=== modified file 'pkg/common/Engine/PartialEngine/PressTestEngine.hpp'
--- pkg/common/Engine/PartialEngine/PressTestEngine.hpp 2010-03-20 12:40:44 +0000
+++ pkg/common/Engine/PartialEngine/PressTestEngine.hpp 2010-05-02 16:02:29 +0000
@@ -20,7 +20,7 @@
virtual void action();
YADE_CLASS_BASE_DOC_ATTRS_CTOR(PressTestEngine,TranslationEngine,"This class simulates the simple press work When the press cracks the solid brittle material, it returns back to the initial position and stops the simulation loop.",((long int,numberIterationAfterDestruction,0,"The number of iterations, which will be carry out after destruction [-]"))
((Real,predictedForce,0,"The minimal force, after what the engine will look for a destruction [N]"))
- ((long int,riseUpPressHigher,1,"After destruction press rises up. This is the relationship between initial press velocity and _returning back_ velocity [-]")),
+ ((long int,riseUpPressHigher,1,"After destruction press rises up. This is the relationship between initial press velocity and velocity for going *back* [-]")),
curentDirection=forward;currentVerticalForce=0;maxVerticalForce=0;minimalForce=0;minimalPredictedForce=0;currentIterationAfterDestruction=0;pressVelocityForw2Back=25;
);
DECLARE_LOGGER;
=== renamed file 'pkg/common/Engine/PartialEngine/JumpChangeSe3.cpp' => 'pkg/common/Engine/PartialEngine/StepDisplacer.cpp'
--- pkg/common/Engine/PartialEngine/JumpChangeSe3.cpp 2010-04-26 13:58:23 +0000
+++ pkg/common/Engine/PartialEngine/StepDisplacer.cpp 2010-05-02 16:02:29 +0000
@@ -1,10 +1,10 @@
// 2008 © Václav Šmilauer <eudoxos@xxxxxxxx>
-#include"JumpChangeSe3.hpp"
+#include"StepDisplacer.hpp"
#include<yade/core/State.hpp>
-CREATE_LOGGER(JumpChangeSe3);
-YADE_PLUGIN((JumpChangeSe3));
+CREATE_LOGGER(StepDisplacer);
+YADE_PLUGIN((StepDisplacer));
-void JumpChangeSe3::action(){
+void StepDisplacer::action(){
FOREACH(body_id_t id, subscribedBodies){
const shared_ptr<Body>& b=Body::byId(id,scene);
if(setVelocities){
=== renamed file 'pkg/common/Engine/PartialEngine/JumpChangeSe3.hpp' => 'pkg/common/Engine/PartialEngine/StepDisplacer.hpp'
--- pkg/common/Engine/PartialEngine/JumpChangeSe3.hpp 2010-04-25 13:18:11 +0000
+++ pkg/common/Engine/PartialEngine/StepDisplacer.hpp 2010-05-02 16:02:29 +0000
@@ -3,15 +3,15 @@
#include<yade/core/PartialEngine.hpp>
-class JumpChangeSe3: public PartialEngine {
+class StepDisplacer: public PartialEngine {
public:
virtual void action();
- YADE_CLASS_BASE_DOC_ATTRS(JumpChangeSe3,PartialEngine,"Apply sudden change of position/orientation on subscribed bodies (if active).",
+ YADE_CLASS_BASE_DOC_ATTRS(StepDisplacer,PartialEngine,"Apply generalized displacement (displacement or rotation) stewise on subscribed bodies.",
((Se3r,deltaSe3,Se3r(Vector3r::Zero(),Quaternionr::Identity()),"Difference of position/orientation that will be added. Position is added to current :yref:`State::pos` using vector addition, orientation to :yref:`State::ori` using quaternion multiplication (rotation composition)."))
((bool,setVelocities,false,"If true, velocity and angularVelocity are modified in such a way that over one iteration (dt), the body will have prescribed se3 jump. In this case, se3 itself is not updated for :yref:`dynamic<Body::isDynamic>` bodies, since they would have the delta applied twice (here and in the :yref:`integrator<NewtonIntegrator>`). For non-dynamic bodies however, se3 *is* still updated."))
);
DECLARE_LOGGER;
};
-REGISTER_SERIALIZABLE(JumpChangeSe3);
+REGISTER_SERIALIZABLE(StepDisplacer);
=== renamed file 'pkg/common/Engine/PartialEngine/MomentEngine.cpp' => 'pkg/common/Engine/PartialEngine/TorqueEngine.cpp'
--- pkg/common/Engine/PartialEngine/MomentEngine.cpp 2010-03-20 12:40:44 +0000
+++ pkg/common/Engine/PartialEngine/TorqueEngine.cpp 2010-05-02 16:02:29 +0000
@@ -1,12 +1,12 @@
-#include"MomentEngine.hpp"
+#include"TorqueEngine.hpp"
#include<yade/core/Scene.hpp>
-void MomentEngine::action(){
+void TorqueEngine::action(){
FOREACH(const body_id_t id, subscribedBodies){
// check that body really exists?
scene->forces.addTorque(id,moment);
}
}
-YADE_PLUGIN((MomentEngine));
+YADE_PLUGIN((TorqueEngine));
=== renamed file 'pkg/common/Engine/PartialEngine/MomentEngine.hpp' => 'pkg/common/Engine/PartialEngine/TorqueEngine.hpp'
--- pkg/common/Engine/PartialEngine/MomentEngine.hpp 2010-04-25 13:18:11 +0000
+++ pkg/common/Engine/PartialEngine/TorqueEngine.hpp 2010-05-02 16:02:29 +0000
@@ -10,13 +10,13 @@
#include<yade/core/PartialEngine.hpp>
-class MomentEngine: public PartialEngine{
+class TorqueEngine: public PartialEngine{
public:
virtual void action();
- YADE_CLASS_BASE_DOC_ATTRS(MomentEngine,PartialEngine,"Apply given torque (momentum) value at every subscribed particle, at every step.",
+ YADE_CLASS_BASE_DOC_ATTRS(TorqueEngine,PartialEngine,"Apply given torque (momentum) value at every subscribed particle, at every step.",
((Vector3r,moment,Vector3r::Zero(),"Torque value to be applied."))
);
};
-REGISTER_SERIALIZABLE(MomentEngine);
+REGISTER_SERIALIZABLE(TorqueEngine);
=== modified file 'pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp'
--- pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp 2010-05-02 14:45:30 +0000
+++ pkg/common/RenderingEngine/OpenGLRenderingEngine.cpp 2010-05-02 16:02:29 +0000
@@ -227,9 +227,7 @@
FOREACH(const shared_ptr<Body> b, *scene->bodies){
if(!b) continue;
if(b->shape && ((b->getGroupMask() & mask) || b->getGroupMask()==0)){
- //if(b->state /* && FIXME: !b->physicalParameters->isDisplayed */) continue;
if(!id && b->state->blockedDOFs==0) continue;
- const Se3r& se3=b->state->se3; // FIXME: should be dispSe3
if(current_selection==b->getId()){glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientColorSelected);}
{ // write text
glColor3f(1.0-bgColor[0],1.0-bgColor[1],1.0-bgColor[2]);
@@ -247,7 +245,7 @@
if(id) str += sId;
if(dof) str += sDof;
const Vector3r& h(current_selection==b->getId() ? highlightEmission0 : Vector3r(1,1,1));
- GLUtils::GLDrawText(str,se3.position, h );
+ GLUtils::GLDrawText(str,bodyDisp[b->id].pos,h);
}
if(current_selection == b->getId()){glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientColorUnselected);}
}
=== modified file 'pkg/dem/Engine/Functor/Ip2_FrictMat_FrictMat_FrictPhys.hpp'
--- pkg/dem/Engine/Functor/Ip2_FrictMat_FrictMat_FrictPhys.hpp 2010-04-06 08:32:01 +0000
+++ pkg/dem/Engine/Functor/Ip2_FrictMat_FrictMat_FrictPhys.hpp 2010-05-02 16:02:29 +0000
@@ -16,7 +16,7 @@
const shared_ptr<Material>& b2,
const shared_ptr<Interaction>& interaction);
FUNCTOR2D(FrictMat,FrictMat);
- YADE_CLASS_BASE_DOC(Ip2_FrictMat_FrictMat_FrictPhys,InteractionPhysicsFunctor,"Create a :yref:`FrictPhys` from two :yref:`FrictMats<FrictMat>`. The compliance of one sphere under symetric point loads is defined here as 1/(E.D), with E the stiffness of the sphere and D its diameter, and corresponds to a compliance 1/(2.E.D) from each contact point. The compliance of the contact itself will be the sum of compliances from each sphere, i.e. 1/(2.E.D1)+1/(2.E.D1) in the general case, or 1/(E.D) in the special case of equal sizes. Note that summing compliances corresponds to an harmonic average of stiffnesss, which is how kn is actually computed in the :yref:`Ip2_FrictMat_FrictMat_FrictPhys` functor. The friction angle of the contact is defined as the minimum angle of the two materials in contact. \n\n Only interactions with :yref:`ScGeom` or :yref:`Dem3DofGeom` geometry are meaningfully accepted; run-time typecheck can make this functor unnecessarily slow in general. Such design is problematic in itself, though -- from http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg02603.html:\n\n\t\t\tYou have to suppose some exact type of InteractionGeometry in the Ip2 functor, but you don't know anything about it (Ip2 only guarantees you get certain InteractionPhysics types, via the dispatch mechanism).\n\n\t\t\tThat means, unless you use Ig2 functor producing the desired type, the code will break (crash or whatever). The right behavior would be either to accept any type (what we have now, at least in principle), or really enforce InteractionGeometry type of the interation passed to that particular Ip2 functor.\n\nEtc.");
+ YADE_CLASS_BASE_DOC(Ip2_FrictMat_FrictMat_FrictPhys,InteractionPhysicsFunctor,"Create a :yref:`FrictPhys` from two :yref:`FrictMats<FrictMat>`. The compliance of one sphere under symetric point loads is defined here as 1/(E.D), with E the stiffness of the sphere and D its diameter, and corresponds to a compliance 1/(2.E.D) from each contact point. The compliance of the contact itself will be the sum of compliances from each sphere, i.e. 1/(2.E.D1)+1/(2.E.D1) in the general case, or 1/(E.D) in the special case of equal sizes. Note that summing compliances corresponds to an harmonic average of stiffnesss, which is how kn is actually computed in the :yref:`Ip2_FrictMat_FrictMat_FrictPhys` functor. The friction angle of the contact is defined as the minimum angle of the two materials in contact.\n\nOnly interactions with :yref:`ScGeom` or :yref:`Dem3DofGeom` geometry are meaningfully accepted; run-time typecheck can make this functor unnecessarily slow in general. Such design is problematic in itself, though -- from http://www.mail-archive.com/yade-dev@xxxxxxxxxxxxxxxxxxx/msg02603.html:\n\n\tYou have to suppose some exact type of InteractionGeometry in the Ip2 functor, but you don't know anything about it (Ip2 only guarantees you get certain InteractionPhysics types, via the dispatch mechanism).\n\n\tThat means, unless you use Ig2 functor producing the desired type, the code will break (crash or whatever). The right behavior would be either to accept any type (what we have now, at least in principle), or really enforce InteractionGeometry type of the interation passed to that particular Ip2 functor.\n\nEtc.");
};
REGISTER_SERIALIZABLE(Ip2_FrictMat_FrictMat_FrictPhys);
=== modified file 'pkg/dem/Engine/GlobalEngine/UniaxialStrainer.cpp'
--- pkg/dem/Engine/GlobalEngine/UniaxialStrainer.cpp 2010-04-13 21:09:57 +0000
+++ pkg/dem/Engine/GlobalEngine/UniaxialStrainer.cpp 2010-05-02 16:02:29 +0000
@@ -78,7 +78,7 @@
b->state->vel[axis]=pNormalized*(v1-v0)+v0;
}
}
- stressUpdateInterval=min(1000,max(1,(int)(1e-5/(abs(strainRate)*Omega::instance().getTimeStep()))));
+ stressUpdateInterval=min(1000,max(1,(int)(1e-5/(abs(strainRate)*scene->dt))));
LOG_INFO("Stress will be updated every "<<stressUpdateInterval<<" steps.");
/* if we have default (<0) crossSectionArea, try to get it from root's Aabb;
=== modified file 'pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.cpp'
--- pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.cpp 2010-03-31 00:06:48 +0000
+++ pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.cpp 2010-05-02 16:02:29 +0000
@@ -10,12 +10,11 @@
#include <yade/pkg-dem/Law2_ScGeom_CapillaryPhys_Capillarity.hpp>
#include <yade/core/Scene.hpp>
+YADE_REQUIRE_FEATURE(!! This engine is not functional; remove this line to enable it again !!);
+
YADE_PLUGIN((CapillaryPressureEngine));
CREATE_LOGGER(CapillaryPressureEngine);
-using namespace boost; // ???
-using namespace std; // ???
-
CapillaryPressureEngine::~CapillaryPressureEngine()
{
}
=== modified file 'pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.hpp'
--- pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.hpp 2010-03-31 00:06:48 +0000
+++ pkg/dem/Engine/PartialEngine/CapillaryPressureEngine.hpp 2010-05-02 16:02:29 +0000
@@ -17,12 +17,11 @@
{
public :
shared_ptr<Law2_ScGeom_CapillaryPhys_Capillarity> capillaryCohesiveLaw;
- //Law2_ScGeom_CapillaryPhys_Capillarity* capillaryCohesiveLaw; // which one is right?
void action();
virtual ~CapillaryPressureEngine();
- YADE_CLASS_BASE_DOC_ATTRS_CTOR(CapillaryPressureEngine,PartialEngine,"Rk: this engine is deprecated and probably not very useful! It was designed to produce a variation of the capillary pressure (see Law2_ScGeom_CapillaryPhys_Capillarity).",
+ YADE_CLASS_BASE_DOC_ATTRS_CTOR(CapillaryPressureEngine,PartialEngine,".. note::\n\tthis engine is deprecated and probably not very useful! It was designed to produce a variation of the capillary pressure (see :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`).",
((Real,Pressure,0.,"Initial value of the capillary pressure Uc = Ugas-Uliquid. [Pa]."))
((Real,PressureVariation,0.,"Variation of the capillary pressure (each iteration). [Pa]")),
;
=== modified file 'py/system.py'
--- py/system.py 2010-04-10 15:11:48 +0000
+++ py/system.py 2010-05-02 16:02:29 +0000
@@ -139,6 +139,8 @@
'SimpleViscoelasticPhys':'ViscElPhys', # Fri Apr 9 19:26:34 2010, vaclav@flux
'Law2_Spheres_Viscoelastic_SimpleViscoelastic':'Law2_ScGeom_ViscElPhys_Basic', # Fri Apr 9 19:28:02 2010, vaclav@flux
'Ip2_SimleViscoelasticMat_SimpleViscoelasticMat_SimpleViscoelasticPhys':'Ip2_ViscElMat_ViscElMat_ViscElPhys', # Fri Apr 9 19:28:48 2010, vaclav@flux
+ 'MomentEngine':'TorqueEngine', # Sun May 2 16:09:34 2010, vaclav@flux
+ 'JumpChangeSe3':'StepDisplacer', # Sun May 2 16:14:21 2010, vaclav@flux
### END_RENAMED_CLASSES_LIST ### (do not delete this line; scripts/rename-class.py uses it
}
=== modified file 'scripts/NormalInelasticityTest.py'
--- scripts/NormalInelasticityTest.py 2010-04-15 16:33:51 +0000
+++ scripts/NormalInelasticityTest.py 2010-05-02 16:02:29 +0000
@@ -26,7 +26,7 @@
#Def of the python command letMove() :
-# Will move "by hand" the upperSphere towards or away from the lower one. Modifying by hand only the speed of bodies is indeed not sufficient, see NewtonsIntegrator, and https://bugs.launchpad.net/yade/+bug/398089. For such purposes you could also use TranslationEngine, or you can also use JumpChangeSe3, which applies finite change in position/orientation in each step
+# Will move "by hand" the upperSphere towards or away from the lower one. Modifying by hand only the speed of bodies is indeed not sufficient, see NewtonsIntegrator, and https://bugs.launchpad.net/yade/+bug/398089. For such purposes you could also use TranslationEngine, or you can also use StepDisplacer, which applies finite change in position/orientation in each step
def letMove():#Load for the first 10 iterations, unload for the 7 following iterations, then reload
vImposed=[0,-1,0]
if O.iter < 25 and O.iter>14:
=== modified file 'scripts/chain-distant-interactions.py'
--- scripts/chain-distant-interactions.py 2010-01-10 09:09:32 +0000
+++ scripts/chain-distant-interactions.py 2010-05-02 16:02:29 +0000
@@ -13,7 +13,7 @@
InteractionGeometryDispatcher([Ig2_Sphere_Sphere_ScGeom(hasShear=True)]),
InteractionPhysicsDispatcher([Ip2_FrictMat_FrictMat_FrictPhys()]),
ElasticContactLaw(isCohesive=True),
- MomentEngine(subscribedBodies=[1],moment=(0,1000,0)),
+ TorqueEngine(subscribedBodies=[1],moment=(0,1000,0)),
GravityEngine(gravity=(0,0,1e-2)),
NewtonIntegrator(damping=0.2)
]
Follow ups