Topic: How to decide the magnitude of deadweight if I decide to apply gravity

I am confusing in the magnitude of the deadweight. In my input, I just use the "density*9.81". It seems not correct. Can anyone tell me how to calculate this value? Thanks.

SimpleCS 1 thick 1.0 width 1.0
IsoLE 1 tAlpha 0.000012 d 2450 E 1.5e8 n 0.2

%%%%Apply gravity
DeadWeight 3 loadTimeFunction 1 Components 3 0 0 -23544 valtype 2 set 1  %-23533 equals: 2450*-9.81

ConstantFunction 1 f(t) 1.0

Kun

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi,

just use value -9.81, it is multiplied by the density internally.

Martin

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

Can you help me to see if my input file corrects now(The scenario is a concrete beam free fall in air) ? Thanks.

Kun


nitramkaroh wrote:

Hi,

just use value -9.81, it is multiplied by the density internally.

Martin

Post's attachments

Mesh_small.in 474.49 kb, 3 downloads since 2018-03-19 

You don't have the permssions to download the attachments of this post.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

The result I saw in paraview seems just a little displacement. It should not be this...

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi,

the problem is that you are using explicit solver where the critical time step is evaluated and deltaT is set accordingly.
You can notice that OOFEM is printing a message deltaT reduced to 1.261022e-05.

You can use implicit solver as is done in the attached file.

Post's attachments

Mesh_small.in 474.46 kb, 8 downloads since 2018-03-20 

You don't have the permssions to download the attachments of this post.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

Thanks for your information. I do used your new input file, but I got this:


Selecting Three-point Backward Euler metod
Total number of solution steps     20


Solving       [Step number        1, Time    1.000000e-08]


Renumbering DOFs with Sloan's algorithm...
_______________________________________________________
Error: (/home/kun/femdem/oofem/source/src/oofemlib/floatarray.C:664)
FloatArray :: checkBounds : array error on index : 1 > 0

_______________________________________________________
stack trace:
  /home/kun/femdem/include/liboofem.so : oofem::Logger::writeELogMsg(oofem::Logger::logLevelType, char const*, int, char const*, ...)+0x1d7
  /home/kun/femdem/include/liboofem.so : oofem::FloatArray::checkBounds(int) const+0x9b
  /home/kun/femdem/include/liboofem.so : oofem::FloatArray::at(int)+0x20
  /home/kun/femdem/include/liboofem.so : oofem::NRSolver::solve(oofem::SparseMtrx*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray const&, double&, oofem::SparseNonLinearSystemNM::referenceLoadInputModeType, int&, oofem::TimeStep*)+0x111
  /home/kun/femdem/include/liboofem.so : ()+0x6dc91f
  /home/kun/femdem/include/liboofem.so : ()+0x6db66f
  /home/kun/femdem/include/liboofem.so : ()+0x3804d1
  /home/kun/femdem/include/liboofem.so : ()+0x368b52
  /home/kun/femdem/include/liboofem.so : ()+0x34f169
  /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0 : boost::python::objects::function::call(_object*, _object*) const+0x26d
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1
NRSolver: Iterationexample1.sh: 24: example1.sh: pvbatch: not found


What's wrong with my simulation? I use oofem 2.3. Thanks.





nitramkaroh wrote:

Hi,

the problem is that you are using explicit solver where the critical time step is evaluated and deltaT is set accordingly.
You can notice that OOFEM is printing a message deltaT reduced to 1.261022e-05.

You can use implicit solver as is done in the attached file.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

It is working fine with the actual git version which you can download here https://github.com/oofem/oofem. Version 2.3 is quite old.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

Thanks for your suck a quick reply. I use oofem coupling with DEM software and seems I only know how to do this by using oofem 2.3... So I was wondering if there any solution for me to modify my input file and make it work in oofem 2.3? Thank you so much.

Best


nitramkaroh wrote:

It is working fine with the actual git version which you can download here https://github.com/oofem/oofem. Version 2.3 is quite old.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

I changed some code in your input file:
from:  "nonlineardynamic nsteps 2 deltat 0.01 nmodules 1 profileopt 1"
to "nldeidynamic nsteps 20 dumpcoef 0.03 deltat .0125 nmodules 1 profileopt 1".

Now It can be run successfully in oofem 2.3.  However I still found the beam keep still in the original place. Can you help me to see if there some other problem in my new input file? Thank you so much.


nitramkaroh wrote:

It is working fine with the actual git version which you can download here https://github.com/oofem/oofem. Version 2.3 is quite old.

Post's attachments

Mesh_small2.in 474.51 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

As I wrote you, nldeidynamic  is an explicit solver, which calculates the critical time step and change deltaT to quite a small number. Therefore, you need to do many steps to see a movement. Other possibility is to switch an implicit solver where you can do bigger steps.

What is the problem to do the coupling with DEM in a newer version?

Re: How to decide the magnitude of deadweight if I decide to apply gravity

I just run the file with oofem2.3 and it works fine. Are you sure it is version 2.3?

Re: How to decide the magnitude of deadweight if I decide to apply gravity

I used the file at attachment for installing oofem 2.3 before. Now I tried to install 2.5 version with same method but just change the 2.3 with 2.5 in the installation file. Inside this file, there is some modification source code part you can see in the file. But when I installed 2.5 version, It always shows:

-------------------------------------------------------------------------
$ bash downloadAndInstall

+ echo Checking prerequisites ...
Checking prerequisites ...
+ for CMD in wget unzip git svn cmake tar
+ hash wget
+ for CMD in wget unzip git svn cmake tar
+ hash unzip
+ for CMD in wget unzip git svn cmake tar
+ hash git
+ for CMD in wget unzip git svn cmake tar
+ hash svn
+ for CMD in wget unzip git svn cmake tar
+ hash cmake
+ for CMD in wget unzip git svn cmake tar
+ hash tar
+ '[' -d /home/kun/femdem/include ']'
+ true
+ OOFEMTMP=/tmp/oofem-2.5
+ rm -rf /tmp/oofem-2.5 /tmp/oofem-2.5.zip /home/kun/femdem/oofem
+ wget 'http://www.oofem.org/cgi-bin/OOFEM/down … em-2.5.zip' -O /tmp/oofem-2.5.zip
--2018-03-20 19:26:17--  http://www.oofem.org/cgi-bin/OOFEM/down … em-2.5.zip
正在解析主机 www.oofem.org (www.oofem.org)... 147.32.130.71
正在连接 www.oofem.org (www.oofem.org)|147.32.130.71|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://www.oofem.org/download/oofem-2.5.zip [跟随至新的 URL]
--2018-03-20 19:26:23--  http://www.oofem.org/download/oofem-2.5.zip
再次使用存在的到 www.oofem.org:80 的连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 14249792 (14M) [application/zip]
正在保存至: “/tmp/oofem-2.5.zip”

/tmp/oofem-2.5.zip  100%[===================>]  13.59M  2.57MB/s    in 5.8s   

2018-03-20 19:26:29 (2.33 MB/s) - 已保存 “/tmp/oofem-2.5.zip” [14249792/14249792])

+ cd /tmp
+ unzip -q /tmp/oofem-2.5.zip
replace oofem-2.5/doc/elementlibmanual/elementlibmanual.xref? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
+ cd /tmp/oofem-2.5
+ git apply
error: 打补丁失败:bindings/python/oofemlib.cpp:699
error: bindings/python/oofemlib.cpp:补丁未应用
error: 打补丁失败:src/oofemlib/load.h:165
error: src/oofemlib/load.h:补丁未应用
error: src/sm/nldeidynamic.C:没有那个文件或目录
--------------------------------------------------------------


And If I delete the
# modifiy the source code
  git apply <<EOF ............>>  , and I tried to run the simulation(which I can run before with oofem 2.3 ),
I got:
---------------------------
kun@kun-System-Product-Name:~/dem-fem-coupling/try/1_try1_load5$ sh example1.sh /home/kun/femdem/yade/install/lib/x86_64-linux-gnu/yade/py/yade/system.py:9: RuntimeWarning: to-Python converter for std::vector<int, std::allocator<int> > already registered; second conversion method ignored.
  from yade._customConverters import *
/home/kun/femdem/yade/install/lib/x86_64-linux-gnu/yade/py/yade/system.py:9: RuntimeWarning: to-Python converter for std::vector<double, std::allocator<double> > already registered; second conversion method ignored.
  from yade._customConverters import *
deltaT reduced to 4.960161e-05, Tmin is 1.558280e-04

Solving [Step number        0, Time    1.000000e-08]
Traceback (most recent call last):
  File "example1.py", line 94, in <module>
    coupler = FemDemSurfaceCoupler(fem,dem)
  File "example1.py", line 59, in __init__
    self.dspl = fem.giveField(mupif.field.FieldID.FID_Displacement, None)
  File "/home/kun/femdem/include/mupif/api/oofem/oofem_interface.py", line 175, in giveField
    self.updateField(f,tstep)
  File "/home/kun/femdem/include/mupif/api/oofem/oofem_interface.py", line 206, in updateField
    dman.giveUnknownVector(dl, mask, liboofem.ValueModeType.VM_Total, self.problem.giveCurrentStep())
Boost.Python.ArgumentError: Python argument types in
    DofManager.giveUnknownVector(DofManager, FloatArray, IntArray, ValueModeType, TimeStep)
did not match C++ signature:
    giveUnknownVector(oofem::DofManager {lvalue}, oofem::FloatArray {lvalue}, oofem::IntArray, oofem::ValueModeType, oofem::TimeStep*, bool)
example1.sh: 24: example1.sh: pvbatch: not found
---------------------------------------------

nitramkaroh wrote:

As I wrote you, nldeidynamic  is an explicit solver, which calculates the critical time step and change deltaT to quite a small number. Therefore, you need to do many steps to see a movement. Other possibility is to switch an implicit solver where you can do bigger steps.

What is the problem to do the coupling with DEM in a newer version?

Post's attachments

downloadAndInstall 4.66 kb, 2 downloads since 2018-03-21 

You don't have the permssions to download the attachments of this post.

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

I am sorry there some Chinese in my post...

error: 打补丁失败:bindings/python/oofemlib.cpp:699
error: bindings/python/oofemlib.cpp:补丁未应用
error: 打补丁失败:src/oofemlib/load.h:165
error: src/oofemlib/load.h:补丁未应用
error: src/sm/nldeidynamic.C:没有那个文件或目录


This means:

error: Patch fails:bindings/python/oofemlib.cpp:699
error: bindings/python/oofemlib.cpp:Patch not applied
error: Patch fails:src/oofemlib/load.h:165
error: src/oofemlib/load.h:Patch not applied
error: src/sm/nldeidynamic.C:No file or directory

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

I checked I do used oofem 2.3 and run the code you offered me and got:



Selecting Three-point Backward Euler metod
Total number of solution steps     20


Solving       [Step number        1, Time    1.000000e-08]


Renumbering DOFs with Sloan's algorithm...
_______________________________________________________
Error: (/home/kun/femdem/oofem/source/src/oofemlib/floatarray.C:664)
FloatArray :: checkBounds : array error on index : 1 > 0

_______________________________________________________
stack trace:
  /home/kun/femdem/include/liboofem.so : oofem::Logger::writeELogMsg(oofem::Logger::logLevelType, char const*, int, char const*, ...)+0x1d7
  /home/kun/femdem/include/liboofem.so : oofem::FloatArray::checkBounds(int) const+0x9b
  /home/kun/femdem/include/liboofem.so : oofem::FloatArray::at(int)+0x20
  /home/kun/femdem/include/liboofem.so : oofem::NRSolver::solve(oofem::SparseMtrx*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray*, oofem::FloatArray const&, double&, oofem::SparseNonLinearSystemNM::referenceLoadInputModeType, int&, oofem::TimeStep*)+0x111
  /home/kun/femdem/include/liboofem.so : ()+0x6dc91f
  /home/kun/femdem/include/liboofem.so : ()+0x6db66f
  /home/kun/femdem/include/liboofem.so : ()+0x3804d1
  /home/kun/femdem/include/liboofem.so : ()+0x368b52
  /home/kun/femdem/include/liboofem.so : ()+0x34f169
  /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0 : boost::python::objects::function::call(_object*, _object*) const+0x26d
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1



nitramkaroh wrote:

I just run the file with oofem2.3 and it works fine. Are you sure it is version 2.3?

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi,

I don't know where the problem can be. I tried the file with version 2.3 and it is working fine. Are you working in Windows or Linux? Are you sure you didn't change anything in oofem?

Re: How to decide the magnitude of deadweight if I decide to apply gravity

Hi Horak,

There is do some change in the oofem I use. Maybe it is because of this. I will try to install new version to see if it works or not. Thanks.