Base material classes

Base material class

class structuralcodes.core.base.Material(density: float, initial_strain: float | None = None, initial_stress: float | None = None, strain_compatibility: bool | None = None, name: str | None = None)[source]

Abstract base class for materials.

property constitutive_law: ConstitutiveLaw

Returns the ConstitutiveLaw of the object.

property name

Returns the name of the material.

property density

Returns the density of the material in kg/m3.

Base concrete class

class structuralcodes.materials.concrete.Concrete(fck: float, name: str | None = None, density: float = 2400, gamma_c: float | None = None, existing: bool | None = False, initial_strain: float | None = None, initial_stress: float | None = None, strain_compatibility: bool | None = None)[source]

The abstract concrete material.

property fck: float

Returns fck in MPa.

property constitutive_law: ConstitutiveLaw

Returns the ConstitutiveLaw of the object.

abstract property gamma_c: float

Each concrete should implement its own getter for the partial factor in order to interact with the globally set national annex.

Base reinforcement steel class

class structuralcodes.materials.reinforcement.Reinforcement(fyk: float, Es: float, density: float, ftk: float, epsuk: float, gamma_s: float | None = None, name: str | None = None, initial_strain: float | None = None, initial_stress: float | None = None, strain_compatibility: bool | None = None)[source]

The abstract reinforcement material.

property fyk: float

Returns fyk in MPa.

property Es: float

Returns Es in MPa.

property ftk: float

Returns ftk in MPa.

property epsuk: float

Returns epsuk.

property epsyk: float

Returns characteristic yield strain epsyk.

property epsyd: float

Return the design yield strain.

property constitutive_law: ConstitutiveLaw

Returns the constitutive law object.

Base constitutive law class

class structuralcodes.core.base.ConstitutiveLaw(name: str | None = None)[source]

Abstract base class for constitutive laws.

property name

Returns the name of the constitutive law.

abstract get_stress(eps: float | ArrayLike) float | ArrayLike[source]

Each constitutive law should provide a method to return the stress given the strain level.

abstract get_tangent(eps: float | ArrayLike) float | ArrayLike[source]

Each constitutive law should provide a method to return the tangent at a given strain level.

get_secant(eps: float) float[source]

Method to return the secant at a given strain level.

abstract get_ultimate_strain() Tuple[float, float][source]

Each constitutive law should provide a method to return the ultimate strain (negative and positive).