Source code for mento.section

from dataclasses import dataclass, field
from typing import TYPE_CHECKING, List, Optional

from mento.material import Concrete, SteelBar
from mento.forces import Forces

from pint import Quantity

if TYPE_CHECKING:
    from mento.node import Node


[docs] @dataclass class Section: """ Represents a section composed of concrete and steel reinforcement. Attributes: concrete (Concrete): The concrete material used in the section. steel_bar (SteelBar): The steel reinforcement used in the section. c_c (Quantity): The concrete cover or another relevant quantity. node (Optional[Node]): The node associated with this section, if any. label (Optional[str]): An optional label for the section. Methods: id: Read-only property to access the section's unique ID. check_shear(forces: List[Forces]): Checks the section for shear under given forces. design_shear(forces: List[Forces]): Designs the section for shear under given forces. check_flexure(forces: List[Forces]): Checks the section for flexure under given forces. design_flexure(forces: List[Forces]): Designs the section for flexure under given forces. shear_results_detailed(force: Optional[Forces] = None): Provides detailed shear results. shear_results_detailed_doc(force: Optional[Forces] = None): Provides detailed shear results for documentation. flexure_results_detailed(force: Optional[Forces] = None): Provides detailed flexure results. flexure_results_detailed_doc(force: Optional[Forces] = None): Provides detailed flexure results for documentation. results: Property to access beam results for Jupyter Notebook. """ concrete: Concrete = field(kw_only=True) steel_bar: SteelBar = field(kw_only=True) c_c: Quantity = field(kw_only=True) _id: int = field(init=False) _last_id: int = field(default=0, init=False, repr=False) node: Optional["Node"] = field(default=None, init=False) label: Optional[str] = field(default=None, kw_only=True) def __post_init__(self) -> None: Section._last_id += 1 self._id = Section._last_id @property def id(self) -> int: """Read-only property to access the private _id.""" return self._id
[docs] def check(self, forces: List[Forces]) -> None: pass
[docs] def design(self, forces: List[Forces]) -> None: pass
[docs] def check_shear(self, forces: List[Forces]) -> None: pass
[docs] def design_shear(self, forces: List[Forces]) -> None: pass
[docs] def check_flexure(self, forces: List[Forces]) -> None: pass
[docs] def design_flexure(self, forces: List[Forces]) -> None: pass
[docs] def shear_results_detailed(self, force: Optional[Forces] = None) -> None: pass
[docs] def shear_results_detailed_doc(self, force: Optional[Forces] = None) -> None: pass
[docs] def flexure_results_detailed(self, force: Optional[Forces] = None) -> None: pass
[docs] def flexure_results_detailed_doc(self, force: Optional[Forces] = None) -> None: pass
def _get_units_row_shear(self) -> None: pass # Beam results for Jupyter Notebook @property def results(self) -> None: pass