Contrib:KeesWouters/Homard/beam

From CAELinuxWiki
Revision as of 13:09, 23 February 2010 by Keeswouters (Talk | contribs) ('''The refinement command''')

Jump to: navigation, search

Mesh refinement of a beam based on displacement

[under construction - just started 2010-02-23 ... ]

To start with, this contribution mainly focuses on the use of Salome, Code Aster and the macro command MACR_ADAP_MAIL. So I do not focus on the results and the mechanical justifications of the code that has been used. So no guarantee that the results will be correct up to five decimal places, which they are probably not. I do hope though that this information is useful. For me it has been, because I had to think about some commands and look through the documentation and learn from that. In case of mistakes, errors or remarks, please notify me, or better, you are invited to correct or edit them yourself. Enjoy.

The geometry

The geometry and the mesh of the construction

The mesh refinement is based on Homard. As usual the geometry is very simple in order not to disturb the issue we would like to show with other difficulties. Here we focus on how the refinement of a beam will be performed. In this case an axial loading on a beam takes place and the refinement is based on the axial displacement. Then it is very easy to follow the refinement process.

The geometry is defined in a python script (for download see end of this contribution) and can be loaded into Salome Geometry module by File --> Load script (or ctrl T in the object browser window). Right click Refresh or push F5 after loading if necessary.

Kw homard beam.jpg
overall dimension: [x,y,z] = [1.0, 23.0, 2.0] mm

The mesh consists of coarse, tetrehedral elements to start with.

The bottom axial plane is fixed in all direction, on the top axial plane an axial displacement of 0.2 mm is prescribed.

The refinement command

Normally the refinement of the mesh will be based on and (stress) error estimation. Here we base the refinement on the axial displacement DY of the beam. The command for this is:

# adapt the initial mesh mbeam Mesh0
MACR_ADAP_MAIL(MAILLAGE_N=Mesh0,              # initial mesh
              MAILLAGE_NP1=CO('Mesh1'),      # Mesh1 is not yet defined, so us CO'..' operator
              ADAPTATION='RAFFINEMENT',      # method of refinement
              RESULTAT_N=result0,            # refine based on this result
              #INDICATEUR='ERRE_ELEM_SIGM',  # and this result field
              #NOM_CMP_INDICA='NUEST',       # error estimation
              #NOM_CMP_INDICA='ERREST',      # error estimation
              INDICATEUR='DEPL',             # and this result field
              NOM_CMP_INDICA='DY',           # error estimation
              CRIT_RAFF_PE=0.50,             # 0.50 --> 50 % refined mesh
              QUALITE='OUI',
              CONNEXITE='OUI',
              TAILLE='OUI',);


where the field INDICATEUR is now DEPL and the component field NOM_CMP_INDICA is DY. The number of elements to be refines is set to 0.50 or 50 % by the parameter CRIT_RAFF_PE=0.50. This yields the following refined Mesh1.

Kw refined50.jpg

The mesh refinement nicely starts at the centre of the beam, in accordance with the expectation that 50 % of the largest DY displacements will start from there to the load plane.


Refinement beam 2.jpg