Topic: Help modelling reinforced concrete (plane stress elements + trusses)

Hello,
We are trying to create a model of a reinforced concrete structure using OOFEM. So far we have been able to get the model to run properly when it is only concrete, without the added reinforcement, but when we add steel trusses to simulate rebars, the analysis fails.

Could someone please assist us in coming up with a solution?

This is the input file we are using (note that this is a simplified version of the model we are working on, but it is giving the same problem as the more complex model):

Plane stress rectangular element, simply supported at the bottom,
with trusses going from nodes 1-4 and 2-3:


      |             |
      V______V
   |  |4         3| |
   |  |             | |
   |  |1____ 2| |
      ^             o


rcsquare.out
test to determine how to create a model of RC
nonlinearstatic nsteps 11 rtolv 0.001 MaxIter 500 controllmode 1 stiffMode 1 manrmsteps 1 contextOutputStep 1 nmodules 1
vtkxml tstep_all domain_all primvars 1 1 vars 1 1  ipvars 1 1
domain 2dPlaneStress
OutputManager tstep_all dofman_all
ndofman 4 nelem 3 ncrosssect 2 nmat 2 nbc 2 nic 0 nltf 2
node 1 coords 3 0 0 0 bc 2 1 1
node 2 coords 3 1 0 0 bc 2 0 1
node 3 coords 3 1 1 0 bc 2 0 2
node 4 coords 3 0 1 0 bc 2 0 2
PlaneStress2d 1 nodes 4 1 2 3 4 crossSect 1 mat 1
Truss2d 2 nodes 2 1 4 mat 2 crossSect 2
Truss2d 3 nodes 2 2 3 mat 2 crossSect 2
SimpleCS 1 thick 0.15
SimpleCS 2 area 0.0005
MazarsModel 1 d 0.0 E 18602.98E6 n 0.18 e0 0.0002 ac 1.33 bc 1260.0 at 0.97 bt 10000.0 version 0 maxOmega 0.99999 tAlpha 0.0
Steel1 2 d 1. E 200000 n 0.3 tAlpha 0.0 Ry 400
BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition 2 loadTimeFunction 2 d -0.001
ConstantFunction 1 f(t) 1.0
PiecewiseLinFunction 2 nPoints 2 t 2 0. 10. f(t) 2 0. 1.

2

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi,
by default, the Truss2d is defined in xz plane, you have to switch to xy definition using "cs 1" parameter, see http://www.oofem.org/resources/doc/elem … x6-50002.1

Borek

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Borek,

Your solution works on this model, it runs properly now. I have another question for you.

I am trying to represent the self-weight of an object, using a constant time function. The model runs fine but in the results the self-weight load is increasing with every time step and no matter what I do, I have not found a way to remedy this. I expected that using ConstantFunction would apply the same load at every step, but this is not the case. I also tried replacing the NodalLoad with a DeadWeight but this did not remedy the situation. There seems to be something I don’t understand about the ConstantFunction.

I am using a simple example of the problem, which is very similar to the example previously posted in this thread.

rcsquare4.out
test to understand constant time function
nonlinearstatic nsteps 11 rtolv 0.001 MaxIter 500 controllmode 1 stiffMode 1 manrmsteps 1 contextOutputStep 1 nmodules 1
vtkxml tstep_all domain_all primvars 1 1 vars 1 1  ipvars 1 1
domain 2dPlaneStress
OutputManager tstep_all dofman_all
ndofman 4 nelem 3 ncrosssect 2 nmat 2 nbc 3 nic 0 nltf 2 nset 1
node 1 coords 2 0 0 bc 2 1 1
node 2 coords 2 1 0 bc 2 0 1
node 3 coords 2 1 1 bc 2 0 2
node 4 coords 2 0 1 bc 2 0 2
PlaneStress2d 1 nodes 4 1 2 3 4 crossSect 1 mat 1
Truss2d 2 nodes 2 1 4 mat 2 crossSect 2 cs 1
Truss2d 3 nodes 2 2 3 mat 2 crossSect 2 cs 1
Set 1 nodes 2 3 4
SimpleCS 1 thick 0.15
SimpleCS 2 area 0.0005
MazarsModel 1 d 2400 E 18602.98E6 n 0.18 e0 0.0002 ac 1.33 bc 1260.0 at 0.97 bt 10000.0 version 0 maxOmega 0.99999 tAlpha 0.0
Steel1 2 d 1. E 200000E6 n 0.3 tAlpha 0.0 Ry 400E6
BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition 2 loadTimeFunction 2 d -0.0001
NodalLoad 3 loadTimeFunction 1 dofs 2 1 2 components 2 0.0 -113.5 set 1
ConstantFunction 1 f(t) 1.0
PiecewiseLinFunction 2 nPoints 2 t 2 0. 10. f(t) 2 0. 1.

Any help with solving this problem would be greatly appreciated.
Thanks,
Karren

4

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Karren,
by default, the increment of applied load vector in each solution step is evaluated from total values of loading at given steps (so you rather define increments than total values). You can change this behavior by setting refloadmode solver parameter to 1. Then the increment of reference load vector is evaluated from increments of applied loadings at given time, which is probably what you want.
See nonlinear solver refloadmode documentation (http://www.oofem.org/resources/doc/oofe … ode16.html)
Borek

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Borek,

Thank you for your response. I set refloadmode to 1 as you suggested, so now the third line of the input file looks like this:

nonlinearstatic nsteps 11 rtolv 0.001 MaxIter 500 controllmode 1 stiffMode 1 manrmsteps 1 contextOutputStep 1 nmodules 1 refloadmode 1

It doesn't seem to have fixed the problem, though. Now it appears that the self-weight, or NodalLoad 3, isn't being applied in any of the time steps. It definitely isn't being applied in the first step, as all of the reactions are equal to 0, and as far as I can tell, all of the results are exactly the same as when I run the model with NodalLoad 3 completely removed. Is there something else I'm missing?

I read in the documentation you referred me to that "the initialLoadVector describes the part of loading which does not scale," which sounds like what I want, but I was not able to find anything else in the documentation to explain how to use this vector.

Thanks,
Karren

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Karren,
This is one of several reasons why i highly recommend using StaticStructural, thought it depends on what version you use.
(unfortunately, I simply haven't had the time to work on OOFEM lately, so there has been some time since I pushed to the official git repo).

Nonlinearstatic uses time-steps f4rom -deltaT to 0, so that's why many examples have "11" steps instead of "10", so you need to look at step 2, or off-set the load-time-function.
Unfortunately, this is not consistent with other solvers, so for my replacement (staticstructural), I changed this to [0 -> deltaT] for the first time step.

None of these things can easily change for nonlinearstatic, as it breaks backwards compatibilty, thus we have a replacement solver "StaticStructural". If you are using the pre-compiled release, it might be to old and might lack features from nonlinearstatic.

This would be the corresponding line for staticstructural:

staticstructural nsteps 10 rtolf 0.001 MaxIter 500 stiffMode 1 manrmsteps 1 contextOutputStep 1 nmodules 1

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Mikael,

Thank you for your reply. I think the version I am using must be older, because the file did not run when I changed that line to use StaticStructural, according to your suggestion.

My main concern is still the fact that the self-weight should not be increasing while the other loading is being applied. I tried some more input files, and it is quite clear that the results with the inclusion of the parameter refloadmode 1 simply cause the model to revert back to the case where there is no self-weight applied. Perhaps I added the parameter into the code incorrectly or am still missing something.

Is there any way of breaking down the analysis into multiple steps, so that the self-weight is applied in the first 10 steps for example, following which the other load is applied in another 10 steps? Perhaps this can be done using metasteps? I don’t know much about them, so I currently am trying to learn more about them to see if it will help with the problem.

Thanks,
Karren

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi again,

I found an example of an input file that uses metasteps, so I tried doing the same for this case. It seems to do the trick for the simple example considered here, but it returns 4 warnings: "computational time -1.000000 is out of given time 0.000000, using closest value." When I tried applying the metasteps solution to the more complex model I am working on, OOFEM was not able to run the input file, which I am thinking might be related to the errors sent in the simpler model. Is there a way to fix this?

rcsquare7.out
metastep test
NonLinearStatic nsteps 10 nmsteps 2 nmodules 1
nsteps 3 controlmode 1 rtolv 0.001 MaxIter 2000 stiffmode 1 refloadmode 1
nsteps 7 controlmode 1 rtolv 0.00001 MaxIter 2000 stiffmode 1 refloadmode 1
vtkxml tstep_all domain_all primvars 1 1 vars 1 1  ipvars 1 1
domain 2dPlaneStress
OutputManager tstep_all dofman_all
ndofman 4 nelem 3 ncrosssect 2 nmat 2 nbc 3 nic 0 nltf 3

node 1 coords 2 0 0 bc 2 1 1
node 2 coords 2 1 0 bc 2 0 1
node 3 coords 2 1 1 bc 2 0 2 load 1 3
node 4 coords 2 0 1 bc 2 0 2 load 1 3

PlaneStress2d 1 nodes 4 1 2 3 4 crossSect 1 mat 1
Truss2d 2 nodes 2 1 4 mat 2 crossSect 2 cs 1
Truss2d 3 nodes 2 2 3 mat 2 crossSect 2 cs 1

SimpleCS 1 thick 0.15
SimpleCS 2 area 0.0005

MazarsModel 1 d 2400 E 18602.98E6 n 0.18 e0 0.0002 ac 1.33 bc 1260.0 at 0.97 bt 10000.0 version 0 maxOmega 0.99999 tAlpha 0.0
Steel1 2 d 1. E 200000E6 n 0.3 tAlpha 0.0 Ry 400E6

BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition 2 loadTimeFunction 3 d -0.0001
NodalLoad 3 loadTimeFunction 2 components 2 0.0 -113.5

ConstantFunction 1 f(t) 1.0
PiecewiseLinFunction 2 npoints 2 t 3 0. 4. 9. f(t) 3 0. 1. 1.
PiecewiseLinFunction 3 npoints 2 t 3 0. 4. 9. f(t) 3 0. 0. 1.

Thanks,
Karren

9

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Hi Karren,

the warning you mentioned is because the solver uses refloadmode 1. The applied load increment is then evaluated using increments of applied boundary conditions. To evaluate the increment in the first step (time 0), one have to define the value of boundary condition also in previous time step (time = -1). So you have to extend the definition range of your time functions to cover the time = -1 (Constant function is fine, its constant everywhere).

ConstantFunction 1 f(t) 1.0
PiecewiseLinFunction 2 npoints 3 t 3 -1. 4. 9. f(t) 3 0. 1. 1.
PiecewiseLinFunction 3 npoints 2 t 3 -1. 4. 9. f(t) 3 0. 0. 1.

Re: Help modelling reinforced concrete (plane stress elements + trusses)

Thank you so much for the help! Both the simple and complex models are now running without any errors or warnings, and the self-weight seems to be applied correctly.

Karren