def __init__(self,
                 EL,
                 ET,
                 GLT,
                 GTT,
                 nuLT,
                 nuTT,
                 CL=0,
                 CT=0,
                 CTL=0,
                 RefStrainRate=1,
                 SLc_T=None,
                 SLc_C=None,
                 SYc_T=None,
                 SYc_C=None,
                 SZc_T=None,
                 SZc_C=None,
                 SLYc=None,
                 SLZc=None,
                 ID=""):
        ConstitutiveLaw.__init__(self, ID)  # heritage
        #        self.__YoungModulus = YoungModulus
        #        self.__PoissonRatio = PoissonRatio

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get(
        ) == "3D":  # or ProblemDimension.Get() == "2Dstress" :
            Variable("DispZ")

        self.__parameters = {'EL':EL, 'ET':ET, 'GLT':GLT, 'GTT':GTT, 'nuLT':nuLT, 'nuTT':nuTT, 'CL':CL, 'CT':CT, 'CLT':CLT, 'RefStrainRate': RefStrainRate, \
                             'SLc_T':SLc_T, 'SLc_C':SLc_C, 'SYc_T':SYc_T, 'SYc_C':SYc_C, 'SZc_T':SZc_T, 'SZc_C':SZc_C, 'SLYc':SLYc, 'SLZc':SLZc}

        self.__DamageVariable = [0, 0, 0, 0, 0, 0]
Esempio n. 2
0
    def __init__(self, Kx=0, Ky=0, Kz=0, ID=""):
        ConstitutiveLaw.__init__(self, ID)  # heritage
        self.__parameters = {'Kx': Kx, 'Ky': Ky, 'Kz': Kz}

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get(
        ) == "3D":  # or ProblemDimension.Get() == "2Dstress" :
            Variable("DispZ")
Esempio n. 3
0
    def __init__(self, H, ID=""):
        ConstitutiveLaw.__init__(self, ID)  # heritage

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get() == "3D":
            Variable("DispZ")

        self.__H = H
Esempio n. 4
0
    def __init__(self, Vf=0.6, E_f=250000, E_m = 3500, nu_f = 0.33, nu_m = 0.3, angle=0, ID=""):
        ConstitutiveLaw.__init__(self, ID) # heritage
#        self.__YoungModulus = YoungModulus
#        self.__PoissonRatio = PoissonRatio
        
        Variable("DispX")
        Variable("DispY")        
        
        if ProblemDimension.Get() == "3D": # or ProblemDimension.Get() == "2Dstress" :
            Variable("DispZ")

        self.__parameters = {'Vf':Vf, 'E_f':E_f, 'E_m':E_m, 'nu_f':nu_f, 'nu_m':nu_m, 'angle':angle}   
    def __init__(self,
                 GIc=0.3,
                 SImax=60,
                 KI=1e4,
                 GIIc=1.6,
                 SIImax=None,
                 KII=5e4,
                 axis=2,
                 ID=""):
        # GIc la ténacité (l'énergie à la rupture = l'aire sous la courbe du modèle en N/mm)
        #        SImax = 60.  # la contrainte normale maximale de l'interface (MPa)
        #        KI = 1e4          # la raideur des éléments cohésive (la pente du modèle en N/mm3)
        #
        #        # Mode II (12)
        #        G_IIc = 1.6
        #        KII = 5e4

        #
        ##----------------------- la puissance du critère de propagation (cas de critère de Power Law)---------------------------
        #        alpha = 2.
        #

        ConstitutiveLaw.__init__(self, ID)  # heritage
        self.__DamageVariable = 0  #damage variable
        self.__DamageVariableOpening = 0  # DamageVariableOpening is used for the opening mode (mode I). It is equal to DamageVariable in traction and equal to 0 in compression (soft contact law)
        self.__DamageVariableIrreversible = 0  #irreversible damage variable used for time evolution
        self.__parameters = {
            'GIc': GIc,
            'SImax': SImax,
            'KI': KI,
            'GIIc': GIIc,
            'SIImax': SIImax,
            'KII': KII,
            'axis': axis
        }

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get(
        ) == "3D":  # or ProblemDimension.Get() == "2Dstress" :
            Variable("DispZ")

        self.__currentInterfaceStress = None
Esempio n. 6
0
    def __init__(self, YoungModulus, PoissonRatio, YieldStress, ID=""):
        #only scalar values of YoungModulus and PoissonRatio are possible
        ConstitutiveLaw.__init__(self, ID)  # heritage

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get() == "3D":
            Variable("DispZ")

        self.__YoungModulus = YoungModulus
        self.__PoissonRatio = PoissonRatio
        self.__YieldStress = YieldStress

        self.__P = None  #irrevesrible plasticity
        self.__currentP = None  #current iteration plasticity (reversible)
        self.__PlasticStrainTensor = None
        self.__currentPlasticStrainTensor = None
        self.__currentSigma = None  #lissStressTensor object describing the last computed stress (GetStress method)

        self.__tol = 1e-6  #tolerance of Newton Raphson used to get the updated plasticity state (constutive law alogorithm)
    def __init__(self, EX, EY, EZ, GYZ, GXZ, GXY, nuYZ, nuXZ, nuXY, ID=""):
        ConstitutiveLaw.__init__(self, ID)  # heritage
        #        self.__YoungModulus = YoungModulus
        #        self.__PoissonRatio = PoissonRatio

        Variable("DispX")
        Variable("DispY")

        if ProblemDimension.Get() == "3D":
            Variable("DispZ")

        self.__parameters = {
            'EX': EX,
            'EY': EY,
            'EZ': EZ,
            'GYZ': GYZ,
            'GXZ': GXZ,
            'GXY': GXY,
            'nuYZ': nuYZ,
            'nuXZ': nuXZ,
            'nuXY': nuXY
        }