Coverage for tests\modelfiles\joined_cylinder.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.5.0, created at 2024-05-09 17:12 +0800

1import torch 

2from torch import Tensor 

3from model2sas import AbstractMathModel 

4 

5 

6class MathModel(AbstractMathModel): 

7 def __init__(self) -> None: 

8 self.coord = 'cyl' 

9 

10 self.R: float = 10 

11 self.H: float = 30 

12 self.sld_value1: float = -1 

13 self.sld_value2: float = 2 

14 

15 def bounding_box(self): 

16 return \ 

17 -self.R, \ 

18 -self.R, \ 

19 -self.H/2, \ 

20 self.R, \ 

21 self.R, \ 

22 self.H/2 

23 

24 def sld(self, u: Tensor, v: Tensor, w: Tensor) -> Tensor: 

25 sld = torch.zeros_like(u) 

26 sld[(u<=self.R)&(w>=-self.H/2)&(w<0)] = self.sld_value1 

27 sld[(u<=self.R)&(w>=0)&(w<=self.H/2)] = self.sld_value2 

28 return sld