Skip to content

Loading IMAS geometry from equilibrium ids object is incompatible with saving config to output #1744

@theo-brown

Description

@theo-brown

To reproduce:

import copy

from torax._src import path_utils
from torax._src.imas_tools.input import loader
from torax.tests.test_data import test_iterhybrid_predictor_corrector

# Load IDSs
path = (
    path_utils.torax_path()
    / "data"
    / "imas_data"
    / "ITERhybrid_COCOS17_IDS_ddv4.nc"
)
equilibrium_ids = loader.load_imas_data(str(path), "equilibrium")

CONFIG = copy.deepcopy(test_iterhybrid_predictor_corrector.CONFIG)

CONFIG["geometry"] = {
    "geometry_type": "imas",
    "equilibrium_object": equilibrium_ids,
    "imas_filepath": None,
    "Ip_from_parameters": True,
}
File ".../torax/torax/_src/orchestration/run_simulation.py", line 147, in run_simulation
    state_history.simulation_output_to_xr(),
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File .../torax/torax/_src/output_tools/output.py", line 428, in simulation_output_to_xr
    attrs={CONFIG: self.torax_config.model_dump_json()},
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File ".../torax/venv/lib/python3.13/site-packages/pydantic/main.py", line 528, in model_dump_json
    return self.__pydantic_serializer__.to_json(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self,
        ^^^^^
    ...<13 lines>...
        serialize_as_any=serialize_as_any,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ).decode()
    ^
pydantic_core._pydantic_core.PydanticSerializationError: Unable to serialize unknown type: <class 'imas.ids_toplevel.IDSToplevel'>

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions