Contrib:KeesWouters/shell/static

From CAELinuxWiki
Revision as of 22:32, 8 March 2010 by Keeswouters (Talk | contribs) (Triangle mesh)

Jump to: navigation, search

Static analysis of a shell construction

[ .... under construction .... ]

This contribution is in close cooperation with Bridge.

In this example the following items are discussed:

  • preproccesing:
  • definition of geometry in Salome
  • partitioning of the geometry and groups
  • meshing of the geometry
  • definition of the groups
  • (maybe: python script which makes editing much easier ...)


  • static analysis with pressure or force applied on a group or nodes
  • postprocessing:
  • viewing displacement in Salome
  • determination of stresses
  • interface ASTK

Definition of the geometry

planar shell Geometry:

  • L = 11.38 m
  • Thickness = 0.55 m

Loads:
[type] [group] [value]

  • Presure1 (Fbot) = 29.5e3 Pa
  • Presure2 (Fmain)= 25.8e3 Pa
  • Presure3 (Ftop) = 24.3e3 Pa
  • Presure4 (Fcentre1,Fcentre2)= 182.6e3 Pa

Boundary conditions:

  • Lbot (DX=0.0, DY=0.0, DZ=0.0)
  • Ltop (DZ=0.0)

Material:
Concrete

  • E = 32e9 Pa
  • Nu = 0.2

Geom-01-big.gif


Create all points and lines using: [New Entity]->[Basic}->[Point] and [New Entity]->[Basic]->[Line]
Points&lines.gif : Points&lines&numbers.gif

The coordinates are:

P1 = geompy.MakeVertex(  0.000,  0.00, 0.00) 
P2 = geompy.MakeVertex( 11.380,  0.00, 0.00)
P3 = geompy.MakeVertex(  0.433,  2.25, 0.00)
P4 = geompy.MakeVertex( 11.813,  2.25, 0.00)
P5 = geompy.MakeVertex(  1.875,  9.75, 0.00)
P6 = geompy.MakeVertex( 13.255,  9.75, 0.00)
P7 = geompy.MakeVertex(  2.010, 10.45, 0.00)
P8 = geompy.MakeVertex( 13.390, 10.45, 0.00)
P9 = geompy.MakeVertex(  5.300,  5.72, 0.00)
P10 = geompy.MakeVertex( 5.300,  7.05, 0.00)
P11 = geompy.MakeVertex( 9.830,  5.72, 0.00)
P12 = geompy.MakeVertex( 9.830,  7.05, 0.00)
P13 = geompy.MakeVertex( 5.300,  8.42, 0.00)
P14 = geompy.MakeVertex( 5.300,  9.75, 0.00)
P15 = geompy.MakeVertex( 9.830,  8.42, 0.00)
P16 = geompy.MakeVertex( 9.830,  9.75, 0.00)



Create one big face Ftotal [New Entity]->[Build]->[Face]
Ftotal: Line7,Line6,Line8,Line12,Line11,Line10,Line9,Line1
One-face.gif


Create three wires [New Entity]->[Build]->[Wire]

  • Wire1: Line3,Line4,Line5
  • Wire2: Line17,Line18,Line19
  • Wire3: Line13,Line14,Line15,Line16

Wires.gif


Create vector [New Entity]->[Basic]->[Vector]
(0,0,1)
Create four extrusions [New Entity]->[Generation]->[Extrusion]

  • Extrusion1: Wire1,vz
  • Extrusion2: Wire2,vz
  • Extrusion3: Wire3,vz
  • Extrusion4: Line2,vz

Extrusions.gif



Partitioning of the geometry

Why: we need groups for loads and boundary conditions. Partitioning the geometry makes sure that the for resulting mesh each group is meshed along its borders correctly and the mesh is connected between the groups
How: the geometry is divided by planes or 2D surfaces. These Tool objects need to divide the geometry completely in two seperate parts. In Salome several Tool objects can be choosen in one Partition operation. After the partitioning the groups need to be created. Int the calculation with Aster these groups can be used to define loads, boundary conditions, displacements, stresses, strains etc.

Create partition [Operations]->[Partition]

  • Part_main: Ftotal,Extrusion1,Extrusion2,Extrusion3,Extrusion4

Part-main.gif

Create two groups for boundary conditions [New Entity]->[Group]->[Create]
Shape type: line
Main Shape: Part_main

  • Lleft: left lines: Line7,Line8,Line9
  • Lright: right lines: Line10,Line11,Line12

Bc2.gif



Triangle mesh

Set Mesh 1D: Composite Side discretisation
Mesh01.gif

Set Mesh 1D Average lenght: 0,5
Mesh02.gif

Mesh 2D settings: Netgen 2d
Mesh03.gif

Mesh info:
Mesh04.gif

Computed Mesh:
Mesh05.gif

Since we are going to use COQUE_3D elements in the calculation, we need quadratic elements. So we convert the linear to quadratic mesh. If you want to make sure that the midside nodes will be locked to the geometry, you can tick the medium nodes on geometry.

Convert to quad mesh
Traia2quad.gif


Save the mesh: in the mesh module, right click on the <mesh_name> --> Export to MED file, give file name or accept default (Mesh.med in this case) and <save>. Now the mesh is available for Aster and calculations can be performed.

ASTK - Aster

General way of working

For the calculations we need two input files:

  • mesh file, this has been discussed in the previous part
  • command file, a list of commands for processing by Aster

Several output files are generated by Aster, look here for more [information]. ASTK is the interface for defining input and output files that are needed by Aster. The mesh file is already available so we are going to discuss the command file now.

The comm files is sequence of commands processed by Aster. In this case the rough outline is:

  • read the mesh file
  • define material and mechanical properties to the geometrical entities
  • define a model
  • perform the calculations
  • determine the displacements and stresses at the nodes based on the previous step
  • write the quantities to a result mesh file

Detailed commands

Reading mesh and applying the model

DEBUT();
th = 0.55;
meshinit=LIRE_MAILLAGE(FORMAT='MED',);
modinit=AFFE_MODELE(MAILLAGE=meshinit,
                    AFFE=_F(GROUP_MA= ('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),
                            PHENOMENE='MECANIQUE',
                            MODELISATION='3D',),);
meshmod=CREA_MAILLAGE(MAILLAGE=meshinit,
                      MODI_MAILLE=_F(TOUT='OUI',OPTION='TRIA6_7',),);
meshmod=MODI_MAILLAGE(reuse =meshmod,
                      MAILLAGE=meshmod,
                      ORIE_NORM_COQUE=_F(GROUP_MA=('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),),);
                      ###VECT_NORM= (0,0,+1),NOEUD='N19'),);


modmod=AFFE_MODELE(MAILLAGE=meshmod,
                  AFFE=_F(TOUT='OUI',
                          PHENOMENE='MECANIQUE',
                          MODELISATION='COQUE_3D',),);
    1. the shell characteristics
    2. the shells are applied on the group 'shell' defined in the Salome mesh
    3. the thickness of the shell is epais=th
    4. coque_ncou is the number of gauss nodes along the thickness, for linear analysis one node is sufficient.
    5. the parameter excentrement can give the offset of the shell wrt to the meshing plane, but this does not apply for coque_3d and is ignored here
shellch=AFFE_CARA_ELEM(MODELE=modmod,
                      COQUE=_F(GROUP_MA=('Fbot','Fmain','Ftop','Fcentre1','Fcentre2',),
                               EPAIS=th,
                               VECTEUR=(1.0,0.0,0.0,),
                               COQUE_NCOU=1,),);
    1. define material properties of steel (ISO values)


steel=DEFI_MATERIAU(ELAS=_F(E=210000000000.0,
                           NU=0.3,
                           RHO=7850.0,),);
##define material properties of concrete (ISO values)


concrete=DEFI_MATERIAU(ELAS=_F(E=32000000000.0,
                              NU=0.2,
                              RHO=2500.0,),);
    1. apply material properties to the whole mesh


material=AFFE_MATERIAU(MAILLAGE=meshmod,
                      AFFE=_F(TOUT='OUI',
                              MATER=concrete,),);
    1. define BC and loads
load_bc=AFFE_CHAR_MECA(MODELE=modmod,
                      DDL_IMPO=(_F(GROUP_MA='Lleft',
                                   DX=0.0,
                                   DY=0.0,
                                   DZ=0.0,),
                                _F(GROUP_MA='Lright',
                                   DZ=0.0,),),
                      FORCE_COQUE=(_F(GROUP_MA='Fbot',
                                      PRES=29.5e3,),
                                   _F(GROUP_MA='Fmain',
                                      PRES=25.8e3,),
                                   _F(GROUP_MA='Ftop',
                                      PRES=24.3e3,),
                                   _F(GROUP_MA=('Fcentre1','Fcentre2',),
                                      PRES=182.6e3,),),);


Shell6.comm.zip http://www.caelinux.org/wiki/images/e/e4/Shell6.comm.zip - obsolete: bad bc

Postprocessing

displacements

  • Deformed shape

Def.shape.gif

local stresses

  • SIXX

Shell-sixx.jpg

  • SIYY

Shell-siyy.jpg

  • SIXY

Shell-sixy.jpg

equivalent stresses