Contrib:Claws/Code Aster/10 x cases/liaison elem

From CAELinuxWiki
Revision as of 13:39, 17 February 2011 by Claws (Talk | contribs)

Jump to: navigation, search

<-Link: Back to Contrib:Claws/Code_Aster/10_x_cases

Content

Introduction and theory

Code_Aster has the ability to connect elements of different dimensions. 0-1-2 and 3D elements can be connected together in all different manners, but in this particular study, we'll connect a 3D element to a 1D element and back to a 3D element again.

In many situations this can drastically reduce the work load on the computer doing the analysis, not to mention post-processing the files afterwards.

In a situation where you're only interested in what happens at the boundaries, theres no need to model and calculate the areas inbetween.

The way to go about this, is to describe the area inbetween, instead of modeling it.

For this feat, Code_Aster provides a powerful command called LIAISON_ELEM.

(Document U4.42.01 explains this command fully)

To describe an element, C_A needs know how many degree of freedom (DX,DY,DZ,DRX,DRY,DRZ) the element has and what the element geometrically looks like.

For this, a model must be assigned to the element and parameters for the geometry must be assigned. Heres an example of how a square pipe is described:

Claws liaison elem description.jpg

In this study we're using a solid rectangle so we only need to assign the parameter H, since the sides are of equal length.

This is the result of we'll be working towards in this study

Claws liaison elem compare scaled.png

Applying the theory to C_A

Preparing the object

In this study we'll analyze the boundary conditions of a column, substituting the middle of the column with a 1D element and describing this element to C_A, thus saving a lot of computing time. Actually not at all, really. Since the geometry in this situation is so simple, we're talking mere mili-seconds and roughly 1mb of RAM saved - we'll do it anyway just for the heck of it.

From looking at the image of the result, you should have a good idea of how to model the situation.

  • Create two boxes of 200x200x200 in the geometry modules of Salomé, enter the mesh module.
  • In the mesh module, mesh the two boxes individually with hexahedrons.
  • Create a compound mesh of the two boxes. Right click the compound mesh and select 'show only'
  • Now create two points; one at the center of the top surface of the bottom box (if the box is 200x200x200, the coordinates of the first point will be {100,100,200}), and another at the center of the bottom surface of the top box.
  • Create a node group for each of the two nodes, call the two node groups N_1 and N_2 respectively
  • Create an edge by using the two points you just created. Assign this to an element group and call it bar
  • The surfaces that are to be connected with the edge just created, are assigned face groups and are called liaison and liaison2, respectively.
  • Bottom face of the bottom box is assigned a face group called hold, top face of the 'top' box is assigned a face group called top
  • Heres a picture of what it should look like (only the bottom box is showed though)

Claws liaison elem.jpg

Now you should have a constellation of groups looking something like this:

Claws liaison elem mesh groups.jpg

Export the mesh to a .med file and we are ready to move on to...

Applying LIAISON_ELEM in Code_Aster

Walking through the .comm file step by step


DEBUT();

MA=DEFI_MATERIAU(ELAS=_F(E=210e+03,
                        NU=0.28,),);

MAIL=LIRE_MAILLAGE(FORMAT='MED',
                  INFO_MED=1,);
Definition
  • Define the material, read the mesh
MODE=AFFE_MODELE(MAILLAGE=MAIL,
                AFFE=(_F(TOUT='OUI',
                         PHENOMENE='MECANIQUE',
                         MODELISATION='3D',),
                      _F(GROUP_MA='bar',
                         PHENOMENE='MECANIQUE',
                         MODELISATION='POU_D_E',),),);
Definition
  • Assigning mechanical models to the components; call the models MODE
    • Assign a 3D model to everything
    • Assign a beam model with 3D capabilities (rotation and translation) to the element bar
      • POUtre = beam, Droite = straight, Euler hypothesis
        • See document U3.11.01 section 1 for further explanation
MATE=AFFE_MATERIAU(MAILLAGE=MAIL,
                  AFFE=_F(TOUT='OUI',
                          MATER=MA,),);
Definition
  • Assign the material MA to everything
cara=AFFE_CARA_ELEM(MODELE=MODE,
                   VERIF=('NOEUD','MAILLE',),
                   POUTRE=_F(GROUP_MA='bar',
                             SECTION='RECTANGLE',
                             CARA='H',
                             VALE=200.0,),);
Definition
  • Describing the characteristics of the element bar
    • VERIF (NOUED, MAILLE): Verify that both the element and the nodes support the assigned characteristics, otherwise halt the calculation with a fatal error
    • POUTRE: Beam
      • Assign to the element bar
      • SECTION: Cross section is a rectangle of equal length sides
      • CARA=H, VALE=200: Since the cross section where we connect the beam element to the 3D element is 200x200, H must have the same dimensions.
CHAR=AFFE_CHAR_MECA(MODELE=MODE,
                   DDL_IMPO=_F(GROUP_MA='hold',
                               DX=0.0,
                               DY=0.0,
                               DZ=0.0,),
                   LIAISON_ELEM=(_F(OPTION='3D_POU',
                                    GROUP_MA_1='liaison',
                                    GROUP_NO_2='N_1',),
                                 _F(OPTION='3D_POU',
                                    GROUP_MA_1='liaison2',
                                    GROUP_NO_2='N_2',),),
                   LIAISON_UNIF=_F(GROUP_MA='top',
                                   DDL=('DX','DY','DZ',),),
                   FORCE_FACE=_F(GROUP_MA='top',
                                 FZ=500.0,),);
Definition
  • Assign loads and boundary conditions, call it CHAR
    • DDL_IMPO: Impose zero displacements to the face group hold, i.e. anchor it down.
    • LIAISON_ELEM= Create a relationship between a 3D element and a beam (3D_POUtre)
      • Create the relationship between the face group liaison and the node group N_1
      • Do the same for liaison2 and N_2
    • LIAISON_UNIF: Do not let the face group top deform AT ALL, i.e. it act as if it was welded to the ceiling
    • FORCE_FACE: Self-explanatory
RESU=MECA_STATIQUE(MODELE=MODE,
                  CHAM_MATER=MATE,
                  CARA_ELEM=cara,
                  EXCIT=_F(CHARGE=CHAR,),);
Definition
  • Calculate the solution and call it RESU
RESU=CALC_ELEM(reuse =RESU,
              MODELE=MODE,
              CHAM_MATER=MATE,
              RESULTAT=RESU,
              OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),
              EXCIT=_F(CHARGE=CHAR,),);

RESU=CALC_NO(reuse =RESU,
            RESULTAT=RESU,
            OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),);
Definition
  • Calculate the stress at each element and nodes
IMPR_RESU(FORMAT='MED',
         UNITE=80,
         RESU=_F(MAILLAGE=MAIL,
                 RESULTAT=RESU,
                 NOM_CHAM=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM','DEPL',),),);
 FIN();
Definition
  • Write the results to a .med file, include displacement, equivalent nodal stress and stress at the nodes as a result of the displacement (need further information on SIGM_NOEU_DEPL)

Files

Liaison_elem2.tar.gz

Includes:

  • The files needed to run the liaison case; ATSK file, .med file and .comm file
  • The files for running a comparable case of a fully 3D structure; ATSK file, .med file and .comm file

The End..?

AND THERE YOU HAVE IT! Post any questions or corrections in the forum or create a login here and correct it (or write hateful messages in the 'Talk' page) :)

--Claws 14:27, 29 January 2010 (CET)