Skip to content

Commit 2b0e37a

Browse files
committed
Converts "inputs.py" to use C++ objects directly.
1 parent fcdf201 commit 2b0e37a

8 files changed

Lines changed: 399 additions & 312 deletions

File tree

RAT.egg-info/SOURCES.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ setup.py
44
RAT/__init__.py
55
RAT/classlist.py
66
RAT/controls.py
7+
RAT/eventManager.dll
8+
RAT/eventManager.so
79
RAT/events.py
810
RAT/inputs.py
911
RAT/misc.py

RAT/eventManager.dll

0 Bytes
Binary file not shown.

RAT/inputs.py

Lines changed: 161 additions & 106 deletions
Large diffs are not rendered by default.

RAT/utils/dataclasses.py

Lines changed: 1 addition & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,8 @@
11
"""Defines dataclasses used for the inputs to the compiled RAT code."""
22

33
from dataclasses import dataclass, field
4-
from typing import Union
5-
6-
from RAT.utils.enums import Parallel, Procedures, Display, BoundHandling, Strategies, Calc, Geometries, Models
7-
8-
9-
@dataclass
10-
class Checks:
11-
"""Fit parameters for all parameter sets defined in the project."""
12-
fitParam: list[int] = field(default_factory=list)
13-
fitBackgroundParam: list[int] = field(default_factory=list)
14-
fitScalefactor: list[int] = field(default_factory=list)
15-
fitQzshift: list[int] = field(default_factory=list)
16-
fitBulkIn: list[int] = field(default_factory=list)
17-
fitBulkOut: list[int] = field(default_factory=list)
18-
fitResolutionParam: list[int] = field(default_factory=list)
19-
fitDomainRatio: list[int] = field(default_factory=list)
20-
21-
22-
@dataclass
23-
class Limits:
24-
"""Parameters limits for all parameter sets defined in the project."""
25-
param: list[[float, float]] = field(default_factory=list)
26-
backgroundParam: list[[float, float]] = field(default_factory=list)
27-
scalefactor: list[[float, float]] = field(default_factory=list)
28-
qzshift: list[[float, float]] = field(default_factory=list)
29-
bulkIn: list[[float, float]] = field(default_factory=list)
30-
bulkOut: list[[float, float]] = field(default_factory=list)
31-
resolutionParam: list[[float, float]] = field(default_factory=list)
32-
domainRatio: list[[float, float]] = field(default_factory=list)
33-
34-
35-
@dataclass
36-
class Priors:
37-
"""Priors parameters for all parameter sets defined in the project."""
38-
param: list[list] = field(default_factory=list)
39-
backgroundParam: list[list] = field(default_factory=list)
40-
scalefactor: list[list] = field(default_factory=list)
41-
qzshift: list[list] = field(default_factory=list)
42-
bulkIn: list[list] = field(default_factory=list)
43-
bulkOut: list[list] = field(default_factory=list)
44-
resolutionParam: list[list] = field(default_factory=list)
45-
domainRatio: list[list] = field(default_factory=list)
46-
priorNames: list[str] = field(default_factory=list)
47-
priorValues: list = field(default_factory=list)
484

5+
from RAT.utils.enums import Parallel, Procedures, Display, BoundHandling, Strategies
496

507
@dataclass(frozen=True)
518
class Controls:
@@ -82,45 +39,3 @@ class Controls:
8239
pUnitGamma: float = 0.2
8340
boundHandling: BoundHandling = BoundHandling.Fold
8441
adaptPCR: bool = False
85-
# Checks
86-
checks: Checks = Checks()
87-
88-
89-
@dataclass(frozen=True)
90-
class Problem:
91-
"""The full set of problemDef parameters required for RATMain."""
92-
# General
93-
TF: str = Calc.NonPolarised
94-
modelType: str = Models.StandardLayers
95-
geometry: str = Geometries.AirSubstrate
96-
useImaginary: bool = False
97-
# Parameter Values
98-
params: list[float] = field(default_factory=list)
99-
bulkIn: list[float] = field(default_factory=list)
100-
bulkOut: list[float] = field(default_factory=list)
101-
qzshifts: list[float] = field(default_factory=list)
102-
scalefactors: list[float] = field(default_factory=list)
103-
domainRatio: list[int] = field(default_factory=list)
104-
backgroundParams: list[float] = field(default_factory=list)
105-
resolutionParams: list[float] = field(default_factory=list)
106-
# Contrast Parameters
107-
contrastBulkIns: list[int] = field(default_factory=list)
108-
contrastBulkOuts: list[int] = field(default_factory=list)
109-
contrastQzshifts: list[int] = field(default_factory=list)
110-
contrastScalefactors: list[int] = field(default_factory=list)
111-
contrastDomainRatios: list[int] = field(default_factory=list)
112-
contrastBackgrounds: list[int] = field(default_factory=list)
113-
contrastBackgroundsActions: list[int] = field(default_factory=list)
114-
contrastResolutions: list[int] = field(default_factory=list)
115-
contrastCustomFiles: list[Union[int, float]] = field(default_factory=list)
116-
resample: list[int] = field(default_factory=list)
117-
dataPresent: list[int] = field(default_factory=list)
118-
oilChiDataPresent: list[int] = field(default_factory=list)
119-
numberOfContrasts: int = 0
120-
# Other
121-
numberOfLayers: int = 0
122-
numberOfDomainContrasts: int = 0
123-
fitParams: list = field(default_factory=list)
124-
otherParams: list = field(default_factory=list)
125-
fitLimits: list = field(default_factory=list)
126-
otherLimits: list = field(default_factory=list)
0 Bytes
Binary file not shown.

cpp/rat.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ struct Cells {
426426

427427
struct ProblemDefinition {
428428
py::array_t<real_T> contrastBackgrounds;
429-
py::array_t<real_T> contrastBackgroundsType;
429+
py::array_t<real_T> contrastBackgroundActions;
430430
std::string TF {};
431431
py::array_t<real_T> resample;
432432
py::array_t<real_T> dataPresent;
@@ -626,7 +626,7 @@ RAT::struct0_T createStruct0(const ProblemDefinition& problem)
626626
stringToRatArray(problem.TF, problem_struct.TF.data, problem_struct.TF.size);
627627

628628
problem_struct.contrastBackgrounds = pyArrayToRatArray1d(problem.contrastBackgrounds);
629-
problem_struct.contrastBackgroundsType = pyArrayToRatArray1d(problem.contrastBackgroundsType);
629+
problem_struct.contrastBackgroundActions = pyArrayToRatArray1d(problem.contrastBackgroundActions);
630630
problem_struct.resample = pyArrayToRatArray1d(problem.resample);
631631
problem_struct.dataPresent = pyArrayToRatArray1d(problem.dataPresent);
632632
problem_struct.oilChiDataPresent = pyArrayToRatArray1d(problem.oilChiDataPresent);
@@ -1003,7 +1003,7 @@ ProblemDefinition problemDefinitionFromStruct0T(const RAT::struct0_T problem)
10031003
memcpy(&problem_def.TF[0], problem.TF.data, problem.TF.size[1]);
10041004

10051005
problem_def.contrastBackgrounds = pyArrayFromRatArray1d(problem.contrastBackgrounds);
1006-
problem_def.contrastBackgroundsType = pyArrayFromRatArray1d(problem.contrastBackgroundsType);
1006+
problem_def.contrastBackgroundActions = pyArrayFromRatArray1d(problem.contrastBackgroundActions);
10071007
problem_def.resample = pyArrayFromRatArray1d(problem.resample);
10081008
problem_def.dataPresent = pyArrayFromRatArray1d(problem.dataPresent);
10091009
problem_def.oilChiDataPresent = pyArrayFromRatArray1d(problem.oilChiDataPresent);
@@ -1403,7 +1403,7 @@ PYBIND11_MODULE(rat_core, m) {
14031403
py::class_<ProblemDefinition>(m, "ProblemDefinition")
14041404
.def(py::init<>())
14051405
.def_readwrite("contrastBackgrounds", &ProblemDefinition::contrastBackgrounds)
1406-
.def_readwrite("contrastBackgroundsType", &ProblemDefinition::contrastBackgroundsType)
1406+
.def_readwrite("contrastBackgroundActions", &ProblemDefinition::contrastBackgroundActions)
14071407
.def_readwrite("TF", &ProblemDefinition::TF)
14081408
.def_readwrite("resample", &ProblemDefinition::resample)
14091409
.def_readwrite("dataPresent", &ProblemDefinition::dataPresent)

0 commit comments

Comments
 (0)