Loading src/ips_fastran_gui/app/models/ips_fastran.py +3 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from typing import Tuple from nova.galaxy import Dataset, Parameters, Tool from nova.galaxy.interfaces import BasicTool from ips_fastran_gui.app.models.main_model import MainModel from ips_fastran_gui.app.models.main_model import ComputeOptions, MainModel logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) Loading @@ -35,8 +35,9 @@ class IPSFastranTool(BasicTool): tool_params.add_input(name="__job_resource|__job_resource__select", value="yes") tool_params.add_input(name="__job_resource|nodes", value=self.model.resource_params.number_of_nodes) tool_params.add_input(name="__job_resource|qos", value=self.model.resource_params.partition) tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc") tool_params.add_input(name="__job_resource|time", value=self.model.resource_params.time_limit) if self.model.resource_params.compute_resource == ComputeOptions.perlmutter: tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc") self.tool = Tool(id="fusion_ips_fastran") return self.tool, tool_params Loading src/ips_fastran_gui/app/models/main_model.py +10 −0 Original line number Diff line number Diff line """Module for the main model.""" from enum import Enum from pydantic import BaseModel, Field Loading @@ -18,9 +20,17 @@ class Config(BaseModel): file_contents: str = Field(default="") class ComputeOptions(str, Enum): """Compute resource options.""" orc = "ORNL ORC" perlmutter = "NERSC Perlmutter" class ResourceParameters(BaseModel): """Contains resource parameters for running the job.""" compute_resource: ComputeOptions = Field(default=ComputeOptions.orc, title="Compute Resource") partition: str = Field(default="debug", title="Partition") number_of_nodes: int = Field(default=1, ge=1, le=2, title="Number of Nodes") time_limit: int = Field(default=10, ge=1, le=10080, title="Time Limit (minutes)") Loading src/ips_fastran_gui/app/views/tabs/resources_tab.py +2 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ class ResourcesTab: def create_ui(self) -> None: # InputField(v_model="resource_params.partition") with GridLayout(columns=2, classes="mb-2", gap="0.5em"): with GridLayout(columns=3, classes="mb-2", gap="0.5em"): InputField(v_model="resource_params.compute_resource", type="select") InputField(v_model="resource_params.number_of_nodes", type="number") InputField(v_model="resource_params.time_limit", type="number") Loading
src/ips_fastran_gui/app/models/ips_fastran.py +3 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from typing import Tuple from nova.galaxy import Dataset, Parameters, Tool from nova.galaxy.interfaces import BasicTool from ips_fastran_gui.app.models.main_model import MainModel from ips_fastran_gui.app.models.main_model import ComputeOptions, MainModel logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) Loading @@ -35,8 +35,9 @@ class IPSFastranTool(BasicTool): tool_params.add_input(name="__job_resource|__job_resource__select", value="yes") tool_params.add_input(name="__job_resource|nodes", value=self.model.resource_params.number_of_nodes) tool_params.add_input(name="__job_resource|qos", value=self.model.resource_params.partition) tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc") tool_params.add_input(name="__job_resource|time", value=self.model.resource_params.time_limit) if self.model.resource_params.compute_resource == ComputeOptions.perlmutter: tool_params.add_input(name="__job_resource|remote_resource_cloud_nersc", value="nersc") self.tool = Tool(id="fusion_ips_fastran") return self.tool, tool_params Loading
src/ips_fastran_gui/app/models/main_model.py +10 −0 Original line number Diff line number Diff line """Module for the main model.""" from enum import Enum from pydantic import BaseModel, Field Loading @@ -18,9 +20,17 @@ class Config(BaseModel): file_contents: str = Field(default="") class ComputeOptions(str, Enum): """Compute resource options.""" orc = "ORNL ORC" perlmutter = "NERSC Perlmutter" class ResourceParameters(BaseModel): """Contains resource parameters for running the job.""" compute_resource: ComputeOptions = Field(default=ComputeOptions.orc, title="Compute Resource") partition: str = Field(default="debug", title="Partition") number_of_nodes: int = Field(default=1, ge=1, le=2, title="Number of Nodes") time_limit: int = Field(default=10, ge=1, le=10080, title="Time Limit (minutes)") Loading
src/ips_fastran_gui/app/views/tabs/resources_tab.py +2 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ class ResourcesTab: def create_ui(self) -> None: # InputField(v_model="resource_params.partition") with GridLayout(columns=2, classes="mb-2", gap="0.5em"): with GridLayout(columns=3, classes="mb-2", gap="0.5em"): InputField(v_model="resource_params.compute_resource", type="select") InputField(v_model="resource_params.number_of_nodes", type="number") InputField(v_model="resource_params.time_limit", type="number")