Re: [Yade-users] [Question #661573]: Shear force calculation
Question #661573 on Yade changed: https://answers.launchpad.net/yade/+question/661573 Yor1 posted a new comment: Hello Bruno, I still have question : what do you mean by the normal direction is uniquely defined and shear direction is not ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #661573]: Shear force calculation
Question #661573 on Yade changed: https://answers.launchpad.net/yade/+question/661573 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Bruno, Thank you ! That resolve my problem. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #661573]: Shear force calculation
New question #661573 on Yade: https://answers.launchpad.net/yade/+question/661573 Hi Yade users, I have a general question about Shear and Normal force calculation in DEM code Yade. Why we calculate the shear force incrementally, whereas we don't calculate the normal force incrementally ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Status: Answered => Solved Yor1 confirmed that the question is solved: I am using the computer as laptop. When i do in the terminal >~/.Xauthority and i try Yade again, it works very well. Thank you very much that resolve the problem. I am happy :-D Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: the output of echo $XAUTHORITY cat `echo $XAUTHORITY` cat ~/.Xauthority hamdi@hamdi-Precision-M4800:~$ echo $XAUTHORITY /home/hamdi/.Xauthority hamdi@hamdi-Precision-M4800:~$ cat `echo $XAUTHORITY` ��(0MIT-MAGIC-COOKIE-1�0ٚ���/��|hamdi-Precision-M48000MIT-MAGIC-COOKIE-1|�k�RC��d�Ђhamdi@hamdi-Precision-M4800:~$ cat ~/.Xauthority ��(0MIT-MAGIC-COOKIE-1�0ٚ���/��|hamdi-Precision-M48000MIT-MAGIC-COOKIE-1|�k�RC��d�Ђhamdi@hamdi-Precision-M4800:~$ Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: The output of "import Xlib.display" "Xlib.display._BaseDisplay()" Yade [1]: import Xlib.display Yade [2]: Xlib.display._BaseDisplay() --- UnicodeDecodeErrorTraceback (most recent call last) /usr/local/bin/yade-2015-04-08.git-f3818b4 in () > 1 Xlib.display._BaseDisplay() /usr/lib/python2.7/dist-packages/Xlib/display.pyc in __init__(self, *args, **keys) 60 61 def __init__(self, *args, **keys): ---> 62 display.Display.__init__(*(self, ) + args, **keys) 63 self._atom_cache = {} 64 /usr/lib/python2.7/dist-packages/Xlib/protocol/display.pyc in __init__(self, display) 59 60 auth_name, auth_data = connect.get_auth(self.socket, ---> 61 name, host, displayno) 62 63 # Internal structures for communication, grouped /usr/lib/python2.7/dist-packages/Xlib/support/connect.pyc in get_auth(sock, dname, host, dno) 91 modname = _auth_mods.get(platform, _default_auth_mod) 92 mod = __import__('Xlib.support', globals(), fromlist=(modname,)) ---> 93 return getattr(mod, modname).get_auth(sock, dname, host, dno) /usr/lib/python2.7/dist-packages/Xlib/support/unix_connect.pyc in new_get_auth(sock, dname, host, dno) 114 addr = socket.gethostname() 115 --> 116 au = xauth.Xauthority() 117 while 1: 118 try: /usr/lib/python2.7/dist-packages/Xlib/xauth.pyc in __init__(self, filename) 82 break 83 ---> 84 self.entries.append((family, addr.decode('UTF-8'), 85 num.decode('UTF-8'), name.decode('UTF-8'), data)) 86 except struct.error as e: /usr/lib/python2.7/encodings/utf_8.pyc in decode(input, errors) 14 15 def decode(input, errors='strict'): ---> 16 return codecs.utf_8_decode(input, errors, True) 17 18 class IncrementalEncoder(codecs.IncrementalEncoder): UnicodeDecodeError: 'utf8' codec can't decode byte 0xc0 in position 0: invalid start byte Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: I tried "from yade import qt" and i obtain : Yade [1]: from yade import qt --- ImportError Traceback (most recent call last) /usr/local/bin/yade-2015-04-08.git-f3818b4 in () > 1 from yade import qt /usr/local/lib/i386-linux-gnu/yade-2015-04-08.git-f3818b4/py/yade/qt/__init__.py in () 6 if 'YADE_BATCH' in os.environ: 7 msg += "\nDo not import qt when running in batch mode." > 8 raise ImportError(msg) 9 10 from PyQt4.QtGui import * ImportError: Connecting to DISPLAY at Yade startup failed, unable to activate the qt4 interface. I think the problem is in the qt. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: I obtain this message : ENABLE_GUI:BOOL=ON Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: I obtain this message : ENABLE_GUI:BOOL=ON Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: the output of "grep QT CMakeCache.txt" is : QT_QTMOTIF_LIBRARY:STRING= QT_QTMOTIF_LIBRARY_DEBUG:FILEPATH=QT_QTMOTIF_LIBRARY_DEBUG-NOTFOUND QT_QTMOTIF_LIBRARY_RELEASE:FILEPATH=QT_QTMOTIF_LIBRARY_RELEASE-NOTFOUND QT_QTMULTIMEDIA_INCLUDE_DIR:PATH=QT_QTMULTIMEDIA_INCLUDE_DIR-NOTFOUND //The Qt QTMULTIMEDIA library QT_QTMULTIMEDIA_LIBRARY:STRING= QT_QTMULTIMEDIA_LIBRARY_DEBUG:FILEPATH=QT_QTMULTIMEDIA_LIBRARY_DEBUG-NOTFOUND QT_QTMULTIMEDIA_LIBRARY_RELEASE:FILEPATH=QT_QTMULTIMEDIA_LIBRARY_RELEASE-NOTFOUND QT_QTNETWORK_INCLUDE_DIR:PATH=/usr/include/qt4/QtNetwork //The Qt QTNETWORK library QT_QTNETWORK_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtNetwork.so;debug;/usr/lib/i386-linux-gnu/libQtNetwork.so QT_QTNETWORK_LIBRARY_DEBUG:FILEPATH=QT_QTNETWORK_LIBRARY_DEBUG-NOTFOUND QT_QTNETWORK_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtNetwork.so QT_QTNSPLUGIN_INCLUDE_DIR:PATH=QT_QTNSPLUGIN_INCLUDE_DIR-NOTFOUND //The Qt QTNSPLUGIN library QT_QTNSPLUGIN_LIBRARY:STRING= QT_QTNSPLUGIN_LIBRARY_DEBUG:FILEPATH=QT_QTNSPLUGIN_LIBRARY_DEBUG-NOTFOUND QT_QTNSPLUGIN_LIBRARY_RELEASE:FILEPATH=QT_QTNSPLUGIN_LIBRARY_RELEASE-NOTFOUND QT_QTOPENGL_INCLUDE_DIR:PATH=/usr/include/qt4/QtOpenGL //The Qt QTOPENGL library QT_QTOPENGL_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtOpenGL.so;debug;/usr/lib/i386-linux-gnu/libQtOpenGL.so QT_QTOPENGL_LIBRARY_DEBUG:FILEPATH=QT_QTOPENGL_LIBRARY_DEBUG-NOTFOUND QT_QTOPENGL_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtOpenGL.so QT_QTRACEGRAPHICSSYSTEM_PLUGIN_DEBUG:FILEPATH=QT_QTRACEGRAPHICSSYSTEM_PLUGIN_DEBUG-NOTFOUND QT_QTRACEGRAPHICSSYSTEM_PLUGIN_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/qt4/plugins/graphicssystems/libqtracegraphicssystem.so QT_QTSCRIPTDBUS_PLUGIN_DEBUG:FILEPATH=QT_QTSCRIPTDBUS_PLUGIN_DEBUG-NOTFOUND QT_QTSCRIPTDBUS_PLUGIN_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/qt4/plugins/script/libqtscriptdbus.so QT_QTSCRIPTTOOLS_INCLUDE_DIR:PATH=/usr/include/qt4/QtScriptTools //The Qt QTSCRIPTTOOLS library QT_QTSCRIPTTOOLS_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtScriptTools.so;debug;/usr/lib/i386-linux-gnu/libQtScriptTools.so QT_QTSCRIPTTOOLS_LIBRARY_DEBUG:FILEPATH=QT_QTSCRIPTTOOLS_LIBRARY_DEBUG-NOTFOUND QT_QTSCRIPTTOOLS_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtScriptTools.so QT_QTSCRIPT_INCLUDE_DIR:PATH=/usr/include/qt4/QtScript //The Qt QTSCRIPT library QT_QTSCRIPT_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtScript.so;debug;/usr/lib/i386-linux-gnu/libQtScript.so QT_QTSCRIPT_LIBRARY_DEBUG:FILEPATH=QT_QTSCRIPT_LIBRARY_DEBUG-NOTFOUND QT_QTSCRIPT_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtScript.so QT_QTSQL_INCLUDE_DIR:PATH=/usr/include/qt4/QtSql //The Qt QTSQL library QT_QTSQL_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtSql.so;debug;/usr/lib/i386-linux-gnu/libQtSql.so QT_QTSQL_LIBRARY_DEBUG:FILEPATH=QT_QTSQL_LIBRARY_DEBUG-NOTFOUND QT_QTSQL_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtSql.so QT_QTSVG_INCLUDE_DIR:PATH=/usr/include/qt4/QtSvg //The Qt QTSVG library QT_QTSVG_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtSvg.so;debug;/usr/lib/i386-linux-gnu/libQtSvg.so QT_QTSVG_LIBRARY_DEBUG:FILEPATH=QT_QTSVG_LIBRARY_DEBUG-NOTFOUND QT_QTSVG_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtSvg.so QT_QTTEST_INCLUDE_DIR:PATH=/usr/include/qt4/QtTest //The Qt QTTEST library QT_QTTEST_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtTest.so;debug;/usr/lib/i386-linux-gnu/libQtTest.so QT_QTTEST_LIBRARY_DEBUG:FILEPATH=QT_QTTEST_LIBRARY_DEBUG-NOTFOUND QT_QTTEST_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtTest.so QT_QTUITOOLS_INCLUDE_DIR:PATH=/usr/include/qt4/QtUiTools //The Qt QTUITOOLS library QT_QTUITOOLS_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtUiTools.a;debug;/usr/lib/i386-linux-gnu/libQtUiTools.a QT_QTUITOOLS_LIBRARY_DEBUG:FILEPATH=QT_QTUITOOLS_LIBRARY_DEBUG-NOTFOUND QT_QTUITOOLS_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtUiTools.a QT_QTWCODECS_PLUGIN_DEBUG:FILEPATH=QT_QTWCODECS_PLUGIN_DEBUG-NOTFOUND QT_QTWCODECS_PLUGIN_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/qt4/plugins/codecs/libqtwcodecs.so QT_QTWEBKIT_INCLUDE_DIR:PATH=/usr/include/qt4/QtWebKit //The Qt QTWEBKIT library QT_QTWEBKIT_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtWebKit.so;debug;/usr/lib/i386-linux-gnu/libQtWebKit.so QT_QTWEBKIT_LIBRARY_DEBUG:FILEPATH=QT_QTWEBKIT_LIBRARY_DEBUG-NOTFOUND QT_QTWEBKIT_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtWebKit.so QT_QTXMLPATTERNS_INCLUDE_DIR:PATH=/usr/include/qt4/QtXmlPatterns //The Qt QTXMLPATTERNS library QT_QTXMLPATTERNS_LIBRARY:STRING=optimized;/usr/lib/i386-linux-gnu/libQtXmlPatterns.so;debug;/usr/lib/i386-linux-gnu/libQtXmlPatterns.so QT_QTXMLPATTERNS_LIBRARY_DEBUG:FILEPATH=QT_QTXMLPATTERNS_LIBRARY_DEBUG-NOTFOUND QT_QTXMLPATTERNS_LIBRARY_RELEASE:FILEPATH=/usr/lib/i386-linux-gnu/libQtXmlP
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: I'm using ubuntu 14.04 LTS and yade-2015-04-08.git-f3818b4 I launch it by typing yade-2015-04-08.git-f3818b4 in the terminal. To compile i go to YADE/sources/build in the terminal and i type make in the terminal. I downloaded it in 2015 from the Yade site. www.yade-dem.org/doc/ Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
Question #658861 on Yade changed: https://answers.launchpad.net/yade/+question/658861 Yor1 posted a new comment: Hello Jan, Thank you for your answer. In fact, i type yade.qt.Generator() and i obtain this error message: Yade [1]: yade.qt.Generator() --- AttributeErrorTraceback (most recent call last) /usr/local/bin/yade-2015-04-08.git-f3818b4 in () > 1 yade.qt.Generator() AttributeError: 'module' object has no attribute 'qt' I think that i have a problem of qt package. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #658861]: What are the package necessary for the generator (F9) and the 3D view (F11)
New question #658861 on Yade: https://answers.launchpad.net/yade/+question/658861 Hi Yade users, I want to create a model with the creator (F9) by running Yade and typing F9 in the terminal. The problem is that F9 (creator), F10 (both) and F11 (3D view) don't work in the terminal and i got this error message: hamdi@hamdi-Precision-M4800:~$ yade-2015-04-08.git-f3818b4 Welcome to Yade 2015-04-08.git-f3818b4 Warning: no X rendering available (see https://bbs.archlinux.org/viewtopic.php?id=13189) TCP python prompt on localhost:9000, auth cookie `ycasus' XMLRPC info provider on http://localhost:21000 [[ ^L clears screen, ^U kills line. F8 plot. ]] Yade [1]: ~ I think that i have to download some package to resolve this problem. But i don't know which ones ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #657858]: how the local residual friction angle is determined
Question #657858 on Yade changed: https://answers.launchpad.net/yade/+question/657858 Yor1 posted a new comment: Hello Jérôme, Thank you for your answer. In this case, i mean "phi_b" = "phi_c", we should have Fs,max=Fn tan(fi_b) after the rupture and i don't find this formulation in the source file JointedCohesiveFrictionalPM.cpp. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #657858]: how the local residual friction angle is determined
New question #657858 on Yade: https://answers.launchpad.net/yade/+question/657858 Hi Yade users, In the paper of Scholtès and Donzé (2013), it is shown that the shear rupture occurs when Fs > Fs,max. The maximum shear force is calculated for a bonded interaction according to F s,max= Fn tan(fi_b) + c Aint (1) with Fs,max : the maximal shear force, Fn : Normal force, fi_b local friction angle, c internal cohesion and Aint the interacting surface between particles. After the shear rupture, the interaction becoming then purely frictional between the initially bonded particles and Fs,max= Fn tan(fi_c) (2) with fi_c : local residual frictional angle. When i consult the sources files (JointedCohesiveFrictionalPM.cpp/hpp), in find the the formulation of Fs,max (1) in the elastic interaction (before the shear rupture) but i don't find the formulation (2) of the Fs,max in the frictional interaction between particles (after shear rupture). Also i don't find how the local residual friction angle is calculated. The paper of Scholtès and Donzé : https://filex.univ-lorraine.fr/get?k=BkVd4nEPcmFqnP8eXp9 JointedCohesiveFrictionalPM.cpp : https://filex.univ-lorraine.fr/get?k=HaicRsz6ki2qTs6viev JointedCohesiveFrictionalPM.hpp : https://filex.univ-lorraine.fr/get?k=E6gxYHx07RaoWylgXyX Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #654392]: ValueError: setting an array element with a sequence
Question #654392 on Yade changed: https://answers.launchpad.net/yade/+question/654392 Yor1 posted a new comment: Hi Jan, Thank you for the response. In fact, I got the problem and i resolve it this morning. The origin of the problem is the manner of editing the txt file in the sources files (JointedCohesiveFrictionalPM.cpp). For the traction cracks, these parameters are edited : iteration, X, Y, Z, Norm0, Norm1, Norm2, traction, shear Aperture, Time, Energy. But for the shear cracks, just these parameters are edited : iteration, X,Y,Z, Norm0, Norm1, Norm2, traction, shear Energy. So the error message is correct because i try to insert vectors of 10 element with vectors with 12 element. I corrected this mistake of data editing. And the script work very well. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #654392]: ValueError: setting an array element with a sequence
New question #654392 on Yade: https://answers.launchpad.net/yade/+question/654392 Hello Yade users, I try to sample my microcracks to determinate the acoustic event during the simulation. To reach my goal, i wrote a script "cracks_sampling.py". In the beginning of the script i try to import the microcracks data. But i run the script, i obtain this error message :" ValueError: setting an array element with a sequence". I understand that the origin of the problem is my microcracks data but i don't what i have to do to overcome this problem knowing that my microcracks data is 6.4 Mo. You can download the script from this link : https://filex.univ-lorraine.fr/get?k=xyFvdVA5UVm4mF1Rr11 You can download the cracks data from this link : https://filex.univ-lorraine.fr/get?k=rmY3BBKtB9Vk9r6ryqT Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #633287]: Memory error
Question #633287 on Yade changed: https://answers.launchpad.net/yade/+question/633287 Status: Needs information => Open Yor1 gave more information on the question: Hi Robert, My machine carachteristics is : Intel Xeon, RAM 64 Go. In fact, i simulate the underground excavation and you find above the scripts and the medium simulated: https://filex.univ-lorraine.fr/get?k=KQBZaCvSCbAkDc52dft You run first the script biaxialStressInitia.py, then biaxialExcavation.py Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #633287]: Memory error
Question #633287 on Yade changed: https://answers.launchpad.net/yade/+question/633287 Yor1 posted a new comment: Hi Robert, My machine carachteristics is : Intel Xeon, RAM 64 Go. In fact, i simulate the underground excavation and you find above the scripts and the medium simulated: https://filex.univ-lorraine.fr/get?k=KQBZaCvSCbAkDc52dft You run first the script biaxialStressInitia.py, then biaxialExcavation.py Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #633287]: Memory error
New question #633287 on Yade: https://answers.launchpad.net/yade/+question/633287 Hello Yade users, I try to load the stress gradually on a parallelepipedic model constituted by 30 particles. To save the simulation i use this command O.save(OUT+'.yade.gz'). The problem is at the end the simulation i obtain this error message :"Memory error". I don't understand how the high particles number can be the origin of the problem Is that true ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #612245]: Implementation of new contact law between particles
Question #612245 on Yade changed: https://answers.launchpad.net/yade/+question/612245 Yor1 posted a new comment: Hello Bruno, Thank you for response ! Ok, i will give the results of the sources files changing results step by step with hope that Yade users could help me. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #612245]: Implementation of new contact law between particles
Question #612245 on Yade changed: https://answers.launchpad.net/yade/+question/612245 Yor1 gave more information on the question: Hello, I posted my question yesterday et nobody reacts. May be there is lack of information in my post. If you do not find the information that you deem necessary, I can provide them. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #612245]: Implementation of new contact law between particles
New question #612245 on Yade: https://answers.launchpad.net/yade/+question/612245 Hello Yade users, I try to implement a contact law with softening factor in the normal direction contact illustrated in the Figure 1 of the paper of Scholtes and Donze 2013 ( the paper can be downloaded from this link : https://filex.univ-lorraine.fr/get?k=afQQ74EoCQ5ZIy35Iz1). I implement this new contact in JointedCohesiveFrictionalPM.cpp from the line 153 to the line 163. JointedCohesiveFrictionalPM.cpp : https://filex.univ-lorraine.fr/get?k=KbdVLas2oIUUyKkG9nd JointedCohesiveFrictionalPM.hpp : https://filex.univ-lorraine.fr/get?k=Epw6QzDIm3HEjT9dH7d After the implementation, i simulate a trixial compression test and i obtain a strange stress/strain curves in the beginning of the simulation illustrated in the figure : https://filex.univ-lorraine.fr/get?k=dzDNhQKp3I5OXmaopWz I don't find the fault in the implementation. the script of the triaxial compression curves plotting : https://filex.univ-lorraine.fr/get?k=JVVacWCTBRjhLEpplth the script of the triaxial compression : https://filex.univ-lorraine.fr/get?k=BkLLO86ERwC6a3Cc35h the used sample : https://filex.univ-lorraine.fr/get?k=1UqqWzFs3tXJXhxZbVN Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #605740]: contact law between two particles : normal interaction
Question #605740 on Yade changed: https://answers.launchpad.net/yade/+question/605740 Status: Open => Solved Yor1 confirmed that the question is solved: I resolved the question by implementing the law by myself. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #605740]: contact law between two particles : normal interaction
New question #605740 on Yade: https://answers.launchpad.net/yade/+question/605740 Hello Yade users, I try to change the normal interaction law between particles to make the rock sample less brittle. My actual contact law is governed by JCFpm laws. In the article of Scholtès and Donzé [1], i found a contact law in the normal direction which i think that it can limite the brittleness of rock sample (Fig 1 in [1]). I search in this contact law in the normal interaction in the different contact law but i don't find it. Also, i searched in the different contributions for the different laws but i don't find this contact law. Can you show me the specific code section which govern this contact law. [1]: https://filex.univ-lorraine.fr/get?k=afQQ74EoCQ5ZIy35Iz1 Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #593682]: Normal stiffness calculation
Question #593682 on Yade changed: https://answers.launchpad.net/yade/+question/593682 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Jan and Bruno, Thank you for your reaction. That solved my problem. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #593682]: Normal stiffness calculation
New question #593682 on Yade: https://answers.launchpad.net/yade/+question/593682 Hello Yade users, I have a question about the calculation of the normal stiffness kn. In fact, i read the Yade's DEM formulation ( https://yade-dem.org/doc/formulation.html ) and i find the kn calculation method. My question is : why you suppose that ki=Ei*li in the second line of the proof ? is there a formulation which establish the link between the elasticity module and the stifnness ? if yes which is its name ? The origin of my question is that the stiffness (kn) unit is N/m or MPa/m but with the kn formulation proposed in the DEM formulation the stiffness unit (kn) become MPa.m and i don't understand. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #549040]: Poison coefficient calibration
Question #549040 on Yade changed: https://answers.launchpad.net/yade/+question/549040 Yor1 posted a new comment: Hi Luc, In the experimental test the lateral strain is measured by the strain gauge put on the position h/2 (h: sample height) of the cylindric sample. In the link below, you find the video in which it is demonstrated how the uniaxial test is performed. https://www.isrm.net/gca/index.php?id=1234 In the pure elastic phase the numerical lateral strain and the esperimental lateral strain are equal. But in the damage phase, they are not equal. In the link below, you find the stress/lateral strain (numerical and experimental) curves. https://filex.univ-lorraine.fr/get?k=sy0sM5sPbTt7swz9sUb To conclude, i try to minimize the discrepencies between the experimental latreal strain and the numerical lateral strain in the damage phase. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #549040]: Poison coefficient calibration
Question #549040 on Yade changed: https://answers.launchpad.net/yade/+question/549040 Yor1 posted a new comment: Hi Jérôme, Thank you for the response. And, yes, the strain discrepencies occur in the elastic regime. Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #549040]: Poison coefficient calibration
New question #549040 on Yade: https://answers.launchpad.net/yade/+question/549040 Hello, I simulated an uniaxial compression test on a sample calibrated on the Lac du Bonnet granite. I compared the numerical with the experimental results (Martin et al. 2001) and i remarked that the numerical lateral strain is more important than the experimental lateral strain. I want to recalibrate the model to have numerical lateral strain equal to the experimental lateral strain. My question is which micro parameter i have to calibrate ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #478785]: Export VTK files to txt files
Question #478785 on Yade changed: https://answers.launchpad.net/yade/+question/478785 Yor1 posted a new comment: Hello Jan and Bruno, Finally i use these lines in the recorder to obtain the text files peridically : if (O.iter%1000==302): f = open(str(O.iter)+'_data_spheres', 'w') for b in O.bodies: if (type(b.shape)==Sphere): f.write('{} {} {} {} {} {} {} {} {} {} {} {}\n'.format(b.state.pos[0],b.state.pos[1],b.state.pos[2],b.state.vel[0]*0.1*utils.PWaveTimeStep(),b.state.vel[1]*0.1*utils.PWaveTimeStep(),b.state.vel[2]*0.1*utils.PWaveTimeStep(),b.state.vel[0],b.state.vel[1],b.state.vel[2],s[b.id][0,0],s[b.id][1,1],s[b.id][2,2])) print f I use this condition "if (O.iter%1000==302)" because my vtk files are enumerated like this : 40302, 41302, 42302 etc ... Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #478785]: Export VTK files to txt files
Question #478785 on Yade changed: https://answers.launchpad.net/yade/+question/478785 Yor1 posted a new comment: Hello Jérôme and Hicham, Thank you for your response. So i have to export my results in txt files directly. In this case, i want to export my variables in txt files every 1 iterations like my vtk files, is it possible ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #478785]: Export VTK files to txt files
New question #478785 on Yade: https://answers.launchpad.net/yade/+question/478785 Hello Yade users, I want to obtain the data saved in the sphere's vtk files (velocity, forces, stress field in the spheres) as a text file (.txt). So i want to know if it is possible to export the vtk files to text files. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #465653]: export dissipated energy in a vtk files
Question #465653 on Yade changed: https://answers.launchpad.net/yade/+question/465653 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Luc, Thank you for the suggestion. I obtain the distribution of the dissipated energy with paraview and that solve my problem. Best ragards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #465653]: export dissipated energy in a vtk files
New question #465653 on Yade: https://answers.launchpad.net/yade/+question/465653 Hello Yade users, I want to output the distribution of the dissipated energy on a numerical sample with paraview. And you know that paraview use vtk files to give these distribution. So my question is : it is possible to implement which enables to record the dissipated energy in the sample in vtk files ? In other words : it is possible to create a recorder ( like "bstresses", "spheres", "boxes", "intr" etc ... https://yade-dem.org/doc/yade.wrapper.html?highlight=bstresses) for the dissipated energy : cracks energy. the cracks energy is included in the function : Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM (https://yade-dem.org/doc/yade.wrapper.html?highlight=jointed#yade.wrapper.Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM) Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #455796]: Local energy dissipation
Question #455796 on Yade changed: https://answers.launchpad.net/yade/+question/455796 Status: Answered => Solved Yor1 confirmed that the question is solved: Hello Jan, I implement the solution proposed in my precedent comment and it works very well. That solved my question. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #455796]: Local energy dissipation
Question #455796 on Yade changed: https://answers.launchpad.net/yade/+question/455796 Yor1 posted a new comment: Hi Jan, I think that i have a good idea for this problem by introducing a new energetic component Ecracks_local in the source files like this if (x1 < geom->contactPoint[0] < x2 and x3 < geom->contactPoint[1] < x4 and x5 < geom->contactPoint[1] < x6) Ecracks_local+= 0.5(Fn*Fn/kn + Fs*Fs/ks) i will try this. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #455796]: Local energy dissipation
Question #455796 on Yade changed: https://answers.launchpad.net/yade/+question/455796 Yor1 posted a new comment: Hello Jan, Now i understand "MWE", thank you :-) The "global" calculation of friction energy and cracks energy means that i calculate these components in all the sample's contact. My goal is to calculate these energy components in the contact included in the part of the sample which i'm interesting. These energy components are calculated in the souce files with these name: "totalSlipE" for the friction energy and "totalCracksE" for the cracks energy. You find the source files in the links below: JointedCohesiveFrictionalPM.cpp https://filex.univ-lorraine.fr/get?k=PzE9jgmEIEheUbiqOEb JointedCohesiveFrictionalPM.hpp https://filex.univ-lorraine.fr/get?k=P8kvtWEW6baalMTMQPp Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #455796]: Local energy dissipation
Question #455796 on Yade changed: https://answers.launchpad.net/yade/+question/455796 Yor1 posted a new comment: Hello Jan, Thank you for your reaction. I just don't understand what do you mean by "MWE". May be my question is idiot but really i don't understand it. Best regards Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #455796]: Local energy dissipation
Question #455796 on Yade changed: https://answers.launchpad.net/yade/+question/455796 Yor1 gave more information on the question: Hello, I try to simplify my question. Is it possible to have the information about particles and contact (force, momentum, velocity, stiffenesses etc...) in a specific area of a numerical sample ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #455796]: Local energy dissipation
New question #455796 on Yade: https://answers.launchpad.net/yade/+question/455796 Hello Yade users, I implement the mathematical equation for different enegetic components and the calculation is correct. The energy calulation is performed in the simulated system globally. The dissipated energy are cracks energy, damping energy and friction energy. In my case, i simulate the compression test (uniaxial and triaxial) and i calculate the different energetic components during the simulation. I compare my results (dissipated energy) with the results obtained in experimental test performed by Wassermann (2009) in the ore-iron. I remark that my dissipated energy (cracks energy) is more important than the dissipated energy obtained by Wassermann. Wassermann obtain the dissipated energy by the AE sensors putted on the sample. So i want to calculate the dissipated energy in the same zone on which Wassermann put his sensors. Is that possible ? In the link below you find the Wassemann's paper published in 2009 https://filex.univ-lorraine.fr/get?k=q88Ik1lGqX5cOp93Xfd Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #439162]: KeyError: "Unknown energy name 'kineticParticle'
Question #439162 on Yade changed: https://answers.launchpad.net/yade/+question/439162 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Jan, I identified the problem of YADE compiling. In fact, i change some source code of yade-2017-01-04.git-8801250 with source code of yade-2015-04-08.git-f3818b4. With the changement done in April (isnan ---> sted::isnan), i insert the lines in the code source of yade-2017-01-04.git-8801250 from the code source (which i developed) in yade-2015-04-08.git-f3818b4 and the problem is resolved. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #439162]: KeyError: "Unknown energy name 'kineticParticle'
Question #439162 on Yade changed: https://answers.launchpad.net/yade/+question/439162 Yor1 posted a new comment: Hi Anton, Tahnk you for your reaction. In the link below you can download my CmakeCache.txt used in the of Yade which i'm using https://filex.univ-lorraine.fr/get?k=E7YGHlnMKoaTqoS8LaH Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #439162]: KeyError: "Unknown energy name 'kineticParticle'
Question #439162 on Yade changed: https://answers.launchpad.net/yade/+question/439162 Yor1 posted a new comment: Hi Jan and Jérôme, I integrate my equation in the new version of "NewtonIntegrator.cpp" (with std::isnan). I compile the code and i haven't problem in compiling. But i have a new problem, when i execute yade i obtain this error message : Error in `/usr/bin/python': malloc(): memory corruption: 0x01a6f410 NewtonIntegrator.hpp with the new version (std::isnan) https://filex.univ-lorraine.fr/get?k=oE63DWqmO2BsfNrAcgP NewtonIntegrator.cpp with the new version (std::isnan) https://filex.univ-lorraine.fr/get?k=Kw1m7oQUrtjzHUGLNhF Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #439162]: KeyError: "Unknown energy name 'kineticParticle'
Question #439162 on Yade changed: https://answers.launchpad.net/yade/+question/439162 Yor1 posted a new comment: Hi Jan I'm using this version of Yade: yade-2017-01-04.git-8801250 and this operating system: Ubuntu 16.04 LTS Best regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #439162]: KeyError: "Unknown energy name 'kineticParticle'
New question #439162 on Yade: https://answers.launchpad.net/yade/+question/439162 Hello yade users ! I implement some equations in the "NewtonIntegrator.cpp" script to calculate the dissipated energy by damping and the kinetic energy. The label chosen for the kinetic energy is 'kineticParticle' and for the energy dissipated by damping is 'nonviscDampParticle'. In fact, i simulate the triaxial compression test to calculate the different energy components but i obtain this error message: KeyError: "Unknown energy name 'kineticParticle'." and "Unknown energy name 'nonviscDampParticle'." I don't understand why the code don't recognize these energy label knowing that the code is compiled with the new energetic equation. you find in these links "NewtonIntegrator.cpp", "NewtonIntegrator.hpp" and the triaxial compression test script. NewtonIntegrator.cpp https://filex.univ-lorraine.fr/get?k=gJTd8XcTqX7aCgyVxJN line 55 and line 90 NewtonIntegrator.hpp https://filex.univ-lorraine.fr/get?k=RkWOFG2bi1gkbV9RXFh triaxial compression test https://filex.univ-lorraine.fr/get?k=ul6w12Hvz8wkZCE03Tl the sample https://filex.univ-lorraine.fr/get?k=xTbw7ocfTIuDoaIScZJ Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #408683]: cracks number for different discretization
Question #408683 on Yade changed: https://answers.launchpad.net/yade/+question/408683 Yor1 posted a new comment: Hello Jerome Thank you for your answer. I ask this question because i try to simulate the same test performed by Wassermann (phD thesis 2006) with the grey iron on spherical sample with diameter 70 mm and height 140 mm. In this context, i try to reproduce the same number of cracks and the dissipated energy. I have a second problem in this test, in the experimental test the dissipated energy is equal to 550 Joules but in the simulated test i obtain 37 Joules with the numerical sample calibrated on the mechanical response of grey iron. My goal is to obtain the dissipated energy by the numerical sample equal to the dissipated energy by the real sample. I try to modify the calibration with increasing the value of tensile strength and cohesion between particles but i don't get what i want. Also i remarked that the energy dissipated is dependent to the volume. In fact, when i increase the dimension of the numerical sample, the energy dissipated become important. My question is : there is a method that enables to incearse the dissipated energy with the same sample ? I wish you Merry Christmas. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #408683]: cracks number for different discretization
New question #408683 on Yade: https://answers.launchpad.net/yade/+question/408683 Hello, I simulate the triaxial compression test with numerical sample calibrated on the gray layer of iron ore. I used three discretizations: 2, 4 and 6 particles. The stress-strain curves show that the mechanical response is independent from the discretization and it is a good result for me. But the cracks number is dependent to the discretization and it is a logic result. The results are in the link below: https://filex.univ-lorraine.fr/get?k=t4Oyp5F7JIi3kcpaBIh My goal is to obtain the cracks number independent to the discretization. Is it possible to reach this goal ? There is somebody who works on this problem and can give me ideas ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #404553]: isovaleurs with paraview
Question #404553 on Yade changed: https://answers.launchpad.net/yade/+question/404553 Yor1 posted a new comment: Thank you Jan. Finally i wrote a script with python because i persuade that i can't draw isolines with paraview. Best regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #404553]: isovaleurs with paraview
Question #404553 on Yade changed: https://answers.launchpad.net/yade/+question/404553 Yor1 posted a new comment: import matplotlib import numpy as np import matplotlib.cm as cm import matplotlib.mlab as mlab import matplotlib.pyplot as plt matplotlib.rcParams['xtick.direction'] = 'out' matplotlib.rcParams['ytick.direction'] = 'out' delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) # difference of Gaussians Z = 10.0 * (Z2 - Z1) # Create a simple contour plot with labels using default colors. The # inline argument to clabel will control whether the labels are draw # over the line segments of the contour, removing the lines beneath # the label plt.figure() CS = plt.contour(X, Y, Z) plt.clabel(CS, inline=1, fontsize=10) plt.title('Simplest default with labels') -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #404553]: isovaleurs with paraview
Question #404553 on Yade changed: https://answers.launchpad.net/yade/+question/404553 Yor1 posted a new comment: Hello Jan, Thank you for the answer. In fact i try to do a script python with which i output the figure with iso-lines of cracks number in a part of the medium. To output i have to introduce the coordinates of cracks and the number of cracks per part of medium. I have the coordinates of the cracks position. The problem is how can i obtain the cracks number per a part of medium. This is a short script with which we can have the isolines with python import matplotlib import numpy as np import matplotlib.cm as cm import matplotlib.mlab as mlab import matplotlib.pyplot as plt matplotlib.rcParams['xtick.direction'] = 'out' matplotlib.rcParams['ytick.direction'] = 'out' delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) # difference of Gaussians Z = 10.0 * (Z2 - Z1) Best regards -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #404553]: isovaleurs with paraview
New question #404553 on Yade: https://answers.launchpad.net/yade/+question/404553 Hello ! I try to output a figure with isovaleurs in the simulated medium with paraview. The problem is that all the examples given in the paraview tutorials is based on the continuum medium whereas in Yade the medium is approximated by particles. Is there anyone who did this exercise before ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #404328]: contact position at the end of the simulation
Question #404328 on Yade changed: https://answers.launchpad.net/yade/+question/404328 Status: Answered => Solved Yor1 confirmed that the question is solved: Hello Jan and Bruno, In your comments i get the solution of my problem. Thank you a lot ! Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #404328]: contact position at the end of the simulation
Question #404328 on Yade changed: https://answers.launchpad.net/yade/+question/404328 Yor1 posted a new comment: Hello Jan and Bruno, Thank you for your answers. To resolve the problem, i put a loop with the condition inside a function with pyrunner like this : O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), TriaxialStressController(internalCompaction=False,label='triax'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), PyRunner(firstIterRun=iterMax,initRun=True,command='position()',label='position') x1=x2=x3=0 def position(): global x1,x2,x3 for j in O.interactions: if not j.isReal : continue if isinstance(O.bodies[j.id1].shape,Sphere) and isinstance(O.bodies[j.id2].shape,Sphere): x1=j.geom.contactPoint[0] x2=j.geom.contactPoint[1] x3=j.geom.contactPoint[2] yade.plot.addData(x1=x1,x2=x2,x3=x3) plot.saveDataTxt(OUT1) with these lines i obtain the text file when O.iter=iterMax but the problem is that i don't obtain the coordiantes in file text and i don't understand the origin of the error, in the loop i put the coordinates but in the file i don't obtain them. The script improved is blow https://filex.univ-lorraine.fr/get?k=rLbLreQcfBFv94hXaEZ Best regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #404328]: contact position at the end of the simulation
New question #404328 on Yade: https://answers.launchpad.net/yade/+question/404328 Hello ! I want to export a text file in which i put the coordinates of the contact in the end of the simulation. I put below the loop with which i want to export the text file : ## Recording contact position at the end of the simulation if O.iter==iterMax: for i in O.interactions: if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): x1=i.geom.contactPoint[0] x2=i.geom.contactPoint[1] x3=i.geom.contactPoint[2] yade.plot.addData(x1=x1,x2=x2,x3=x3) plot.saveDataTxt(OUT1) This loop don't export the text file. In other hand when i remove the condition of the end of the simulation, the loop below work well: for i in O.interactions: if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): x1=i.geom.contactPoint[0] x2=i.geom.contactPoint[1] x3=i.geom.contactPoint[2] yade.plot.addData(x1=x1,x2=x2,x3=x3) plot.saveDataTxt(OUT1) I don't understand why the condition prohibit the exportation of the text file. The discretization of the sample is below: https://filex.univ-lorraine.fr/get?k=x7QUaFYoeOEXVGxuzmd The script is below: https://filex.univ-lorraine.fr/get?k=7PleCkGsG03r3IJ8ZpX Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #403773]: contact position
Question #403773 on Yade changed: https://answers.launchpad.net/yade/+question/403773 Yor1 posted a new comment: Hello, I want to extend this work. In fact, i want to have a fourth column in which i put the state of contact : 0 : contact not broken 1 : contact broken Is this possible ? Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #403773]: contact position
Question #403773 on Yade changed: https://answers.launchpad.net/yade/+question/403773 Status: Answered => Solved Yor1 confirmed that the question is solved: And yess that make me happy :D I didn't make attention of this line and i didn't reflect to this line. Thank you !! Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #403773]: contact position
New question #403773 on Yade: https://answers.launchpad.net/yade/+question/403773 Hello, I want to determinate the contact position (x,y,z) and export it in text file. I have a cube with 10 particles in this link: https://filex.univ-lorraine.fr/get?k=IeGdl6rNjXEaNttLxcF To obtain the positions of contact, i loop on O.interactions and i use these lines of command def record(): for i in O.interactions: if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): x1=i.geom.contactPoint[0] x2=i.geom.contactPoint[1] x3=i.geom.contactPoint[2] yade.plot.addData(x1=x1,x2=x2,x3=x3) plot.saveDataTxt(OUT) The problem is the loop don't work on the contacts and the file text repeat the same coordinates of a contact. The total script is in this link: https://filex.univ-lorraine.fr/get?k=MG5vd4Vp8EFcwupfxzT Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #402592]: Plot Over Line with Paraview
Question #402592 on Yade changed: https://answers.launchpad.net/yade/+question/402592 Status: Answered => Solved Yor1 confirmed that the question is solved: Yes you are right i need the continuous data for my analysis. With the filter Deleunay3D i approximate the particles with continuous medium and that is the solution. Your answer resolve my problem. Thank you ! Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #402592]: Plot Over Line with Paraview
Question #402592 on Yade changed: https://answers.launchpad.net/yade/+question/402592 Yor1 posted a new comment: Hi Jan, I am sorry. This is the correct link : https://www.dropbox.com/s/rw8y41chfrwb8fi/20k_sx60sy11_excavation-spheres.55302.vtu?dl=0 Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #402592]: Plot Over Line with Paraview
Question #402592 on Yade changed: https://answers.launchpad.net/yade/+question/402592 Yor1 posted a new comment: Hello Jan, You find the vtk file in this link: https://www.dropbox.com/home?preview=20k_sx60sy11_excavation-spheres.55302.vtu Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #402592]: Plot Over Line with Paraview
Question #402592 on Yade changed: https://answers.launchpad.net/yade/+question/402592 Yor1 posted a new comment: Hi Jan ! Thank you for the response. I want to know how can i provide the vtk file. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #402592]: Plot Over Line with Paraview
New question #402592 on Yade: https://answers.launchpad.net/yade/+question/402592 Hello, I do a test of excavation and i obtain the stress distribution on the medium. I want to trace a curve stress/abscissa of particles (X) on a line. In the paraview's manual : http://www.paraview.org/Wiki/images/d/d5/ParaViewTutorial398.pdf (page 34) they give these instructions to obtain the curve with filter PlotOverLine : 1. Open the file disk out ref.ex2, load all variables, (see Exercise 2.4). 2. Add the Clip filter to disk out ref.ex2, Uncheck the Show Plane checkbox in the properties panel, and click (like in Exercise 2.8). This will make it easier to see and manipulate the line we are plotting over. 3. Click on disk out ref.ex2 in the pipeline browser to make that the active object. 4. From the menu bar, select Filters → Data Analysis → Plot Over Line or apply the Plot Over Line filter using the quick launch (ctrl+space Win/Linux, alt+space Mac). 5. Adjust the line so that it goes from the base of the disk straight up to the top of the mesh using the 3D widget manipulators, the p key shortcut, or the properties panel parameters. 6. Once you have your line satisfactorily located, click the button. I follow these instructions but i don't obtain the curve. I don't know if i present well the problem. If you want more informations, i'm glad to give them. I tried also the filter PlotData. The problem is that it takes in account all the particles. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295520]: Exception occured: std::bad_alloc
Question #295520 on Yade changed: https://answers.launchpad.net/yade/+question/295520 Yor1 posted a new comment: Hello Badugama, 'X1Y1Z1_1k.spheres' is file which contains the positions and radii of particles of the sample. You can constitute your sample and you name it '.spheres' for example and you modify X1Y1Z1_1k.spheres by '.spheres' in the script. Remark : you have to create your particles file in the same directory of your script. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295520]: Exception occured: std::bad_alloc
Question #295520 on Yade changed: https://answers.launchpad.net/yade/+question/295520 Status: Answered => Solved Yor1 confirmed that the question is solved: Dear Bruno and Anton, The origin of the problem is that the boxes are contituted many times in the recorder servoController(). So i moved the lines in which the boxes is contituted out of the recorder and i works. That solve my problem. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295520]: Exception occured: std::bad_alloc
Question #295520 on Yade changed: https://answers.launchpad.net/yade/+question/295520 Yor1 posted a new comment: Hi Bruno, We have the indentation before "O" because this line is included in the recorder servoController(). Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295520]: Exception occured: std::bad_alloc
Question #295520 on Yade changed: https://answers.launchpad.net/yade/+question/295520 Yor1 posted a new comment: Hello Bruno, I think that is a problem of memory. In the engines i think tha "PyRunner(iterPeriod=1,initRun=True,command='servoController()',label='servo')" take a lot of memory and after 1000 iterations i don't have memory. In order to preserve memory for the simulation, i think that the solution is iterPeriod must be important for example iterPeriod=100 or iterPeriod=1000. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #295520]: Exception occured: std::bad_alloc
New question #295520 on Yade: https://answers.launchpad.net/yade/+question/295520 Hello everybody ! I try to simulate a simple shear test. I simulate the simple shear test with 40 iterations. The problem is when the simulation is between 1000 and 1100 iterations i obtained this error message: "FATAL /home/hamdi/YADE/sources/trunk/core/ThreadRunner.cpp:30 run: Exception occured: std::bad_alloc" I don't undersatand the origin of the error. Best regards! Jabrane P.S this is my script # -*- coding: utf-8 -*- O=Omega() from yade import ymport, utils, plot ## parameters definition PACKING='X1Y1Z1_1k' DAMPING=0.5 dtCOEFF=0.5 normalSTRESS=5e5 normalVEL=normalSTRESS/1e8 # 0.001 for 100kPa // optimized for normalVEL=normalSTRESS/1e8? shearVEL=1*normalVEL # try different values to ensure quasi-static conditions intR=1.263 #1.263 for X1Y1Z1_5k DENS=3000 YOUNG=50e9 FRICT=18 ALPHA=0.3 TENS=45e5 COH=45e6 iterMAX=40 OUT='shearTest_'+PACKING+'_K10_D3000_Y50e9A03F18T45e5C45e6_500kPa_shearVel1' ## Import of the sphere assembly ### material definition def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0)) ## copy spheres from the packing into the scene O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) ## preprocessing to get dimensions dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf ## initial surface S0=X*Z ## spheres factory R=0 Rmax=0 numSpheres=0. for o in O.bodies: if isinstance(o.shape,Sphere): o.shape.color=(0.7,0.5,0.3) numSpheres+=1 R+=o.shape.radius if o.shape.radius>Rmax: Rmax=o.shape.radius Rmean=R/numSpheres ## creation of shear box thickness=Y/100 oversizeFactor=1.3 ### loading platens O.bodies.append(utils.box(center=(xinf+X/2.,yinf-thickness+Rmean/10.,zinf+Z/2.),extents=(oversizeFactor*X/2,thickness,oversizeFactor*Z/2),material=wallMat,fixed=True)) bottomPlate=O.bodies[-1] O.bodies.append(utils.box(center=(xinf+X/2.,ysup+thickness-Rmean/10.,zinf+Z/2.),extents=(oversizeFactor*X/2,thickness,oversizeFactor*Z/2),material=wallMat,fixed=True)) topPlate=O.bodies[-1] O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='aabb'),Bo1_Box_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='ss2d3dg'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), GlobalStiffnessTimeStepper(defaultDt=0.1*PWaveTimeStep(),timestepSafetyCoefficient=dtCOEFF), TranslationEngine(ids=[topPlate.id],translationAxis=(0.,-1.,0.),velocity=0.,label='yTranslation'), PyRunner(iterPeriod=1,initRun=True,command='servoController()',label='servo'), NewtonIntegrator(damping=DAMPING,gravity=(0,0,0),label='damper'), PyRunner(iterPeriod=100,initRun=True,command='dataCollector()'), ] ## Engines definition ( servoController() and dataCollector() ) shearing=False sigmaN=0 tau=0 Fs1=0 Fs2=0 Xdispl=0 px0=0 Ydispl=0 py0=topPlate.state.pos[1] prevTranslation=0 n=0 def servoController(): global px0, py0, sigmaN, n, Fn1, Fn2, shearing, butee, piston1, piston2 Fn1=abs(O.forces.f(topPlate.id)[1]) Fn2=abs(O.forces.f(bottomPlate.id)[1]) sigmaN=Fn1/(S0-2*Xdispl*Z) # necessary? #print yTranslation.velocity, sigmaN if shearing==False: if yTranslation.velocity(0.9*normalSTRESS): yTranslation.velocity=normalVEL*((normalSTRESS-sigmaN)/normalSTRESS) if shearing==False and abs((normalSTRESS-sigmaN)/normalSTRESS)<0.001 and unbalancedForce()<0.01: yTranslation.velocity=0 n+=1 if n>1000 and abs((sigmaN-normalSTRESS)/normalSTRESS)<0.001: print 'stress on joint plane = ', utils.forcesOnPlane((X/2,Y/2,Z/2),(0,1,0))/S0 ### add top box O.bodies.append(utils.box(center=(xinf-thickness+Rmean/10,3*(ysup/4)+2*Rmean,zsup/2),extents=(thickness,Y/4,oversizeFactor*Z/2),material=wallMat,fixed=True)) butee=O.bodies[-1] O.bodies.append(utils.box(center=(xsup+thickness-Rmean/10,3*(ysup/4)+2*Rmean,zsup/2),extents=(thickness,Y/4,oversizeFactor*Z/2),material=wallMat,fixed=True)) O.bodies.append(utils.box(center=(xsup/2,3*(ysup/4)+2*Rmean,zinf-thickness+Rmean/10),extents=(oversizeFactor*X/2,Y/4,thickness),material=wallMat,fixed=True,wire=True)) O.bodies.append(utils.box(center=(xsup/2,3*(ysup/4)+2*Rmean,zsup+thickness-Rmean/10),extents=(oversizeFactor*X/2,Y/4,thickness),material=wallMat,fixed=True,wire=True)) ### add bottom box O.bodies.append(utils.box(center=(xsup+thickness-R
Re: [Yade-users] [Question #295464]: Calculation of damping energy on chosen particles of a sample
Question #295464 on Yade changed: https://answers.launchpad.net/yade/+question/295464 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Jan! Thank you for the response. I got a method to choose the particle in which I want to calculate the damping energy. For the uniaxial test : i choose the particles which state.vel[0]!=0 and state.vel[2]!=0. For the shear test : i choose the particle which state.vel!=(0,0,0) Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #295464]: Calculation of damping energy on chosen particles of a sample
New question #295464 on Yade: https://answers.launchpad.net/yade/+question/295464 Hello Yade users ! I try to calculate the damping energy in a shear test and tensile test. Damping energy is computed in NewtonIntegrator : https://github.com/yade/trunk/blob/master/pkg/dem/NewtonIntegrator.cpp#L43 In these test, I apply the boundary conditions on the particles : For the shear test, i fix the boundary particles on ground of the sample. For the tensile test, i apply the strain rate on the boundary particles on top and ground of the sample. In my case, i have to calculate the damping energy in the particles which are not the boundary particles. So the question : Is it possible to calculate the damping energy on particles which I choose ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hello Jan ! I modified the computation of the displacement and the external work by these formula: displacement += strainRate*originalLength*scene->dt; externalWork += displacement*(sumPosForces+sumNegForces)/2; And it works and that resolves my problem. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: I change the manner that i calculate the displacement if(asymmetry==0){ dAX*=.5; for(size_t i=0; idt; // update current position } } Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hi Jan, I calculate the displacement and the external work with these lines: if(asymmetry==0){ dAX*=.5;displacement=2*max(negIds.size(),posIds.size())*dAX;} externalWork += displacement*(sumPosForces+sumNegForces)/2; The eslastic energy and the external work are equal in the pre-pic stage and that is reasonable for me. Now i have to modify the calculation of the damping energy. In fact with NewtonIntegrator, the damped energy is calculated in all the particles. But in my case, i have to calculate the damping energy in the particles that don't belong to posIds and negIds. Best regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hi Jan, I compute the elastic energy in the recorder (in the script) with these lines: for i in O.interactions: if not i.isReal : continue E+=0.5*(i.phys.normalForce.squaredNorm()/i.phys.kn + i.phys.shearForce.squaredNorm()/i.phys.ks) With these lines i guarantee that i calculate the elastic energy in all contacts (contact between spheres, contact between sphere and wall, etc ...) For the external work i try to compute it in the sources in https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.cpp#L106 if(asymmetry==0){ dAX*=.5;displacement=2*dAX;externalWork+=displacement(sumPosForces+sumNegForces)/2;externalWork+=externalWork;} Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hi Jan, This is the script which i use: from yade import ymport, utils , plot import math PACKING='X1Y2Z1_2k' OUT=PACKING+'_tensionTest_r0002_energy' DAMP=0.4 s saveData=100 iterMax=4 saveVTK=1000 strainRate=0.002 intR=1.5028 DENS=4000 YOUNG=65e9 FRICT=10 ALPHA=0.4 TENS=8e6 COH=160e6 def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf bb=utils.uniaxialTestFeatures() negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area'] O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(label='interactionLaw')] ), UniaxialStrainer(strainRate=strainRate,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=1,blockRotations=1,setSpeeds=0,stopStrain=0.1,label='strainer'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label='newton'), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), #VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk') ] O.step(); SSgeom.interactionDetectionFactor=-1. Saabb.aabbEnlargeFactor=-1. layerSize=0.2 for o in O.bodies: if isinstance(o.shape,Sphere): if ( o.state.pos[axis]<(dim[0][axis]+layerSize*(dim[1][axis]-dim[0][axis])) ) or ( o.state.pos[axis]>(dim[1][axis]-layerSize*(dim[1][axis]-dim[0][axis])) ) : o.shape.color=(1,1,1) O.run(iterMax) -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hi Jan, Thank you for the answer. Your alternative work but it doesn't resolve my problem because the external work obtained is underestimated (i compare it with the elastic energy). I tried a second alternative which based on the difference of the total displacement between iteration "i" and "i+1". The problem is that in UniaxialStrainer.cpp i can't do this difference because we can't control the I tried these lines of code but it doesn't work: Real displacement; Real S; S=axialLength-originalLength; displacement=(axialLength-originalLength)-S; I obtained displacement=0. May be this solution is stupid but i don't know how to do the get the difference in UniaxialStrainer.cpp Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hello Jan, The behavior of dAX is related to the line in which i put "this->dAX = dAX" In fact i put "this->dAX = dAX" just after https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.cpp#L95 and just after https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.cpp#L122 and i get different value of dAX. The question is where do I put "this->dAX = dAX" to get the real behavior? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
Question #295301 on Yade changed: https://answers.launchpad.net/yade/+question/295301 Yor1 posted a new comment: Hello Jerome and Jan Thank you of your response. Jerome, I simulate the tensile test with TriaxialStressController using a positive strainRate but i doesn't work. I get sigma=sigma2=sigma3=0 and that is anormal. Jan, your solution work but i can't have a definitive opinion until i calculate Wext. But i have a question how do you know that dAX is a local variable ? Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #295301]: calculate external work in Uniaxial Strainer
New question #295301 on Yade: https://answers.launchpad.net/yade/+question/295301 Hello Yade users ! I try to calculate the external work on a sample in tensile test. In fact, i calculate the external work with this simple formulate "Wext_incremental=AppliedForce*displacement_incremental". I want to integrate this formulate in the sources UniaxialStrainer.cpp In uniaxialStrainer.cpp the incremental displacement is calculated and named "dAX". In order to verify the behavior of incremental displacement, i define "dAX" in uniaxialStrainer.hpp like this ((Real,dAX,0,,"Current incremental displacement")) in the line 43 of UniaxialStrainer.hpp My problem is that in the simulation of tensile test , dAX=0 during the simulation. I call dAX in the python script strainer.dAX I don't understand where is the problem. https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.hpp https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.cpp Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #293096]: incrememntal compression with engine
Question #293096 on Yade changed: https://answers.launchpad.net/yade/+question/293096 Yor1 posted a new comment: Hello Bruno, Yes this loop is not doing anything. In fact when i simulate with one list of engines, this loop is working. It means that the loop is correct. I think that i have the old engine dead to use a new engine When i replace the engines with this portion of code, the loop is working O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), TriaxialStressController(internalCompaction=False,label='triax'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk') ] triax.stressMask=7 triax.goal1=confinement triax.goal2=confinement triax.goal3=confinement triax.max_vel=0.01 while 1: if confinement==0: O.run(1000,True) # to stabilize the system break O.run(100,True) unb=unbalancedForce() #note: triax.stress(k) returns a stress vector, so we need to keep only the normal component meanS=abs(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3 print 'unbalanced force:',unb,' mean stress: ',meanS if unb<0.005 and abs(meanS-abs(confinement))/abs(confinement)<0.001: O.run(1000,True) # to stabilize the system e10=triax.strain[0] e20=triax.strain[1] e30=triax.strain[2] break triax.stressMask=7 triax.goal1=confinement triax.goal2=confinement triax.goal3=confinement triax.max_vel=0.1 for i in range(0,int(-1e-6*stress_max)): if ( abs(triax.goal2) < abs(stress_max) ): O.run(200,True) triax.goal2+=delta_stress triax.stressMask=5 triax.goal1=confinement triax.goal2=strainRate triax.goal3=confinement triax.max_vel=1 Regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #293096]: incrememntal compression with engine
New question #293096 on Yade: https://answers.launchpad.net/yade/+question/293096 Hello ! I try to simulate triaxial compression with confinement of 1 MPa test on 3 steps: 1) isotropic loading sigma1=sigma2=sigma3=1MPa 2) loading the specimen by incrementing sigma1=1 MPa every 200 iterations until peak 3) in the post-peak stage, i load the specimen with strain Rate = 0.01 m/s The problem is the code take in consideration the first and the third step. In fact, when the isotropic loading finish, i have a loading with the strain rate and not with the incrementation of sigma1. Jabrane This is the code. from yade import ymport, utils , plot import math PACKING='X1Y2Z1_20k' OUT=PACKING+'_compressionTest' DAMP=0.4 saveData=100 iterMax=200 saveVTK=1 confinement=-1e6 delta_stress=-1e6 stress_max=-200e6 strainRate=-0.01 intR=1.4450546 DENS=4000 YOUNG=65e9 FRICT=10 ALPHA=0.4 TENS=8e6 COH=160e6 def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0)) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf R=0 Rmax=0 numSpheres=0. for o in O.bodies: if isinstance(o.shape,Sphere): numSpheres+=1 R+=o.shape.radius if o.shape.radius>Rmax: Rmax=o.shape.radius Rmean=R/numSpheres O.reset() mn,mx=Vector3(xinf+0.1*Rmean,yinf+0.1*Rmean,zinf+0.1*Rmean),Vector3(xsup-0.1*Rmean,ysup-0.1*Rmean,zsup-0.1*Rmean) walls=utils.aabbWalls(oversizeFactor=1.5,extrema=(mn,mx),thickness=min(X,Y,Z)/100.,material=wallMat) wallIds=O.bodies.append(walls) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk'), TriaxialStressController(internalCompaction=False,label='triax'), ] O.step(); SSgeom.interactionDetectionFactor=-1. Saabb.aabbEnlargeFactor=-1. O.engines = O.engines[:6]+[TriaxialStressController(stressMask=7,goal1=confinement,goal2=confinement,goal3=confinement,max_vel=0.01,internalCompaction=False,label='triax')] while 1: if confinement==0: O.run(1000,True) # to stabilize the system break O.run(100,True) unb=unbalancedForce() meanS=abs(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3 print 'unbalanced force:',unb,' mean stress: ',meanS if unb<0.005 and abs(meanS-abs(confinement))/abs(confinement)<0.001: O.run(1000,True) # to stabilize the system e10=triax.strain[0] e20=triax.strain[1] e30=triax.strain[2] break O.bodies[wallIds[2]].mat.frictionAngle=radians(30) O.bodies[wallIds[3]].mat.frictionAngle=radians(30) O.engines = O.engines[:6]+[TriaxialStressController(stressMask=7,goal1=confinement,goal2=confinement,goal3=confinement,max_vel=0.1,internalCompaction=False,label='triax')] for i in range(0,int(-1e-6*stress_max)): if ( abs(triax.goal2) < abs(stress_max) ): O.run(200,True) triax.goal2+=delta_stress O.engines = O.engines[:6]+[TriaxialStressController(stressMask=5,goal1=confinement,goal2=strainRate,goal3=confinement,max_vel=0.01,internalCompaction=False,label='triax')] O.run(20,True) O.run(iterMax) -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #289662]: ZeroDivisionError: float division by zero
Question #289662 on Yade changed: https://answers.launchpad.net/yade/+question/289662 Status: Answered => Solved Yor1 confirmed that the question is solved: Hi Jerome Thank you for your advice. I will try to put the essential part of the script without comments :) Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #290129]: calculation of external work
New question #290129 on Yade: https://answers.launchpad.net/yade/+question/290129 Hi all, I try to calculate the external work in triaxial compression test. In fact, i found that in the script TriaxialStressController.cpp the external work is calculated when the loading is done by force with the function "controlExternalStress" . But when the loading is done with the strain rate, the external work is not calculated. How can I calculate the external work when i load with the strain rate. Best regards. Jabrane. This is the script TriaxialStressController.cpp #include"TriaxialStressController.hpp" #include #include #include #include #include #include #include #include #include #ifdef FLOW_ENGINE //#include #include "FlowEngine_FlowEngineT.hpp" #endif CREATE_LOGGER(TriaxialStressController); YADE_PLUGIN((TriaxialStressController)); TriaxialStressController::~TriaxialStressController(){} Vector3r TriaxialStressController::getStress(int boundId) {assert (boundId>=0 && boundId<=5); return stress[boundId];} Vector3r TriaxialStressController::getStrainRate() { return Vector3r ( (Body::byId(wall_right_id,scene)->state->vel[0]-Body::byId(wall_left_id,scene)->state->vel[0])/width, (Body::byId(wall_top_id,scene)->state->vel[1]-Body::byId(wall_bottom_id,scene)->state->vel[1])/height, (Body::byId(wall_front_id,scene)->state->vel[2]-Body::byId(wall_back_id,scene)->state->vel[2])/depth ); } void TriaxialStressController::updateStiffness() { Real fluidStiffness = 0.; #ifdef FLOW_ENGINE FOREACH(const shared_ptr e, Omega::instance().getScene()->engines) { if (e->getClassName() == "FlowEngine") { TemplateFlowEngine_FlowEngineT* flow = dynamic_cast*>(e.get()); if ( (flow->fluidBulkModulus > 0) && (!(flow->dead)) ) fluidStiffness = flow->fluidBulkModulus/porosity; } } #endif for (int i=0; i<6; ++i) stiffness[i] = 0; InteractionContainer::iterator ii= scene->interactions->begin(); InteractionContainer::iterator iiEnd = scene->interactions->end(); for( ; ii!=iiEnd ; ++ii ) if ((*ii)->isReal()) { const shared_ptr& contact = *ii; Real fn = (static_cast (contact->phys.get()))->normalForce.norm(); if (fn!=0) { int id1 = contact->getId1(), id2 = contact->getId2(); for (int index=0; index<6; ++index) if ( wall_id[index]==id1 || wall_id[index]==id2 ) { FrictPhys* currentContactPhysics = static_cast ( contact->phys.get() ); stiffness[index] += currentContactPhysics->kn; } } } if (fluidStiffness > 0) { stiffness[0] += fluidStiffness*width*depth/height; stiffness[1] += fluidStiffness*width*depth/height; stiffness[2] += fluidStiffness*height*depth/width; stiffness[3] += fluidStiffness*height*depth/width; stiffness[4] += fluidStiffness*width*height/depth; stiffnessWallFront = stiffness[5] += fluidStiffness*width*height/depth; } } void TriaxialStressController::controlExternalStress(int wall, Vector3r resultantForce, State* p, Real wall_max_vel) // controls walls such that Sum Forces from Sample on Wall = resultantForce { scene->forces.sync(); Real translation=normal[wall].dot(getForce(scene,wall_id[wall])-resultantForce); const bool log=false; if(log) LOG_DEBUG("wall="vel=previousTranslation[wall]/scene->dt; //if(log)TRVAR2(previousTranslation,p->se3.position); } void TriaxialStressController::action() { // sync thread storage of ForceContainer scene->forces.sync(); if (first) {// sync boundaries ids in the table wall_id[wall_bottom] = wall_bottom_id; wall_id[wall_top] = wall_top_id; wall_id[wall_left] = wall_left_id; wall_id[wall_right] = wall_right_id; wall_id[wall_front] = wall_front_id; wall_id[wall_back] = wall_back_id;} if(thickness<0) thickness=2.0*YADE_PTR_CAST(Body::byId(wall_bottom_id,scene)->shape)->extents.y(); State* p_bottom=Body::byId(wall_bottom_id,scene)->state.get(); State* p_top=Body::byId(wall_top_id,scene)->state.get(); State* p_left=Body::byId(wall_left_id,scene)->state.get(); State* p_right=Bod
[Yade-users] [Question #289662]: ZeroDivisionError: float division by zero
New question #289662 on Yade: https://answers.launchpad.net/yade/+question/289662 Hello, I try to simulate triaxial compression test on fractured sample in order to determine the energy balance. To calculate the elastic energy i use this formula: Elastic energy=Fn^2/kn + Fs^2/ks with Fn, Fs normal and shear forces and kn, ks normal and shear stiffnesses. When i run the code i have this error message: ZeroDivisionError: float division by zero. Best regards. Jabrane. This is the code: from yade import ymport, utils , plot import math PACKING='X1Y2Z1_20k' OUT=PACKING+'_compressionTest' DAMP=0.4 # numerical damping saveData=100 # data record interval iterMax=200 # maximum number of iteration (to be adjusted) saveVTK=1 # Vtk files record interval confinement=-1e6 #uniaxial_stress=-1e6 #delta_stress=-1e6 #stress_max=-200e6 strainRate=-0.02 intR=1.455 DENS=4000 YOUNG=65e9 FRICT=10 ALPHA=0.4 TENS=8e6 COH=160e6 def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0)) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf R=0 Rmax=0 numSpheres=0. for o in O.bodies: if isinstance(o.shape,Sphere): numSpheres+=1 R+=o.shape.radius if o.shape.radius>Rmax: Rmax=o.shape.radius Rmean=R/numSpheres O.reset() mn,mx=Vector3(xinf+0.1*Rmean,yinf+0.1*Rmean,zinf+0.1*Rmean),Vector3(xsup-0.1*Rmean,ysup-0.1*Rmean,zsup-0.1*Rmean) walls=utils.aabbWalls(oversizeFactor=1.5,extrema=(mn,mx),thickness=min(X,Y,Z)/100.,material=wallMat) wallIds=O.bodies.append(walls) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) import gts c=X/4 alpha=math.pi/4 ptA = gts.Vertex( X/2. + c/2.*cos(alpha), Y/2. + c/2.*sin(alpha), 8./7.*Z) ptB = gts.Vertex( X/2. - c/2.*cos(alpha), Y/2. - c/2.*sin(alpha), 8./7.*Z) ptApr = gts.Vertex(X/2. + c/2.*cos(alpha), Y/2. + c/2.*sin(alpha), -1./7.*Z) ptBpr = gts.Vertex(X/2. - c/2.*cos(alpha), Y/2. - c/2.*sin(alpha), -1./7.*Z) e1 = gts.Edge(ptA,ptB) e2 = gts.Edge(ptA,ptApr) e3 = gts.Edge(ptApr,ptB) f1 = gts.Face(e1,e2,e3) e4 = gts.Edge(ptB,ptBpr) e5 = gts.Edge(ptBpr,ptApr) f2 = gts.Face(e4,e5,e3) s1 = gts.Surface() s1.add(f1) s1.add(f2) facet = gtsSurface2Facets(s1,wire = False,material=wallMat) O.bodies.append(facet) execfile('identifBis.py') O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), TriaxialStressController(internalCompaction=False,label='triax'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk') ] tensCks=shearCks=cks=cks0=0 def recorder(): E=0 global tensCks, shearCks, e10,e20,e30 tensCks=0 shearCks=0 e10=0 e20=0 e30=0 for i in O.interactions: if not i.isReal : continue if (isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere)) or (isinstance(O.bodies[i.id1].shape,Box) and isinstance(O.bodies[i.id2].shape,Sphere)) or (isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Box)): E+=0.5*(i.phys.normalForce.squaredNorm()/i.phys.kn + i.phys.shearForce.squaredNorm()/i.phys.ks) triax.stressMask=7 triax.goal1=confinement triax.goal2=confinement triax.goal3=confinement triax.max_vel=0.01 while 1: if confinement==0: O.run(1000,True) # to stabilize the system break O.run(100,True) unb=unbalancedForce() meanS=abs(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3 print 'unbalanced force:',unb,' mean stress: ',meanS if unb<0.005 and abs(meanS-abs(confinement))/abs(confinement)<0.001: O.run(1000,True) # to stabilize the system e10=triax.strain[0] e20=triax.strain[1] e30=triax.strain[2] break triax.stressMask=5 triax.goal1=confinement triax.goal2=strainRate triax.goal3=confine
Re: [Yade-users] [Question #280831]: Warning: no X rendering available
Question #280831 on Yade changed: https://answers.launchpad.net/yade/+question/280831 Yor1 posted a new comment: Hello, Yes i created an empty file .Xauthority in users home and the error still exist. Should i shut down my computer ?? Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #280831]: Warning: no X rendering available
Question #280831 on Yade changed: https://answers.launchpad.net/yade/+question/280831 Yor1 posted a new comment: Hello Jerome, Thank you for your response. I searched the .Xauthority file in users/home but i don't find it. Best regards. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #280831]: Warning: no X rendering available
Question #280831 on Yade changed: https://answers.launchpad.net/yade/+question/280831 Yor1 posted a new comment: Hello Bruno, Thank you for your response. I searched the .Xauthority file in users/home but i don't find it. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #280831]: Warning: no X rendering available
New question #280831 on Yade: https://answers.launchpad.net/yade/+question/280831 Hello, I installed kde in my computer. I remarked that when i call yade in the terminal i obtain this error message: Welcome to Yade 2015-04-08.git-f3818b4 Warning: no X rendering available (see https://bbs.archlinux.org/viewtopic.php?id=13189) TCP python prompt on localhost:9000, auth cookie `skcaye' XMLRPC info provider on http://localhost:21000 [[ ^L clears screen, ^U kills line. F8 plot. ]] So i removed the kde. But, the problem occurs. I modified this file : trunk/core/main/main.py.in like written in this link https://github.com/yade/trunk/blob/master/core/main/main.py.in after modifying the file i compiled yade. But the problem still exist. I don't know what i have to do. Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Status: Answered => Solved Yor1 confirmed that the question is solved: when i have the error, i just write "make install". Now, i don't have the error because i wrote "sudo make install" and it solves my problem. Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Hello Anton, The problem is in cmake, in fact when i write in the terminal: "make install" i have this error message at the end : Install configuration: "Release" -- Installing: /usr/local/bin/yade-2015-04-08.git-f3818b4-batch CMake Error at cmake_install.cmake:44 (FILE): file INSTALL cannot copy file "/home/hamdi/YADE/sources/build/bins/yade-2015-04-08.git-f3818b4-batch" to "/usr/local/bin/yade-2015-04-08.git-f3818b4-batch". You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Yes i define the variables like this in JointedCohesiveFroctionalPM.hpp : class Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM: public LawFunctor{ public: virtual bool go(shared_ptr& _geom, shared_ptr& _phys, Interaction* I); FUNCTOR2D(ScGeom,JCFpmPhys); YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM,LawFunctor,"Interaction law for cohesive frictional material, e.g. rock, possibly presenting joint surfaces, that can be mechanically described with a smooth contact logic [Ivars2011]_ (implemented in Yade in [Scholtes2012]_). See examples/jointedCohesiveFrictionalPM for script examples. Joint surface definitions (through stl meshes or direct definition with gts module) are illustrated there.", ((string,Key,"",,"string specifying the name of saved file 'cracks___.txt', when :yref:`recordCracks` is true.")) ((bool,cracksFileExist,false,,"if true (and if :yref:`recordCracks`), data are appended to an existing 'cracksKey' text file; otherwise its content is reset.")) ((bool,smoothJoint,false,,"if true, interactions of particles belonging to joint surface (:yref:`JCFpmPhys.isOnJoint`) are handled according to a smooth contact logic [Ivars2011]_, [Scholtes2012]_.")) ((bool,recordCracks,false,,"if true, data about cohesive interactions that break are stored in a text file cracksKey.txt (see :yref:`Key` and :yref:`cracksFileExist`). It contains 9 columns: the break iteration, the 3 coordinates of the contact point, the type (1 means shear break, while 0 corresponds to tensile break), the ''cross section'' (mean radius of the 2 spheres), the 3 coordinates of the contact normal and the energy released.")) ((bool,recordSlips,false,,"if true, data about frictional interactions that slip are stored in a text file cracksKey.txt.")) ((bool,neverErase,false,,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene")) ((Real,totalSlipE,0.,,"calculate the sum of the energy dissipated by particles sliding we can get the value in the recorder through interactionLaw.totalSlipE")) // written by Jabrane Hamdi ((Real,totalCracksE,0.,,"calculate the sum of the energy dissipated by particles contact broken we can get the value in the recorder through interactionLaw.totalSlipE")) // written by Jabrane Hamdi ); -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Hello, When i compile the code, there is not error and this is a good thing. But the problem is that the new variables defined in JointedCohesiveFroctionalPM.hpp (totalSlipE and totalCracksE) can not be called in python scripts when i write "label.totalSlipE=interactionLaw.totalSlipE" and "interactionLaw.totalCracksE". Best regards. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Hi Jan, I think that the problem is not in the python script because when i write the symbolic link of yade in the terminal i have the same error message: *** Error in `/usr/bin/python': free(): invalid pointer: 0x0a0f1718 *** Abandon (core dumped) This is my python script: from yade import ymport, utils , plot import math PACKING='X1Y2Z1_20k' OUT=PACKING+'_compressionTest' Simulation Control DAMP=0.4 # numerical damping saveData=100 # data record interval iterMax=35 # maximum number of iteration (to be adjusted) saveVTK=1 # Vtk files record interval Boundary Conditions confinement=-1e6 #uniaxial_stress=-1e6 delta_stress=-1e6 stress_max=-205e6 strainRate=-0.01 intR=1.4450546 DENS=4000 YOUNG=65e9 FRICT=10 ALPHA=0.4 TENS=8e6 COH=160e6 def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0)) O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf R=0 Rmax=0 numSpheres=0. for o in O.bodies: if isinstance(o.shape,Sphere): numSpheres+=1 R+=o.shape.radius if o.shape.radius>Rmax: Rmax=o.shape.radius Rmean=R/numSpheres O.reset() mn,mx=Vector3(xinf+0.1*Rmean,yinf+0.1*Rmean,zinf+0.1*Rmean),Vector3(xsup-0.1*Rmean,ysup-0.1*Rmean,zsup-0.1*Rmean) walls=utils.aabbWalls(oversizeFactor=1.5,extrema=(mn,mx),thickness=min(X,Y,Z)/100.,material=wallMat) wallIds=O.bodies.append(walls) beam=O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) for o in O.bodies: if isinstance(o.shape,Sphere): o.shape.color=(0.7,0.5,0.3) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')] ), TriaxialStressController(internalCompaction=False,label='triax'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk') ] plot.plots={'i':('s1','s2','s3')} plot.plot() # SIMULATION STARTS HERE manage interaction detection factor during the first timestep and then set default interaction range ((cf. A DEM model for soft and hard rock, Scholtes & Donze, JMPS 2013)) O.step(); ### initializes the interaction detection factor SSgeom.interactionDetectionFactor=-1. Saabb.aabbEnlargeFactor=-1. coordination number verification and reinforcement of boundary particles numSSlinks=0 numCohesivelinks=0 numFrictionalLinks=0 for i in O.interactions: if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): numSSlinks+=1 if i.phys.isCohesive : numCohesivelinks+=1 else : numFrictionalLinks+=1 print "nbSpheres=", numSpheres," | coordination number =", 2.0*numCohesivelinks/numSpheres APPLYING ISOTROPIC LOADING triax.stressMask=7 triax.goal1=confinement triax.goal2=confinement triax.goal3=confinement triax.max_vel=0.01 while 1: if confinement==0: O.run(1000,True) # to stabilize the system break O.run(100,True) unb=unbalancedForce() #note: triax.stress(k) returns a stress vector, so we need to keep only the normal component meanS=abs(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3 print 'unbalanced force:',unb,' mean stress: ',meanS if unb<0.005 and abs(meanS-abs(confinement))/abs(confinement)<0.001: O.run(1000,True) # to stabilize the system e10=triax.strain[0] e20=triax.strain[1] e30=triax.strain[2] break O.bodies[wallIds[2]].mat.frictionAngle=radians(30) O.bodies[wallI
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Hello Anton, How can we compile yade with debug mode ? When i compile yade i use this command: "make install" in this directory YADE/sources/build is this what you mean by compiling yade with debug mode ? Best regards Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #277532]: invalid pointer
Question #277532 on Yade changed: https://answers.launchpad.net/yade/+question/277532 Yor1 posted a new comment: Hi Anton, The lines which modified by me are: *line 89 in JointCohesiveFrictionalPM.cpp totalCracksE=totalCracksE+0.5*( ((phys->normalForce.norm()*phys->normalForce.norm())/phys->kn) + ((phys->shearForce.norm()*phys->shearForce.norm())/phys->ks) ); // written by Jabrane Hamdi *line 124 in JointCohesiveFrictionalPM.cpp /* Energy calculated by particles sliding written by Jabrane Hamdi */ totalSlipE=0; * line 162 in JointCohesiveFrictionalPM.cpp /// energy dissipated by particles sliding written by Jabrane Hamdi totalSlipE=totalSlipE+((1./phys->ks)*(trialForce-shearForce))/*plastic disp*/ .dot(shearForce)/*active force*/; Best regards Jabrane *line 112 in JointCohesiveFrictionalPM.hpp ((Real,totalSlipE,0.,,"calculate the sum of the energy dissipated by particles sliding we can get the value in the recorder through interactionLaw.totalSlipE")) // written by Jabrane Hamdi *line 113 in JointCohesiveFrictionalPM.hpp ((Real,totalCracksE,0.,,"calculate the sum of the energy dissipated by particles contact broken we can get the value in the recorder through interactionLaw.totalSlipE")) // written by Jabrane Hamdi -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #277532]: invalid pointer
New question #277532 on Yade: https://answers.launchpad.net/yade/+question/277532 Hello, I want to modify the scripts c++ JointedCohesiveFroctionalPM.cpp and .hpp to calculate the dissiped energy. After writing the modifications, i compile yade with "make install" in directory "YADE/sources/build". When i run the code, i obtain this error message: *** Error in `/usr/bin/python': free(): invalid pointer: 0x0a0f1718 *** Abandon (core dumped) this is the modified JointedCohesiveFroctionalPM.cpp script: /* LucScholtes2010 */ #include"JointedCohesiveFrictionalPM.hpp" #include #include #include YADE_PLUGIN((JCFpmMat)(JCFpmState)(JCFpmPhys)(Ip2_JCFpmMat_JCFpmMat_JCFpmPhys)(Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM)); /** Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM / CREATE_LOGGER(Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM); bool Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM::go(shared_ptr& ig, shared_ptr& ip, Interaction* contact){ const int &id1 = contact->getId1(); const int &id2 = contact->getId2(); ScGeom* geom = static_cast(ig.get()); JCFpmPhys* phys = static_cast(ip.get()); Body* b1 = Body::byId(id1,scene).get(); Body* b2 = Body::byId(id2,scene).get(); Real Dtensile=phys->FnMax/phys->kn; string fileCracks = "cracks_"+Key+".txt"; //string /// Defines the interparticular distance used for computation Real D = 0; /*this is for setting the equilibrium distance between all cohesive elements in the first contact detection*/ if ( contact->isFresh(scene) ) { phys->normalForce = Vector3r::Zero(); phys->shearForce = Vector3r::Zero(); if ((smoothJoint) && (phys->isOnJoint)) { phys->jointNormal = geom->normal.dot(phys->jointNormal)*phys->jointNormal; //to set the joint normal colinear with the interaction normal phys->jointNormal.normalize(); phys->initD = std::abs((b1->state->pos - b2->state->pos).dot(phys->jointNormal)); // to set the initial gap as the equilibrium gap } else { phys->initD = geom->penetrationDepth; } } if ( smoothJoint && phys->isOnJoint ) { if ( phys->more || ( phys-> jointCumulativeSliding > (2*min(geom->radius1,geom->radius2)) ) ) { if (!neverErase) return false; else { phys->shearForce = Vector3r::Zero(); phys->normalForce = Vector3r::Zero(); phys->isCohesive =0; phys->FnMax = 0; phys->FsMax = 0; return true; // do we need this? -> yes if it ends the loop (avoid the following calculations) } } else { D = phys->initD - std::abs((b1->state->pos - b2->state->pos).dot(phys->jointNormal)); } } else { D = geom->penetrationDepth - phys->initD; } phys->crackJointAperture = D<0? -D : 0.; // for DFNFlow /* Determination of interaction */ if (D < 0) { //spheres do not touch if (!phys->isCohesive) { if (!neverErase) return false; else { phys->shearForce = Vector3r::Zero(); phys->normalForce = Vector3r::Zero(); phys->isCohesive =0; phys->FnMax = 0; phys->FsMax = 0; return true; // do we need this? not sure -> yes, it ends the loop (avoid the following calculations) } } if ( phys->isCohesive && (phys->FnMax>0) && (std::abs(D)>Dtensile) ) { // update body state with the number of broken bonds JCFpmState* st1=dynamic_cast(b1->state.get()); JCFpmState* st2=dynamic_cast(b2->state.get()); st1->tensBreak+=1; st2->tensBreak+=1; st1->tensBreakRel+=1.0/st1->noIniLinks; st2->tensBreakRel+=1.0/st2->noIniLinks; totalCracksE=totalCracksE+0.5*( ((phys->normalForce.norm()*phys->normalForce.norm())/phys->kn) + ((phys->shearForce.norm()*phys->shearForce.norm())/phys->ks) ); // written by Jabrane Hamdi // create a text file to record properties of the broken bond (iteration, position, type (tensile), cross section, contact normal orientation and dissipated energy) if (recordCracks) { Real scalarNF=phys->normalForce.norm(); Real scalarSF=phys->shearForce.norm(); std::ofstream file (fileCracks.c_str(), !cracksFileExist ? std::ios::trunc : std::ios::app); if(file.tellp()==0){ file <<"i p0 p1 p2 t s norm0 norm1 norm2 e"jointNormal; } else {crackNormal=geom->normal;} file << boost::lexical_cast ( scene->iter )<<" "<< boost::lexical_cast (
Re: [Yade-users] [Question #276604]: plastic dissipation
Question #276604 on Yade changed: https://answers.launchpad.net/yade/+question/276604 Yor1 posted a new comment: Hello Jerome, I compute the plastic dissipation by myself in the recorders. I think that it is possible to calculate the plastic dissipation in "JCFpm"simulations if we insert the formula of plastic dissipation in "JointedCohesiveFrictionalPM.cpp/hpp" (using the Mohr-Coulomb criterion) and the results will be obtained in the file "cracks_.txt" what do you think ? Jabrane -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #276604]: plastic dissipation
Question #276604 on Yade changed: https://answers.launchpad.net/yade/+question/276604 Yor1 posted a new comment: Hello Jan, I use the formula of plastic dissipation used in sources. In fact, i integrate the formula in the recorder like this : tensCks=shearCks=cks=cks0=0 e10=e20=e30=0 def recorder(): E=0 Ub=0 Uc=0 Wp=0 Wpla=0 global tensCks, shearCks, e10,e20,e30 tensCks=0 shearCks=0 for o in O.bodies: tensCks+=o.state.tensBreak shearCks+=o.state.shearBreak for i in O.interactions: #Ft=i.phys.shearForce #du=i.geom.shearInc #kt=i.phys.ks #Fn=i.phys.normalForce #Ftt=Ft-kt*du #maxFs=(Fn.norm()*tan(math.pi*FRICT/180) if((i.phys.shearForce-i.phys.ks*i.geom.shearInc).norm() > i.phys.normalForce.norm()*tan(math.pi*FRICT/180) ): Ftt=i.phys.shearForce-i.phys.ks*i.geom.shearInc ratio = i.phys.normalForce.norm()*tan(math.pi*FRICT/180) / Ftt.norm() trialForce=Ftt Ftt *= ratio e=((1/i.phys.ks)*(trialForce-Ftt)).dot(Ftt) Wpla=Wpla+e if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): E+=0.5*(i.phys.normalForce.squaredNorm()/i.phys.kn + i.phys.shearForce.squaredNorm()/i.phys.ks) yade.plot.addData( t=O.time ,i=O.iter ,e1=triax.strain[0]-e10 ,e2=triax.strain[1]-e20 ,e3=triax.strain[2]-e30 ,s1=triax.stress(triax.wall_right_id)[0] ,s2=triax.stress(triax.wall_top_id)[1] ,s3=triax.stress(triax.wall_front_id)[2] ,tc=0.5*tensCks,sc=0.5*shearCks,unbF=utils.unbalancedForce() ,E=E #Energie elastique ,Wp=triax.externalWork #Travail des contraintes appliquees aux limites de echantillon ,Wk=utils.kineticEnergy() #Energie cinetique ,Wd=2*utils.kineticEnergy()*DAMP*0.1*utils.PWaveTimeStep() #Energie dissipee par amortissement ,Wpla=Wpla #energie plastique ) plot.saveDataTxt(OUT) -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #276604]: plastic dissipation
New question #276604 on Yade: https://answers.launchpad.net/yade/+question/276604 Hello, I want to calculate the plastic dissipation in triaxial test. I use "Law2_ScGeom_FrictPhys_CundallStrack(traceEnergy=True,label='plastic')" to calculate the plastic dissipation but i have a message of error "FATAL /home/hamdi/YADE/sources/trunk/pkg/common/InteractionLoop.cpp:133 action: None of given Law2 functors can handle interaction #2+931, types geom:ScGeom=1 and phys:JCFpmPhys=9 (LawDispatcher::getFunctor2D returned empty functor)" This is my code : from yade import ymport, utils , plot import math # SIMULATIONS DEFINED HERE (assembly, material, boundary conditions) packing (previously constructed) PACKING='X1Y2Z1_20k' OUT=PACKING+'_compressionTest' Simulation Control DAMP=0.4 # numerical damping saveData=100 # data record interval iterMax=6 # maximum number of iteration (to be adjusted) saveVTK=1 # Vtk files record interval Boundary Conditions confinement=-1e6 #uniaxial_stress=-1e6 delta_stress=-1e6 stress_max=-200e6 strainRate=-0.01 Material microproperties -> Lac du Bonnet granite (cf. A DEM model for soft and hard rock, Scholtes & Donze, JMPS 2013) intR=1.4464# allows near neighbour interaction and coordination number K=13 (determined with coordinationNumber.py -> to be adjusted for every packing) DENS=4000 # could be adapted to match material density: dens_DEM=dens_rock*(V_rock/V_particles)=dens_rock*1/(1-poro_DEM) -> poro? YOUNG=65e9 FRICT=10 ALPHA=0.4 TENS=8e6 COH=160e6 material definition def sphereMat(): return JCFpmMat(type=1,density=DENS,young=YOUNG,poisson = ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH) def wallMat(): return JCFpmMat(type=0,density=DENS,young=YOUNG,frictionAngle=radians(0)) preprocessing to get dimensions O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) dim=utils.aabbExtrema() xinf=dim[0][0] xsup=dim[1][0] X=xsup-xinf yinf=dim[0][1] ysup=dim[1][1] Y=ysup-yinf zinf=dim[0][2] zsup=dim[1][2] Z=zsup-zinf R=0 Rmax=0 numSpheres=0. for o in O.bodies: if isinstance(o.shape,Sphere): numSpheres+=1 R+=o.shape.radius if o.shape.radius>Rmax: Rmax=o.shape.radius Rmean=R/numSpheres O.reset() # all previous lines were for getting dimensions of the packing to create walls at the right positions (below) because walls have to be genrated after spheres for FlowEngine now we construct the surrounding walls with right dimensions ### walls mn,mx=Vector3(xinf+0.1*Rmean,yinf+0.1*Rmean,zinf+0.1*Rmean),Vector3(xsup-0.1*Rmean,ysup-0.1*Rmean,zsup-0.1*Rmean) walls=utils.aabbWalls(oversizeFactor=1.5,extrema=(mn,mx),thickness=min(X,Y,Z)/100.,material=wallMat) wallIds=O.bodies.append(walls) ### packing beam=O.bodies.append(ymport.text(PACKING+'.spheres',scale=1.,shift=Vector3(0,0,0),material=sphereMat)) ### set a color to the spheres for o in O.bodies: if isinstance(o.shape,Sphere): o.shape.color=(0.7,0.5,0.3) # ENGINES DEFINED HERE simulation is defined here (DEM loop, interaction law, servo control, recording, etc...) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom'),Ig2_Box_Sphere_ScGeom()], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], #[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key=OUT,label='interactionLaw')], [Law2_ScGeom_FrictPhys_CundallStrack(traceEnergy=True,label='plastic')] ), TriaxialStressController(internalCompaction=False,label='triax'), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.4, defaultDt=0.1*utils.PWaveTimeStep()), NewtonIntegrator(damping=DAMP,label="newton"), PyRunner(iterPeriod=int(saveData),initRun=True,command='recorder()',label='data'), VTKRecorder(iterPeriod=int(saveVTK),initRun=True,fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'],Key=OUT,label='vtk') ] plot.plots={'i':('s1','s2','s3')} plot.plot() # SIMULATION STARTS HERE manage interaction detection factor during the first timestep and then set default interaction range ((cf. A DEM model for soft and hard rock, Scholtes & Donze, JMPS 2013)) O.step(); ### initializes the interaction detection factor SSgeom.interactionDetectionFactor=-1. Saabb.aabbEnlargeFactor=-1. coordination number verification and reinforcement of boundary particles numSSlinks=0 numCohesivelinks=0 numFrictionalLinks=0 for i in O.interactions: if not i.isReal : continue if isinstance(O.bodies[i.id1].shape,Sphere) and isinstance(O.bodies[i.id2].shape,Sphere): numSSlinks+=1 if i.phys.isCohe
Re: [Yade-users] [Question #274242]: Compression Test
Question #274242 on Yade changed: https://answers.launchpad.net/yade/+question/274242 Yor1 posted a new comment: I want to simulate a pillar in underground mines. Also, i want to study the energetic behavior to predict the rockburst. In YADE, i develop a script to calculate the release of energy. At this current stage i want to validate my calcul of energy compared to UDEC with a simple case. Jabrane. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp