Coverage for python/gsfit/database_readers/freegs/setup_rogowski_coils.py: 0%

14 statements  

« prev     ^ index     » next       coverage.py v7.15.0, created at 2026-07-07 13:12 +0000

1import typing 

2from typing import TYPE_CHECKING 

3 

4import freegs 

5import numpy as np 

6import numpy.typing as npt 

7from gsfit_rs import RogowskiCoils 

8 

9if TYPE_CHECKING: 

10 from . import DatabaseReader 

11 

12 

13def setup_rogowski_coils( 

14 self: "DatabaseReader", 

15 pulseNo: int, 

16 settings: dict[str, typing.Any], 

17 time: npt.NDArray[np.float64], 

18 freegs_eqs: list[freegs.equilibrium.Equilibrium], 

19) -> RogowskiCoils: 

20 """ 

21 This method initialises the Rust `RogowskiCoils` class. 

22 

23 :param pulseNo: Pulse number, used to read from the database 

24 :param settings: Dictionary containing the JSON settings read from the `settings` directory 

25 :param time: Measured time vector 

26 :param freegs_eqs: List of FreeGS equilibrium objects, one for each time-slice 

27 

28 **This method is specific to FreeGS.** 

29 

30 See `python/gsfit/database_readers/interface.py` for more details on how a new database_reader should be implemented. 

31 """ 

32 

33 # Initialise the RogowskiCoils Rust class 

34 rogowski_coils = RogowskiCoils() 

35 

36 # Loop over time and store the plasma current 

37 n_time = len(time) 

38 measured_ip = np.full(n_time, np.nan) 

39 for i_time in range(n_time): 

40 measured_ip[i_time] = freegs_eqs[i_time].plasmaCurrent() 

41 

42 # Add the Rogowski coil for the plasma current 

43 rogowski_coils.add_sensor( 

44 name="rog_01", 

45 r=freegs_eqs[0].tokamak.wall.R, 

46 z=freegs_eqs[0].tokamak.wall.Z, 

47 fit_settings_comment="", 

48 fit_settings_expected_value=1e3, 

49 fit_settings_include=True, 

50 fit_settings_weight=100.0, 

51 time=time, 

52 measured=measured_ip, 

53 gaps_r=np.array([]), 

54 gaps_z=np.array([]), 

55 gaps_d_r=np.array([]), 

56 gaps_d_z=np.array([]), 

57 gaps_name=[], 

58 ) 

59 

60 # TODO: need to add some Rogowski coils for the passive plates!!! 

61 

62 return rogowski_coils