Coverage for pySDC/projects/parallelSDC/linearized_implicit_fixed_parallel_prec.py: 90%

10 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-09-04 15:08 +0000

1import numpy as np 

2 

3from pySDC.projects.parallelSDC.linearized_implicit_fixed_parallel import linearized_implicit_fixed_parallel 

4 

5 

6class linearized_implicit_fixed_parallel_prec(linearized_implicit_fixed_parallel): 

7 """ 

8 Custom sweeper class, implements Sweeper.py 

9 

10 Attributes: 

11 D: eigenvalues of the QI 

12 """ 

13 

14 def __init__(self, params, level): 

15 """ 

16 Initialization routine for the custom sweeper 

17 

18 Args: 

19 params: parameters for the sweeper 

20 level (pySDC.Level.level): the level that uses this sweeper 

21 """ 

22 

23 if 'fixed_time_in_jacobian' not in params: 

24 params['fixed_time_in_jacobian'] = 0 

25 

26 super().__init__(params, level) 

27 

28 assert self.params.fixed_time_in_jacobian in range(self.coll.num_nodes + 1), ( 

29 "ERROR: fixed_time_in_jacobian is too small or too large, got %s" % self.params.fixed_time_in_jacobian 

30 ) 

31 

32 self.D, self.V = np.linalg.eig(self.QI[1:, 1:]) 

33 self.Vi = np.linalg.inv(self.V)