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]
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")
def __init__(self, H, ID=""): ConstitutiveLaw.__init__(self, ID) # heritage Variable("DispX") Variable("DispY") if ProblemDimension.Get() == "3D": Variable("DispZ") self.__H = H
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
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 }