Coverage for yaptide/converter/converter/fluka/cards/matprop_card.py: 85%

13 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-07-01 12:55 +0000

1from dataclasses import dataclass, field 

2from converter.fluka.cards.card import Card 

3from converter.fluka.helper_parsers.material_parser import IonisationPotential 

4 

5 

6@dataclass 

7class MatPropsCard: 

8 """ 

9 Class representing description of material properties in FLUKA input. 

10 Every material assignment is represented by one line: 

11 codwed - "MAT-PROP" 

12 what(1) - 0 - ignored 

13 what(2) - 0 - ignored 

14 what(3) - average ionisation potential 

15 what(4) - material name 

16 what(5) - empty, default what(4) 

17 what(6) - 0 step length in assigning indices 

18 sdum - empty 

19 documentation: https://flukafiles.web.cern.ch/manual/chapters/description_input/description_options/mat-prop.html#mat-prop skipcq: FLK-W505 

20 """ 

21 

22 data: list[IonisationPotential] = field(default_factory=list) 

23 codewd: str = "MAT-PROP" 

24 

25 def __str__(self) -> str: 

26 """Return card as string.""" 

27 result = "" 

28 for ionisation_potential in self.data: 

29 what = [ 

30 0.0, 

31 0.0, 

32 ionisation_potential.ionisation_potential, 

33 ionisation_potential.material_name, 

34 "", 

35 0.0, 

36 ] 

37 result += str(Card(self.codewd, what)) + "\n" 

38 return result.strip()