Commit 55decda0 authored by Greenwood, Scott's avatar Greenwood, Scott
Browse files

update name of fmu_compile variable name and add templates (omedit not working)

parent 06919ca9
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -110,13 +110,13 @@ class JuliaMethods(LanguageMethod):
        # overwrite_line_with_list(template_path, output_path, 'TODO_ADD_DEPENDENCIES_HERE', replacement)
        print('No create_setup currently implemented. Skipping create_setup.')
            
    def create_fmu(self, dependencies: list = None, fmu_compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
    def create_fmu(self, dependencies: list = None, compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
        """
        Generates an FMU using the specified compiler.
        
        Args:
            dependencies (list[str], optional): List of dependencies required for FMU generation.
            fmu_compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            experimentSettings (dict, optional): FMU experiment settings. Defaults to an empty dict.
            **kwargs: Additional keyword arguments for FMU creation.
        
@@ -124,7 +124,7 @@ class JuliaMethods(LanguageMethod):
            RuntimeError: If FMU creation fails.
        """

        dependencies, experimentSettings = super().create_fmu(dependencies, fmu_compiler, experimentSettings, **kwargs)
        dependencies, experimentSettings = super().create_fmu(dependencies, compiler, experimentSettings, **kwargs)
    
        # Add required project and template dependencies
        dependencies = super()._add_required_dependencies(dependencies)
+6 −6
Original line number Diff line number Diff line
@@ -54,15 +54,15 @@ class LanguageMethod:
            raise ValueError(f"Unsupported architecture: {self.parent.architecture}. "
                              f"Supported architectures are: {self.SUPPORTED_ARCHITECTURES}")
    
    def validate_fmu_compiler(self, fmu_compiler):
    def validate_fmu_compiler(self, compiler):
        """
        Validates if the FMU compiler is supported.
    
        Raises:
            ValueError: If the FMU compiler is not supported.
        """
        if fmu_compiler not in self.SUPPORTED_FMU_COMPILERS:
            raise ValueError(f"Unsupported FMU compiler: {fmu_compiler}. "
        if compiler not in self.SUPPORTED_FMU_COMPILERS:
            raise ValueError(f"Unsupported FMU compiler: {compiler}. "
                             f"Supported compilers are: {self.SUPPORTED_FMU_COMPILERS}")

    def validate_and_convert_paths(self, paths: list) -> list:
@@ -170,13 +170,13 @@ class LanguageMethod:
        return dependencies
    
    @abstractmethod
    def create_fmu(self, dependencies: list = None, fmu_compiler: str = '', experimentSettings: dict = None, **kwargs):
    def create_fmu(self, dependencies: list = None, compiler: str = '', experimentSettings: dict = None, **kwargs):
        """
        Generates an FMU (Functional Mock-up Unit) using the specified compiler.
        
        Args:
            dependencies Optional[List[str]] List of dependencies required for FMU generation. If not provided, uses defaults.
            fmu_compiler (str): Compiler to use for FMU generation.
            compiler (str): Compiler to use for FMU generation.
            experimentSettings (dict, optional): FMU experiment settings. Defaults to an empty dict.
            **kwargs: Additional keyword arguments passed to the method.
            
@@ -185,7 +185,7 @@ class LanguageMethod:
            creation specific to the language (e.g., Modelica, etc.).
        """
        # Validate the fmu compiler
        self.validate_fmu_compiler(fmu_compiler)
        self.validate_fmu_compiler(compiler)
            
        # Verify dependencies are valid
        if dependencies is not None:
+14 −10
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ class ModelicaMethods(LanguageMethod):
        except Exception as e:
            raise RuntimeError(f"Failed to create model: {str(e)}")
            
    def create_setup(self, dependencies: list = None, **kwargs):
    def create_setup(self, dependencies: list = None, compiler: str = 'dymola', **kwargs):
        """
        Generates an setup file (i.e., setup.mos).
        
@@ -116,18 +116,22 @@ class ModelicaMethods(LanguageMethod):
        # Add simulation file
        dependencies.append(pathlib.Path(self.parent.model_path).absolute().as_posix())
        
        template_path = (self.METHOD_PATH / '../template_setup.mos').as_posix()
        if compiler == 'dymola' or compiler == 'omedit':
            temp = '../template_setup_dymola.mos' if compiler=='dymola' else '../template_setup_omedit.mos'
            template_path = (self.METHOD_PATH / temp).as_posix()
            output_path = (pathlib.Path(self.parent.model_path).parent / 'setup.mos').as_posix()
            replacement = '{' + ',\n\t\t'.join(f'"{dep}"' for dep in dependencies) + '}'
            overwrite_line_with_list(template_path, output_path, 'TODO_ADD_DEPENDENCIES_HERE', replacement)
        else:
            raise ValueError('Unsupported compiler for setup')
            
    def create_fmu(self, dependencies: list = None, fmu_compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
    def create_fmu(self, dependencies: list = None, compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
        """
        Generates an FMU using the specified compiler.
        
        Args:
            dependencies (list[str], optional): List of dependencies required for FMU generation.
            fmu_compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            experimentSettings (dict, optional): FMU experiment settings. Defaults to an empty dict.
            **kwargs: Additional keyword arguments for FMU creation.
        
@@ -135,13 +139,13 @@ class ModelicaMethods(LanguageMethod):
            RuntimeError: If FMU creation fails.
        """
        # Verify dependencies
        dependencies, experimentSettings = super().create_fmu(dependencies, fmu_compiler, experimentSettings, **kwargs)
        dependencies, experimentSettings = super().create_fmu(dependencies, compiler, experimentSettings, **kwargs)
    
        # Add required project and template dependencies
        dependencies = super()._add_required_dependencies(dependencies)
            
        try:
            if fmu_compiler == 'dymola':
            if compiler == 'dymola':
                # Extract parameters from kwargs
                showwindow = kwargs.pop('showwindow', False)
                
+3 −3
Original line number Diff line number Diff line
@@ -112,13 +112,13 @@ class TEMPLATEMethods(LanguageMethod):
        # overwrite_line_with_list(template_path, output_path, 'TODO_ADD_DEPENDENCIES_HERE', replacement)
        print('No create_setup currently implemented. Skipping create_setup.')
        
    def create_fmu(self, dependencies: list = None, fmu_compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
    def create_fmu(self, dependencies: list = None, compiler: str = 'dymola', experimentSettings: dict = None, **kwargs):
        """
        Generates an FMU using the specified compiler.
        
        Args:
            dependencies (list[str], optional): List of dependencies required for FMU generation.
            fmu_compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            compiler (str, optional): Compiler to use for FMU generation. Defaults to 'dymola'.
            experimentSettings (dict, optional): FMU experiment settings. Defaults to an empty dict.
            **kwargs: Additional keyword arguments for FMU creation.
        
@@ -126,7 +126,7 @@ class TEMPLATEMethods(LanguageMethod):
            RuntimeError: If FMU creation fails.
        """

        dependencies, experimentSettings = super().create_fmu(dependencies, fmu_compiler, experimentSettings, **kwargs)
        dependencies, experimentSettings = super().create_fmu(dependencies, compiler, experimentSettings, **kwargs)
    
        # Add required project and template dependencies
        dependencies = super()._add_required_dependencies(dependencies)
+6 −10
Original line number Diff line number Diff line
@@ -137,14 +137,10 @@ equation
      pattern=LinePattern.Dash,
      thickness=0.5));

//   connect(controlBus.coolingTowerLoop, coolingTowerLoop.controlBus) annotation
//     (Line(
//       points={{0,100},{12,100},{12,-50},{0,-50}},
//       color={255,215,136},
//       pattern=LinePattern.Dash,
//       thickness=0.5));

    for i in 1:structure.coolingTowerLoop.n_int loop
      connect(controlBus.coolingTowerLoop[i], coolingTowerLoop[i].controlBus);
    end for;
  connect(controlBus.coolingTowerLoop, coolingTowerLoop.controlBus) annotation
    (Line(
      points={{0,100},{0,20},{16,20},{16,-40},{0,-40},{0,-50}},
      color={255,215,136},
      pattern=LinePattern.Dash,
      thickness=0.5));
end v0;
Loading