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
« 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
6class MathModel(AbstractMathModel):
7 def __init__(self) -> None:
8 self.coord = 'cyl'
10 self.R: float = 10
11 self.H: float = 30
12 self.sld_value1: float = -1
13 self.sld_value2: float = 2
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
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