Skip to content

model

initialise_later = object() module-attribute

DataStructure dataclass

Source code in process/core/model.py
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@dataclass(kw_only=True)
class DataStructure:
    water_use: WaterUseData = initialise_later
    costs_2015: Cost2015Data = initialise_later
    cs_fatigue: CSFatigueData = initialise_later
    vacuum: VacuumData = initialise_later
    costs: CostData = initialise_later
    first_wall: FirstWallData = initialise_later
    fwbs: FWBSData = initialise_later
    blanket: BlanketData = initialise_later
    structure: StructureData = initialise_later
    times: TimesData = initialise_later
    reinke: ReinkeData = initialise_later
    ccfe_hcpb: CCFEHCPBData = initialise_later
    pulse: PulseData = initialise_later
    build: BuildData = initialise_later
    primary_pumping: PrimaryPumpingData = initialise_later
    buildings: BuildingsData = initialise_later
    constraints: ConstraintData = initialise_later
    dcll: DCLLData = initialise_later
    current_drive: CurrentDriveData = initialise_later
    heat_transport: HeatTransportData = initialise_later
    ife: IFEData = initialise_later
    divertor: DivertorData = initialise_later
    pf_coil: PFCoilData = initialise_later
    power: PowerData = initialise_later
    stellarator: StellaratorData = initialise_later
    stellarator_config: StellaratorConfigData = initialise_later
    pf_power: PFPowerData = initialise_later
    neoclassics: NeoclassicsData = initialise_later
    impurity_radiation: ImpurityRadiationData = initialise_later
    physics: PhysicsData = initialise_later

    def __post_init__(self):
        for f in fields(self):
            if getattr(self, f.name) is initialise_later:
                setattr(self, f.name, f.type())

water_use = initialise_later class-attribute instance-attribute

costs_2015 = initialise_later class-attribute instance-attribute

cs_fatigue = initialise_later class-attribute instance-attribute

vacuum = initialise_later class-attribute instance-attribute

costs = initialise_later class-attribute instance-attribute

first_wall = initialise_later class-attribute instance-attribute

fwbs = initialise_later class-attribute instance-attribute

blanket = initialise_later class-attribute instance-attribute

structure = initialise_later class-attribute instance-attribute

times = initialise_later class-attribute instance-attribute

reinke = initialise_later class-attribute instance-attribute

ccfe_hcpb = initialise_later class-attribute instance-attribute

pulse = initialise_later class-attribute instance-attribute

build = initialise_later class-attribute instance-attribute

primary_pumping = initialise_later class-attribute instance-attribute

buildings = initialise_later class-attribute instance-attribute

constraints = initialise_later class-attribute instance-attribute

dcll = initialise_later class-attribute instance-attribute

current_drive = initialise_later class-attribute instance-attribute

heat_transport = initialise_later class-attribute instance-attribute

ife = initialise_later class-attribute instance-attribute

divertor = initialise_later class-attribute instance-attribute

pf_coil = initialise_later class-attribute instance-attribute

power = initialise_later class-attribute instance-attribute

stellarator = initialise_later class-attribute instance-attribute

stellarator_config = initialise_later class-attribute instance-attribute

pf_power = initialise_later class-attribute instance-attribute

neoclassics = initialise_later class-attribute instance-attribute

impurity_radiation = initialise_later class-attribute instance-attribute

physics = initialise_later class-attribute instance-attribute

Model

Bases: ABC

Source code in process/core/model.py
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
class Model(abc.ABC):
    data: DataStructure

    @abc.abstractmethod
    def run(self) -> None:
        """Run the model.

        The run method is responsible for 'running' the model, ensuring it updates the data
        structure with variables that subsequent models will require.
        """

    @abc.abstractmethod
    def output(self) -> None:
        """Output model data.

        This method will always be called after run method and should output the model data to the
        output files.
        """

data instance-attribute

run() abstractmethod

Run the model.

The run method is responsible for 'running' the model, ensuring it updates the data structure with variables that subsequent models will require.

Source code in process/core/model.py
80
81
82
83
84
85
86
@abc.abstractmethod
def run(self) -> None:
    """Run the model.

    The run method is responsible for 'running' the model, ensuring it updates the data
    structure with variables that subsequent models will require.
    """

output() abstractmethod

Output model data.

This method will always be called after run method and should output the model data to the output files.

Source code in process/core/model.py
88
89
90
91
92
93
94
@abc.abstractmethod
def output(self) -> None:
    """Output model data.

    This method will always be called after run method and should output the model data to the
    output files.
    """