1 (edited by jpv 2016-12-14 13:17:09)

Topic: Automatic generation of concrete parameters

Hi,

The ATENA theory manual gives a table with formulas used for automatic generation of concrete constitutive model parameters for the SBETA model. In my case, I am using the Cementicious2 model in GiD (CC3DNonLinCementitious2). Are these formulas still applicable? In particular, I am looking at the formulas for Initial Elastic Modulus and Fracture Energy. When using the formulas specified, I am not getting the same values as the automatically generated ones. Can you please clarify? Also, what is the Initial Elastic modulus formula based on?

I am using GiD 11.0.8 and ATENA 5.3.2 Build 12360

Thanks

Re: Automatic generation of concrete parameters

Dear jpv,
first of all, we recommend updating to the current ATENA versiopn, 5.3.4j (you can get the installer through the ATENA Update Check utility or download it directly from our web).

You should be able to find at least some of the generation formulas used for the NLCem2 material model family in the ATENA Input File Format manual. Please note there are 2 ways of generating the concrete parameters in ATENA-GiD - based on the cube or cylinder compressive strength and based on the EC2 concrete class.

Regards.

Re: Automatic generation of concrete parameters

Thanks for your reply.

I generate the values based on cube/cylinder compressive strength. I found the formulas in the Input File Format manual and the formulas for Initial Elastic Modulus and Fracture Energy are the same as those given in the theory manual:

E = (6000-15.5 fcu) sqrt(fcu)
Gf = 0.000025 ft

However, when I generate the values for NLCem2 model, the generated values do not seem to correspond to these formulas. For example, if I specify a mean cubic strength of 32MPa and generate values according to a mean safety format, I get:

E = 30447 MPa
ft = 2.24 MPa
fc = -28.4 MPa
Gf = 133 N/m

Incidentally, the formulas given in the manual for ft and fc also do not seem to correspond to these values, but I use measured values for these.

Am I misinterpreting something?

Thanks

Re: Automatic generation of concrete parameters

A reference to the EC2 formulas:

http://books.google.gr/books?id=Dl36ncD … mp;f=false [^]

Re: Automatic generation of concrete parameters

Many thanks. The equation given in fib bulletin 1 for E agrees with the generated parameters, but not the one given for fracture energy. The theory manual gives a reference to VOS (1983), however I do not get the same values as the automatically generated ones. Can you please confirm which formula is used for fracture energy and a reference for it?

Thanks

Re: Automatic generation of concrete parameters

According to Zdenek Janda, who has implemented the corresponding dialogs in ATENA GiD, the formula for generating the mean fracture energy comes from the Fib Model Code 2010 (MC2010)

Gf = 73.0*fcm^0.18

where the mean cylinder strength is

fcm = fck+8

Re: Automatic generation of concrete parameters

Excellent, many thanks for your help

Re: Automatic generation of concrete parameters

Hello,

I'm also using GiD (v10.0.9) as pre-processor for ATENA Studio (v5.6.0).

In the CC3DNonlinearCimentitious2 material model family, is it possible to use other types of crack opening law and compression softening?

I've noted that this is possible using SBETA material considering plane stress. There is a way to do this in 3D models?

Best regards

Marcos

Re: Automatic generation of concrete parameters

Dear Marcos,
please see ATENA Troubleshooting, 2.2.3 How can I model Fibre Reinforced Concrete (FRC, UHPC, SHCC) in ATENA? and 2.2.4 I want to use the user-defined stress-strain law of concrete to replace that used in ATENA program. How can I do it?

Regards.

Re: Automatic generation of concrete parameters

I found it

Thank you Mr. Pryl

Re: Automatic generation of concrete parameters

jpv wrote:

Many thanks. The equation given in fib bulletin 1 for E agrees with the generated parameters, but not the one given for fracture energy. The theory manual gives a reference to VOS (1983), however I do not get the same values as the automatically generated ones. Can you please confirm which formula is used for fracture energy and a reference for it?

Thanks

You can also check .bas and .tcl files in folder /GiD/problemtypes/Atena. All formulas are written in these scripts.

Re: Automatic generation of concrete parameters

This is for ModeCode (C:\Program Files\GiD\GiD 14.0\problemtypes\Atena\include.src.bas\TK_GenerateMCConcreteProperties.tcl):

 #Cubic-Characteristic,Cubic-Mean,Cylinder-Characteristic,Cylinder-Mean)
      #Cylinder-Characteristic
   set fcka $StrengthValue
      
   if { $fcka <0 } {
      set fcka [expr -1.0*$fcka]
  } else {
      set fcka [expr 1.0*$fcka]
  }       
                
  if { $StrengthType == "Cubic-Characteristic" } {
      set fcka [expr $StrengthValue*0.85]
      } elseif { $StrengthType == "Cubic-Mean" } {
      set fcka [expr ($StrengthValue-8)*0.85]
      } elseif { $StrengthType == "Cylinder-Mean" } {
      set fcka [expr ($StrengthValue-8)]
      }
   
  set fck $fcka    
     
   if { $fck <0 } {
      WarnWinText ""
      WarnWinText "----------Error------------"
      WarnWinText "Error: Fck < 0 MPa. It is not allowed."
      WarnWinText "----------Error------------"
      WarnWinText ""
      return ""
  }
  
  if {$fck < 12} {
      WarnWinText ""
      WarnWinText "----------Warning------------"
      WarnWinText "Fck < 12 MPa, Fcm < 20MPa"
      WarnWinText "This calculation acoording to the ModelCode is not suitable for Fck < 12 MPa or Fcm < 20MPa." 
      WarnWinText "Use cylinder characteristic strength for generation and characteristic Safety Format"
      WarnWinText "----------Warning------------"
      WarnWinText ""
  }      
  
  set gamma 1.0
  if { $SafetyFormat == "Design" } {set gamma 1.5}
  if { $SafetyFormat == "Characteristic" } {set gamma 1.0}
  if { $SafetyFormat == "Mean" } {set gamma 1.0}
  if { $SafetyFormat == "EN1992-2" } {set gamma 1.18577}      

  set fcm [expr $fck+8 ]
  set ea [expr ($fck+8.0)/10.0] 
  set eb [expr 1.0/3.0]
  set modulE [expr 21500*1*[tcl::mathfunc::pow  $ea $eb]]

  if {$fck <= 50} {
     set fctm [expr 0.3*[tcl::mathfunc::pow $fck 0.666666666666666]]
     set exc 0.52
  } else {
     set fctm [expr 2.12*log(1+0.1*($fck+8))]
     set exc 0.51
  }
  
 set fctk [expr 0.7*$fctm]

 if { $SafetyFormat == "Mean" } {
    set ft [expr $fctm/$gamma] 
    set fcs [expr $fcm/$gamma]
 } else {   
    set ft [expr $fctk/$gamma] 
    set fcs [expr $fck/$gamma]
  }
  
  
  #set gf [expr 73*(($fcs)^(18/100))]
  set gf [expr 73.0*[tcl::mathfunc::pow $fcs 0.18]]
  
  set eps12    -1.9
  set eps16    -2
  set eps20    -2.1
  set eps25    -2.2
  set eps30    -2.3
  set eps35    -2.3
  set eps40    -2.4
  set eps45    -2.5
  set eps50    -2.6
  set eps55    -2.6
  set eps60    -2.7
  set eps70    -2.7
  set eps80    -2.8
  set eps90    -2.9
  set eps100    -3
  set eps110    -3
  set eps120    -3

  if {$fck <= 12} {
     set eps_t $eps12
  } elseif {$fck > 12 && $fck <= 16} {
     set eps_t [expr ($eps16-$eps12)*($fcs-12)/(16-12)+$eps12]
  } elseif {$fck > 16 && $fck <= 20} {
     set eps_t [expr ($eps20-$eps16)*($fcs-16)/(20-16)+$eps16]
  } elseif {$fck > 20 && $fck <= 25} {
     set eps_t [expr ($eps25-$eps20)*($fcs-20)/(25-20)+$eps20]
  } elseif {$fck > 25 && $fck <= 30} {
     set eps_t [expr ($eps30-$eps25)*($fcs-25)/(30-25)+$eps25]
  } elseif {$fck > 30 && $fck <= 35} {
     set eps_t [expr ($eps35-$eps30)*($fcs-30)/(35-30)+$eps30]
  } elseif {$fck > 35 && $fck <= 40} {
     set eps_t [expr ($eps40-$eps35)*($fcs-35)/(40-35)+$eps35]
  } elseif {$fck > 40 && $fck <= 45} {
     set eps_t [expr ($eps45-$eps40)*($fcs-40)/(45-40)+$eps40]
  } elseif {$fck > 45 && $fck <= 50} {
     set eps_t [expr ($eps50-$eps45)*($fcs-45)/(50-45)+$eps45]                              
  } elseif {$fck > 50 && $fck <= 55} {
     set eps_t [expr ($eps55-$eps50)*($fcs-50)/(55-50)+$eps50] 
  } elseif {$fck > 55 && $fck <= 60} {
     set eps_t [expr ($eps60-$eps55)*($fcs-55)/(60-55)+$eps55] 
  } elseif {$fck > 60 && $fck <= 70} {
     set eps_t [expr ($eps70-$eps60)*($fcs-60)/(70-60)+$eps60] 
  } elseif {$fck > 70 && $fck <= 80} {
     set eps_t [expr ($eps80-$eps70)*($fcs-70)/(80-70)+$eps70] 
  } elseif {$fck > 80 && $fck <= 90} {
     set eps_t [expr ($eps90-$eps80)*($fcs-80)/(90-80)+$eps80]                     
  } elseif {$fck > 90 && $fck <= 100} {
     set eps_t [expr ($eps100-$eps90)*($fcs-90)/(100-90)+$eps90]  
  } elseif {$fck > 100 } {
     set eps_t $eps100 
  }
  
  set eps [expr $eps_t/1000 + $fcs/$modulE]
  #set eps [expr $fcs / $modulE]

  #Onset_of_Crushing-FC0
  set ft0 [expr $ft* -2.1]
    

Re: Automatic generation of concrete parameters

THis is for Eurocode (C:\Program Files\GiD\GiD 14.0\problemtypes\Atena\include.src.bas\TK_GenerateEC2Properties.tcl):

# $SafetyFormat

  if { $StrengthClass == "12/15" } {
        set fck 12
        set beton 15
        set fcm 20
        set fctm 1.6
        set fctk 1.1
        set modulE 27000
        }
  if { $StrengthClass == "16/20" } {
        set fck 16
        set beton 20
        set fcm 24
        set fctm 1.9
        set fctk 1.3
        set modulE 29000
        }
  if { $StrengthClass == "20/25" } {
        set fck 20
        set beton 25
        set fcm 28
        set fctm 2.2
        set fctk 1.5
        set modulE 30000
        }
  if { $StrengthClass == "25/30" } {
        set fck 25
        set beton 30
        set fcm 33
        set fctm 2.6
        set fctk 1.8
        set modulE 31000
        }
  if { $StrengthClass == "30/37" } {
        set fck 30
        set beton 37
        set fcm 38
        set fctm 2.9
        set fctk 2
        set modulE 32000
        }
  if { $StrengthClass == "35/45" } {
        set fck 35
        set beton 45
        set fcm 43
        set fctm 3.2
        set fctk 2.2
        set modulE 34000
        }
  if { $StrengthClass == "40/50" } {
        set fck 40
        set beton 50
        set fcm 48
        set fctm 3.5
        set fctk 2.5
        set modulE 35000
        }   
  if { $StrengthClass == "45/55" } {
        set fck 45
        set beton 55
        set fcm 53
        set fctm 3.8
        set fctk 2.7
        set modulE 36000
        }   
  if { $StrengthClass == "50/60" } {
        set fck 50
        set beton 60
        set fcm 58
        set fctm 4.1
        set fctk 2.9
        set modulE 37000
        }   
  if { $StrengthClass == "55/67" } {
        set fck 55
        set beton 67
        set fcm 63
        set fctm 4.2
        set fctk 3
        set modulE 38000
        }   
  if { $StrengthClass == "60/75" } {
        set fck 60
        set beton 75
        set fcm 68
        set fctm 4.4
        set fctk 3.1
        set modulE 39000
        }   
  if { $StrengthClass == "70/85" } {
        set fck 70
        set beton 85
        set fcm 78
        set fctm 4.6
        set fctk 3.2
        set modulE 41000
        }   
  if { $StrengthClass == "80/95" } {
        set fck 80
        set beton 95
        set fcm 88
        set fctm 4.8
        set fctk 3.4
        set modulE 42000
        }
  if { $StrengthClass == "90/105" } {
        set fck 90
        set beton 105
        set fcm 98
        set fctm 5
        set fctk 3.5
        set modulE 44000
        } 
                                                                                                   
  if { $SafetyFormat == "Design" } {set gamma 1.5}
  if { $SafetyFormat == "Characteristic" } {set gamma 1.0}
  if { $SafetyFormat == "Mean" } {set gamma 1.0}
  if { $SafetyFormat == "EN1992-2" } {set gamma 1.18577}  
  # = 1,1 * 1,15 / 1,5 (CSN EN 1992-2 5.7)   

  
  #Young_s_Modulus-E
    set modulE2 [format %g%s $modulE "MPa"]
    set on [DWLocalSetValue $GDN $STRUCT Young_s_Modulus-E $modulE2] 
    WarnWinText "Young_s_Modulus-E = $modulE2"

    set on [DWLocalSetValue $GDN $STRUCT Poisson_s_Ratio 0.2] 
    WarnWinText "Poisson_s_Ratio = 0.2"
 
  
 if { $SafetyFormat == "Mean" } {
   #Tension_Strength-FT 
    set ft [expr $fctm / $gamma]
  #Compresion_Strength-FC
    set fcs [expr $fcm / -$gamma]
 
 } else {   
  #Tension_Strength-FT 
    set ft [expr $fctk / $gamma]
  #Compresion_Strength-FC
    set fcs [expr $fck / -$gamma]
  }
 
  #Tension_Strength-FT 
    set ft2 [format %10.3g%s $ft "MPa"]
    set on [DWLocalSetValue $GDN $STRUCT Tension_Strength-FT $ft2] 
    WarnWinText "Tension_Strength-FT = $ft2"
 
   #Compresion_Strength-FC   
    set fcs2 [format %10.3g%s $fcs "MPa"]
    set on [DWLocalSetValue $GDN $STRUCT Compresion_Strength-FC $fcs2] 
    WarnWinText "Compresion_Strength-FC = $fcs2"  

 
   #Fracture_Energy-GF
    set gf [expr $ft *  0.000025]
    set gf [format %10.3g%s $gf "MN/m"]
    set on [DWLocalSetValue $GDN $STRUCT Fracture_Energy-GF $gf] 
    WarnWinText "Fracture_Energy-GF = $gf"   
    
    set on [DWLocalSetValue $GDN $STRUCT Critical_Comp_Disp-WD -0.0005m] 
    WarnWinText "Critical_Comp_Disp-WD = -0.0005m"
    
  #Plastic_Strain-EPS_CP
    #eps_cp = eps_c1 – fc/E
    #WarnWinText "Fcm = $fcm"
    #set a [tcl::mathfunc::pow  $fcm 0.31]
    #WarnWinText "Fcm na 0,31 = $a" 
    set eps [expr -0.7 * [tcl::mathfunc::pow  $fcm 0.31]/1000 - ($fcs / $modulE)]
    #set eps [expr $fcs / $modulE]
    set eps [format %10.5g%s $eps ""]
    set on [DWLocalSetValue $GDN $STRUCT Plastic_Strain-EPS_CP $eps] 
    WarnWinText "Plastic_Strain-EPS_CP = $eps" 
    #set epsold [expr $fcs / $modulE]
    #WarnWinText "Plastic_Strain-EPS_CP old = $epsold"
    
  #Onset_of_Crushing-FC0
    set ft0 [expr $ft * -2.1]
    set ft0 [format %10.3g%s $ft0 "MPa"]
    set on [DWLocalSetValue $GDN $STRUCT Onset_of_Crushing-FC0 $ft0] 
    WarnWinText "Onset_of_Crushing-FC0 = $ft0"
  
  set on [DWLocalSetValue $GDN $STRUCT Excentricity-EXC 0.52] 
    WarnWinText "Excentricity-EXC = 0.52"
  set on [DWLocalSetValue $GDN $STRUCT Dir_of_pl_Flow-BETA 0.0] 
    WarnWinText "Dir_of_pl_Flow-BETA = 0.0"
  set on [DWLocalSetValue $GDN $STRUCT Rho-Density 0.0023kton/m^3] 
    WarnWinText "Rho-Density = 0.0023kton/m^3"

Re: Automatic generation of concrete parameters

Dear Pavlo,

Thank you for showing us where to find this code.
However, I have some question about it and would be great if someone could help me to understand.

1st question: "tcl::mathfunc::pow"- This piece of code has been only used to call an exponential function?

2nd question: In the TK_GenerateMCConcreteProperties file, what is the meaning of the following part?

" set eps12    -1.9
  set eps16    -2
  set eps20    -2.1
  set eps25    -2.2
  set eps30    -2.3
  set eps35    -2.3
  set eps40    -2.4
  set eps45    -2.5
  set eps50    -2.6
  set eps55    -2.6
  set eps60    -2.7
  set eps70    -2.7
  set eps80    -2.8
  set eps90    -2.9
  set eps100    -3
  set eps110    -3
  set eps120    -3

  if {$fck <= 12} {
     set eps_t $eps12
  } elseif {$fck > 12 && $fck <= 16} {
     set eps_t [expr ($eps16-$eps12)*($fcs-12)/(16-12)+$eps12]
  } elseif {$fck > 16 && $fck <= 20} {
     set eps_t [expr ($eps20-$eps16)*($fcs-16)/(20-16)+$eps16]
  } elseif {$fck > 20 && $fck <= 25} {
     set eps_t [expr ($eps25-$eps20)*($fcs-20)/(25-20)+$eps20]
  } elseif {$fck > 25 && $fck <= 30} {
     set eps_t [expr ($eps30-$eps25)*($fcs-25)/(30-25)+$eps25]
  } elseif {$fck > 30 && $fck <= 35} {
     set eps_t [expr ($eps35-$eps30)*($fcs-30)/(35-30)+$eps30]
  } elseif {$fck > 35 && $fck <= 40} {
     set eps_t [expr ($eps40-$eps35)*($fcs-35)/(40-35)+$eps35]
  } elseif {$fck > 40 && $fck <= 45} {
     set eps_t [expr ($eps45-$eps40)*($fcs-40)/(45-40)+$eps40]
  } elseif {$fck > 45 && $fck <= 50} {
     set eps_t [expr ($eps50-$eps45)*($fcs-45)/(50-45)+$eps45]                             
  } elseif {$fck > 50 && $fck <= 55} {
     set eps_t [expr ($eps55-$eps50)*($fcs-50)/(55-50)+$eps50]
  } elseif {$fck > 55 && $fck <= 60} {
     set eps_t [expr ($eps60-$eps55)*($fcs-55)/(60-55)+$eps55]
  } elseif {$fck > 60 && $fck <= 70} {
     set eps_t [expr ($eps70-$eps60)*($fcs-60)/(70-60)+$eps60]
  } elseif {$fck > 70 && $fck <= 80} {
     set eps_t [expr ($eps80-$eps70)*($fcs-70)/(80-70)+$eps70]
  } elseif {$fck > 80 && $fck <= 90} {
     set eps_t [expr ($eps90-$eps80)*($fcs-80)/(90-80)+$eps80]                     
  } elseif {$fck > 90 && $fck <= 100} {
     set eps_t [expr ($eps100-$eps90)*($fcs-90)/(100-90)+$eps90] 
  } elseif {$fck > 100 } {
     set eps_t $eps100
  }"

Best regards,
Marcos

Re: Automatic generation of concrete parameters

Dear Marcos,

1) yes, it is for call an exponential function

2) it is definition of $eps_t by different $fck

according Table 5.1-8: Modules Eci, Ec1, strains eps_c1, eps_c,lim and plasticity number
k for normal weight concrete

Best Regards

Zdenek

Re: Automatic generation of concrete parameters

ok. thank you

Re: Automatic generation of concrete parameters

Hello,

I'm trying to understand the following piece of code found in the TK_GenerateMCConcreteProperties file:

set eps [expr $eps_t/1000 + $fcs/$modulE]
#set eps [expr $fcs / $modulE]

The first term ($eps_t/1000) is equivalent to eps_c1 from Model Code 2010 which represents the strain at peak stress.

I'm not sure why it needs to add the second term ($f_cs/$modulE) and what it represents to find the plastic strain.
Shouldn't the concrete strength start to decrease after eps_c1 ($eps_t/1000), so when the equivalent plastic strain was smaller than eps_c1 it could indicate crushing?

Could someone help me understand this or point some reference I where can find it?

With best regards

Marcos

Re: Automatic generation of concrete parameters

Hello, it is not "add" but the "substract" (eps_c1 is negative, fcs is positive) The strain in ModelCode is a total strain. EPS_CP in ATENA is only relative strain. So from the total strain from ModelCode we need to substract the elastic part.

see figure 5.1.3

https://www.cervenka.cz/downloads/Users … eps_cp.jpg