Esempio n. 1
0
    def defDiagD(self, preprocessor):
        ''' Defines a uniaxial material to represent the design stress-strain diagram

          - If tensionStiffparam==None (default value) no tensile strength is considered; the stress strain relationship corresponds to a concrete01 material (zero tensile strength).
          - If tensionStiffparam is an instance of the class paramTensStiffenes, tension stiffeness of concrete is considered in the constitutive model to take into account the tensile capacity of the intact concrete between cracks. The stress strain relationship corresponds to a concrete02 material (linear tension softening),  based on the tension-stiffening constitutive model proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080).
        '''
        if self.tensionStiffparam == None:
            self.materialDiagramD = typical_materials.defConcrete01(
                preprocessor=preprocessor,
                name=self.nmbDiagD,
                epsc0=self.epsilon0(),
                fpc=self.fmaxD(),
                fpcu=self.fmaxD(),
                epscu=self.epsilonU())
        else:
            self.tensionStiffparam.diagType = 'D'
            ftdiag = self.tensionStiffparam.pointOnsetCracking()['ft']
            ectdiag = self.tensionStiffparam.pointOnsetCracking()['eps_ct']
            eydiag = self.tensionStiffparam.eps_y()
            Etsdiag = abs(self.tensionStiffparam.regresLine()['slope'])
            self.materialDiagramD = typical_materials.defConcrete02(
                preprocessor=preprocessor,
                name=self.nmbDiagD,
                epsc0=self.epsilon0(),
                fpc=self.fmaxD(),
                fpcu=0.85 * self.fmaxD(),
                epscu=self.epsilonU(),
                ratioSlope=0.1,
                ft=ftdiag,
                Ets=Etsdiag)
        self.matTagD = self.materialDiagramD.tag
        return self.materialDiagramD  #30160925 was 'return self.matTagD'
Esempio n. 2
0
    def defDiagK(self, preprocessor):
        ''' Defines a uniaxial material to represent the characteristic stress-strain diagram

          - If tensionStiffparam== None (default value) no tensile strength is considered; the stress strain relationship corresponds to a concrete01 material (zero tensile strength).
          - If tensionStiffparam is an instance of the class paramTensStiffness, tension stiffness of concrete is considered in the constitutive model to take into account the tensile capacity of the intact concrete between cracks. The stress strain relationship corresponds to a concrete02 material (linear tension softening),  based on the tension-stiffening constitutive model proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080).
        '''
        if self.tensionStiffparam == None:
            self.materialDiagramK = typical_materials.defConcrete01(
                preprocessor=preprocessor,
                name=self.nmbDiagK,
                epsc0=self.epsilon0(),
                fpc=self.fmaxK(),
                fpcu=self.fmaxK(),
                epscu=self.epsilonU())
        else:
            self.tensionStiffparam.diagType = 'K'
            '''
            Approximation of the exponential decay curve in the post-cracking 
            range by means of its regression line
            '''
            ftdiag = self.tensionStiffparam.pointOnsetCracking()[
                'ft']  #stress at the adopted point for concrete onset cracking
            self.ft = ftdiag
            ectdiag = self.tensionStiffparam.pointOnsetCracking(
            )['eps_ct']  #strain at the adopted point for concrete onset cracking
            self.epsct0 = ectdiag
            #eydiag=self.tensionStiffparam.eps_y()                          #reinforcing steel strain at yield point
            Etsdiag = abs(self.tensionStiffparam.regresLine()['slope'])
            self.Ets = Etsdiag
            self.epsctu = ectdiag + ftdiag / Etsdiag
            self.materialDiagramK = typical_materials.defConcrete02(
                preprocessor=preprocessor,
                name=self.nmbDiagK,
                epsc0=self.epsilon0(),
                fpc=self.fmaxK(),
                fpcu=0.85 * self.fmaxK(),
                epscu=self.epsilonU(),
                ratioSlope=0.1,
                ft=ftdiag,
                Ets=Etsdiag)
            self.materialDiagramK.epsct0 = ectdiag
            self.materialDiagramK.epsctu = ectdiag + ftdiag / Etsdiag
            '''
            Approximation of the exponential decay curve in the post-cracking 
            range by means of a regression line that passes through the point 
            (eps_ct,f_ct) where cracking starts.
            This approximation produces a less conservative result 
            '''
            # ftdiag=self.tensionStiffparam.f_ct
            # Etsdiag=-self.tensionStiffparam.slopeRegresLineFixedPoint()
            # self.materialDiagramK= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagK,epsc0=self.epsilon0(),fpc=self.fmaxK(),fpcu=0.85*self.fmaxK(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
        self.matTagK = self.materialDiagramK.tag
        return self.materialDiagramK  #30160925 was 'return self.matTagK'
Esempio n. 3
0
    def defDiagD(self,preprocessor):
        ''' Defines a uniaxial material to represent the design stress-strain 
        diagram

        - If tensionStiffparam is an instance of the class paramTensStiffness,          tension stiffness of concrete is considered in the constitutive model  
        to take into account tensile capacity of the intact concrete between 
        cracks. The stress strain relationship corresponds to a concrete02 
        material (linear tension softening), based on the tension-stiffening  
        constitutive model proposed by Stramandinoli & La Rovere (ref. article: 
        Engineering Structures 30 (2008) 2069-2080)

        -If initTensStiff ='Y' a concrete02 material model 
        is initialized with a tension capacity almost equal to 0 (equivalent to 
        the concrete01 diagram). Defaults to 'N'

        -If tensionStiffparam==None and initTensStiff=='N' (default values) no 
        tensile strength is considered; the stress strain relationship  
        corresponds to a concrete01 material (zero tensile strength).
        '''
        if self.tensionStiffparam:
            self.tensionStiffparam.diagType='D'
            ftdiag=self.tensionStiffparam.pointOnsetCracking()['ft']
            self.ft=ftdiag
            ectdiag=self.tensionStiffparam.pointOnsetCracking()['eps_ct']
            self.epsct0=ectdiag
            eydiag=self.tensionStiffparam.eps_y()
            Etsdiag=abs(self.tensionStiffparam.regresLine()['slope'])
            self.Ets=Etsdiag
            self.epsctu=ectdiag+ftdiag/Etsdiag
            self.materialDiagramD= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=0.85*self.fmaxD(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
            self.materialDiagramD.epsct0=ectdiag
            self.materialDiagramD.epsctu=ectdiag+ftdiag/Etsdiag
        elif self.initTensStiff[0].lower()=='y':
            ftdiag=self.fctk()/10.
            ectdiag=ftdiag/self.E0()
            Etsdiag=ftdiag/(5*ectdiag)
            self.materialDiagramD= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=0.85*self.fmaxD(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
        else:
            self.materialDiagramD= typical_materials.defConcrete01(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=self.fmaxD(),epscu=self.epsilonU())
        self.matTagD= self.materialDiagramD.tag
        return self.materialDiagramD #30160925 was 'return self.matTagD'
Esempio n. 4
0
    def defDiagD(self,preprocessor):
        ''' Defines a uniaxial material to represent the design stress-strain 
        diagram

        - If tensionStiffparam is an instance of the class paramTensStiffness,          tension stiffness of concrete is considered in the constitutive model  
        to take into account tensile capacity of the intact concrete between 
        cracks. The stress strain relationship corresponds to a concrete02 
        material (linear tension softening), based on the tension-stiffening  
        constitutive model proposed by Stramandinoli & La Rovere (ref. article: 
        Engineering Structures 30 (2008) 2069-2080)

        -If initTensStiff ='Y' a concrete02 material model 
        is initialized with a tension capacity almost equal to 0 (equivalent to 
        the concrete01 diagram). Defaults to 'N'

        -If tensionStiffparam==None and initTensStiff=='N' (default values) no 
        tensile strength is considered; the stress strain relationship  
        corresponds to a concrete01 material (zero tensile strength).
        '''
        if self.tensionStiffparam:
            self.tensionStiffparam.diagType='D'
            ftdiag=self.tensionStiffparam.pointOnsetCracking()['ft']
            self.ft=ftdiag
            ectdiag=self.tensionStiffparam.pointOnsetCracking()['eps_ct']
            self.epsct0=ectdiag
            eydiag=self.tensionStiffparam.eps_y()
            Etsdiag=abs(self.tensionStiffparam.regresLine()['slope'])
            self.Ets=Etsdiag
            self.epsctu=ectdiag+ftdiag/Etsdiag
            self.materialDiagramD= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=0.85*self.fmaxD(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
            self.materialDiagramD.epsct0=ectdiag
            self.materialDiagramD.epsctu=ectdiag+ftdiag/Etsdiag
        elif self.initTensStiff[0].lower()=='y':
            ftdiag=self.fctk()/10.
            ectdiag=ftdiag/self.E0()
            Etsdiag=ftdiag/(5*ectdiag)
            self.materialDiagramD= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=0.85*self.fmaxD(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
        else:
            self.materialDiagramD= typical_materials.defConcrete01(preprocessor=preprocessor,name=self.nmbDiagD,epsc0=self.epsilon0(),fpc=self.fmaxD(),fpcu=self.fmaxD(),epscu=self.epsilonU())
        self.matTagD= self.materialDiagramD.tag
        return self.materialDiagramD #30160925 was 'return self.matTagD'
Esempio n. 5
0
]

# Model definition
feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
nodes = preprocessor.getNodeHandler

# Problem type
modelSpace = predefined_spaces.SolidMechanics2D(nodes)

nodes.defaultTag = 1  #First node number.
nod = nodes.newNodeXY(0, 0)
nod = nodes.newNodeXY(l, 0.0)

# Materials definition
horm = typical_materials.defConcrete01(preprocessor, "horm", epsc0, fc, fcu,
                                       epsU)
''' 
print "fpc= ",fpc
print "epsc0= ",epsc0
print "fpcu= ",fpcu
print "epscu= ",epscu
print "CminStrain= ",CminStrain
print "CendStrain= ",CendStrain
print "Cstrain= ",Cstrain
print "CStress= ",Cstress
print "Ctangent= ",Ctangent
print "CunloadSlope= ",CunloadSlope
print "TminStrain= ",TminStrain
print "TendStrain= ",TendStrain
print "Tstrain= ",Tstrain
print "TStress= ",Tstress
Esempio n. 6
0
# Model definition
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler

# Problem type
modelSpace= predefined_spaces.SolidMechanics2D(nodes)


nodes.defaultTag= 1 #First node number.
nod= nodes.newNodeXY(0,0)
nod= nodes.newNodeXY(l,0.0)

# Materials definition
horm= typical_materials.defConcrete01(preprocessor, "horm",epsc0,fc,fcu,epsU)

''' 
print "fpc= ",fpc
print "epsc0= ",epsc0
print "fpcu= ",fpcu
print "epscu= ",epscu
print "CminStrain= ",CminStrain
print "CendStrain= ",CendStrain
print "Cstrain= ",Cstrain
print "CStress= ",Cstress
print "Ctangent= ",Ctangent
print "CunloadSlope= ",CunloadSlope
print "TminStrain= ",TminStrain
print "TendStrain= ",TendStrain
print "Tstrain= ",Tstrain
Esempio n. 7
0
    def defDiagK(self,preprocessor):
        ''' Defines a uniaxial material to represent the characteristic stress-strain diagram

        - If tensionStiffparam is an instance of the class paramTensStiffness,          tension stiffness of concrete is considered in the constitutive model  
        to take into account tensile capacity of the intact concrete between 
        cracks. The stress strain relationship corresponds to a concrete02 
        material (linear tension softening), based on the tension-stiffening  
        constitutive model proposed by Stramandinoli & La Rovere (ref. article: 
        Engineering Structures 30 (2008) 2069-2080)

        -If initTensStiff ='Y' a concrete02 material model 
        is initialized with a tension capacity almost equal to 0 (equivalent to 
        the concrete01 diagram). Defaults to 'N'

        -If tensionStiffparam==None and initTensStiff=='N' (default values) no 
        tensile strength is considered; the stress strain relationship  
        corresponds to a concrete01 material (zero tensile strength).

        '''
        if self.tensionStiffparam:
            self.tensionStiffparam.diagType='K'
            '''
            Approximation of the exponential decay curve in the post-cracking 
            range by means of its regression line
            '''
            ftdiag=self.tensionStiffparam.pointOnsetCracking()['ft']       #stress at the adopted point for concrete onset cracking
            self.ft=ftdiag
            ectdiag=self.tensionStiffparam.pointOnsetCracking()['eps_ct']  #strain at the adopted point for concrete onset cracking
            self.epsct0=ectdiag
            #eydiag=self.tensionStiffparam.eps_y()                          #reinforcing steel strain at yield point
            Etsdiag=abs(self.tensionStiffparam.regresLine()['slope'])
            self.Ets=Etsdiag
            self.epsctu=ectdiag+ftdiag/Etsdiag
            self.materialDiagramK= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagK,epsc0=self.epsilon0(),fpc=self.fmaxK(),fpcu=0.85*self.fmaxK(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
            self.materialDiagramK.epsct0=ectdiag
            self.materialDiagramK.epsctu=ectdiag+ftdiag/Etsdiag
            '''
            Approximation of the exponential decay curve in the post-cracking 
            range by means of a regression line that passes through the point 
            (eps_ct,f_ct) where cracking starts.
            This approximation produces a less conservative result 
            '''
            # ftdiag=self.tensionStiffparam.f_ct
            # Etsdiag=-self.tensionStiffparam.slopeRegresLineFixedPoint()
            # self.materialDiagramK= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagK,epsc0=self.epsilon0(),fpc=self.fmaxK(),fpcu=0.85*self.fmaxK(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
        elif self.initTensStiff[0].lower()=='y':
            ftdiag=self.fctk()/10.
#            self.ft=ftdiag
            ectdiag=ftdiag/self.E0()
#            self.epsct0=ectdiag
            #eydiag=self.tensionStiffparam.eps_y()                          #reinforcing steel strain at yield point
            Etsdiag=ftdiag/(5*ectdiag)
#            self.Ets=Etsdiag
#            self.epsctu=ectdiag+ftdiag/Etsdiag
            self.materialDiagramK= typical_materials.defConcrete02(preprocessor=preprocessor,name=self.nmbDiagK,epsc0=self.epsilon0(),fpc=self.fmaxK(),fpcu=0.85*self.fmaxK(),epscu=self.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)
#            self.materialDiagramK.epsct0=ectdiag
#            self.materialDiagramK.epsctu=ectdiag+ftdiag/Etsdiag
            
        else:
            self.materialDiagramK= typical_materials.defConcrete01(preprocessor=preprocessor,name=self.nmbDiagK,epsc0=self.epsilon0(),fpc=self.fmaxK(),fpcu=self.fmaxK(),epscu=self.epsilonU())
        self.matTagK= self.materialDiagramK.tag
        return self.materialDiagramK #30160925 was 'return self.matTagK'