Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:general:fonctions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:user:general:fonctions [2013/07/12 18:56] – created jorisdoc:user:general:fonctions [2021/01/28 18:28] (current) papeleux
Line 1: Line 1:
-====== Fonction d'évolution ======+ 
 +====== Functions y=f(t) ======
  
-Des fonctions sont utiles pour décrire la manière dont varient certains paramètresElles interviennent par exemple dans la définition des [[doc:user:conditions:displacements|déplacements imposés]] ou dans la [[doc:user:elements:volumes:start|définition d'une loi d'écrouissage]].+Functions are quite useful to describe how some parameters evolve, over time for exampleThey can be used to [[doc:user:conditions:displacements|prescribe displacements]] or to define [[doc:user:elements:volumes:start|hardening laws]].
  
 ===== PieceWiseLinearFunction ===== ===== PieceWiseLinearFunction =====
  
 +A piecewise linear function is defined one point at a time:
  
-On définit une fonction linéaire par morceaux - PieceWiseLinearFunction - point par point de la manière suivante: 
  
     fct = PieceWiseLinearFunction()     fct = PieceWiseLinearFunction()
Line 13: Line 14:
     ...     ...
  
-+where
  
-| ''abs1'', ''abs2'', ... | liste des abscisses +| ''abs1'', ''abs2'', ... | list of abscissae 
-| ''ord1'', ''ord2'', ... | liste des ordonnées |+| ''ord1'', ''ord2'', ... | list of ordinates |
  
-__Remarque #1:__ Les fonctions d'évolution sont des objets dérivant de ''refCounted''. Une fois associée à un chargement, ou une dépendance de propriété, leur référence est incrémentée et la gestion de leur mémoire associée  aux objets la référenciant. Il n'est donc PLUS nécessaire (comme auparavant) de les définir globale dans le module python.8-O+{{ doc:user:piecewise.gif |Piecewise linear function}}
  
-{{ doc:user:piecewise.gif |Fonction linéaire par morceaux}}+__Remark:__ As can be seen above, the first and last segments are extrapolated if a value of the function is required outside its domain.
  
-__Remarque #2:__ Comme le montre le schéma ci-dessus, les segments extrêmes (premier et dernier) sont extrapolés dans le cas de l'évaluation hors du domaine de définition+===== CyclicPieceWiseLinearFunction ===== 
 +The ''CyclicPieceWiseLinearFunction'' allows to duplicate infinitely  a ''PieceWiseLinearFunction''
 + 
 +{{ :doc:user:cyclicpiecewiselinearfunction.png?600 |}} 
 + 
 +constrains are applied on Data  
 +  the first abcisse must be equal to 0.0 (abs1 = 0.0) 
 +  - the cycle must be closed (ord1 = ordLast)
  
 ===== PythonOneParameterFunction ===== ===== PythonOneParameterFunction =====
  
-Lorsqu'une fonction est trop complexe pour être définie par une ''PieceWiseLinearFunction'', il faut passer par une définition analytique de la fonction. C'est possible grâce à [[doc:user:general:glossaire#python]] et les ''PythonOneParameterFunction''.+If a function is mathematically too complex to be defined with a ''PieceWiseLinearFunction'', it can be defined analytically, with a ''PythonOneParameterFunction'' object. 
 + 
 +  def f(x): 
 +      [function calculating y=f(x)] 
 +      return y 
 +  fct1 = PythonOneParameterFunction(f)
  
-Le but est de pouvoir faire passer une fonction python (ou tout objet appelablecomme ''OneParameterFunction''.+For example, this is used to: 
 +    * Set the node density for a 1D mesher ([[doc:user:geometry:mesh:1d]]). 
 +    * define elaborated prescribed displacements ([[doc:user:conditions:displacements]]). 
 +    * Define a hardening function with Python ([[doc:user:elements:volumes:start]]).
  
-Ceci permet de, par exemple, de: +===== Examples =====
-    * Configurer le mailleur ([[doc:user:geometry:mesh:1d]]). +
-    * Piloter la plupart des objets metafor de manière plus évoluée ([[doc:user:conditions:displacements]]). +
-    * Définir une fonction d'écrouissage par python ([[doc:user:elements:volumes:start]]).+
  
-__Exemple:__ la fonction "rampe":+The ramp function:
  
     fct1 = PieceWiseLinearFunction()     fct1 = PieceWiseLinearFunction()
-    fct1.setdata(0,0) +    fct1.setData(0,0) 
-    fct1.setdata(1,1)+    fct1.setData(1,1)
  
-devient, en version interprétée python:+can be also defined with a classical python function:
  
-    def f(a): +    def f(x): 
-        return a+        return x
     fct1 = PythonOneParameterFunction(f)     fct1 = PythonOneParameterFunction(f)
  
-ouen utilisant les fonctions ''lambda'' de python:+orusing python ''lambda'' function:
  
     f = lambda x: x     f = lambda x: x
     fct1 = PythonOneParameterFunction(f)     fct1 = PythonOneParameterFunction(f)
  
-On peut aussi afficher une valeur à chaque évaluation ou modifier créer une fonction spéciale (en utilisant tout l'arsenal de python)Par exempleon démarre une fonction de mise en charge avec une parabole et on la termine avec une droite - le changement de formule se fait par un ''if'' python.+===== Advanced use ===== 
 +{{:doc:user:ico-advanced.png?40 |Advanced}} 
 +The value can also be displayed for each estimationand a more complex function can also be defined using all Python tools. For example, a load function can be first defined with a parabola, then with a straight line, the change between these two being controlled by an conditional structure.
  
     def f(a):     def f(a):
doc/user/general/fonctions.txt · Last modified: 2021/01/28 18:28 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki