ABAQUS CAE – Combiner / comparer des résultats

ABAQUS CAE – Savez-vous combiner ou comparer vos résultats ?

 

Les combinaisons de résultat sont utilisées dans de nombreuse industries. La validité d’une combinaison de résultat est valable uniquement pour des calculs linéaires, mais rien ne vous empêche d’utiliser les fonctionnalités présentées ci-dessous pour comparer des résultats de deux analyses non-linéaires à iso-maillage (les matériaux par exemple peuvent être diffèrent). Cet article présente les fonctionnalités « Create From Frames » et « Create Field Output » ainsi qu’un exemple de script python.

 

Create From Frames

La première fonctionnalité « Create From Frames » est utile pour combiner des résultats d’un unique fichier résultat (odb). Vous la trouverez dans le module visualisation, menu Tools > Field Output.

 

 

Elle vous permet de faire la somme de « frame » avec des coefficients pour chaque frame, et également de calculer les enveloppes minimum et maximum des frames sélectionnées. Vous pouvez sélectionner les sorties à utiliser dans l’onglet « Fields » afin de minimiser le temps d’exécution de l’opération. 

 

Les résultats sont par défaut générés dans un step non persistant « Session Step » qui disparaît à la fermeture de l’odb. Si vous avez au préalable ouvert l’odb en décochant l’option « read only », vous pouvez sauver ces résultats à l’aide de la fonction menu Tools > Field Output > Save Fields (disponible à partir de la version 2017). Pour cela, créer un nouveau step, sélectionner les variables à stoker et sauvegarder. Il faut fermer et réouvrir l’odb pour voir le nouveau step apparaître.

 

Et voici le résultat :

 

 

 

 

Create Field Output

 

Cette deuxième fonctionnalité « Create Field Output » est utile pour réaliser des opérations sur un unique fichier résultat (odb). Vous la trouverez dans le module visualisation, menu Tools > Field Output. Elle permet de faire plus d’opération que la fonctionnalité précédente et fonctionne de la même manière. Un « Session step » est généré et peut être sauver à l’aide de la fonction « save Field ».

 

Utilisation de script python

L’utilisation de script python vous permet de faire les mêmes opérations que les fonctions « Create From Frames » et « Create Field Output » et permet en plus d’utiliser plusieurs odb. N’hésitez pas à vous inspirer des commandes pythons générées par l’interface (.rpy,…) pour écrire votre propre script. Un exemple de script permettant de faire la différence entre les déplacements de deux odb différents à iso-maillage et de les sauvegarder dans un des deux odb est montré ci-dessous :

 

#####################################################################

 

from odbAccess import *

odb1 = openOdb(path=’mon_odb1.odb’)

odb2 = openOdb(path=’mon_odb2.odb’)

 

 

# Get fields from output database.

 

field1 = odb1.steps[‘nom_du_step’].frames[1].fieldOutputs[‘U’]

field2 = odb2.steps[‘nom_du_step’].frames[1].fieldOutputs[‘U’]

 

# Compute difference between fields.

 

deltaDisp = field2 – field1

 

# Save new field.

 

newStep = odb1.Step(name=’mes_resultats’,

    description=’user defined results’, domain= TIME, timePeriod=0)

newFrame = newStep.Frame(incrementNumber=0, frameValue=0.0)

newField = newFrame.FieldOutput(name=’U’,

    description=’delta displacements’, type=VECTOR)

newField.addData(field=deltaDisp)

 

odb1.save()

 

#####################################################################

 

Attention au « type » de la commande « FieldOutput », elle peut adopter les valeurs suivantes en fonction du type de résultat : SCALAR, VECTOR, TENSOR_3D_FULL, TENSOR_3D_PLANAR, TENSOR_3D_SURFACE, TENSOR_2D_PLANAR, et TENSOR_2D_SURFACE.

 

Pensez également à bien faire une copie de vos odb initiaux avant de jouer avec ce type de script, comme cela en cas d’erreur, pas la peine de relancer vos simulations.

 

A vous de jouer !