Welcome to the forums. Please post in English or French.

You are not logged in.

#1 Re: Code_Aster usage » Why HOMARD is not open source? » 2017-09-07 19:42:17

Nicolas wrote:

Sorry for the delay.
I do confirm that HOMARD is free LGPL. You can use it either with the SALOME platform or code_aster, with no restriction.
With SALOME, HOMARD is driven by the GUI or by python. An extensive description is given by the "help" button, including tutorials and examples.
With code_aster, the command is MACR_ADAP_MAIL (documentation U7.03.01). Some test cases are implemented.

The two following papers are available:
    G. Nicolas, T. Fouquet, S. Geniaut, S. Cuvilliez, Improved Adaptive Mesh Refinement for Conformal Hexahedral Meshes, Advances in Engineering Software, Vol. 102, pp. 14-28, 2016, doi:10.1016/j.advengsoft.2016.07.014
    G. Nicolas and T. Fouquet, Adaptive Mesh Refinement for Conformal Hexahedral Meshes, Finite Elements in Analysis and Design, Vol. 67, pp. 1-12, 2013, doi:10.1016/j.finel.2012.11.008

Please contact me if you need more information.

Thanks for the clarification and the information. An update in the code_aster licenses page may clarify confussion in the future:
code-aster.org/spip.php?article306

#2 Re: Code_Aster usage » Why HOMARD is not open source? » 2017-06-20 20:07:24

reiteres wrote:

I just checked the Homepage of the Homard project. It seems that they changed their license just recently to LGPL
See: code-aster.org/outils/homard/en/index.html#licence

I think that referes to the salome module to link code aster with homard, but the software itself is proprietary:
code-aster.org/spip.php?article306

#3 Re: Code_Aster usage » Why HOMARD is not open source? » 2017-06-20 07:58:01

RichardS wrote:

Do you plan on adding new features or doing other developments?

I don't plan on adding new features for now, but I'm switching  to code_aster from propietary solutions because I belive in the benefits of open source technology: freedom, flexibility, quality, control, continuity...

Adding a closed source component to a set of very high quality tools seems odd to me. For now, I prefer to
not invest time in learning HOMARD until I understand what his plans are concerning this issue.

#4 Code_Aster usage » Why HOMARD is not open source? » 2017-06-16 10:31:06

Msegade
Replies: 12

Hi

Sorry if this is not a appropriate topic for this forum.

I was planning on learning how to use the HOMARD component for mesh refinement, but not being open source is very off putting for me.
Can someone please clarify why HOMARD is not open source and if there are any plans to make it open
source in the future?

Thanks

#5 Re: Code_Aster usage » Geometrical Nonlinearity with DKT elements » 2017-06-09 17:13:05

Volker wrote:

let me ask you, did you make in abaqus a non-linear buckling analysis?

No, I just did a nonlinear static analysis and a linear buckling analysis. I'm planning on doing a nonlinear analysis scaling
the shape with buckling modes as you say (they are called imperfections in Abaqus),  but first I want to get the basic non linear analysis right.

#6 Re: Code_Aster usage » Geometrical Nonlinearity with DKT elements » 2017-06-09 07:51:09

jeanpierreaubry wrote:

i have trouble understanding the unit system you are using

I'm using m, T, kN, kPa

Cylinder Diameter -> 3.8 m
Cylinder Length -> 6 m
Thickness -> 0.002 m
Elastic modulus -> 73e6 kPa
Pressure Load -> 50 kPa
Point Loads -> Fx = 200 kN, Fy = -250 kN, Fz = -300 kN
Point Moments -> Mx = 500 kNm, My = -500kNm, Mz = -600kNm

#7 Re: Code_Aster usage » Geometrical Nonlinearity with DKT elements » 2017-06-08 21:05:09

Sorry for the late response. I forgot that the attachment gets cleared when you hit preview. Now it should be good.

#8 Code_Aster usage » Geometrical Nonlinearity with DKT elements » 2017-06-08 12:46:14

Msegade
Replies: 6

Hi

I would like to make a Geometrical Nonlinear analysis of my cylinder model discussed in other posts in
this forum. I know that the documentation recomends COQUE_3D, for this type of analysis, but
it takes way too long (>1hour), and the results in abaqus using 4 node shell elements (S4) takes
around 2 minutes. For that reason I'm trying to solve it using DKT elements.

The model has a critical buckling load of 0.54, so I expect the analysis to fail at some point, but I want
to see some wrinkles developed in the buckling zone, as I get in my abaqus model:
abaqus_Disp_S4.png.

Using DKT elements, an initial time step of 0.1 (corresponding to 0.1 of the total load) and using the
strain behaviour PETIT_REAC, the analysis diverges at around 0.2, without any signs of buckling
and with various alarms telling me that some elements are no longer flat. The vmises stress fields
obtained is the following:

vonmises_Code_Aster.png

and the stat_non_line command:

res1=STAT_NON_LINE(  
              MODELE=modl,     
              CHAM_MATER=chmat,
              CARA_ELEM=cara, 
              EXCIT=( 
                  _F( CHARGE = clim),
                  _F( CHARGE = rdisp),
                  _F( CHARGE = charg, 
                      FONC_MULT = function),
                  _F( CHARGE = pload,
                      FONC_MULT = function),
              ),
              COMPORTEMENT=_F(
                              GROUP_MA='ShellElements',
                              RELATION='ELAS',
                              DEFORMATION='PETIT_REAC',
                              #DEFORMATION='GROT_GDEP',
              ),
              INCREMENT = _F(
                             LIST_INST = listAuto
              ),
              NEWTON = _F( 
                          #MATRICE = 'ELASTIQUE',
                          MATRICE = 'TANGENTE',
                          REAC_ITER = 1 
              ),
              CONVERGENCE = _F( 
                                RESI_GLOB_RELA = 1e-6,
                                ITER_GLOB_MAXI = 30
              ),
        
);

I tried reducing the time step, the strain behaviour to 'GROT_GDEP' and the tolerances but the results
are always unsatisfactory.

Is there any way to get to the wrinkles shown in Abaqus using DKT (or DKTG) elements?

I attach the .comm and .med files.

#9 Re: Code_Aster usage » [Solved] Buckling loads of a shell » 2017-05-31 10:46:47

Thanks! Now I got it working.

Is there any reason why 'PLUS_PETITE' is not working?
If I use the same .comm file and I replace

modp1=CALC_MODES(
	TYPE_RESU='MODE_FLAMB',
	OPTION='BANDE',
	STOP_BANDE_VIDE='OUI',
	MATR_RIGI=mascomb,
	MATR_RIGI_GEOM=masrigv,
	CALC_CHAR_CRIT=_F(
		CHAR_CRIT=(mini,maxi,),
	),
	VERI_MODE=_F(
		STOP_ERREUR='NON',
	),
);

with

modp1=CALC_MODES(
	TYPE_RESU='MODE_FLAMB',
	#OPTION='BANDE',
        OPTION = 'PLUS_PETITE',
	STOP_BANDE_VIDE='OUI',
	MATR_RIGI=mascomb,
	MATR_RIGI_GEOM=masrigv,
	CALC_CHAR_CRIT=_F(
	         #CHAR_CRIT=(mini,maxi,),
                 NMAX_CHAR_CRIT = 6,
	),
	VERI_MODE=_F(
		STOP_ERREUR='NON',
	),
);

I get bad results.

#10 Re: Code_Aster usage » [Solved] Buckling loads of a shell » 2017-05-31 09:30:29

jeanpierreaubry wrote:

i get the frist critical at 0.5465 with the shape shown attached

That's what I was looking for!

Can you please share the .comm file?

#11 Re: Code_Aster usage » [Solved] Buckling loads of a shell » 2017-05-31 08:09:18

jeanpierreaubry wrote:

do you mean they vary linealy TOGETHER at the same rate ?

Yes, later I would want to make another analysis where I  just vary one of the loads while remaining the other costant,
but the results I got in abaqus are with both loads varying linealy together at the same rate.

#12 Re: Code_Aster usage » [Solved] Buckling loads of a shell » 2017-05-30 22:43:37

jeanpierreaubry wrote:

hello

what is the variable load upon which buckling is to be calculated
this is not very clear in your example

jeean pierre aubry

Are both the "pload" and "press" loads.

#13 Code_Aster usage » [Solved] Buckling loads of a shell » 2017-05-30 10:07:18

Msegade
Replies: 9

Hi

So I'm continue analyzing the shell that I discussed in the post: Distribute a load to a set of nodes (Sorry I cannot post links).
Now I'm trying to do a buckling analysis wich I do with these steps:

# Resolution
# ----------

res1=MECA_STATIQUE(  MODELE=modl,     
                     CHAM_MATER=chmat,
                     CARA_ELEM=cara, 
                     EXCIT=( 
                                    _F( CHARGE = rdisp),
                                    _F( CHARGE = clim),
                                    _F( CHARGE = press),
                                    _F( CHARGE = pload),),
                    OPTION = 'SIEF_ELGA',
);


# Stress field to calculate the geometric stiffnes matrix
# -------------------------------------------------------

stressg = CREA_CHAMP (
                      RESULTAT = res1,   
                      OPERATION = 'EXTR',
                      TYPE_CHAM = 'ELGA_SIEF_R', 
                      NOM_CHAM = 'SIEF_ELGA',
                      TYPE_MAXI = 'MINI',
                      TYPE_RESU = 'VALE'
                      )

# Elementary matrices and Assembly 
# ---------------------------

matg = CALC_MATR_ELEM (OPTION = 'RIGI_GEOM',
                            MODELE = modl,
                            CARA_ELEM = cara,
                            SIEF_ELGA = stressg,)

matm = CALC_MATR_ELEM (OPTION = 'RIGI_MECA',
                          MODELE = modl,
                          CHAM_MATER = chmat,
                          CARA_ELEM = cara,
                          CHARGE = (rdisp, clim, 
                                    #press, pload,
                    ),)

nuddl = NUME_DDL (MATR_RIGI = matm,)
masrig = ASSE_MATRICE (MATR_ELEM = matg,
                         NUME_DDL = nuddl,)
masrim = ASSE_MATRICE (MATR_ELEM = matm,
                         NUME_DDL = nuddl,)




# Calculate the modes
# -------------------

modp1 = CALC_MODES (MATR_RIGI_GEOM = masrig,
                    OPTION = 'PLUS_PETITE',
                    MATR_RIGI = masrim,
                    SOLVEUR_MODAL  = 
                        _F( 
                            METHODE='SORENSEN'
                    ),
                    TYPE_RESU = 'MODE_FLAMB',
                    CALC_CHAR_CRIT = _F( 
                            NMAX_CHAR_CRIT = 6,
                    ),
)

I get very low values for the critical load

numéro    charge critique    norme d'erreur
    1       2.37993E-02        1.35091E-10 
    2       2.37993E-02        1.43175E-10 
    3       2.43823E-02        1.52333E-10 
    4       2.43823E-02        1.21724E-10 
    5       2.64413E-02        9.63314E-11 
    6       2.64413E-02        1.12501E-10 

and the modes are global
buckling_Modes.png

As in the other post I'm comparing the results with the ones I get using abaqus, where I get much bigger critical load:

MODE NO      EIGENVALUE

       1      0.51168    
       2      0.53620    
       3      0.54860    
       4      0.55567    
       5      0.56876    
       6      0.57455 

and the modes are local which correspond to the location of maximun compression values, that makes more sense than the
global modes:

abaqus_modes.png

The rest of results (displacements, stresses...) of the linear static analysis, I get the same values in code_aster and abaqus.

What can I do to solve this?
I attach the .comm and .med file.

Thanks.

#14 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-27 11:08:09

I solved the problem with my representation, in Paravis I was displaying the magnitude of the whole DEPL field (DX, DY, DZ, DRX, DRY, DRZ), displaying only the magnitude of the translations (DX, DY, DZ), shows the correct result. This can be done generating
the vectors in paravis and displaying the magnitude of DEPL_Vector.

displacement_Field.png

#15 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-24 10:02:00

jeanpierreaubry wrote:

here is the full problem
good agrrement between rmed ang .resu files

Thanks for the help and the answers, but I cannot get the result you get in the image you posted  (depl2.png).
I'm using version 3.0 of gmsh and opening the .rmed file with

$ gmsh ms-r.med

But I get the same result shown in the last image I posted, with the big deformation in the end. What I'm doing wrong?
I'm missing some postprocessing steps? Did you make any sort of clip operation? The results I get in abaqus are without clipping the end.

#16 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-24 08:20:48

jeanpierreaubry wrote:

Gmsh simple and reliable yet powerful


I tried gmsh but I get different results and I still get that big displacement in the border
gmsh.png
Now I'm very confused because the same model is giving me very different results:
Max Displacement
Paravis -> 1.990 e-2
Gmsh -> 2.43e-2
Your result and abaqus -> 1.71 e-2


jeanpierreaubry wrote:

i suggest you print in ASCII in the .resu file some key values to check what the post processor is displaying

I don't really know which values to print, but I tried printing the values of the MNode in ASCII and getting the value
in Paravis and I get the same result.

Can you please post your rmed and comm file?

#17 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-23 16:51:39

jeanpierreaubry wrote:

like this,
very simply

# Boundary conditions
# -------------------------------------

# Rotations and longitudinal displacement
clim=AFFE_CHAR_MECA( 
	MODELE=modl,
		DDL_IMPO=(
			_F( 
				GROUP_NO = 'FixNodes', 
				DZ = 0., 
				DRX = 0.0, DRY = 0, DRZ = 0 
			),
			#this point need to be able to move
			# _F( 
				# GROUP_NO = 'MNode', 
				# DX = 0, 
				# DY = 0, 
				# DZ = 0, 
			# ),
		)
);
# Allow only radial displacements
rdisp=AFFE_CHAR_MECA( MODELE=modl,
                        ARETE_IMPO=_F(GROUP_MA='FixEdges', DTAN = 0.0));



# Loads definition
# -------------------------

charg=AFFE_CHAR_MECA( MODELE=modl,
          FORCE_COQUE=_F( GROUP_MA = ('PressureLoad'),  PRES=50),);



pload=AFFE_CHAR_MECA( 
	MODELE=modl,
	#this works ok
	LIAISON_SOLIDE=_F(GROUP_NO = ('ForceNodes', 'MNode')),
	#i doubt this is the right syntax for RBE3,
	#nor the right parameter, it is more complicated than this
	# LIAISON_RBE3=( 
		# _F(
			  # GROUP_NO_MAIT='MNode',
			  # DDL_MAIT=('DX','DY','DZ','DRX','DRY','DRZ'),
			  # #DDL_MAIT=('DRX', 'DRY', 'DRZ'),
			  # GROUP_NO_ESCL='ForceNodes',
			  # DDL_ESCL=('DX-DY-DZ'),
			  # COEF_ESCL=(1,)
		# ),
	# ),
	FORCE_NODALE=_F(
		GROUP_NO='MNode',
		# FX=FX, FY=FY, FZ=FZ,
		# MX=MX, MY=MY, MZ=MZ
		FX=200,FY=-250,FZ=-300,
		MX=500,MY=-500,MZ=-600,
	),
);

I already tried with liaison_solide and allowing all displacements in the Master Node, is the third image of the first post. But I don't get the results you are showing, What software are you using for postprocessing?

I'm using version 13.2 supplied with salome-meca, can be an issue with the version?

#18 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-23 16:05:28

jeanpierreaubry wrote:

sorry there was an error on the sign of MY
much better here

Thats the result I want!

Can you please elaborate how did you get it?

#19 Re: Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-23 15:19:13

jeanpierreaubry wrote:

hello

FORCE_NODALE=_F(
		GROUP_NO='MNode',
		FX=FX, FY=FY, FZ=FZ,
		MX=MX, MY=MY, MZ=MZ
	),

we need some numerical value here

jean pierre aubry

Sorry I forgot this two lines:

FX=200; FY=-250; FZ=-300;
MX=500; MY=-500; MZ=-600;

I attach the correct file

#20 Code_Aster usage » [Solved] Distribute a load to a set of nodes » 2017-05-23 10:07:00

Msegade
Replies: 13

Hi

I'm trying to distribute a point load (FX, FY, FZ, MX, MY, MZ) to a set of nodes at the top of a cylinder.
mnode.png

My reference solution is obtained with Abaqus using a kinematic coupling between the reference node and the master
node, constraining all the degrees of freedom. I get the same results using calculix:

calculix.png

I have tryied the following
LIAISON_SOLIDE
This generates a stress concentration on the edge of the cylinder

LIAISON_SOLIDE=_F(GROUP_NO = ('ForceNodes', 'MNode')),

liaison_solide.png

LIAISON_RBE3
This also generates a stress concentration and very big displacements

LIAISON_RBE3=( 
                       _F(
                        GROUP_NO_MAIT='MNode',
                        DDL_MAIT=('DX','DY','DZ','DRX','DRY','DRZ'),
                        GROUP_NO_ESCL='ForceNodes',
                        DDL_ESCL=('DX-DY-DZ'),
                        COEF_ESCL=(1,)
                         ),
                   ),

liaison_rbe3.png

But If I only use DRX, DRY and DRZ on the master node and fix the master node in DX, DY and DZ, so the matrix is not singular,
I get no stress concentration, but about half the displacement because FX, FY and FZ are having no effect.

 DDL_IMPO=(
               _F( 
                            GROUP_NO = 'MNode', 
                            DX = 0, 
                            DY = 0, 
                            DZ = 0, 
                   ),
                )


 LIAISON_RBE3=( 
                       _F(
                          GROUP_NO_MAIT='MNode',
                          DDL_MAIT=('DRX','DRY','DRZ'),
                          GROUP_NO_ESCL='ForceNodes',
                          DDL_ESCL=('DX-DY-DZ'),
                          COEF_ESCL=(1,)
                            ),
                        ),

liaison_rbe3_only_rotations.png

I also attach the .comm and med file

What else could I try?

Thanks

#21 Re: Code_Aster usage » Cylinder model with shell elements » 2017-05-06 18:24:53

Thanks for the reply, your solution works great.

I also found another workaround: impose 0 displacement in the direction tangential (DTAN) of  the edges on the left side with ARETE_IMPO. The boundary conditions are:

# Rotations and longitudinal displacement
clim=AFFE_CHAR_MECA( MODELE=modl,DDL_IMPO=(
                   _F( GROUP_NO = 'FixNodes', DZ = 0., 
                                              DRX = 0.0, DRY = 0, DRZ = 0 
                     ),)
);
# Allow only radial displacements
rdisp=AFFE_CHAR_MECA( MODELE=modl,
                        ARETE_IMPO=_F(GROUP_MA='FixEdges', DTAN = 0.0));

boundary.png

Now I'm trying to visualize the magnitude of the displacement in the radial direction (which should be constant) but I'm having trouble on how to do it.
Should I do this using MODI_REPERE in code_aster or directly in Paravis?

#22 Re: Code_Aster usage » Cylinder model with shell elements » 2017-05-01 18:55:45

I realized that If I clip the left end, the results are good. The problem is with the boundary condition, which generates some kind of strange local effect.

I want to allow displacements only in the radial direction on the left end, but I think that is not possible to create a cylindrical coordinate system in code_aster. If I constrain only DX=0, the matrix is singular. Any idea how can I achive this?

I also changed the mesh to linear and the modeling to DKT.

clip.png

#23 Code_Aster usage » Cylinder model with shell elements » 2017-04-30 18:37:59

Msegade
Replies: 4

I'm trying to model a cylinder with shell elements and apply a pressure load going outwards in all the model. I'm getting very
strange results because the only things that moves is the fixed end of the cylinder.

The mesh is all quadrangular elements, and I defined three groups:
1. Fix: The nodes on the left end, that are all fixed
2. PressureLoad: All the faces that have the pressure load
3. ShellElements: All shells of the model

mesh.png

In this case the shellElements group and the pressureload group are the same. The command file is the following:

DEBUT();

# Read mesh
# ------------------

mail=LIRE_MAILLAGE( FORMAT='MED' );

# Add one more node on each quad element
# ----------------------------------------

modiMesh=CREA_MAILLAGE(MAILLAGE=mail,INFO=1,
                     MODI_MAILLE=( _F(TOUT='OUI',OPTION='QUAD8_9',),),);

# Reorient all normals so they are coherent
# ----------------------------------------

modiMesh=MODI_MAILLAGE(reuse=modiMesh,
                      INFO=1,
                      MAILLAGE=modiMesh,
                      ORIE_NORM_COQUE=_F(GROUP_MA=('ShellElements',),));

# Coque_3d modelisation   
# ----------------------------------------

modl=AFFE_MODELE( MAILLAGE=modiMesh,
                 AFFE=_F( 
                        GROUP_MA = 'ShellElements',
                        PHENOMENE = 'MECANIQUE',
                        MODELISATION = 'COQUE_3D'
                  ) 
);

# Material definition
# ----------------------

al2024t4=DEFI_MATERIAU(ELAS=_F( E = 73e6,NU = 0.33,) );

# Assignment of the material on the mesh
# ---------------------------------------

chmat=AFFE_MATERIAU(MAILLAGE=modiMesh, 
                    AFFE=_F( GROUP_MA = 'ShellElements',MATER = al2024t4)
);

# Section Assigment
# -------------------------------------

sect=AFFE_CARA_ELEM( MODELE=modl,
                     COQUE=(_F( GROUP_MA = 'ShellElements', EPAIS=0.002)));
                                
# Boundary conditions
# -------------------------------------

clim=AFFE_CHAR_MECA( MODELE=modl,DDL_IMPO=(
                   _F( GROUP_NO = 'Fix', DX = 0,    DY = 0., DZ = 0., 
                                         DRX = 0.0, DRY = 0, DRZ = 0 
                     ),)
);


# Loads definition
# -------------------------

charg=AFFE_CHAR_MECA( MODELE=modl,
          PRES_REP=_F( GROUP_MA = ('PressureLoad'),  PRES=50),);

# Resolution
# ----------

res1=MECA_STATIQUE(        MODELE=modl,     CHAM_MATER=chmat,
            CARA_ELEM=sect, EXCIT=( 
                                    _F( CHARGE = charg),
                                    _F( CHARGE = clim))
);

# Print results
# -------------

IMPR_RESU(FORMAT='MED',
          UNITE = 80,
          RESU=_F(RESULTAT=res1,
                  NOM_CHAM=('DEPL',  ),));


FIN();

and the results I get are:

t

I also attach the salome study file.

Thanks for your help!

#24 Salome-Meca installation » Explode command not working » 2017-04-28 18:49:22

Msegade
Replies: 1

When I try to use the explode command I get the following error:

     GUI library corresponding to the user action can not be found or loaded

It used to work, but for some reason It stopped working. I tried reinstalling but the error continues.
I'm using Arch Linux.

#25 Code_Aster usage » Prevent as_run from modifiying the .export file » 2017-04-13 17:25:10

Msegade
Replies: 0

I'm running a study from the command line with:

 $ as_run myStudy.export 

After that, the file myStudy.export is slightly modified, adding some lines and substituting the name of the input and results files with their full paths. For example:

 F comm myStudy.comm D  1

get replaced with:

 F comm /home/user/path/to/my/file/truss.comm D  1

I want to keep this file portable, so I don't want it to have the full path of the files for my machine. Is there any way for prventing as_run from doing this?

Thanks