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 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. 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 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. 5
0
paramTS.E_ct = Ec_exp  #concrete elastic modulus in the tensile linear-elastic range
paramTS.E_s = Es_exp
paramTS.eps_y = fy_exp / Es_exp

#regression line type 1
ftdiag = paramTS.pointOnsetCracking()['ft']
ectdiag = paramTS.pointOnsetCracking()['eps_ct']
eydiag = paramTS.eps_y
######Etsdiag=ftdiag/(eydiag-ectdiag)
Etsdiag = paramTS.regresLine()['slope']
#Material for making concrete fibers: concrete02 with tension stiffening
concr = typical_materials.defConcrete02(preprocessor=preprocessor,
                                        name='concr',
                                        epsc0=concrAux.epsilon0(),
                                        fpc=concrAux.fmaxK(),
                                        fpcu=0.85 * concrAux.fmaxK(),
                                        epscu=concrAux.epsilonU(),
                                        ratioSlope=0.1,
                                        ft=ftdiag,
                                        Ets=abs(Etsdiag))

#regression line passing through point (optional approximation)
# ftdiag=paramTS.f_ct
# Etsdiag=-paramTS.slopeRegresLineFixedPoint()
# concr= typical_materials.defConcrete02(preprocessor=preprocessor,name='concr',epsc0=concrAux.epsilon0(),fpc=concrAux.fmaxK(),fpcu=0.85*concrAux.fmaxK(),epscu=concrAux.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)

#
epsMin = 0.0
epsMax = 0.0028
incEps = (epsMax - epsMin) / 25.0
strains = np.arange(epsMin, epsMax, incEps)
Esempio n. 6
0
    preprocessor)  #Definition of steel stress-strain diagram in XC.

#Parameters for tension stiffening of concrete
paramTS = concrete_base.paramTensStiffness(concrMat=concrete,
                                           reinfMat=rfSteel,
                                           reinfRatio=ro_s_eff,
                                           diagType='K')
concrete.tensionStiffparam = paramTS  #parameters for tension stiffening are assigned to concrete
ftdiag = concrete.tensionStiffparam.pointOnsetCracking()[
    'ft']  #stress at the adopted point for concrete onset cracking
Etsdiag = abs(concrete.tensionStiffparam.regresLine()['slope'])
concrete.materialDiagramK = typical_materials.defConcrete02(
    preprocessor=preprocessor,
    name=concrete.nmbDiagK,
    epsc0=concrete.epsilon0(),
    fpc=concrete.fmaxK(),
    fpcu=0.85 * concrete.fmaxK(),
    epscu=concrete.epsilonU(),
    ratioSlope=0.1,
    ft=ftdiag,
    Ets=Etsdiag)
concrete.matTagK = concrete.materialDiagramK.tag

# Section geometry (rectangular 0.3x0.5, 20x20 cells)
geomSectFibers = preprocessor.getMaterialHandler.newSectionGeometry(
    "geomSectFibers")
y1 = width / 2.0
z1 = depth / 2.0
#concrete region
regiones = geomSectFibers.getRegions
concrSect = regiones.newQuadRegion(concrete.nmbDiagK)
concrSect.nDivIJ = nDivIJ
Esempio n. 7
0
preprocessor = prueba.getPreprocessor
nodes = preprocessor.getNodeLoader
nodes.dimEspace = 1
nodes.numGdls = 1

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

# Materials definition
concrAux = EHE_concrete.HA25
concr = typical_materials.defConcrete02(preprocessor=preprocessor,
                                        name='concr25',
                                        epsc0=concrAux.epsilon0(),
                                        fpc=concrAux.fmaxK(),
                                        fpcu=0.85 * concrAux.fmaxK(),
                                        epscu=concrAux.epsilonU(),
                                        ratioSlope=0.1,
                                        ft=concrAux.fctk(),
                                        Ets=concrAux.E0() / 19.0)

# Elements definition
elementos = preprocessor.getElementLoader
elementos.defaultMaterial = 'concr25'
elementos.dimElem = 1
elementos.defaultTag = 1
elem1 = elementos.newElement("zero_length", xc.ID([1, 2]))
''' 
print "dimensión: ",getDim
print "filas trf: ",getTrf.nrows
print "cols. trf: ",getTrf.ncols
Esempio n. 8
0
__email__= "*****@*****.**"

# Model definition
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler
nodes.dimSpace= 1 # One coordinate for each node.
nodes.numDOFs= 1 # One degree of freedom for each node.

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

# Materials definition
concrAux= EHE_materials.HA25
concr=typical_materials.defConcrete02(preprocessor=preprocessor,name='concr25',epsc0=concrAux.epsilon0(),fpc=concrAux.fmaxK(),fpcu=0.85*concrAux.fmaxK(),epscu=concrAux.epsilonU(),ratioSlope=0.1,ft=concrAux.fctk(),Ets=concrAux.E0()/19.0)


# Elements definition
elements= preprocessor.getElementHandler
elements.defaultMaterial='concr25'
elements.dimElem= 1 # Dimension of element space
elements.defaultTag= 1
elem1= elements.newElement("ZeroLength",xc.ID([1,2]))

   
# Constraints
constraints= preprocessor.getBoundaryCondHandler
spc= constraints.newSPConstraint(1,0,0.0) # Node 1

Esempio n. 9
0
#Parameters for tension stiffening of concrete
paramTS=concrete_base.paramTensStiffness(concrMat=concrAux,reinfMat=rfSteel,reinfRatio=ro_exp,diagType='K')
paramTS.E_c=Ec_exp  #concrete elastic modulus
paramTS.f_ct=fct_exp  #concrete tensile strength 
paramTS.E_ct=Ec_exp #concrete elastic modulus in the tensile linear-elastic range
paramTS.E_s=Es_exp 
paramTS.eps_y=fy_exp/Es_exp

# print 'alfa=', paramTS.alfa()

ftdiag=paramTS.pointOnsetCracking()['ft']
ectdiag=paramTS.pointOnsetCracking()['eps_ct']
eydiag=paramTS.eps_y
Etsdiag=ftdiag/(eydiag-ectdiag)
#Material for making concrete fibers: concrete02 with tension stiffening
concr= typical_materials.defConcrete02(preprocessor=preprocessor,name='concr',epsc0=concrAux.epsilon0(),fpc=concrAux.fmaxK(),fpcu=0.85*concrAux.fmaxK(),epscu=concrAux.epsilonU(),ratioSlope=0.1,ft=ftdiag,Ets=Etsdiag)


# Section geometry (rectangular 0.3x0.5, 20x20 cells)
geomSectFibers= preprocessor.getMaterialHandler.newSectionGeometry("geomSectFibers")
y1= width/2.0
z1= depth/2.0
#concrete region
regions= geomSectFibers.getRegions
concrSect= regions.newQuadRegion('concr')
concrSect.nDivIJ= nDivIJ
concrSect.nDivJK= nDivJK
concrSect.pMin= geom.Pos2d(-y1,-z1)
concrSect.pMax= geom.Pos2d(+y1,+z1)

#reinforcement bar (1 single rebar, centered in the cross-section )
Esempio n. 10
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'