m_n_kappa.Concrete#
- class m_n_kappa.Concrete(f_cm, f_ctm=None, use_tension=True, compression_stress_strain_type='Nonlinear', tension_stress_strain_type='Default')#
Bases:
Material
Concrete material
New in version 0.1.0.
- Parameters:
f_cm (float) – mean concrete cylinder compression strength \(f_\mathrm{cm}\)
f_ctm (float) – mean tensile strength \(f_\mathrm{ctm}\) (Default: None)
use_tension (bool) –
True
: considers tension (Default)False
: does not consider tension
compression_stress_strain_type (str) –
sets section_type of stress-strain_value curve under compression. Possible values are:
'Nonlinear'
(Default)'Parabola'
'Bilinear'
tension_stress_strain_type (str) –
sets section_type of strain_value-stain curve under tension Possible values are:
'Default'
'consider opening behaviour'
See also
Steel
material-behaviour of steel
Reinforcement
material-behaviour of reinforcement
Notes
For Details regarding the computation of these relastionships check out the corresponding classes.
Concrete under compression
Following stress-strain-relationships may be chosen to describe the behaviour of concrete under compression.
Classes:
Nonlinear
:ConcreteCompressionNonlinear
Parabola
:ConcreteCompressionParabolaRectangle
Bilinear
:ConcreteCompressionBiLinear
Concrete under tension
References
Examples
A
Nonlinear
concrete stress-strain-relationship neglecting the tensile behaviour of concrete is computed as follows.>>> from m_n_kappa import Concrete >>> nonlinear_no_tension = Concrete(f_cm=30.0, use_tension=False) >>> nonlinear_no_tension.stress_strain [StressStrain(stress=-16.9202915, strain=-0.0035), StressStrain(stress=-26.5783275, strain=-0.0027546), StressStrain(stress=-30.0, strain=-0.0020091), StressStrain(stress=-28.8050612, strain=-0.0015849), StressStrain(stress=-19.6170303, strain=-0.0007925), StressStrain(stress=-11.1281632, strain=-0.0003923), StressStrain(stress=0.0, strain=0.0), StressStrain(stress=0.0, strain=10.0)]
Whereas a
Parabola
-Rectangle-behaviour is computed as follows.>>> parabola_no_tension = Concrete(f_cm=30.0, use_tension=False, ... compression_stress_strain_type='Parabola') >>> parabola_no_tension.stress_strain [StressStrain(stress=-22.0, strain=-0.0035), StressStrain(stress=-22.0, strain=-0.002), StressStrain(stress=-20.625, strain=-0.0015), StressStrain(stress=-16.5, strain=-0.001), StressStrain(stress=-9.625, strain=-0.0005), StressStrain(stress=0.0, strain=0.0), StressStrain(stress=0.0, strain=10.0)]
And a
Bilinear
is computed as follows>>> bilinear_no_tension = Concrete(f_cm=30.0, use_tension=False, ... compression_stress_strain_type='Bilinear') >>> bilinear_no_tension.stress_strain [StressStrain(stress=-22.0, strain=-0.0035), StressStrain(stress=-22.0, strain=-0.00175), StressStrain(stress=0.0, strain=0.0), StressStrain(stress=0.0, strain=10.0)]
In case tension is to be considered the following expression is okay (with
Nonlinear
compression behaviour).>>> with_tension = Concrete(f_cm=30.0) >>> with_tension.stress_strain [StressStrain(stress=-16.9202915, strain=-0.0035), StressStrain(stress=-26.5783275, strain=-0.0027546), StressStrain(stress=-30.0, strain=-0.0020091), StressStrain(stress=-28.8050612, strain=-0.0015849), StressStrain(stress=-19.6170303, strain=-0.0007925), StressStrain(stress=-11.1281632, strain=-0.0003923), StressStrain(stress=0.0, strain=0.0), StressStrain(stress=2.3554273, strain=7.7e-05), StressStrain(stress=0.0, strain=7.8e-05), StressStrain(stress=0.0, strain=10.0)]
Furthermore, the crack-opening of the conrete and its effect on the tensile behaviour may be considered by adding
tension_stress_strain_type='consider opening behaviour'
that is derived from fib Model Code 2010 [2].>>> with_tension_opening = Concrete(f_cm=30.0, ... tension_stress_strain_type='consider opening behaviour') >>> with_tension_opening.stress_strain [StressStrain(stress=-16.9202915, strain=-0.0035), StressStrain(stress=-26.5783275, strain=-0.0027546), StressStrain(stress=-30.0, strain=-0.0020091), StressStrain(stress=-28.8050612, strain=-0.0015849), StressStrain(stress=-19.6170303, strain=-0.0007925), StressStrain(stress=-11.1281632, strain=-0.0003923), StressStrain(stress=0.0, strain=0.0), StressStrain(stress=2.3554273, strain=7.7e-05), StressStrain(stress=0.4710855, strain=0.1673582), StressStrain(stress=0.0, strain=0.8367908), StressStrain(stress=0.0, strain=10.0)]
Methods
get_intermediate_strains
(strain_1[, ...])determine material points with strains between zero and given strain_value
get_material_stress
(strain)gives stress from the stress-strain_value-relationship corresponding with the given strain_value
sort_strains
([reverse])sorts stress-strain_value-relationship depending on strains
sorts stress-strain_value-relationship so strains are ascending
sorts stress-strain_value-relationship so strains are descending
Attributes
modulus of elasticity of concrete \(E_\mathrm{cm}\) acc.
concrete under compression
chosen stress-strain-type for concrete under compression
yield strain of concrete under compression \(0.4 \cdot f_\mathrm{cm} / E_\mathrm{cm}\)
mean concrete compressive strength \(f_\mathrm{ck} = f_\mathrm{cm}-8\)
mean concrete compressive strength \(f_\mathrm{cm}\)
maximum strain_value in the stress-strain_value-relationship
minimum strain_value in the stress-strain_value-relationship
section section_type
strains from the stress-strain_value-relationship
list of stress-strain_value points
stresses from the stress-strain_value-relationship
concrete under tension
chosen stress-strain-type for concrete under tension
defines usage of tension
- get_intermediate_strains(strain_1, strain_2=0.0, include_strains=False)#
determine material points with strains between zero and given strain_value
- Parameters:
strain_1 (float) – 1st strain-value
strain_2 (float) – 2nd strain-value (Default: 0.0)
include_strains (bool) – includes the boundary strain values (Default: False)
- Returns:
determine material points with strains between zero and given strain_value
- Return type:
list[float]
- get_material_stress(strain)#
gives stress from the stress-strain_value-relationship corresponding with the given strain_value
- Parameters:
strain (float) – strain_value a corresponding stress value should be given
- Returns:
stress corresponding to the given strain-value in the material-model
- Return type:
float
- Raises:
ValueError – when strain is outside the boundary values of the material-model
- sort_strains(reverse=False)#
sorts stress-strain_value-relationship depending on strains
- Parameters:
reverse (bool) –
True
: sorts strains descendingFalse
: sorts strains ascending (Default)
- Return type:
None
- sort_strains_ascending()#
sorts stress-strain_value-relationship so strains are ascending
- Return type:
None
- sort_strains_descending()#
sorts stress-strain_value-relationship so strains are descending
- Return type:
None
- property compression: ConcreteCompression#
concrete under compression
- property compression_stress_strain_type: str#
chosen stress-strain-type for concrete under compression
- property epsilon_y: float#
yield strain of concrete under compression \(0.4 \cdot f_\mathrm{cm} / E_\mathrm{cm}\)
- property f_ck: float#
mean concrete compressive strength \(f_\mathrm{ck} = f_\mathrm{cm}-8\)
- property f_cm: float#
mean concrete compressive strength \(f_\mathrm{cm}\)
- property maximum_strain: float#
maximum strain_value in the stress-strain_value-relationship
- property minimum_strain: float#
minimum strain_value in the stress-strain_value-relationship
- property section_type: str#
section section_type
- property strains: list#
strains from the stress-strain_value-relationship
- property stress_strain: list[m_n_kappa.material.StressStrain]#
list of stress-strain_value points
- property stresses: list#
stresses from the stress-strain_value-relationship
- property tension: ConcreteTension#
concrete under tension
- property tension_stress_strain_type: str#
chosen stress-strain-type for concrete under tension
- property use_tension: bool#
defines usage of tension