Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:volumes:isohard

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:elements:volumes:isohard [2018/06/19 10:45] cerquagliadoc:user:elements:volumes:isohard [2020/07/08 10:16] (current) – [Python] papeleux
Line 22: Line 22:
 |Plastic Modulus $h $                |    ''IH_H''    |  ''TM/TO''          |Plastic Modulus $h $                |    ''IH_H''    |  ''TM/TO''         
  
-NB: the plastic modulus is defined as $h = \frac{E E_T}{E - E_T} $, where $E$ is the Young modulus and $E_T$ the tangent modulus.+**NB**: the plastic modulus is defined as $h = \frac{E E_T}{E - E_T} $, where $E$ is the Young'modulus and $E_T$ the tangent modulus.
  
 ===== SaturatedIsotropicHardening ===== ===== SaturatedIsotropicHardening =====
Line 250: Line 250:
 |$\Theta_{0}$  |   ''KM_THETA0''      ''TM/TO''            |$\Theta_{0}$  |   ''KM_THETA0''      ''TM/TO''           
 |$\Theta_{IV}$ |   ''KM_THETA4''      ''TM/TO''           | |$\Theta_{IV}$ |   ''KM_THETA4''      ''TM/TO''           |
 +
 +===== Python =====
 +
 +User defined Isotropic Hardening by a pythonDirector :
 +
 +Python Director allows user to define their own Isotropic Hardening law. Five functions has to be defined in the Python Class : 
 +  * a constructor (<code>__init__</code>),
 +  * a destructor (<code>__del__</code>) that must never be called, 
 +  * computeSvm  (epl, pLaw)
 +  * computeH (epl, pLaw)
 +  * computePotential (epl, pLaw) for hyperElastics models
 +See the example below of a Linear Isotropic Hardening : 
 +<code>
 +
 +class MyIsoH(PythonIsotropicHardening):
 +    def __init__(self, _no, _svm0, _h):
 +        print("MyIsoH : __init__")
 +        PythonIsotropicHardening.__init__(self,_no)
 +        self.svm0 = _svm0
 +        self.h    = _h
 +        print("no = ", _no)
 +        print("self.svm0 = ", self.svm0)
 +        print("self.h = ", self.h)
 +        print("MyIsoH : __init__ finished")
 +        print("computeSvm(0.0) = " , self.computeSvm(0.0, None))
 +    def __del__(self):
 +        print("MyIsoH : __del__")
 +        print("callToDestructor of MyIsoH not allowed. Add MyIsoH.__disown__()")
 +        input('')
 +        exit(1)
 +    def computeSvm(self, epl, pLaw) :
 +        #print "MyIsoH compute SVM"
 +        return self.svm0+epl*self.h
 +    def computeH(self, epl, pLaw) :
 +        #print "MyIsoH compute H"
 +        return self.h
 +    def computePotential(self, epl, pLaw) :
 +        #print "MyIsoH compute Potential"
 +        return (self.svm0+self.h*epl*0.5)*epl
 +</code>
  
  
doc/user/elements/volumes/isohard.1529397945.txt.gz · Last modified: 2018/06/19 10:45 by cerquaglia

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki