Coverage for src/methodsnm/mesh.py: 77%

30 statements  

« prev     ^ index     » next       coverage.py v7.3.1, created at 2023-09-27 13:22 +0000

1from abc import ABC, abstractmethod 

2import numpy as np 

3from numpy import array 

4 

5class Mesh(ABC): 

6 dimension = None 

7 points = None 

8 vertices = None 

9 edges = None 

10 faces = None 

11 

12 face2edges = None 

13 

14 bndry_vertices = None 

15 bndry_edges = None 

16 

17 def __init__(self): 

18 raise NotImplementedError("Not implemented") 

19 

20 def elements(self, codim=0, bndry=False): 

21 if self.dimension - codim == 0: 

22 if bndry: 

23 return Exception("Invalid dimension") 

24 else: 

25 return self.vertices 

26 elif self.dimension - codim == 1: 

27 if bndry: 

28 return [[self.vertices[i]] for i in self.bndry_vertices] 

29 else: 

30 return self.edges 

31 elif self.dimension - codim == 2: 

32 if bndry: 

33 return self.edges[self.bndry_edges] 

34 else: 

35 return self.faces 

36 else: 

37 raise Exception("Invalid dimension") 

38 

39 def trafo(self, elnr, codim=0, bndry=False): 

40 raise NotImplementedError("Not implemented") 

41