Reinforced Concrete Beam
Hi,
I would like to model a realistic reinforced concrete beam. Which is a rectangular box of concrete with rebars of steel along (inside) of the beam.
I think that I am using the CpmMat plus the properties defined in the uniax.py example for the concrete.
But what about the steel ? Is it realistic to define only "idSteel=
There is a lot of different kinds of materials (CohFrictMat / CpmMat / ElastMat / FrictMat / MomentMat / NormalInelasticMat / RpmMat / ViscElMat / WireMat), which one is the best?
Thanks!
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Revision history for this message
|
#1 |
Hi Arthur,
my WireMat material model is designed for steel wires. I am actually using it
for the simulation of rockfall nettings which are made from steel. If you look
at the material definition you see that there is a possibility to define a
piece-wise linear stress-strain curve and a diameter. There are some
additional parameters I use for the netting which you shouldn't worry about.
I use remote interactions, this means that particles can interact even if they
aren't in contact, but it should work as well if particles are in contact. It
is essential to create the link between the steel particles at the beginning
of the simulations. However, at the current stage WireMat just considers
tensile forces (but an extension for compression can be implemented).
Have a look and tell me what you think. You can find my examples in
examples/WireMatPM and some simple two-particle tests in
scripts/
Cheers
Klaus
On Thu, 2 Jun 2011 02:31:00 am Arthur Mercier wrote:
> New question #159902 on Yade:
> https:/
>
> Hi,
>
> I would like to model a realistic reinforced concrete beam. Which is a
> rectangular box of concrete with rebars of steel along (inside) of the
> beam.
>
> I think that I am using the CpmMat plus the properties defined in the
> uniax.py example for the concrete.
>
> But what about the steel ? Is it realistic to define only
> "idSteel=
> =.8,label=
> (CohFrictMat / CpmMat / ElastMat / FrictMat / MomentMat /
> NormalInelasticMat / RpmMat / ViscElMat / WireMat), which one is the best?
>
> Thanks!
--
Dr. Klaus Thoeni - Centre for Geotechnical and Materials Modelling
Civil, Surveying and Environmental Engineering - Engineering Building EA
The University of Newcastle, Callaghan, NSW 2308, Australia
web: http://
phone: +61 (0)2 4921 5118
Revision history for this message
|
#2 |
Only you can tell which constitutive law should be used Arthur. The
first question is what kind of behaviour you want to simulate. Then find
a law that does that.
The biggest problem for steel bars is not the constitutive model in
facts, it is the geometrical model. Cylinders were introduced for this
kind of problems:
http://
Bruno
Revision history for this message
|
#3 |
Thanks for your quick answers,
Actually, I'm lost with all these constitutive laws. I'd like to simulate a flexural test on a reinforced concrete beam, like here http://
So basically, it's a rectangular box of concrete with 1 (or 2) reinforcement bar in the lower part.
I'd like to have different points of view for the best way to do it.
1) What is the best way to model the concrete? I mean, I think to fill a rectangular box with 3 different sizes of particles, like radius1=3.5e-3, radius2=
Maybe it could be done in the "last step", cause it will increase (a lot) the number of particles, so at the beginning I can start with only one particle size.
2) So I think that I'll model the reinforcement bars with cylinders. But is it a good way for the cohesion between bars and concrete? There is a publication about reinforced concrete and DEM (Discrete element modeling of reinforced concrete with a particular steel-concrete interface J. Rousseau, Ph. Marin & L. Daudeville), where the reinforcement bar is modeled by vertical spheres only, http://
3) How can I simulate a flexural test? like that http://
4) So if I want to model a flexural test, I also need supports. Spheres of boxes? Like here https:/
5) Which IPhysDispatcher Ip2 I'll need? Does it seem realistic for you Ip2_CpmMat_
6) Which constitutive law Law2 I'll need?
7) Finally, what about the geometry and degrees of freedom? Most of time there are only 3 degrees of freedom, am I right? why not 6?
Thanks for your patience !
Revision history for this message
|
#4 |
>3) How can I simulate a flexural test? like that
>http://
>Once again, what is the best way to do it? Is there a function similar
>to the unixialstrainer to do it? 'Cause a solution is to do it with
>forceEngine applied directly on spheres, but it's not convenient at all.
>Another solution would be to create a rectangular geometry and to apply
>a stress on it.
You can simulate it in the same way as experiments, i.e. prescribe vertical displacement in the point where the force is applied and evaluate the reaction. It is a standard way to obtain stress-strain (or displacement-force) diagram in displacement-
The supports can be simulated in many ways, I would do something like (for simply supported beam) fixing vertical and horizontal displacement of particles in left lower corner and fixing vertical displacement of particles in right lower corner.
Another way is, as you wrote, to define rigid cubes and model supports by them.
>5) Which IPhysDispatcher Ip2 I'll need? Does it seem realistic for you
>Ip2_CpmMat_
>Ip2_WireMat_
I don't know if some dispatcher to handle CpmMat and WireMat interaction would be needed..
>7) Finally, what about the geometry and degrees of freedom? Most of time
>there are only 3 degrees of freedom, am I right? why not 6?
The Dem3DofGeom means that the bond between two particles has 3 degrees of freedom components (normal and two shear components), i.e. there is no bending or twisting. In Yade there are definitely some models using 6dofs.
What kind of steel behavior do yo want to simulate? only simple yielding in normal direction and pullout of steel bar from concrete? for this purpose even special definition of CpmMat could be sufficient :-D
Jan
Revision history for this message
|
#5 |
On Sat, 4 Jun 2011 06:50:57 pm honzik wrote:
> Question #159902 on Yade changed:
> https:/
>
> Status: Open => Answered
>
> honzik proposed the following answer:
> >3) How can I simulate a flexural test? like that
> >http://
> >=3-point_
> >function similar to the unixialstrainer to do it? 'Cause a solution is to
> >do it with forceEngine applied directly on spheres, but it's not
> >convenient at all. Another solution would be to create a rectangular
> >geometry and to apply a stress on it.
>
> You can simulate it in the same way as experiments, i.e. prescribe vertical
> displacement in the point where the force is applied and evaluate the
> reaction. It is a standard way to obtain stress-strain (or
> displacement-force) diagram in displacement-
> can be simulated in many ways, I would do something like (for simply
> supported beam) fixing vertical and horizontal displacement of particles
> in left lower corner and fixing vertical displacement of particles in
> right lower corner. Another way is, as you wrote, to define rigid cubes
> and model supports by them.
>
> >5) Which IPhysDispatcher Ip2 I'll need? Does it seem realistic for you
> >Ip2_CpmMat_
> >Ip2_WireMat_
>
> I don't know if some dispatcher to handle CpmMat and WireMat interaction
> would be needed..
Indeed, you would need a new dispatcher in order to use CpmMat together with
WireMat.
> >7) Finally, what about the geometry and degrees of freedom? Most of time
> >there are only 3 degrees of freedom, am I right? why not 6?
>
> The Dem3DofGeom means that the bond between two particles has 3 degrees of
> freedom components (normal and two shear components), i.e. there is no
> bending or twisting. In Yade there are definitely some models using 6dofs.
Just remember, my current implementation of the WireMat considers just one DoF
(normal displacement-
fine for the pull-out test. I'm not sure about the bending test.
> What kind of steel behavior do yo want to simulate? only simple yielding
> in normal direction and pullout of steel bar from concrete? for this
> purpose even special definition of CpmMat could be sufficient :-D
It might be a good point to start with. It's always easier to deal with one
material and just adapting the material properties.
Klaus
--
Dr. Klaus Thoeni - Centre for Geotechnical and Materials Modelling
Civil, Surveying and Environmental Engineering - Engineering Building EA
The University of Newcastle, Callaghan, NSW 2308, Australia
web: http://
phone: +61 (0)2 4921 5118
Revision history for this message
|
#6 |
"only simple yielding in normal direction and pullout of steel bar from concrete? for this purpose even special definition of CpmMat could be sufficient :-D"
Yes, for now, just a pull-out test of the steel bar. So for now I just use CpmMat for both of concrete and steel.
So here is my script. http://
It's a very simple script, I didn't specify the steel properties nor the good coordinates of the bar. But I have this error message:
"FATAL /build/
Body #2003: Body::material type CpmMat doesn't correspond to Body::state type ChainedState (should be CpmState instead)."
I think that I lack something in my interaction loop:
"InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),"
I just don't understand what do I need to do. I need to create another Law2 for CylScGeom, right? But when I check to the different interactions law there is only one "Law2_CylScGeom
Do you know what is the difference between a ChainedCylinder and a Cylinder, I mean do I really need a chained one?
Thanks
Revision history for this message
|
#7 |
Hello Arthur,
Few possible sources of problems I can see (I can not answer to all your questions) :
- all your bodies (including a chainedCylinder) seem to be of CpmMat. And, hence, seem to require being "CpmState". But the chainedCylinder is (probably) of Chainedstate... Then it can not work :
"Body::material type CpmMat doesn't correspond to Body::state type ChainedState (should be CpmState instead)."
- in your interaction loop, you understood one problem. A Law2 able to dealing with "CylScGeom" (which you obtain due to your interaction between Sphere and ChainedCylinder :Ig2_Sphere_
To conclude, your problem is that you want probably to mix different types of bodies (with their mat.) and contact laws that were never mixed together yet. If it is really what you need, you will surely need to write new classes. Good luck !
Revision history for this message
|
#8 |
Hi Arthur
Out of the box, Yade is not capable of handling all possible
combinations of shapes and physics present in the code.
I think it will never happen, it would require that somebody
implementing a new shape - say ellipsoid - is supposed to implement
their interaction with all pre-existing shapes. It would lead to
exponential growth of code that no-one can sustain.
So, if you want to simulate something new, you have to implement some
missing functors sometimes. You give examples here.
> I just don't understand what do I need to do. I need to create another Law2 for CylScGeom, right? But when I check to the different interactions law there is only one "Law2_CylScGeom
Yes and no. Chained cylinders should be CohFrictMat if you want them to
simulate beam-like behaviour (see e.g.
scripts/
But cylinder-sphere contacts will be only frictional (see
chained-
François Kneib is already working on cohesive sphere-cylinder at the
moment. I hope he can release something functional soon. If he doesn't,
then you will have to implement something on your side.
> Do you know what is the difference between a ChainedCylinder and a
> Cylinder, I mean do I really need a chained one?
>
You really need chained cylinders, else it is not a beam, it's a
granular material where grains are cylinder-shaped.
And in facts, there are no functors at all for Cylinders a.t.m. It is
just a class between Sphere and chCylinder in the inheritance, it can't
be used in simulations (until somebody implement functors for standalone
cylinders).
Bruno
Revision history for this message
|
#9 |
Thanks for your answers,
" If it is really what you need, you will surely need to write new classes. Good luck !"
"So, if you want to simulate something new, you have to implement some missing functors sometimes."
Ok, but I don't have a lot of time and I even if, I don't have the knowledge for that (for now).
So my plan is to change the cylinder by one arm of spheres. Now when I include this arm, how can I do that, I mean how to include one arm in the concrete sample whitout any overlaps? Just "(pack.
"spheres=
O.bodies.
O.bodies.
Yes I can do that, but how can I fill these voids after that ?
http://
What about the steel bar, how can I stick the particles together? Do I need to create a clump?
Thanks !
Revision history for this message
|
#10 |
>Yes I can do that, but how can I fill these voids after that ?
>http://
intRatio=1.5 # try what value will be suitable for your simulation
O.engines=[
...
Bo1_
...
InteractionLoop(
[
...
]
O.step()
bo1s.aabbEnlarg
ig2ss.distFactor=-1
see https:/
>What about the steel bar, how can I stick the particles together? Do I
>need to create a clump?
If you want to simulate a steel bar as rigid non-deformable and non-yielding body, you can use clump. Another way is to use utils.createInt
To make the gaps between steel and concrete particles smaller, you can model the steel bar with "hexagonal" crossection such that the particles makes regular hexagonal prism. Just an idea.
Jan
Revision history for this message
|
#11 |
"To make the gaps between steel and concrete particles smaller, you can model the steel bar with "hexagonal" crossection such that the particles makes regular hexagonal prism. Just an idea."
What do you mean? I want to fill these voids with concrete to get a good cohesion, because now there is nothing stick to the steel bar.
Revision history for this message
|
#12 |
Or the question could be
"Is there a sphere packings algorithm which forbids that new particles created overlap existing ones?"
Revision history for this message
|
#13 |
I used for those purposes LSMGenGeo library.
https:/
Anton
On Wed, Jun 8, 2011 at 10:41 PM, Arthur Mercier
<email address hidden> wrote:
> Question #159902 on Yade changed:
> https:/
>
> Arthur Mercier gave more information on the question:
> Or the question could be
> "Is there a sphere packings algorithm which forbids that new particles created overlap existing ones?"
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______
> Mailing list: https:/
> Post to : <email address hidden>
> Unsubscribe : https:/
> More help : https:/
>
Revision history for this message
|
#14 |
Thanks for the link,
So I installed Gmsh and I created a geometry that I saved as mygeometry.geo.
I installed LSMgengeo library as well.
So now, I don't understand how to convert mygeometry.geo (created with Gmsh) to a valid mygeometry-
Revision history for this message
|
#15 |
With gmsh you can only create __meshes__. You need to export your
geometry into the mesh-format (there is a special function in gmsh)
and then use ymport.gmsh.
lsmgengeo creates only packing of spheres. Those .geo-files you can
directly import into your simulation. There is an example in
examples/
http://
.geo-file from gmsh and .geo-file from lsmgengeo are completely
different formats. Only extension is the same.
Anton
On Thu, Jun 9, 2011 at 4:46 PM, Arthur Mercier
<email address hidden> wrote:
> Question #159902 on Yade changed:
> https:/
>
> Status: Answered => Open
>
> Arthur Mercier is still having a problem:
> Thanks for the link,
>
> So I installed Gmsh and I created a geometry that I saved as mygeometry.geo.
> I installed LSMgengeo library as well.
> So now, I don't understand how to convert mygeometry.geo (created with Gmsh) to a valid mygeometry-
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______
> Mailing list: https:/
> Post to : <email address hidden>
> Unsubscribe : https:/
> More help : https:/
>
Revision history for this message
|
#16 |
I installed lsmgengeo (at least, I think so...).
How can I run it ? Is there a graphical interface? I have no idea how to use it, I followed the installation procedures and I have a lsmgengeo directory now.
I'd like to create a pretty complex geometry... do I have to handle it by myself as in the example genCylLSM.py ?
Can I use a mesh geometry to fill in spheres?
Is there a sphere packings algorithm which forbids that new particles created overlap existing ones?
Thanks
Revision history for this message
|
#17 |
Le 09/06/2011 21:01, Arthur Mercier a écrit :
>
> Is there a sphere packings algorithm which forbids that new particles
> created overlap existing ones?
See https:/
Revision history for this message
|
#18 |
> I installed lsmgengeo (at least, I think so...).
> How can I run it ?
http://
There are a lot of examples in the source.
> Is there a graphical interface?
No, but you can export a result as vtk-file and open it with paraview.
Or you can import generated geo-file into the yade and see it.
> I'd like to create a pretty complex geometry... do I have to handle it
> by myself as in the example genCylLSM.py ?
>
> Can I use a mesh geometry to fill in spheres?
You can try gts-module:
https:/
and example:
http://
Revision history for this message
|
#19 |
"> Is there a sphere packings algorithm which forbids that new particles
> created overlap existing ones?
See https:/
It doesn't work, if I've already created some spheres and that I "makeCloud", particules overlap. (not the cloud ones but between the cloud ones and already created).
Or maybe is there another way to "makeCloud" without overlapping.
I thought that I've installed lsmgengeo... but when I try to compile the examples, I get the error message "ImportError: No module named GenGeo" even if I followed the installation steps. Need to check.
Revision history for this message
|
#20 |
Ah yes, I did not understand cleary your question, sorry. But maybe you could adapt it to your case ??
Revision history for this message
|
#21 |
>But maybe you could adapt it to your case ??
Do you know how I can do that?
Revision history for this message
|
#22 |
> I thought that I've installed lsmgengeo... but when I try to compile the examples,
> I get the error message "ImportError: No module named GenGeo" even if I followed
> the installation steps. Need to check.
You probably need to make sure your PYTHONPATH is set correctly - I am evaluating ESyS and YADE at the moment, and hence have ESyS installed along with LSMGenGeo and that caught me for a while. For me, I have
/usr/local/
in my Python path (your python version could be different; my newer machines have 2.7, for example)
Try setting the path, and then simply importing the module in python
Good luck!
Mark
Revision history for this message
|
#23 |
in my
/usr/local/lib/ There are /python2.6, /python2.7, and /python3.1.
/python2.7, and /python3.1 have both /dist-packages and /site-packages but are empty.
and in /usr/local/
GenGeo.la, GenGeo.so, GenGeo.so.0, GenGeo.so.0.0.0, __init__.py, __init__.pyc, __init__.pyo.
But in __init__.py, there is only one code line "from GenGeo import *" and after it is empty...
Revision history for this message
|
#24 |
>Do you know how I can do that?
Looking at the code of the algorithm, for each new sphere that is getting inserted there should be a test checking if this sphere does not overlap others which have already been inserted. Maybe it could be possible to take into account all spheres.
But I do not know if it is the most efficient way ?
Revision history for this message
|
#25 |
> and in /usr/local/
> GenGeo.la, GenGeo.so, GenGeo.so.0, GenGeo.so.0.0.0, __init__.py, __init__.pyc, __init__.pyo.
> But in __init__.py, there is only one code line "from GenGeo import *" and after it is empty...
This all sounds fine. just make sure that your PYTHONPATH includes /usr/local/
e.g. export PYTHONPATH=
and then run python and check that
>>> import gengeo
gives no errors.
Cheers, Mark
Revision history for this message
|
#26 |
Hello there! As an automated bot, I've gone through your question and found relevant threads which I've summarized below. Feel free to delve deeper into these topics by clicking on the links attached.
Title: "modeling of reinforced concrete"
Rabea is using Yade to model a reinforced concrete sample and seeks a built-in geometric algorithm for generating packing in a simulated reinforced concrete structure. They can refer to [1](http://
https:/
Title: "Bending beams mass computation"
The simulation uses Yade with CohFrictMat material subject to gravity (-10 N) and damping (0.5). There's a mass computation discrepancy due to overlapping volumes between GridConnections and GridNodes, which can be resolved by lumping the mass of cylinders into their nodes. The 'cylinderConnec
https:/
Can you help with this problem?
Provide an answer of your own, or ask Arthur Mercier for more information if necessary.