Topic: Connecting Plate-beam

Hi everyone,

i'm trying to connect a simple plate, simulated as cctplate element, with a beam. In particular, I want to support a slab (concrete) on a beam, no matter if steel or concrete or whatever. So the deformations in z-direction should be the same and the beam ist supposed to be the "carrying" part, finally having bending moments, forces, etc.

Therefore I wanted to use the Interface1d element, see my attached file. Is this the right element for my purpose? I cant get this to work, I get errors no matter what I try to change.
Should I use Rigidarm nodes instead? What would the syntax look like?

Thanks a lot!

Dennis

Post's attachments

Exam_slab_beam.in 1.33 kb, 6 downloads since 2015-11-27 

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

2

Re: Connecting Plate-beam

Hi,
when you will use shell elements (with 6 DOFs per node) and 3D Beam elements you can directly connect columns to slabs without the need of interface elements.
You can in principle do the same with plate elements only, but as plate element has only deflection and two rotations as DOFs, the nodes to which the columns (beam elements) are connected should have horizontal displacements and rotation around beam axis supported.

Re: Connecting Plate-beam

Hi,
thank you for your quick answer.
I tried to get a shell example to work but I failed, could someone please have a look on the attached file?

Another question for my understanding: I actually wanted to use the interface element to transfer ONLY the deflection in z-direction and to ignore the rotations. In other words, my connection is suposed to work as a hinge and transfer the vertical displacement (z-direction) and no rotations. Thats why I actually wanted to use the 2dbeam.
You say, that my plate element-thing could work, how could I realize this hinge-plate-beam-connection?

As a further explanation, just as mentioned in my first post: I just want to simulate a concrete slab, with one edge laying on a steel-beam. The steel beam itself has nodal supports on each end.

Thanks a lot again!

Dennis

Post's attachments

Exam_rershell.in 897 b, 2 downloads since 2015-11-27 

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

Re: Connecting Plate-beam

You have 2 options, using node2node interface elements (this wil enable you to allow seperation), or tie them together strongly with a slave dof.
If you know they are not going to separate, then the slave dofs are simpler to use, are faster, and give better results.

Create a duplicate node, and put in slave-dofs on all the DOFs you want connected (u_z in this case).

node 5 coords 3 0. 1. 2.
# specify that dofid 3 (= D_w) should be tied to node 5 doftype 1 (=slave)
node 1005 coords 3 0. 1. 2. dofidmask 1 3 masterMask 3 5 doftype 1 1

It doesn't matter what elements you connect the nodes to, beams, plates, solid elements, all will work.
Just let node 5 be part of the beam, and node 1005 be part of the plate. (tip: You don't have to use consecutive numbering, so you can offset your hinge nodes by adding some large integer "1000" (assuming 1000 is more than the number of nodes you have))


Just to be clear on end-releases, dof-condensation: This is another example where end-releases won't do at all, since the beam should remain one solid piece, without joints. So slave dofs are the only option.

Re: Connecting Plate-beam

Thanks alot!

I'll try that and give feedback!

Dennis

Re: Connecting Plate-beam

Hi,
I tried to get my example running but failed again. Probably a minor syntax problem, I just can find my mistake. Could someone please just have another look:


beam_slab.out
Test
LinearStatic nsteps 1
domain 2dMindlinPlate
OutputManager tstep_all dofman_all element_all
ndofman 9 nelem 7 ncrosssect 2 nmat 1 nbc 2 nic 0 nltf 1
node 1 coords 3  0.0   0.0   0.0  dofidmask 3 3 4 5 mastermask 3 1001 0 0  doftype 3 1 0 0
node 2 coords 3  0.0   4.0   0.0  dofidmask 3 3 4 5  mastermask 3 1002 0 0 doftype 3 1 0 0
node 3 coords 3  2.0   2.0   0.0 
node 4 coords 3  4.0   0.0   0.0  bc 3 1 0 0
node 5 coords 3  4.0   4.0   0.0  bc 3 1 0 0
node 6 coords 3  0.0   2.0   0.0  dofidmask 3 3 4 5 mastermask 3 1006 0 0 doftype 3 1 0 0
node 1001 coords 3 0 0 0 bc 3 1 0 0
node 1006 coords 3 0 2 0 
node 1002 coords 3 0 4 0 bc 3 1 0 0
cctplate 1 nodes 3 1 3 6  crossSect 1 mat 1 bodyLoads 1 2
cctplate 2 nodes 3 3 2 5  crossSect 1 mat 1 bodyLoads 1 2
cctplate 3 nodes 3 3 5 4  crossSect 1 mat 1 bodyLoads 1 2
cctplate 4 nodes 3 1 3 4  crossSect 1 mat 1 bodyLoads 1 2
cctplate 5 nodes 3 6 3 2 crossSect 1 mat 1 bodyLoads 1 2
Beam2d 6 nodes 2 1001 1006 mat 1 crossSect 2
Beam2d 7 nodes 2 1006 1002 mat 1 crossSect 2
SimpleCS 1 thick 0.2
SimpleCS 2 area 0.162 Iy 0.0039366 beamShearCoeff 1.e18 thick 0.54
IsoLE 1 d 25 E 30000.0 n 0.2 talpha 1.0
BoundaryCondition  1 loadTimeFunction 1 prescribedvalue 0.0
DeadWeight 2 loadTimeFunction 1 Components 1 1
ConstantFunction 1 f(t) 1.0

--------------------------------------------------------------------------------------------------------------------------------------------



OOFEM is running, just the results are:



--------------------------------------------------------------------------------------------------------------------------------------------

Output for domain   1

DofManager output:
------------------
Node           1 (       1):
  dof 1   d  0.00000000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node           2 (       2):
  dof 1   d  0.00000000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node           3 (       3):
  dof 1   d -1.#IND0000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node           4 (       4):
  dof 1   d  0.00000000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node           5 (       5):
  dof 1   d  0.00000000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node           6 (       6):
  dof 1   d -1.#IND0000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node        1001 (       7):
  dof 1   d -1.#IND0000e+000
  dof 2   d  0.00000000e+000
  dof 3   d -1.#IND0000e+000
  dof 4   d -1.#IND0000e+000
Node        1006 (       8):
  dof 1   d -1.#IND0000e+000
  dof 2   d -1.#IND0000e+000
  dof 3   d -1.#IND0000e+000
Node        1002 (       9):
  dof 1   d -1.#IND0000e+000
  dof 2   d  0.00000000e+000
  dof 3   d -1.#IND0000e+000
  dof 4   d -1.#IND0000e+000




Element output:
---------------
element 1 (       1) :
  GP  1.1  :  strains   0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
              stresses  0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
element 2 (       2) :
  GP  1.1  :  strains   0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
              stresses  0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
element 3 (       3) :
  GP  1.1  :  strains   0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
              stresses  0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
element 4 (       4) :
  GP  1.1  :  strains   0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
              stresses  0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
element 5 (       5) :
  GP  1.1  :  strains   0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
              stresses  0.0000e+000  0.0000e+000  0.0000e+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
beam element 6 :
  local displacements  -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
  local end forces     -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
beam element 7 :
  local displacements  -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000
  local end forces     -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000 -1.#INDe+000




    R E A C T I O N S  O U T P U T:
    _______________________________


    Node        4 iDof  1 reaction -1.#INDe+000    [bc-id: 1]
    Node        5 iDof  1 reaction -1.#INDe+000    [bc-id: 1]
    Node     1001 iDof  2 reaction -1.#INDe+000    [bc-id: 1]
    Node     1002 iDof  2 reaction -1.#INDe+000    [bc-id: 1]

Thanks again!

Dennis

7

Re: Connecting Plate-beam

Hi Denis,
the problem is that mixing plate and beam2d elements is rather tricky, as 2D beam element has only one rotation as DOF and is defined only in xz plane, while plate elements are defined in xy plane and have rotations around x and y axes as DOFS. I have switched to 3dbeams.
The corrected input follows showing the concept (made some modifications, columns clamped to slab), but can be released by modifying slave connections:

beam_slab.out
Test
LinearStatic nsteps 1
domain 2dMindlinPlate
OutputManager tstep_all dofman_all element_all
ndofman 13 nelem 8 ncrosssect 2 nmat 1 nbc 2 nic 0 nltf 1
node 1 coords 3  0.0   0.0   1.0  
node 2 coords 3  0.0   4.0   1.0  
node 3 coords 3  2.0   2.0   1.0 
node 4 coords 3  4.0   0.0   1.0  bc 3 1 0 0
node 5 coords 3  4.0   4.0   1.0  bc 3 1 0 0
node 6 coords 3  0.0   2.0   1.0  
node 1001 coords 3 0 0 1 ndofs 6 dofidmask 6 1 2 3 4 5 6 mastermask 6 0 0 1 1 1 0 doftype 6 0 0 1 1 1 0 
node 1006 coords 3 0 2 1 ndofs 6 dofidmask 6 1 2 3 4 5 6 mastermask 6 0 0 6 6 6 0 doftype 6 0 0 1 1 1 0 
node 1002 coords 3 0 4 1 ndofs 6 dofidmask 6 1 2 3 4 5 6 mastermask 6 0 0 2 2 2 0 doftype 6 0 0 1 1 1 0 
node 2001 coords 3 0 0 0 ndofs 6 dofidmask 6 1 2 3 4 5 6 bc 6 1 1 1 1 1 1
node 2006 coords 3 0 2 0 ndofs 6 dofidmask 6 1 2 3 4 5 6 bc 6 1 1 1 1 1 1
node 2002 coords 3 0 4 0 ndofs 6 dofidmask 6 1 2 3 4 5 6 bc 6 1 1 1 1 1 1
node 9999 coords 3 100. 0. 0.
cctplate 1 nodes 3 1 3 6  crossSect 1 mat 1 bodyLoads 1 2
cctplate 2 nodes 3 3 2 5  crossSect 1 mat 1 bodyLoads 1 2
cctplate 3 nodes 3 3 5 4  crossSect 1 mat 1 bodyLoads 1 2
cctplate 4 nodes 3 1 3 4  crossSect 1 mat 1 bodyLoads 1 2
cctplate 5 nodes 3 6 3 2 crossSect 1 mat 1 bodyLoads 1 2
Beam3d 6 nodes 2 1001 2001 refnode 9999 mat 1 crossSect 2
Beam3d 7 nodes 2 1006 2006 refnode 9999 mat 1 crossSect 2
Beam3d 8 nodes 2 1002 2002 refnode 9999 mat 1 crossSect 2
SimpleCS 1 thick 0.2
SimpleCS 2 area 0.162 Iy 0.0039366 Iz 0.0039366 Ik 1.0 beamShearCoeff 1.e18 thick 0.54
IsoLE 1 d 25 E 30.e6 n 0.2 talpha 1.0
BoundaryCondition  1 loadTimeFunction 1 prescribedvalue 0.0
DeadWeight 2 loadTimeFunction 1 Components 1 1
ConstantFunction 1 f(t) 1.0

or using shell elements:

beam_slab2.out
Test
LinearStatic nsteps 1
domain 3dshell
OutputManager tstep_all dofman_all element_all
ndofman 10 nelem 8 ncrosssect 2 nmat 1 nbc 2 nic 0 nltf 1
node 1 coords 3  0.0   0.0   1.0  bc 6 0 0 0 0 0 1 
node 2 coords 3  0.0   4.0   1.0  bc 6 0 0 0 0 0 1 
node 3 coords 3  2.0   2.0   1.0  bc 6 0 0 0 0 0 1 
node 4 coords 3  4.0   0.0   1.0  bc 6 0 0 0 0 0 1 
node 5 coords 3  4.0   4.0   1.0  bc 6 0 0 0 0 0 1 
node 6 coords 3  0.0   2.0   1.0  bc 6 0 0 0 0 0 1 
node 1001 coords 3 0 0 0 bc 6 1 1 1 1 1 1
node 1006 coords 3 0 2 0 bc 6 1 1 1 1 1 1
node 1002 coords 3 0 4 0 bc 6 1 1 1 1 1 1
node 9999 coords 3 100. 0. 0. bc 6 1 1 1 1 1 1
rershell 1 nodes 3 1 3 6  crossSect 1 mat 1 bodyLoads 1 2
rershell 2 nodes 3 3 2 5  crossSect 1 mat 1 bodyLoads 1 2
rershell 3 nodes 3 3 5 4  crossSect 1 mat 1 bodyLoads 1 2
rershell 4 nodes 3 1 3 4  crossSect 1 mat 1 bodyLoads 1 2
rershell 5 nodes 3 6 3 2  crossSect 1 mat 1 bodyLoads 1 2
Beam3d 6 nodes 2 1001 1 refnode 9999 mat 1 crossSect 2 #dofstocondense 2 10 11
Beam3d 7 nodes 2 1006 6 refnode 9999 mat 1 crossSect 2 #dofstocondense 2 10 11
Beam3d 8 nodes 2 1002 2 refnode 9999 mat 1 crossSect 2 #dofstocondense 2 10 11
SimpleCS 1 thick 0.2
SimpleCS 2 area 0.162 Iy 0.0039366 Iz 0.0039366 Ik 1.0 beamShearCoeff 1.e18 thick 0.54
IsoLE 1 d 25 E 30.e6 n 0.2 talpha 1.0
BoundaryCondition  1 loadTimeFunction 1 prescribedvalue 0.0
DeadWeight 2 loadTimeFunction 1 Components 6 0 0 1 0 0 0
ConstantFunction 1 f(t) 1.0

Re: Connecting Plate-beam

Hi Borek,
thanks alot for your help!
Unfortunately both versions you provided crash my OOFEM, no errors or anything, just crashing.
I'm using the lastest "official" download realease (V.2.3), not any git-version. Might that be the problem?

Dennis

Re: Connecting Plate-beam

Always run the code in debug mode if you find a crash. It'll help you locate the bug (which should be fixed in oofem, it should never crash, even for incorrect input).

I did a quick test, and found a problem related to renumbering of nodes when using the +1000 offset combined with the "mastermask". There is a bug in OOFEM here. Until it's fixed, you'll have to make do with consecutive numbering (you might be able to get it to work if you flip the offset, so that mastermask always denotes a consecutive number like Borek has done, but that's risky. My recommendation is to just use consecutive numbering).

I made another example input file, but, there are still problems I haven't had time to look into yet. The rershell gives a singular response, so all NaN values in the output.

beam_slab.out
Test
#LinearStatic nsteps 1 nmodules 1
StaticStructural nsteps 1 nmodules 1 initialguess 0 miniter 0
vtkxml tstep_all domain_all primvars 1 1
domain 2dMindlinPlate
OutputManager tstep_all dofman_all element_all
ndofman 9 nelem 7 ncrosssect 2 nmat 1 nbc 3 nic 0 nltf 1 nset 4
# Tie together DofID 3 (vertical displacement) to node 7
node 1 coords 3  0.0   0.0   0.0  dofidmask 1 3 mastermask 1 7 doftype 1 1
node 2 coords 3  0.0   4.0   0.0  dofidmask 1 3 mastermask 1 9 doftype 1 1
node 3 coords 3  2.0   2.0   0.0 
node 4 coords 3  4.0   0.0   0.0
node 5 coords 3  4.0   4.0   0.0
node 6 coords 3  0.0   2.0   0.0  dofidmask 1 3 mastermask 1 8 doftype 1 1
node 7 coords 3 0 0 0
node 8 coords 3 0 2 0 
node 9 coords 3 0 4 0
#
# rershell seems to be singular here, I haven't had time to look into it yet.
#rershell 1 nodes 3 1 3 6
#rershell 2 nodes 3 3 2 5
#rershell 3 nodes 3 3 5 4
#rershell 4 nodes 3 1 3 4
#rershell 5 nodes 3 6 3 2
#
cctplate 1 nodes 3 1 3 6
cctplate 2 nodes 3 3 2 5
cctplate 3 nodes 3 3 5 4
cctplate 4 nodes 3 1 3 4
cctplate 5 nodes 3 6 3 2
#  bodyLoads 1 3
Beam3d 6 nodes 2 7 8 zaxis 3 1. 0. 0.
Beam3d 7 nodes 2 8 9 zaxis 3 1. 0. 0.
# Plate element set:
Set 1 elementranges {(1 5)}
# Beam element set:
Set 2 elementranges {(6 7)}
Set 3 nodes 2 4 5
Set 4 nodes 2 7 9
#
SimpleCS 1 thick 0.2 material 1 set 1
SimpleCS 2 area 0.162 Iy 0.0039366 Iz 0.0039366 Ik 1.0 beamShearCoeff 1.e18 thick 0.54 material 1 set 2
IsoLE 1 d 25 E 30.e6 n 0.2 talpha 1.0
# Prescribe only vertical displacement (DofID = 3)
BoundaryCondition 1 loadTimeFunction 1 dofs 1 3 values 1 0. set 3
# Clamp all dofs
BoundaryCondition 2 loadTimeFunction 1 dofs 6 1 2 3 4 5 6 values 6 0. 0. 0. 0. 0. 0. set 4
# CCTPlate assumes that the 1 component is the gravity in z-direction.
DeadWeight 3 loadTimeFunction 1 components 1 -9.82 set 1
ConstantFunction 1 f(t) 1.0

This snippet requires the version from my github  www.github.com/Micket/oofem
This is only due me using "zaxis" input for beam3d. If you use a refnode as in Boreks code, then it should also work with 2.3 release.



I feel I must reiterate myself on the dof-condensation point. In this example, and in general cases, dof-condensation trick will not work (not even theoretically). The beams must share rotations still, so the only option is to use slave dofs.

Re: Connecting Plate-beam

Hi Mikael,

another warm thank you!

Dont have time to test at the moment, I'll do that later.
I havent seen the "StaticStructural"analysis type, I guess it's not documented yet. Is there a great difference to the "linearstatic" type?
The set/ element range thing looks interesting, I havent used that so far. I guess I understand how it works, maybe I will try to use it.

Dennis

Re: Connecting Plate-beam

Only that it works for nonlinear problems. For linear problems there is no difference.

The sets will let you set b.c.s in a more natural way, and let you can replace the element types (plates -> shells) without changing anything else.

12

Re: Connecting Plate-beam

Hi,
the input works with the repository version.
There was a bug mentioned by Mikael, but I have already resolved it.

Borek

Re: Connecting Plate-beam

Hi again,

sorry for the late feadback, the flu caught me and I can't really get out of bed at the moment.
First: thanks again. Support here is really great.
Second: I got Boreks example (post 7) to work.
Mikael, somehow your examples dont work at the moment. Actually I'm not sure why: I changed the refnode - z-axis thing but it says:
_____
____________________________________________________
           OOFEM - Finite Element Solver
        Copyright (C) 1994-2014 Borek Patzak
____________________________________________________
Total number of solution steps     1
_______________________________________________________
Error: (..\..\..\..\oofem.git\src\oofemlib\domain.C:819)
Domain :: instanciateYourself - Couldn't create crosssection: set
_______________________________________________________
No backtrace available
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1

Dont know where that comes from, I'll inverstigate later. Maybe I should try without the "sets"

Anyways: great help! Thanks!
Dennis

Re: Connecting Plate-beam

You'll have to move the Sets to the last in the file. I added support for Sets directly after elements, because nodes+elements+sets describes the mesh part, but you'll need my github version for that (I don't recall if i merged that into oofem.org yet).

Re: Connecting Plate-beam

Alright, thanks. I'll try that.
Dennis