Coverage for yaptide/converter/converter/fluka/cards/material_card.py: 79%
14 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-07-01 12:55 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2024-07-01 12:55 +0000
1from dataclasses import dataclass, field
2from converter.fluka.helper_parsers.material_parser import FlukaMaterial
3from converter.fluka.cards.card import Card
6@dataclass
7class MaterialsCard:
8 """
9 Class representing description of materials in Fluka input.
10 Every material is represented by one line:
11 codwed - "MATERIAL"
12 what(1) - atomic number
13 what(2) - empty, computed according to what(1)
14 what(3) - density in g/cm^3
15 what(4) - empty, we are using name-based input
16 what(5) - ignored
17 what(6) - default, natural composition of the what(1) element
18 sdum - Name of the material
19 documentation: https://flukafiles.web.cern.ch/manual/chapters/description_input/description_options/material.html#material # skipcq: FLK-W505
20 """
22 data: list[FlukaMaterial] = field(default_factory=list)
23 codewd: str = "MATERIAL"
25 def __str__(self) -> str:
26 """Return card as string."""
27 result = ""
28 for material in self.data:
29 what = [material.Z, "", material.density, "", "", ""]
30 sdum = material.fluka_name
31 result += str(Card(self.codewd, what, sdum)) + "\n"
32 return result.strip()